- Risalita a ZMAX
- Migliorie se scambio diretto
This commit is contained in:
+53
-37
@@ -1378,6 +1378,8 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
||||
if ( dYDeltaF ~= dYDeltaI or dVDeltaF ~= dVDeltaI) then
|
||||
if #vCmd == 0 then
|
||||
table.insert( vCmd, { 0, 'Clamp repositioning'})
|
||||
-- risalita testa a Zmax
|
||||
local bZmaxOk = EnsureZmax( bZmaxOk, vCmd)
|
||||
end
|
||||
-- calcolo delta spostamento trave
|
||||
local dDeltaBeam = dTPosI - dTPosF -- se positivo, la trave si sposta dal carico allo scarico
|
||||
@@ -1398,52 +1400,50 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
||||
|
||||
-- scambio diretto
|
||||
if ( ( dYDeltaI - dVDeltaF) >= MinY - MaxV + DELTA_SIC and dDeltaBeam > 0) or ( ( dVDeltaI - dYDeltaF) >= MinY - MaxV + DELTA_SIC and dDeltaBeam < 0) then
|
||||
if EMC.YDELTA then
|
||||
if not EMC.VDELTA then
|
||||
table.insert( vCmd, { 12, 0})
|
||||
end
|
||||
dTPosA = MaxV - dVDeltaF
|
||||
dVPosA = MaxV
|
||||
dYPosA = dTPosA - dYDeltaI
|
||||
-- se da carico a scarico
|
||||
if dDeltaBeam < 0 then
|
||||
table.insert( vCmd, { 0, 'Direct - V to position first'})
|
||||
table.insert( vCmd, { 12, 0})
|
||||
-- suddivido il movimento su entrambe le morse
|
||||
local nTotMove = ( dVDeltaF - dVDeltaI) / 2 ;
|
||||
dTPosA = dTPosI - nTotMove
|
||||
dVPosA = dTPosA + dVDeltaF
|
||||
dYPosA = dTPosA + dYDeltaI
|
||||
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
||||
table.insert( vCmd, { 12, 1})
|
||||
table.insert( vCmd, { 11, 0})
|
||||
dTPosA = dTPosF
|
||||
dYPosA = dVDeltaF + dTPosF
|
||||
dVPosA = dYDeltaF + dTPosF
|
||||
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
||||
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
||||
-- sposto il carrello Y in posizione
|
||||
if EMC.YDELTANEXT then
|
||||
dTPosA = dTPosF
|
||||
dVPosA = dTPosA + dVDeltaF
|
||||
dYPosA = dTPosA + dYDeltaF
|
||||
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
||||
table.insert( vCmd, { 11, 1})
|
||||
end
|
||||
if not EMC.VDELTANEXT then
|
||||
table.insert( vCmd, { 12, 0})
|
||||
-- sposto il carrello Y in parcheggio
|
||||
table.insert( vCmd, { 1, 'V', ParkV})
|
||||
end
|
||||
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
||||
else
|
||||
dTPosA = MinY - dYDeltaF
|
||||
dVPosA = dTPosA - dVDeltaI
|
||||
dYPosA = MinY
|
||||
table.insert( vCmd, { 0, 'Direct - Y to position first'})
|
||||
table.insert( vCmd, { 11, 0})
|
||||
-- suddivido il movimento su entrambe le morse
|
||||
local nTotMove = ( dYDeltaF - dYDeltaI) / 2 ;
|
||||
dTPosA = dTPosI - nTotMove
|
||||
dVPosA = dTPosA + dVDeltaI
|
||||
dYPosA = dTPosA + dYDeltaF
|
||||
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
||||
table.insert( vCmd, { 11, 1})
|
||||
table.insert( vCmd, { 12, 0})
|
||||
dTPosA = dTPosF
|
||||
dYPosA = dYDeltaF + dTPosF
|
||||
dVPosA = dVDeltaF + dTPosF
|
||||
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
||||
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
||||
-- sposto il carrello Y in posizione
|
||||
if EMC.VDELTANEXT then
|
||||
dTPosA = dTPosF
|
||||
dVPosA = dTPosA + dVDeltaF
|
||||
dYPosA = dTPosA + dYDeltaF
|
||||
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
||||
table.insert( vCmd, { 12, 1})
|
||||
end
|
||||
if not EMC.YDELTANEXT then
|
||||
table.insert( vCmd, { 11, 0})
|
||||
-- sposto il carrello Y in parcheggio
|
||||
table.insert( vCmd, { 1, 'Y', ParkY})
|
||||
end
|
||||
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
||||
end
|
||||
-- imposto i nuovi parametri di aggancio
|
||||
if EMC.YDELTANEXT and EMC.VDELTANEXT then
|
||||
if EMC.YDELTANEXT and EMC.VDELTANEXT then
|
||||
table.insert( vCmd, { 21, dYDeltaF, dVDeltaF})
|
||||
elseif EMC.YDELTANEXT then
|
||||
table.insert( vCmd, { 21, dYDeltaF, 0})
|
||||
@@ -1454,6 +1454,8 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
||||
else
|
||||
-- compatto al centro
|
||||
if not EMC.YDELTA then
|
||||
table.insert( vCmd, { 0, 'Compact Y'})
|
||||
table.insert( vCmd, { 11, 0})
|
||||
dTPosA = MaxV - dVDeltaI
|
||||
dVPosA = MaxV
|
||||
dYPosA = MinY
|
||||
@@ -1464,6 +1466,8 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
||||
dTPosI = dTPosA
|
||||
end
|
||||
if not EMC.VDELTA then
|
||||
table.insert( vCmd, { 0, 'Compact V'})
|
||||
table.insert( vCmd, { 12, 0})
|
||||
dTPosA = MinY - dYDeltaI
|
||||
dVPosA = MaxV
|
||||
dYPosA = MinY
|
||||
@@ -1527,9 +1531,15 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
||||
-- aggiorno nuova posizione della morsa al carico dopo riposizionamento
|
||||
dYDeltaI = dYDeltaF ;
|
||||
|
||||
dYPosA = dYPosA - nTotMove
|
||||
dVPosA = dVPosA + nTotMove
|
||||
dTPosA = dTPosA - nTotMove
|
||||
if EMC.YDELTANEXT then
|
||||
dTPosA = dTPosF
|
||||
dYPosA = dTPosF + dYDeltaF
|
||||
dVPosA = dTPosF + dVDeltaF
|
||||
else
|
||||
dYPosA = dYPosA - nTotMove
|
||||
dVPosA = dVPosA + nTotMove
|
||||
dTPosA = dTPosA - nTotMove
|
||||
end
|
||||
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
||||
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
||||
|
||||
@@ -1604,9 +1614,15 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
||||
-- aggiorno nuova posizione della morsa al carico dopo riposizionamento
|
||||
dVDeltaI = dVDeltaF ;
|
||||
|
||||
dYPosA = dYPosA - nTotMove
|
||||
dVPosA = dVPosA + nTotMove
|
||||
dTPosA = dTPosA + nTotMove
|
||||
if EMC.VDELTANEXT then
|
||||
dTPosA = dTPosF
|
||||
dYPosA = dTPosF + dYDeltaF
|
||||
dVPosA = dTPosF + dVDeltaF
|
||||
else
|
||||
dYPosA = dYPosA - nTotMove
|
||||
dVPosA = dVPosA + nTotMove
|
||||
dTPosA = dTPosA + nTotMove
|
||||
end
|
||||
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
||||
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
||||
|
||||
|
||||
Reference in New Issue
Block a user