From a61affc726bdf0582c7e17ced5b9bea0d0061211 Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Fri, 27 Sep 2024 12:56:38 +0200 Subject: [PATCH] Corretto movimento in Home in caso di lama e movimento rulliera di carico. Ticket#2054 --- Common_ONE-PF.NUM.mlpe | 29 ++++++++++++++++++++++++++--- Common_ONE-PF.mlpe | 19 +++++++++++++++++++ UpdateLog.txt | 3 +++ Version.lua | 2 +- 4 files changed, 49 insertions(+), 4 deletions(-) diff --git a/Common_ONE-PF.NUM.mlpe b/Common_ONE-PF.NUM.mlpe index 537aa53..6c557b3 100644 --- a/Common_ONE-PF.NUM.mlpe +++ b/Common_ONE-PF.NUM.mlpe @@ -1943,6 +1943,9 @@ function PrepareMoveChar( sCmd, nInd) table.insert( EMT.MDCHAR, MDChar) EMT.Y1POS = MoveY1 or EMT.Y1POS EMT.TPOS = GetCmdAxMove( Cmd, 'T') or EMT.TPOS + if EMT.V1POS < 400 and ( EMT.HEAD == 'H12' or EMT.HEAD == 'H22') and EMT.ZMAX and not EMT.XHOME then + EMT.TO_XHOME = true + end end elseif Cmd[1] == '2' then local MDChar = { IniStatY1=EMT.ISY1, FinStatY1=EMT.FSY1, IniStatY2=EMT.ISY2, FinStatY2=EMT.FSY2, BeamVise=EMT.BV} @@ -1970,6 +1973,9 @@ function PrepareMoveChar( sCmd, nInd) end table.insert( EMT.MDCHAR, MDChar) EMT.TPOS = GetCmdAxMove( Cmd, 'T') or EMT.TPOS + if EMT.V1POS < 400 and ( EMT.HEAD == 'H12' or EMT.HEAD == 'H22') and EMT.ZMAX and not EMT.XHOME then + EMT.TO_XHOME = true + end elseif Cmd[1] == '3' then local MDChar = { IniStatY1=EMT.ISY1, FinStatY1=EMT.FSY1, IniStatY2=EMT.ISY2, FinStatY2=EMT.FSY2, BeamVise=EMT.BV} local MoveY1 = GetCmdAxMove( Cmd, 'Y1') @@ -1996,6 +2002,9 @@ function PrepareMoveChar( sCmd, nInd) end table.insert( EMT.MDCHAR, MDChar) EMT.TPOS = GetCmdAxMove( Cmd, 'T') or EMT.TPOS + if EMT.V1POS < 400 and ( EMT.HEAD == 'H12' or EMT.HEAD == 'H22') and EMT.ZMAX and not EMT.XHOME then + EMT.TO_XHOME = true + end elseif Cmd[1] == '4' then -- richiesta movimento a ZMAX giĆ  gestita if Cmd[2] == '1' then @@ -2677,6 +2686,8 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt end -- gruppo della testa local nHSet = GetHeadSet( EMT.HEAD) + -- reset stato di testa in home + EMT.XHOME = nil -- se testa 1 if nHSet == 1 then -- posizioni sicure @@ -2714,7 +2725,10 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt MovH.X = -EMT.L2o ; MovH.B = PrevR2 ; MovH.C = PrevR1 ; EmitMoveDataHead( 1, MovH) end - if bXhome then EmitMoveDataHead( 1, { X=-dSafeX1}) end + if bXhome then + EMT.XHOME = true + EmitMoveDataHead( 1, { X=-dSafeX1}) + end EmitMoveStartHead( 1) -- se lavorazione in doppio if EMT.DOU_TYPE == 2 then @@ -2732,6 +2746,7 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt end EmitMoveDataHead( 1, { X=-dSafeX1, C=dSafeC1}) if bXhome then + EMT.XHOME = true EmitMoveDataHead( 1, { X=-ParkX1, Z=ParkCSawZ1, B=ParkB1, C=ParkC1, TPos=50}) end EmitMoveStartHead( 1) @@ -2759,7 +2774,10 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt MovH.X = -EMT.L2o ; MovH.B = PrevR2 ; MovH.C = PrevR1 ; EmitMoveDataHead( 1, MovH) end - if bXhome then EmitMoveDataHead( 1, { X=-dSafeX1}) end + if bXhome then + EMT.XHOME = true + EmitMoveDataHead( 1, { X=-dSafeX1}) + end EmitMoveStartHead( 1) EmitMoveWaitHead( 1) -- altrimenti sega a catena @@ -2773,6 +2791,7 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt end EmitMoveDataHead( 1, { X=-dSafeX1, C=dSafeC1}) if bXhome then + EMT.XHOME = true EmitMoveDataHead( 1, { X=-ParkX1, Z=ParkCSawZ1, B=ParkB1, C=ParkC1, TPos=50}) end EmitMoveStartHead( 1) @@ -2812,7 +2831,10 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt MovH.X = -EMT.L2o ; MovH.B = PrevR2 ; MovH.C = PrevR1 ; EmitMoveDataHead( 2, MovH) end - if bXhome then EmitMoveDataHead( 2, { X=-dSafeX2}) end + if bXhome then + EMT.XHOME = true + EmitMoveDataHead( 2, { X=-dSafeX2}) + end EmitMoveStartHead( 2) EmitMoveWaitHead( 2) -- altrimenti sega a catena @@ -2826,6 +2848,7 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt end EmitMoveDataHead( 2, { X=-dSafeX2, C=dSafeC2}) if bXhome then + EMT.XHOME = true EmitMoveDataHead( 2, { X=-ParkX2, Z=ParkCSawZ2, B=ParkB2, C=ParkC2, TPos=50}) end EmitMoveStartHead( 2) diff --git a/Common_ONE-PF.mlpe b/Common_ONE-PF.mlpe index 5d54e6e..2ac224b 100644 --- a/Common_ONE-PF.mlpe +++ b/Common_ONE-PF.mlpe @@ -960,6 +960,7 @@ function OnSimulMoveStart() VerifyY2Stroke( EMT.A2) VerifyV1Stroke( EMT.A3) VerifyV2Stroke( EMT.A4) + -- se devo subito parcheggiare i rulli local nRes = 0 if bParkV then @@ -1261,6 +1262,7 @@ function OnSimulMoveStart() EMT.A4 = EgtIf( GetV2ToClose(), EMT.V2NEXTPOS, ParkV2) end EMT.ZMAX = nil + EMT.XHOME = nil end --------------------------------------------------------------------- @@ -1369,6 +1371,10 @@ function ExecAuxCmd( sCmd, bPathStart) ExecOpenRoller( 1) ExecOpenRoller( 2) local sV1, MoveV1, sV2, MoveV2 = CalcMoveV1V2ForAuxCmd( Cmd) + -- se stringo i rulli e ho lama, verifico che sia in home + if MoveV1 and MoveV1 < 400 and ( EMT.HEAD == 'H12' or EMT.HEAD == 'H22') and EMT.ZMAX and not EMT.XHOME then + ExecMoveZmax( false, true) + end local bOk, bOk1, bOk2, bOk3 = SimulMoveAxes( Cmd[2], tonumber( Cmd[3]), MCH_SIM_STEP.RAPID, sV1, MoveV1, MCH_SIM_STEP.RAPID, sV2, MoveV2, MCH_SIM_STEP.RAPID) @@ -1391,6 +1397,10 @@ function ExecAuxCmd( sCmd, bPathStart) ExecOpenRoller( 1) ExecOpenRoller( 2) local sV1, MoveV1, sV2, MoveV2 = CalcMoveV1V2ForAuxCmd( Cmd) + -- se stringo i rulli e ho lama, verifico che sia in home + if MoveV1 and MoveV1 < 400 and ( EMT.HEAD == 'H12' or EMT.HEAD == 'H22') and EMT.ZMAX and not EMT.XHOME then + ExecMoveZmax( false, true) + end local bOk, bOk1, bOk2, bOk3, bOk4 = SimulMoveAxes( Cmd[2], tonumber( Cmd[3]), MCH_SIM_STEP.RAPID, Cmd[4], tonumber( Cmd[5]), MCH_SIM_STEP.RAPID, sV1, MoveV1, MCH_SIM_STEP.RAPID, @@ -1414,6 +1424,10 @@ function ExecAuxCmd( sCmd, bPathStart) ExecOpenRoller( 1) ExecOpenRoller( 2) local sV1, MoveV1, sV2, MoveV2 = CalcMoveV1V2ForAuxCmd( Cmd) + -- se stringo i rulli e ho lama, verifico che sia in home + if MoveV1 and MoveV1 < 400 and ( EMT.HEAD == 'H12' or EMT.HEAD == 'H22') and EMT.ZMAX and not EMT.XHOME then + ExecMoveZmax( false, true) + end local bOk, bOk1, bOk2, bOk3, bOk4, bOk5 = SimulMoveAxes( Cmd[2], tonumber( Cmd[3]), MCH_SIM_STEP.RAPID, Cmd[4], tonumber( Cmd[5]), MCH_SIM_STEP.RAPID, Cmd[6], tonumber( Cmd[7]), MCH_SIM_STEP.RAPID, @@ -1607,6 +1621,7 @@ function ExecMoveZmax( bMchSplit, btoXHome) end SimulMoveAxis( 'Z1', MaxZ1, MCH_SIM_STEP.RAPID) if btoXHome then + EMT.XHOME = true SimulMoveAxis( 'X1', ParkX1, MCH_SIM_STEP.RAPID) end -- se lavorazione in doppio @@ -1618,6 +1633,7 @@ function ExecMoveZmax( bMchSplit, btoXHome) SimulMoveAxes( 'B2', ParkB2, MCH_SIM_STEP.COLLROT, 'C2', ParkC2, MCH_SIM_STEP.COLLROT) SimulMoveAxis( 'Z2', MaxZ2, MCH_SIM_STEP.RAPID) if bToXHome then + EMT.XHOME = true SimulMoveAxis( 'X2', ParkX2, MCH_SIM_STEP.RAPID) end EMT.DOU_TO_ZMAX = nil @@ -1644,6 +1660,7 @@ function ExecMoveZmax( bMchSplit, btoXHome) end SimulMoveAxis( 'Z1', MaxZ1, MCH_SIM_STEP.RAPID) if btoXHome then + EMT.XHOME = true SimulMoveAxis( 'X1', ParkX1, MCH_SIM_STEP.RAPID) end -- altrimenti sega a catena @@ -1659,6 +1676,7 @@ function ExecMoveZmax( bMchSplit, btoXHome) EMT.PREVHEAD_H1 = nil EMT.PREVTCPOS_H1 = nil EMT.CHSAW_OUT = true + EMT.XHOME = true end SimulMoveAxes( 'X1', HomeX, MCH_SIM_STEP.RAPID, 'C1', HomeC, MCH_SIM_STEP.COLLROT) end @@ -1679,6 +1697,7 @@ function ExecMoveZmax( bMchSplit, btoXHome) end SimulMoveAxis( 'Z2', MaxZ2, MCH_SIM_STEP.RAPID) if btoXHome then + EMT.XHOME = true SimulMoveAxis( 'X2', ParkX2, MCH_SIM_STEP.RAPID) end -- altrimenti sega a catena diff --git a/UpdateLog.txt b/UpdateLog.txt index fffca26..12243f7 100644 --- a/UpdateLog.txt +++ b/UpdateLog.txt @@ -1,5 +1,8 @@ ==== Common_ONE-PF Update Log ==== +Versione 2.6-- (--/--/2024) +- (SIM-GEN) Corretto movimento in Home in caso di lama e movimento rulliera di carico. Ticket#2054 + Versione 2.6i2 (13/09/2024) - (GEN) Migliorato calcolo chiusura paratia rulli con aggiornamento lunghezza della barra in caso di ultimo taglio e grezzo residuo in coda. Ticket#2017 - (NGE-MLDE-GEN-SIM) Aggiunto solidi collisione TC. Corretto movimento a Y di sicurezza con lama. Ticket#2042 diff --git a/Version.lua b/Version.lua index 138ba2d..225fde7 100644 --- a/Version.lua +++ b/Version.lua @@ -3,7 +3,7 @@ local InfoCommon_STD_PP = { NAME = 'Common_ONE-PF', -- nome script PP standard - VERSION = '2.6i2', -- versione script + VERSION = '2.6--', -- versione script MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel }