From d147134318403d9f4e8f96cc0c4d76b83f5cb57e Mon Sep 17 00:00:00 2001 From: DarioS Date: Fri, 9 Jun 2023 15:58:07 +0200 Subject: [PATCH] Essetre-PFrl 2.5f1 : - corretto riposizionamento carrelli su split con pezzi a caduta (riportato da PF) - in genera CN corretto controllo conservazione piano impostato (riportato da PF) - in genera CN corretta risalita in Z come in simulazione (ticket #1294). --- Essetre-PF.NUM.mlpe | 36 ++++++++++++++++++++++++++++++------ Essetre-PF.mlpe | 14 +++----------- Essetre-PFrl.mlde | 6 ++++-- 3 files changed, 37 insertions(+), 19 deletions(-) diff --git a/Essetre-PF.NUM.mlpe b/Essetre-PF.NUM.mlpe index c6e2daf..44b56ee 100644 --- a/Essetre-PF.NUM.mlpe +++ b/Essetre-PF.NUM.mlpe @@ -1,4 +1,4 @@ --- Processore macchina Essetre-PFrl by EgalTech s.r.l. 2023/04/21 +-- Processore macchina Essetre-PFrl by EgalTech s.r.l. 2023/06/08 -- Con controllo numerico NUM -- Variabili di modulo @@ -1213,7 +1213,10 @@ function OnRapid() local bSplitCut = ( EMT.MCHUSERNOTES:find( 'Split', 1, true) ~= nil) local sNextTool = GetNextTool( EMT.MCHID) local bToXhome = ( IsLastPath( EMT.PATHID) and not sNextTool) or ( EMT.HEAD == 'H13' and EMT.TOOL ~= sNextTool) + local CurrL3o = EMT.L3o + EMT.L3o = EMT.L3op EmitZmax( true, true, bToXhome, EMT.R1p, EMT.R2p, bSplitCut) + EMT.L3o = CurrL3o -- aggiorno quota finale trave dopo Zmax EMT.L1o = EMT.TPOS EMT.ZMAX = true @@ -1960,18 +1963,32 @@ function PreparePostRotation( sCmd, nInd) end --------------------------------------------------------------------- -function GetV1ToCloseNum( bUseCurrV1) +function GetV1ToCloseNum( UseCurrV1) --EmtOutput( string.format( 'L1m=%.3f L1M=%.3f', EMT.MAXMIN[1], EMT.MAXMAX[1])) --EmtOutput( string.format( 'LB=%.3f LT=%.3f', EMT.LB, EMT.LT)) - local dV1Pos = EgtIf( bUseCurrV1, EMT.V1POS, EMT.V1NEXTPOS) + local dV1Pos + if not UseCurrV1 or UseCurrV1 == false then + dV1Pos = EMT.V1NEXTPOS + elseif UseCurrV1 == true then + dV1Pos = EMT.V1POS + else + dV1Pos = UseCurrV1 + end return ( ( not EMT.W2DELTA or EMT.TO_SPECSPLIT) and EMT.MAXMAX[1] <= dV1Pos + RollCageMin and EMT.MAXMIN[1] + EMT.LB >= dV1Pos + RollCageMax) end --------------------------------------------------------------------- -function GetV2ToCloseNum( bUseCurrV2) +function GetV2ToCloseNum( UseCurrV2) --EmtOutput( string.format( 'L1m=%.3f L1M=%.3f', EMT.MAXMIN[1], EMT.MAXMAX[1])) --EmtOutput( string.format( 'LB=%.3f LT=%.3f', EMT.LB, EMT.LT)) - local dV2Pos = EgtIf( bUseCurrV2, EMT.V2POS, EMT.V2NEXTPOS) + local dV2Pos + if not UseCurrV2 or UseCurrV2 == false then + dV2Pos = EMT.V2NEXTPOS + elseif UseCurrV2 == true then + dV2Pos = EMT.V2POS + else + dV2Pos = UseCurrV2 + end return ( not EMT.W2DELTA and EMT.MAXMAX[1] <= dV2Pos - RollCageMax and EMT.MAXMIN[1] + EMT.LB + ( EMT.HOVM or 0) - ( EMT.X_OFF or 0) >= dV2Pos - RollCageMin) end @@ -1983,7 +2000,14 @@ function GetMovesInAuxCmd( vAuxCmd) return true elseif Cmd[1] == '22' then local dV1NextPos = EgtIf( EMT.Y1DELTA, tonumber( Cmd[2]), ParkV1) - if ( abs( dV1NextPos - EMT.V1POS) > 1 or abs( tonumber( Cmd[3]) - EMT.V2POS) > 1) then + if not GetV1ToCloseNum( dV1NextPos) then + dV1NextPos = ParkV1 + end + local dV2NextPos = tonumber( Cmd[3]) + if not GetV2ToCloseNum( dV2NextPos) then + dV2NextPos = ParkV2 + end + if ( abs( dV1NextPos - EMT.V1POS) > 1 or abs( dV2NextPos - EMT.V2POS) > 1) then return true end end diff --git a/Essetre-PF.mlpe b/Essetre-PF.mlpe index 0fbf0e7..5d4f471 100644 --- a/Essetre-PF.mlpe +++ b/Essetre-PF.mlpe @@ -1,4 +1,4 @@ --- Processore macchina Essetre-PFrl by EgalTech s.r.l. 2023/04/21 +-- Processore macchina Essetre-PFrl by EgalTech s.r.l. 2023/06/08 -- Funzioni generiche indipendenti dal controllo -- Intestazioni @@ -1226,11 +1226,7 @@ function ExecMoveZmax( bMchSplit) if -CurrX < -LimX1RotSaw then dZref = dZref - EgtIf( not Mortiser, 100, 370) end - if CurrB > 90 or CurrB < -90 then - SimulMoveAxes( 'Z1', dZref, MCH_SIM_STEP.RAPID, 'B1', EgtIf( CurrB > 0, 90, -90), MCH_SIM_STEP.COLLROT) - elseif dZref > CurrZ then - SimulMoveAxis( 'Z1', dZref, MCH_SIM_STEP.RAPID) - end + SimulMoveAxes( 'Z1', EgtIf( dZref > CurrZ, dZref, CurrZ), MCH_SIM_STEP.RAPID, 'B1', EgtClamp( CurrB, -90, 90), MCH_SIM_STEP.COLLROT) if EMT.HEAD == 'H12' and ( abs( HomeC - CurrC) > 30.1 or abs( HomeB - CurrB) > 30.1) then SimulMoveAxes( 'Z1', MaxZ1, MCH_SIM_STEP.RAPID, 'B1', 0, MCH_SIM_STEP.COLLROT) end @@ -1263,11 +1259,7 @@ function ExecMoveZmax( bMchSplit) if -CurrX < -LimX2RotSaw then dZref = dZref - 100 end - if CurrB > 90 or CurrB < -90 then - SimulMoveAxes( 'Z2', dZref, MCH_SIM_STEP.RAPID, 'B2', EgtIf( CurrB > 0, 90, -90), MCH_SIM_STEP.COLLROT) - elseif dZref > CurrZ then - SimulMoveAxis( 'Z2', dZref, MCH_SIM_STEP.RAPID) - end + SimulMoveAxes( 'Z2', EgtIf( dZref > CurrZ, dZref, CurrZ), MCH_SIM_STEP.RAPID, 'B2', EgtClamp( CurrB, -90, 90), MCH_SIM_STEP.COLLROT) if EMT.HEAD == 'H22' and ( abs( HomeC - CurrC) > 30.1 or abs( HomeB - CurrB) > 30.1) then SimulMoveAxes( 'Z2', MaxZ2, MCH_SIM_STEP.RAPID, 'B2', 0, MCH_SIM_STEP.COLLROT) end diff --git a/Essetre-PFrl.mlde b/Essetre-PFrl.mlde index 4e8209e..6281d77 100644 --- a/Essetre-PFrl.mlde +++ b/Essetre-PFrl.mlde @@ -1,4 +1,4 @@ --- Descrizione macchina Essetre-PF by EgalTech s.r.l. 2023/04/21 +-- Descrizione macchina Essetre-PF by EgalTech s.r.l. 2023/06/08 -- 2021/10/01 ver 2.3j1 Prima versione. -- 2021/10/26 ver 2.3j2 Versione provvisoria per pezzo alto. -- 2021/10/26 ver 2.3j3 Aggiunto arresto preciso negli angoli (G9) in fresature con utensili di piccolo diametro. @@ -39,12 +39,14 @@ -- 2023/04/03 ver 2.5d1 Eliminata testa dummy 'H14' ( EgtMachKernel minimo 2.5d1). -- 2023/04/21 ver 2.5d3 Riportate modifiche PF : DeltaW per Pinza5, in generazione CN corretta verifica movimenti pinze o rulli per G151/G152, corretta gestione AggLoad (falg * da mlse). -- 2023/04/21 ver 2.5d4 Migliorato riposizionamento testa trave dopo scambio carrelli (ExtraParkV a 100). +-- 2023/06/08 ver 2.5f1 Riportate correzioni da PF (riposizionamento carrelli su split con pezzi a caduta, in genera CN controllo conservazione piano impostato). +-- In genera CN corretta risalita in Z come in simulazione (ticket #1294). -- Intestazioni require( 'EmtGenerator') EgtEnableDebug( false) -PP_VER = '2.5d4' +PP_VER = '2.5f1' -- Parametri macchina NumericalControl = 'NUM_FLEX' -- NUM o (TPA) o NUM_FLEX