diff --git a/Common_FAST.NUM.mlpe b/Common_FAST.NUM.mlpe index fcf0891..26344aa 100644 --- a/Common_FAST.NUM.mlpe +++ b/Common_FAST.NUM.mlpe @@ -1501,28 +1501,10 @@ function PreparePostRotation( sCmd) elseif Cmd[1] == '11' then local sMsg = 'PY' .. ' ' .. Cmd[2] table.insert( EMT.AUXCMD, sMsg) - local bPrevEA76 = ( #EMT.AUXSTR > 0 and EMT.AUXSTR[#EMT.AUXSTR]:find( 'EA76', 1, true)) - if #EMT.AUXSTR > 0 and not bPrevEA76 then - local sVal = ' EB11' .. CalcCharStatus( Cmd[2]) - local sOut = EMT.AUXSTR[#EMT.AUXSTR] - EMT.AUXSTR[#EMT.AUXSTR] = sOut:gsub( EMT.SB, sVal) - end - if not bPrevEA76 then - EMT.SA = ' EA11' .. CalcCharStatus( Cmd[2]) - end EMT.SB = ' EB11' .. CalcCharStatus( Cmd[2]) - EMT.SE = EgtIf( Cmd[2] ~= '0', ' EE1', ' EE2') elseif Cmd[1] == '12' then local sMsg = 'PV' .. ' ' .. Cmd[2] table.insert( EMT.AUXCMD, sMsg) - if #EMT.AUXSTR > 0 then - local sVal = ' ED14' .. CalcCharStatus( Cmd[2]) - local sOut = EMT.AUXSTR[#EMT.AUXSTR] - EMT.AUXSTR[#EMT.AUXSTR] = sOut:gsub( EMT.SD, sVal) - end - EMT.SC = ' EC14' .. CalcCharStatus( Cmd[2]) - EMT.SD = ' ED14' .. CalcCharStatus( Cmd[2]) - EMT.SE = EgtIf( Cmd[2] ~= '0', ' EE2', ' EE1') elseif Cmd[1] == '21' then local nYDelta = tonumber( Cmd[2]) local nVDelta = tonumber( Cmd[3]) @@ -1535,10 +1517,13 @@ function PreparePostRotation( sCmd) elseif nVDelta > 0 then EMT.YDELTA = nil EMT.VDELTA = nVDelta - end - local sYLoad = ' Y'..EmtLenToString( LoadT) - local sOut = 'G111'..sYLoad..' EA76'..EMT.SB..' EE0 EF'..EmtLenToString( EMT.FMAXPINZE,0)..' ET1' - table.insert( EMT.AUXSTR, sOut) + end + local sYLoad = ' Y'..EmtLenToString( LoadT) + local sOut = 'G111'..sYLoad..' EA76'..EMT.SB..' EE0 EF'..EmtLenToString( EMT.FMAXPINZE,0)..' ET1' + table.insert( EMT.AUXSTR, sOut) + -- setto parametri di pinzaggio reali + EMT.SA = ' EA110' + EMT.SE = ' EE1' end end diff --git a/Common_FAST.NUM_PLUS.mlpe b/Common_FAST.NUM_PLUS.mlpe index b12fda4..1e19f86 100644 --- a/Common_FAST.NUM_PLUS.mlpe +++ b/Common_FAST.NUM_PLUS.mlpe @@ -1588,28 +1588,10 @@ function PreparePostRotation( sCmd) elseif Cmd[1] == '11' then local sMsg = 'PY' .. ' ' .. Cmd[2] table.insert( EMT.AUXCMD, sMsg) - local bPrevEA76 = ( #EMT.AUXSTR > 0 and EMT.AUXSTR[#EMT.AUXSTR]:find( 'EA76', 1, true)) - if #EMT.AUXSTR > 0 and not bPrevEA76 then - local sVal = ' EB11' .. CalcCharStatus( Cmd[2]) - local sOut = EMT.AUXSTR[#EMT.AUXSTR] - EMT.AUXSTR[#EMT.AUXSTR] = sOut:gsub( EMT.SB, sVal) - end - if not bPrevEA76 then - EMT.SA = ' EA11' .. CalcCharStatus( Cmd[2]) - end EMT.SB = ' EB11' .. CalcCharStatus( Cmd[2]) - EMT.SE = EgtIf( Cmd[2] ~= '0', ' EE1', ' EE2') elseif Cmd[1] == '12' then local sMsg = 'PV' .. ' ' .. Cmd[2] table.insert( EMT.AUXCMD, sMsg) - if #EMT.AUXSTR > 0 then - local sVal = ' ED14' .. CalcCharStatus( Cmd[2]) - local sOut = EMT.AUXSTR[#EMT.AUXSTR] - EMT.AUXSTR[#EMT.AUXSTR] = sOut:gsub( EMT.SD, sVal) - end - EMT.SC = ' EC14' .. CalcCharStatus( Cmd[2]) - EMT.SD = ' ED14' .. CalcCharStatus( Cmd[2]) - EMT.SE = EgtIf( Cmd[2] ~= '0', ' EE2', ' EE1') elseif Cmd[1] == '21' then local nYDelta = tonumber( Cmd[2]) local nVDelta = tonumber( Cmd[3]) @@ -1622,10 +1604,13 @@ function PreparePostRotation( sCmd) elseif nVDelta > 0 then EMT.YDELTA = nil EMT.VDELTA = nVDelta - end - local sYLoad = ' Y'..EmtLenToString( LoadT) - local sOut = 'G111'..sYLoad..' EA76'..EMT.SB..' EE0 EF'..EmtLenToString( EMT.FMAXPINZE,0)..' ET1' - table.insert( EMT.AUXSTR, sOut) + end + local sYLoad = ' Y'..EmtLenToString( LoadT) + local sOut = 'G111'..sYLoad..' EA76'..EMT.SB..' EE0 EF'..EmtLenToString( EMT.FMAXPINZE,0)..' ET1' + table.insert( EMT.AUXSTR, sOut) + -- setto parametri di pinzaggio reali + EMT.SA = ' EA110' + EMT.SE = ' EE1' end end diff --git a/Common_FAST.TPA.mlpe b/Common_FAST.TPA.mlpe index bafd237..7feadb2 100644 --- a/Common_FAST.TPA.mlpe +++ b/Common_FAST.TPA.mlpe @@ -1610,25 +1610,10 @@ function PreparePostRotation( sCmd) elseif Cmd[1] == '11' then local sMsg = 'PY' .. ' ' .. Cmd[2] table.insert( EMT.AUXCMD, sMsg) - if #EMT.AUXSTR > 0 then - local sVal = ' P5=11' .. CalcCharStatus( Cmd[2]) - local sOut = EMT.AUXSTR[#EMT.AUXSTR] - EMT.AUXSTR[#EMT.AUXSTR] = sOut:gsub( EMT.SB, sVal) - end - EMT.SA = ' P4=11' .. CalcCharStatus( Cmd[2]) EMT.SB = ' P5=11' .. CalcCharStatus( Cmd[2]) - EMT.SE = EgtIf( Cmd[2] ~= '0', ' P8=1', ' P8=2') elseif Cmd[1] == '12' then local sMsg = 'PV' .. ' ' .. Cmd[2] table.insert( EMT.AUXCMD, sMsg) - if #EMT.AUXSTR > 0 then - local sVal = ' P7=14' .. CalcCharStatus( Cmd[2]) - local sOut = EMT.AUXSTR[#EMT.AUXSTR] - EMT.AUXSTR[#EMT.AUXSTR] = sOut:gsub( EMT.SD, sVal) - end - EMT.SC = ' P6=14' .. CalcCharStatus( Cmd[2]) - EMT.SD = ' P7=14' .. CalcCharStatus( Cmd[2]) - EMT.SE = EgtIf( Cmd[2] ~= '0', ' P8=2', ' P8=1') elseif Cmd[1] == '21' then local nYDelta = tonumber( Cmd[2]) local nVDelta = tonumber( Cmd[3]) @@ -1641,10 +1626,13 @@ function PreparePostRotation( sCmd) elseif nVDelta > 0 then EMT.YDELTA = nil EMT.VDELTA = nVDelta - end - local sYLoad = ' P2='..EmtLenToString( LoadT) - local sOut = 'M111 P1=11'..sYLoad..' P4=76'..EMT.SB..' P8=0 P9='..GetFmaxClamp() - table.insert( EMT.AUXSTR, sOut) + end + local sYLoad = ' P2='..EmtLenToString( LoadT) + local sOut = 'M111 P1=11'..sYLoad..' P4=76'..EMT.SB..' P8=0 P9='..GetFmaxClamp() + table.insert( EMT.AUXSTR, sOut) + -- setto parametri di pinzaggio reali + EMT.SA = ' P4=110' + EMT.SE = ' P8=1' end end diff --git a/Common_FAST.mlse b/Common_FAST.mlse index fce734c..f6756ef 100644 --- a/Common_FAST.mlse +++ b/Common_FAST.mlse @@ -1917,10 +1917,10 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF -- recupero una corsa massima e l'altra solo di quello che serve elseif abs( dYDeltaI - dYDeltaF) > dMaxMovePilgrimStepSingleClampV then -- suddivido il movimento su entrambe le morse - local dTotMove = ( dYDeltaF - dYDeltaI) / 2 + local dTotMove = ( ( dYDeltaF + dVDeltaF) / 2 + ( dYDeltaI + dVDeltaI) / 2) / 2 -- morsa Y arriva in posizione finale - dVPosA = MaxV - dTotMove - dTPosA = dTPosI - dVPosI + MaxV - dTotMove + dVPosA = EgtClamp( MaxV - dTotMove, MaxV, MinV) + dTPosA = dTPosI - dVPosI + dVPosA dYPosA = dYDeltaF + dTPosA table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA}) table.insert( vCmd, { 11, CalcCharStatus( 'Y', dYDeltaF)}) @@ -2024,10 +2024,10 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF -- recupero una corsa massima e l'altra solo di quello che serve elseif abs( dVDeltaI - dVDeltaF) > dMaxMovePilgrimStepSingleClampY then -- suddivido il movimento su entrambe le morse - local dTotMove = ( dVDeltaI - dVDeltaF) / 2 + local dTotMove = ( ( dYDeltaF + dVDeltaF) / 2 + ( dYDeltaI + dVDeltaI) / 2) / 2 -- morsa V arriva in posizione finale - dYPosA = MinY + dTotMove - dTPosA = dTPosI + ( MinY - dYPosI) + dTotMove + dYPosA = EgtClamp( MinY + dTotMove, MinY, MaxY) + dTPosA = dTPosI - dYPosI + dYPosA dVPosA = dVDeltaF + dTPosA table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA}) table.insert( vCmd, { 12, CalcCharStatus( 'V', dVDeltaF)}) diff --git a/UpdateLog.txt b/UpdateLog.txt index 10c20ee..dc18f55 100644 --- a/UpdateLog.txt +++ b/UpdateLog.txt @@ -1,7 +1,8 @@ ==== Common_FAST Update Log ==== -Versione 3.1-- (--/--/2026) +Versione 3.1d2 (22/04/2026) - (GEN) Corretta generazione del PreparePostRotation (in tutti i CN) ora salva lo stato della pinza per lo spostamento successivo. Ticket#2933 +- (SIM-GEN) Corretto pinzaggio in caso di passo del pellegrino con recupero completo di una sola pinza Versione 3.1d1 (14/04/2026) - (SIM-GEN) Aggiorna lo step totale del PilgrimStep e lo step Y con il valore di MyMinY, di modo che tenga conto del AGG_LOAD quando c'รจ. Ticket#2919