Offset minimo impostato prima del controllo se spostare morse
This commit is contained in:
+84
-48
@@ -1374,8 +1374,23 @@ end
|
||||
---------------------------------------------------------------------
|
||||
function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF, dVDeltaF, bFixedDelta, bFixedPos)
|
||||
local dYPosA, dVPosA, dTPosA
|
||||
|
||||
-- se pinza non in presa, setto offset minimo in base all'altra che sta pinzando
|
||||
if not dYDeltaI then
|
||||
dYDeltaI = dVDeltaI + ( MinY - MaxV)
|
||||
end
|
||||
if not dVDeltaI then
|
||||
dVDeltaI = dYDeltaI - ( MinY - MaxV)
|
||||
end
|
||||
if not dYDeltaF then
|
||||
dYDeltaF = dVDeltaF + ( MinY - MaxV)
|
||||
end
|
||||
if not dVDeltaF then
|
||||
dVDeltaF = dYDeltaF - ( MinY - MaxV)
|
||||
end
|
||||
|
||||
-- verifico che le morse non sono in posizione
|
||||
if ( dYDeltaF ~= dYDeltaI or dVDeltaF ~= dVDeltaI) then
|
||||
if abs( dYDeltaF - dYDeltaI) > 10 * GEO.EPS_SMALL or abs( dVDeltaF - dVDeltaI) > 10 * GEO.EPS_SMALL then
|
||||
if #vCmd == 0 then
|
||||
table.insert( vCmd, { 0, 'Clamp repositioning'})
|
||||
-- risalita testa a Zmax
|
||||
@@ -1384,70 +1399,91 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
||||
-- calcolo delta spostamento trave
|
||||
local dDeltaBeam = dTPosI - dTPosF -- se positivo, la trave si sposta dal carico allo scarico
|
||||
|
||||
-- se pinza non in presa, setto offset minimo in base all'altra che sta pinzando
|
||||
if not dYDeltaI then
|
||||
dYDeltaI = dVDeltaI + ( MinY - MaxV)
|
||||
end
|
||||
if not dVDeltaI then
|
||||
dVDeltaI = dYDeltaI - ( MinY - MaxV)
|
||||
end
|
||||
if not dYDeltaF then
|
||||
dYDeltaF = dVDeltaF + ( MinY - MaxV)
|
||||
end
|
||||
if not dVDeltaF then
|
||||
dVDeltaF = dYDeltaF - ( MinY - MaxV)
|
||||
end
|
||||
|
||||
-- scambio diretto
|
||||
-- scambio diretto
|
||||
if ( ( dYDeltaI - dVDeltaF) >= MinY - MaxV + DELTA_SIC and dDeltaBeam > 0) or ( ( dVDeltaI - dYDeltaF) >= MinY - MaxV + DELTA_SIC and dDeltaBeam < 0) then
|
||||
-- se da carico a scarico
|
||||
if dDeltaBeam < 0 then
|
||||
-- se sono entrambe in presa sul pezzo
|
||||
if EMC.YDELTA and EMC.VDELTA then
|
||||
-- se da scarico a carico
|
||||
if dVDeltaF - dVDeltaI > dYDeltaF - dYDeltaI 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})
|
||||
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
||||
else
|
||||
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})
|
||||
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
||||
end
|
||||
-- se pinza al carico in presa
|
||||
elseif EMC.YDELTA 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
|
||||
|
||||
dTPosA = MaxV - dVDeltaF
|
||||
dVPosA = MaxV
|
||||
dYPosA = dTPosA + dYDeltaI
|
||||
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
||||
table.insert( vCmd, { 12, 1})
|
||||
table.insert( vCmd, { 11, 0})
|
||||
-- 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
|
||||
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
||||
-- se pinza allo scarico in presa
|
||||
else
|
||||
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
|
||||
|
||||
dTPosA = MinY - dVDeltaF
|
||||
dVPosA = dTPosA + dYDeltaI
|
||||
dYPosA = MinY
|
||||
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
||||
table.insert( vCmd, { 11, 1})
|
||||
table.insert( vCmd, { 12, 0})
|
||||
-- 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
|
||||
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
||||
end
|
||||
|
||||
-- sposto il carrello Y in posizione
|
||||
if EMC.YDELTANEXT then
|
||||
-- sposto il carrello Y in parcheggio
|
||||
dYPosA = dTPosA + dYDeltaF
|
||||
table.insert( vCmd, { 1, 'Y', dYPosA})
|
||||
table.insert( vCmd, { 11, 1})
|
||||
end
|
||||
|
||||
-- sposto il carrello Y in posizione
|
||||
if EMC.VDELTANEXT then
|
||||
-- sposto il carrello Y in parcheggio
|
||||
dVPosA = dTPosA + dVDeltaF
|
||||
table.insert( vCmd, { 1, 'V', dVPosA})
|
||||
table.insert( vCmd, { 12, 1})
|
||||
end
|
||||
|
||||
-- imposto i nuovi parametri di aggancio
|
||||
if EMC.YDELTANEXT and EMC.VDELTANEXT then
|
||||
table.insert( vCmd, { 21, dYDeltaF, dVDeltaF})
|
||||
elseif EMC.YDELTANEXT then
|
||||
table.insert( vCmd, { 12, 0})
|
||||
-- sposto il carrello V in parcheggio
|
||||
table.insert( vCmd, { 1, 'V', ParkV})
|
||||
table.insert( vCmd, { 21, dYDeltaF, 0})
|
||||
else
|
||||
table.insert( vCmd, { 11, 0})
|
||||
-- sposto il carrello Y in parcheggio
|
||||
table.insert( vCmd, { 1, 'Y', ParkY})
|
||||
table.insert( vCmd, { 21, 0, dVDeltaF})
|
||||
end
|
||||
-- se devo recuperare corsa con passo del pellegrino
|
||||
@@ -1536,9 +1572,9 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
||||
dYPosA = dTPosF + dYDeltaF
|
||||
dVPosA = dTPosF + dVDeltaF
|
||||
else
|
||||
dYPosA = dYPosA - nTotMove
|
||||
dVPosA = dVPosA + nTotMove
|
||||
dTPosA = dTPosA - nTotMove
|
||||
dYPosA = MinY
|
||||
dTPosA = MinY - dYDeltaF
|
||||
dVPosA = dTPosA + dVDeltaF
|
||||
end
|
||||
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
||||
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
||||
@@ -1619,9 +1655,9 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
||||
dYPosA = dTPosF + dYDeltaF
|
||||
dVPosA = dTPosF + dVDeltaF
|
||||
else
|
||||
dYPosA = dYPosA - nTotMove
|
||||
dVPosA = dVPosA + nTotMove
|
||||
dTPosA = dTPosA + nTotMove
|
||||
dVPosA = MaxV
|
||||
dTPosA = MaxY - dVDeltaF
|
||||
dYPosA = - dTPosA - dVDeltaF
|
||||
end
|
||||
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
||||
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
||||
|
||||
Reference in New Issue
Block a user