diff --git a/Common_PF1250.TPA.mlpe b/Common_PF1250.TPA.mlpe index 4275c33..afc4501 100644 --- a/Common_PF1250.TPA.mlpe +++ b/Common_PF1250.TPA.mlpe @@ -454,19 +454,12 @@ function OnMachiningStart() EMT.DOU_EXIT = 1 EMT.DOU_TPOS = AdjustTcPos( false, EgtTdbGetCurrToolParam( MCH_TP.TCPOS)) EMT.DOU_SPEED = EgtTdbGetCurrToolParam( MCH_TP.SPEED) - -- non va in sicurezza testa in doppio - EMT.DOU_TO_ZMAX = nil else EmtSetLastError( 1211, 'Missing or not active double tool of '..sOldTool) end EgtTdbSetCurrTool( sOldTool) end - -- se testa in doppio ancora da rimettere in sicurezza - if EMT.DOU_TO_ZMAX then - local dPosT = EMT.TPOS or EMT.L1op - EmitParkRoller( dPosT, false) - EmitDouZMax( EMT.DOU_TO_ZMAX) - end + -- controllo seguente trovato nella 3T. Da verificare -- determino subito se taglio di separazione di pezzo a caduta EMT.PREFALLCUT = nil @@ -545,7 +538,6 @@ function OnMachiningEnd() EMT.AUXTYPE = nil EMT.TO_ZMAX = nil EMT.PREVTOOL = EMT.TOOL - if EMT.DOU_TYPE and not EMT.ZMAX then EMT.DOU_TO_ZMAX = EMT.DOU_TYPE end EMT.DOU_TYPE = nil -- se taglio finale, aggiorno lunghezza barra if EMT.MCHCUT then @@ -864,8 +856,15 @@ function OnRapid() EmitMoveDataHead( nHSet, { X=EMT.L2, Z=EMT.L3, C=EMT.R1, B=EMT.R2}) -- su ultimo rapido in uscita, comandi di attesa movimenti if bLastRise or bStdRise then - -- TODO scrivere movimenti testa in doppio EmitMoveStartHead( nHSet) + -- se lavorazione in doppio + if nHSet == 1 and ( EMT.DOU_TYPE == 2 or EMT.DOU_TYPE == 3) then + for i = 1, #EMT.APPROACH.DBLRISES do + EmitMoveDataHead( 2, { X=EMT.APPROACH.DBLRISES[i].L2, Z=EMT.APPROACH.DBLRISES[i].L3, C=EMT.APPROACH.DBLRISES[i].R1, B=EMT.APPROACH.DBLRISES[i].R2}) + end + EmitMoveStartHead( 2) + EmitMoveWaitHead( 2) + end EmitMoveWaitHead( nHSet) EMT.ZMAX = true end @@ -883,15 +882,19 @@ function OnRapid() -- movimenti testa -- scrittura comando start movimenti testa EmitMoveStartHead( nHSet) - - if nHSet == 1 and EMT.DOU_TYPE == 2 or EMT.DOU_TYPE == 3 then - -- TODO scrivere movimenti testa in doppio + -- se lavorazione in doppio + if nHSet == 1 and ( EMT.DOU_TYPE == 2 or EMT.DOU_TYPE == 3) then + for i = 1, #EMT.APPROACH.DBLCLIMBS do + EmitMoveDataHead( 2, { X=EMT.APPROACH.DBLCLIMBS[i].L2, Z=EMT.APPROACH.DBLCLIMBS[i].L3, C=EMT.APPROACH.DBLCLIMBS[i].R1, B=EMT.APPROACH.DBLCLIMBS[i].R2}) + end + EmitMoveStartHead( 2) + EmitMoveWaitHead( 2) + -- altrimenti preselezione su altra testa else - -- eventuale preselezione successiva testa 1 PreselectNextDiffHead( EMT.MCHID, EMT.HEAD) - -- aspetto esecuzione movimento testa 2 - EmitMoveWaitHead( nHSet) end + -- aspetto esecuzione movimento testa 2 + EmitMoveWaitHead( nHSet) -- movimenti carrelli if EMT.LOAD then @@ -2051,27 +2054,6 @@ function GetHeadToolCode() end end ---------------------------------------------------------------------- -function EmitDouZMax( nDouType) - -- posizioni sicure - local dHomeX2 = EgtGetAxisHomePos( 'X2') - local dHomeZ2 = EgtGetAxisHomePos( 'Z2') - local dHomeB2 = EgtGetAxisHomePos( 'B2') - local dHomeC2 = EgtGetAxisHomePos( 'C2') - -- se lavorazione in doppio in Y (prima mi allontano in Y) - if nDouType == 2 then - EmitMoveDataHead( 2, { X=SafeX2, TPos=EMT.DOU_TPOS, Fmt=1}) - end - -- scendo in Z, sistemo B e C porto X in home - EmitMoveDataHead( 2, { Z=-dHomeZ2, TPos=EMT.DOU_TPOS, Fmt=1}) - EmitMoveDataHead( 2, { B=dHomeB2, C=dHomeC2, TPos=EMT.DOU_TPOS, Fmt=1}) - EmitMoveDataHead( 2, { X=dHomeX2, TPos=EMT.DOU_TPOS, Fmt=1}) - EmitMoveStartHead( 2) - EmitMoveWaitHead( 2) - -- dichiaro eseguito - EMT.DOU_TO_ZMAX = nil -end - --------------------------------------------------------------------- function CalcRealSpeed( dSpeed) -- in caso di aggregato lama, si aumenta speed perchè c'è un riduttore di giri diff --git a/Common_PF1250.mlpe b/Common_PF1250.mlpe index ecc7285..bad5b98 100644 --- a/Common_PF1250.mlpe +++ b/Common_PF1250.mlpe @@ -777,8 +777,6 @@ function OnSimulMachiningStart() EMT.DOU_TTOTLEN = EgtTdbGetCurrToolParam( MCH_TP.TOTLEN) EMT.DOU_TYPE = nDouType EMT.DOU_TOOL = sDouTool - -- reset necessità movimento in sicurezza sola testa in doppio - EMT.DOU_TO_ZMAX = nil else EmtSetLastError( 1211, 'Missing or not active double tool of '..sOldTool) end @@ -827,7 +825,6 @@ function OnSimulMachiningEnd() end EMT.MCHSPLIT = nil EMT.SPLIT = nil - if EMT.DOU_TYPE and not EMT.ZMAX then EMT.DOU_TO_ZMAX = EMT.DOU_TYPE end EMT.DOU_TYPE = nil EMT.DOU_TOOL = nil @@ -1136,18 +1133,24 @@ function OnSimulMoveStart() -- se testa 2 ha più movimenti della testa 1, eseguo tutti i movimenti della testa due che mancano if EgtGetInfo( EMT.MOVEID, 'LastClimb', 'b') or EgtGetInfo( EMT.MOVEID, 'UniqueClimb', 'b') then if #EMT.APPROACH.DBLCLIMBS > #EMT.APPROACH.CLIMBS then - while EMT.INDEX_APPROACH_MOVE <= #EMT.APPROACH.DBLCLIMBS do - SimulMoveAxes( 'X2', EMT.APPROACH.DBLCLIMBS[EMT.INDEX_APPROACH_MOVE].L2, MCH_SIM_STEP.RAPID, 'Z2', EMT.APPROACH.DBLCLIMBS[EMT.INDEX_APPROACH_MOVE].L3, MCH_SIM_STEP.RAPID, - 'C2', EMT.APPROACH.DBLCLIMBS[EMT.INDEX_APPROACH_MOVE].R1, MCH_SIM_STEP.COLLROT, 'B2', EMT.APPROACH.DBLCLIMBS[EMT.INDEX_APPROACH_MOVE].R2, MCH_SIM_STEP.COLLROT) + while EMT.INDEX_APPROACH_MOVE < #EMT.APPROACH.DBLCLIMBS do EMT.INDEX_APPROACH_MOVE = EMT.INDEX_APPROACH_MOVE + 1 + EMT.A5 = EMT.APPROACH.DBLCLIMBS[EMT.INDEX_APPROACH_MOVE].L2 + EMT.A6 = EMT.APPROACH.DBLCLIMBS[EMT.INDEX_APPROACH_MOVE].L3 + EMT.A7 = EMT.APPROACH.DBLCLIMBS[EMT.INDEX_APPROACH_MOVE].R1 + EMT.A8 = EMT.APPROACH.DBLCLIMBS[EMT.INDEX_APPROACH_MOVE].R2 + SimulMoveAxes( 'X2', EMT.A5, MCH_SIM_STEP.RAPID, 'Z2', EMT.A6, MCH_SIM_STEP.RAPID, 'C2', EMT.A7, MCH_SIM_STEP.COLLROT, 'B2', EMT.A8, MCH_SIM_STEP.COLLROT) end end elseif EgtGetInfo( EMT.MOVEID, 'LastRise', 'b') or EgtGetInfo( EMT.MOVEID, 'UniqueRise', 'b') then if #EMT.APPROACH.DBLRISES > #EMT.APPROACH.RISES then - while EMT.INDEX_APPROACH_MOVE <= #EMT.APPROACH.DBLRISES do - SimulMoveAxes( 'X2', EMT.APPROACH.DBLRISES[EMT.INDEX_APPROACH_MOVE].L2, MCH_SIM_STEP.RAPID, 'Z2', EMT.APPROACH.DBLRISES[EMT.INDEX_APPROACH_MOVE].L3, MCH_SIM_STEP.RAPID, - 'C2', EMT.APPROACH.DBLRISES[EMT.INDEX_APPROACH_MOVE].R1, MCH_SIM_STEP.COLLROT, 'B2', EMT.APPROACH.DBLRISES[EMT.INDEX_APPROACH_MOVE].R2, MCH_SIM_STEP.COLLROT) + while EMT.INDEX_APPROACH_MOVE < #EMT.APPROACH.DBLRISES do EMT.INDEX_APPROACH_MOVE = EMT.INDEX_APPROACH_MOVE + 1 + EMT.A5 = EMT.APPROACH.DBLRISES[EMT.INDEX_APPROACH_MOVE].L2 + EMT.A6 = EMT.APPROACH.DBLRISES[EMT.INDEX_APPROACH_MOVE].L3 + EMT.A7 = EMT.APPROACH.DBLRISES[EMT.INDEX_APPROACH_MOVE].R1 + EMT.A8 = EMT.APPROACH.DBLRISES[EMT.INDEX_APPROACH_MOVE].R2 + SimulMoveAxes( 'X2', EMT.A5, MCH_SIM_STEP.RAPID, 'Z2', EMT.A6, MCH_SIM_STEP.RAPID, 'C2', EMT.A7, MCH_SIM_STEP.COLLROT, 'B2', EMT.A8, MCH_SIM_STEP.COLLROT) end end end diff --git a/Essetre-PF1250.ini b/Essetre-PF1250.ini index 3e2a074..1ebb5fa 100644 --- a/Essetre-PF1250.ini +++ b/Essetre-PF1250.ini @@ -66,3 +66,6 @@ WinPlace=0,514,138,628,810 Enable=1 Save=0 +[Customizations] +DrillingDoubleNT=1 +