From d609a50996a06cd2822cf96cae609c5f52fbd9ef Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Wed, 12 Mar 2025 08:32:29 +0100 Subject: [PATCH] Allineamento con common ver. 2.7c2 --- Common_ONE-PF.NUM.mlpe | 58 +++++++++++++++++++++++++----------------- Common_ONE-PF.mlpe | 31 ++++++++++++---------- Common_ONE-PF.mlse | 9 ++++++- Essetre-PF.mlde | 4 +-- UpdateLog.txt | 5 ++++ Version.lua | 2 +- 6 files changed, 69 insertions(+), 40 deletions(-) diff --git a/Common_ONE-PF.NUM.mlpe b/Common_ONE-PF.NUM.mlpe index e197d7f..a1b1a0d 100644 --- a/Common_ONE-PF.NUM.mlpe +++ b/Common_ONE-PF.NUM.mlpe @@ -56,6 +56,7 @@ function OnProgramStart() end EmtOutput( sPrefixCommentLine..'('.. CSP_INFO..')') EmtOutput( sPrefixCommentLine..'('.. MACHINE_INFO..')\n') + EmtOutput( '(HEADER)') -- Se modalità test, aggiungo linee per muovere tappeto e alzare la testa (in automatico viene fatto dal main residente) if TEST_USE then EmitTestProgramStart() @@ -103,6 +104,7 @@ function OnProgramEnd() EMT.SPECSPLIT = nil EMT.RELOAD = nil EMT.RELOAD2 = nil + EmtOutput( '(FOOTER)') -- Se modalità test, termino il programma if TEST_USE then EmtOutput( 'M02') @@ -1031,7 +1033,7 @@ function OnRapid() EmitMoveWaitChars( EgtIf( bOnlyCharY, 1, 3)) local bMoveZbeforeX = false local dZref = EMT.L3 - if EMT.HEAD == 'H22' and ( EgtIf( BD.RIGHT_LOAD, EMT.L2 < -LimX2RotSaw, EMT.L2 > -LimX2RotSaw) or EMT.R2 > 91) then + if EMT.HEAD == 'H22' and ( EgtIf( BD.RIGHT_LOAD, EMT.L2 < -LimX1RotSaw, EMT.L2 > -LimX1RotSaw) or EMT.R2 > 91) then dZref = min( dSafeZ2 + GetZExtra( EMT.HEAD, EMT.R2) - 100, MyMaxZ2) end @@ -1046,18 +1048,23 @@ function OnRapid() end -- caso speciale per trave alta con rotazione lama pericolosa (tolto "and EMT.SB > 379") - if EMT.HEAD == 'H22' and abs( PrevR1 - EMT.R1) > 1 and ( abs( HomeC2 - EMT.R1) > 30.1 or abs( HomeB2 - EMT.R2) > 30.1) then - EmitMoveDataHead( 2, { B=0, S=Speed}) - EmitMoveDataHead( 2, { C=EMT.R1, S=Speed}) - EmitMoveDataHead( 2, { Z=dZref, B=EMT.R2, S=Speed}) - if bMoveZbeforeX then - EmitMoveDataHead( 2, { Z=EMT.L3, S=Speed}) + if abs( PrevR1 - EMT.R1) > 1 and ( abs( HomeC2 - EMT.R1) > 30.1 or abs( HomeB2 - EMT.R2) > 30.1) then + if EMT.HEAD == 'H22' then + EmitMoveDataHead( 2, { B=0, S=Speed}) + EmitMoveDataHead( 2, { C=EMT.R1, S=Speed}) + EmitMoveDataHead( 2, { Z=dZref, B=EMT.R2, S=Speed}) + if bMoveZbeforeX then + EmitMoveDataHead( 2, { Z=EMT.L3, S=Speed}) + end + -- altrimenti caso standard + else + EmitMoveDataHead( 2, { Z=dZref, S=Speed}) + EmitMoveDataHead( 2, { B=EMT.R2, S=Speed}) + EmitMoveDataHead( 2, { C=EMT.R1, S=Speed}) + if bMoveZbeforeX then + EmitMoveDataHead( 2, { Z=EMT.L3, S=Speed}) + end end - -- altrimenti caso standard - else - EmitMoveDataHead( 2, { Z=dZref, S=Speed}) - EmitMoveDataHead( 2, { B=EMT.R2, S=Speed}) - EmitMoveDataHead( 2, { C=EMT.R1, S=Speed}) end -- altrimenti sega a catena else @@ -1415,18 +1422,23 @@ function OnRapid() end -- caso speciale per trave alta con rotazione lama pericolosa (tolto "and EMT.SB > 379") - if EMT.HEAD == 'H22' and abs( PrevR1 - EMT.R1) > 1 and ( abs( HomeC2 - EMT.R1) > 30.1 or abs( HomeB2 - EMT.R2) > 30.1) then - EmitMoveDataHead( 2, { B=0, S=Speed}) - EmitMoveDataHead( 2, { C=EMT.R1, S=Speed}) - EmitMoveDataHead( 2, { Z=dZref, B=EMT.R2, S=Speed}) - if bMoveZbeforeX then - EmitMoveDataHead( 2, { Z=EMT.L3, S=Speed}) + if abs( PrevR1 - EMT.R1) > 1 and ( abs( HomeC2 - EMT.R1) > 30.1 or abs( HomeB2 - EMT.R2) > 30.1) then + if EMT.HEAD == 'H22' then + EmitMoveDataHead( 2, { B=0, S=Speed}) + EmitMoveDataHead( 2, { C=EMT.R1, S=Speed}) + EmitMoveDataHead( 2, { Z=dZref, B=EMT.R2, S=Speed}) + if bMoveZbeforeX then + EmitMoveDataHead( 2, { Z=EMT.L3, S=Speed}) + end + -- altrimenti caso standard + else + EmitMoveDataHead( 2, { Z=dZref, S=Speed}) + EmitMoveDataHead( 2, { B=EMT.R2, S=Speed}) + EmitMoveDataHead( 2, { C=EMT.R1, S=Speed}) + if bMoveZbeforeX then + EmitMoveDataHead( 2, { Z=EMT.L3, S=Speed}) + end end - -- altrimenti caso standard - else - EmitMoveDataHead( 2, { Z=dZref, S=Speed}) - EmitMoveDataHead( 2, { B=EMT.R2, S=Speed}) - EmitMoveDataHead( 2, { C=EMT.R1, S=Speed}) end -- altrimenti sega a catena else diff --git a/Common_ONE-PF.mlpe b/Common_ONE-PF.mlpe index 90521f4..76ee024 100644 --- a/Common_ONE-PF.mlpe +++ b/Common_ONE-PF.mlpe @@ -1155,9 +1155,9 @@ function OnSimulMoveStart() --EgtOutBox( 'Flag 2,1', 'Info Rapid') local bMoveZbeforeX = false local dZref = EMT.L3 - if EMT.HEAD == 'H22' and ( EgtIf( BD.RIGHT_LOAD, EMT.L2 < -LimX2RotSaw, EMT.L2 > -LimX2RotSaw) or EMT.R2 > 91) then + if EMT.HEAD == 'H22' and ( EgtIf( BD.RIGHT_LOAD, -EMT.L2 < -LimX1RotSaw, -EMT.L2 > -LimX1RotSaw) or EMT.R2 > 91) then dZref = Z2Home + GetZExtra( EMT.HEAD, EMT.R2) - 100 - end + end -- se la quota di lavoro è più in alta della posizione a ZHOME della testa, prima si va alla Z di lavoro e poi si approccia il pezzo if EMT.L3 > dZref then bMoveZbeforeX = true @@ -1168,18 +1168,23 @@ function OnSimulMoveStart() SimulMoveAxis( 'X2', LimX2RotSaw, MCH_SIM_STEP.RAPID) end -- caso speciale per trave alta con rotazione lama pericolosa (tolto "and EMT.SB > 379") - if EMT.HEAD == 'H22' and abs( C2Pos - EMT.R1) > 1 and ( abs( C2Home - EMT.R1) > 30.1 or abs(B2Home - EMT.R2) > 30.1) then - SimulMoveAxis( 'B2', 0, MCH_SIM_STEP.COLLROT) - SimulMoveAxis( 'C2', EMT.R1, MCH_SIM_STEP.COLLROT) - SimulMoveAxes( 'Z2', dZref, MCH_SIM_STEP.RAPID, 'B2', EMT.R2, MCH_SIM_STEP.COLLROT) - if bMoveZbeforeX then - SimulMoveAxis( 'Z2', EMT.L3, MCH_SIM_STEP.RAPID) + if abs( C2Pos - EMT.R1) > 1 and ( abs( C2Home - EMT.R1) > 30.1 or abs( B2Home - EMT.R2) > 30.1) then + if EMT.HEAD == 'H22' then + SimulMoveAxis( 'B2', 0, MCH_SIM_STEP.COLLROT) + SimulMoveAxis( 'C2', EMT.R1, MCH_SIM_STEP.COLLROT) + SimulMoveAxes( 'Z2', dZref, MCH_SIM_STEP.RAPID, 'B2', EMT.R2, MCH_SIM_STEP.COLLROT) + if bMoveZbeforeX then + SimulMoveAxis( 'Z2', EMT.L3, MCH_SIM_STEP.RAPID) + end + -- caso standard + else + SimulMoveAxis( 'Z2', dZref, MCH_SIM_STEP.RAPID) + SimulMoveAxis( 'B2', EMT.R2, MCH_SIM_STEP.COLLROT) + SimulMoveAxis( 'C2', EMT.R1, MCH_SIM_STEP.COLLROT) + if bMoveZbeforeX then + SimulMoveAxis( 'Z2', EMT.L3, MCH_SIM_STEP.RAPID) + end end - -- caso standard - else - SimulMoveAxis( 'Z2', dZref, MCH_SIM_STEP.RAPID) - SimulMoveAxis( 'B2', EMT.R2, MCH_SIM_STEP.COLLROT) - SimulMoveAxis( 'C2', EMT.R1, MCH_SIM_STEP.COLLROT) end end -- altrimenti sega a catena diff --git a/Common_ONE-PF.mlse b/Common_ONE-PF.mlse index a930392..a0222ef 100644 --- a/Common_ONE-PF.mlse +++ b/Common_ONE-PF.mlse @@ -1423,7 +1423,14 @@ function SpecCalcSplit( dLenRaw, dMaxLenLeft) local vCmd = {} EgtOutLog( ' *[S]', 1) local bSplit = ( EMC.Y2DELTA ~= nil or EMC.W2DELTA ~= nil) - local ParkT = EgtIf( bSplit and dMaxLenLeft > ParkV1 - 50, LoadT, ParkV1) + local ParkT = ParkV1 + if bSplit then + if dMaxLenLeft + 100 > LoadT then + ParkT = dMaxLenLeft + 300 + elseif dMaxLenLeft + 100 > ParkV1 then + ParkT = LoadT + end + end local sType = EgtIf( EMC.Y2DELTA, 'Split', EgtIf( EMC.W2DELTA, 'SpecSplit', 'Fall')) table.insert( vCmd, { 0, sType}) if not bSplit then EnsureZmax( false, vCmd) end diff --git a/Essetre-PF.mlde b/Essetre-PF.mlde index d4a3cde..2f7d33a 100644 --- a/Essetre-PF.mlde +++ b/Essetre-PF.mlde @@ -32,8 +32,8 @@ require( 'EmtGenerator') EgtEnableDebug( false) -PP_VER = '2.7c1' -PP_NVER = '2.7.3.1' +PP_VER = '2.7c2' +PP_NVER = '2.7.3.2' MIN_MACH_VER = '2.5k1' MACH_NAME = 'Essetre-PF' diff --git a/UpdateLog.txt b/UpdateLog.txt index 037333a..bdfc47a 100644 --- a/UpdateLog.txt +++ b/UpdateLog.txt @@ -1,5 +1,10 @@ ==== Common_ONE-PF Update Log ==== +Versione 2.7c2 (12/03/2025) +- (SIM-GEN) Migliorato calcolo posizione barra dopo split. Tiene in considerazione ingombro lavorazioni pezzo. Ticket#2321 +- (GEN) Aggiunta commenti HEADER e FOOTER per comunicazione con linea o altre macchine, da parte di Essetre. +- (SIm-GEN) Migliorato movimento approccio al pezzo con lama. Allineamento simulazione-generazione che facevano due movimenti leggermente diversi. Ticket#2335 + Versione 2.7c1 (05/03/2025) - (GEN) Corretto movimento in home utensile precedente. Ticket#2324 diff --git a/Version.lua b/Version.lua index e6af19d..403a93b 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.7c1', -- versione script + VERSION = '2.7c2', -- versione script MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel }