Compare commits

..

2 Commits

Author SHA1 Message Date
andrea.villa b2c2f4819b Tolti i 100mm aggiuntivi al calcolo ZMAX 2024-10-08 10:30:20 +02:00
andrea.villa e06f67b22a Modifica gestione primo movimento di approccio al pezzo 2024-10-08 09:35:13 +02:00
4 changed files with 44 additions and 46 deletions
+31 -41
View File
@@ -872,14 +872,20 @@ function OnRapid()
bMoveZbeforeX = true bMoveZbeforeX = true
end end
-- se vado in posizione speciale rotazione assi, poi devo ritornare alla X vera di lavoro
local dMoveXtoFinalPosition = false
local dXref = EMT.L2 local dXref = EMT.L2
if EMT.HEAD == 'H12' and EMT.L2 < -LimX1PlRotSaw then if EMT.HEAD == 'H12' and EMT.L2 < -LimX1PlRotSaw then
dXref = -LimX1PlRotSaw dXref = -LimX1PlRotSaw
EmitMoveDataHead( 1, { X=dXref, Z=MyMaxZ1, B=ParkB1, C=ParkC1, S=Speed}) EmitMoveDataHead( 1, { X=dXref, Z=MyMaxZ1, B=ParkB1, C=ParkC1, S=Speed})
dZref = min( dSafeZ1 + GetZExtra( EMT.HEAD, EMT.R2), MyMaxZ1)
dMoveXtoFinalPosition = true
elseif not bMoveZbeforeX then elseif not bMoveZbeforeX then
EmitMoveDataHead( 1, { X=dXref, Z=MyMaxZ1, B=ParkB1, C=ParkC1, S=Speed}) EmitMoveDataHead( 1, { X=dXref, Z=MyMaxZ1, B=ParkB1, C=ParkC1, S=Speed})
else else
EmitMoveDataHead( 1, { X=-LimX1PlRotSaw, Z=MyMaxZ1, B=ParkB1, C=ParkC1, S=Speed}) EmitMoveDataHead( 1, { X=-LimX1PlRotSaw, Z=MyMaxZ1, B=ParkB1, C=ParkC1, S=Speed})
dZref = min( dSafeZ1 + GetZExtra( EMT.HEAD, EMT.R2), MyMaxZ1)
dMoveXtoFinalPosition = true
end end
-- caso speciale per trave alta con rotazione lama pericolosa (tolto "and EMT.SB > 379") -- caso speciale per trave alta con rotazione lama pericolosa (tolto "and EMT.SB > 379")
@@ -890,6 +896,9 @@ function OnRapid()
if bMoveZbeforeX then if bMoveZbeforeX then
EmitMoveDataHead( 1, { Z=EMT.L3, S=Speed}) EmitMoveDataHead( 1, { Z=EMT.L3, S=Speed})
end end
if dMoveXtoFinalPosition then
EmitMoveDataHead( 1, { X=EMT.L2, S=Speed})
end
-- caso standard -- caso standard
else else
EmitMoveDataHead( 1, { X=dXref, Z=dZref, B=ParkB1, C=ParkC1, S=Speed}) EmitMoveDataHead( 1, { X=dXref, Z=dZref, B=ParkB1, C=ParkC1, S=Speed})
@@ -1143,46 +1152,18 @@ function OnRapid()
if EMT.TO_XHOME then if EMT.TO_XHOME then
local nHSet = GetHeadSet( EMT.HEAD) local nHSet = GetHeadSet( EMT.HEAD)
local nPrevHSet = GetHeadSet( EMT.PREVHEAD) local nPrevHSet = GetHeadSet( EMT.PREVHEAD)
if EMT.PREVHEAD == 'H12' or EMT.PREVHEAD == 'H22' then
-- se successivo non è sega a catena e la testa è la stessa, vado in home con utensile successivo if nPrevHSet == 1 then
-- if not HeadIsChainSaw( EMT.HEAD) and nHSet == nPrevHSet then local HomeX1 = EgtGetAxisHomePos( 'X1')
-- if nHSet == 1 then EmitMoveDataHead( 1, { X=-EMT.PREVHOMEX_H1, Z=MaxZ1, B=ParkB1, C=ParkC1, TPos=AdjustTcPos( false, EMT.PREVTCPOS_H1)})
-- local HomeX1 = EgtGetAxisHomePos( 'X1') EmitMoveStartHead( 1, 'EA1')
-- EmitMoveDataHead( 1, { X=-HomeX1, Z=MaxZ1, B=ParkB1, C=ParkC1}) EmitMoveWaitHead( 1)
-- EmitMoveStartHead( 1, 'EA1') else
-- EmitMoveWaitHead( 1) local HomeX2 = EgtGetAxisHomePos( 'X2')
-- else EmitMoveDataHead( 2, { X=-EMT.PREVHOMEX_H2, Z=MaxZ2, B=ParkB2, C=ParkC2, TPos=AdjustTcPos( false, EMT.PREVTCPOS_H2)})
-- local HomeX2 = EgtGetAxisHomePos( 'X2') EmitMoveStartHead( 2, 'EA1')
-- EmitMoveDataHead( 2, { X=-HomeX2, Z=MaxZ2, B=ParkB2, C=ParkC2}) EmitMoveWaitHead( 2)
-- EmitMoveStartHead( 2, 'EA1') end
-- EmitMoveWaitHead( 2)
-- end
-- else
-- vado in parcheggio sempre con utensile precedente
-- if not HeadIsChainSaw( EMT.PREVHEAD) then
if EMT.PREVHEAD == 'H12' or EMT.PREVHEAD == 'H22' then
if nPrevHSet == 1 then
local HomeX1 = EgtGetAxisHomePos( 'X1')
EmitMoveDataHead( 1, { X=-EMT.PREVHOMEX_H1, Z=MaxZ1, B=ParkB1, C=ParkC1, TPos=AdjustTcPos( false, EMT.PREVTCPOS_H1)})
EmitMoveStartHead( 1, 'EA1')
EmitMoveWaitHead( 1)
else
local HomeX2 = EgtGetAxisHomePos( 'X2')
EmitMoveDataHead( 2, { X=-EMT.PREVHOMEX_H2, Z=MaxZ2, B=ParkB2, C=ParkC2, TPos=AdjustTcPos( false, EMT.PREVTCPOS_H2)})
EmitMoveStartHead( 2, 'EA1')
EmitMoveWaitHead( 2)
end
-- else
-- if GetHeadTCSet( EMT.PREVHEAD, EMT.PREVTCPOS) == 'Head1_TC1' or GetHeadTCSet( EMT.PREVHEAD, EMT.PREVTCPOS) == 'Head1_TC2' then
-- EmitMoveDataHead( 1, { X=-ParkCSawX1S, Z=MaxZ1, B=HomeR2, C=HomeR1, TPos='50'})
-- EmitMoveStartHead( 1, 'EA1')
-- --EmitMoveWaitHead( 1)
-- else
-- EmitMoveDataHead( 2, { X=-ParkCSawX2S, Z=MaxZ2, B=HomeR2, C=HomeR1, TPos='50'})
-- EmitMoveStartHead( 2, 'EA1')
-- --EmitMoveWaitHead( 2)
-- end
-- end
end end
EMT.TO_XHOME = nil EMT.TO_XHOME = nil
@@ -1246,14 +1227,20 @@ function OnRapid()
bMoveZbeforeX = true bMoveZbeforeX = true
end end
-- se vado in posizione speciale rotazione assi, poi devo ritornare alla X vera di lavoro
local dMoveXtoFinalPosition = false
local dXref = EMT.L2 local dXref = EMT.L2
if EMT.HEAD == 'H12' and EMT.L2 < -LimX1PlRotSaw then if EMT.HEAD == 'H12' and EMT.L2 < -LimX1PlRotSaw then
dXref = -LimX1PlRotSaw dXref = -LimX1PlRotSaw
EmitMoveDataHead( 1, { X=dXref, Z=CurrZ1, B=CurrB1, C=CurrC1, TRad=dTRad, TLen=dTLen, S=Speed}) EmitMoveDataHead( 1, { X=dXref, Z=CurrZ1, B=CurrB1, C=CurrC1, TRad=dTRad, TLen=dTLen, S=Speed})
elseif not bMoveZbeforeX then dZref = min( dSafeZ1 + GetZExtra( EMT.HEAD, EMT.R2), MyMaxZ1)
dMoveXtoFinalPosition = true
elseif not bMoveZbeforeX then
EmitMoveDataHead( 1, { X=dXref, Z=CurrZ1, B=CurrB1, C=CurrC1, TRad=dTRad, TLen=dTLen, S=Speed}) EmitMoveDataHead( 1, { X=dXref, Z=CurrZ1, B=CurrB1, C=CurrC1, TRad=dTRad, TLen=dTLen, S=Speed})
else else
EmitMoveDataHead( 1, { X=CurrX1, Z=CurrZ1, B=CurrB1, C=CurrC1, TRad=dTRad, TLen=dTLen, S=Speed}) EmitMoveDataHead( 1, { X=CurrX1, Z=CurrZ1, B=CurrB1, C=CurrC1, TRad=dTRad, TLen=dTLen, S=Speed})
dZref = min( dSafeZ1 + GetZExtra( EMT.HEAD, EMT.R2), MyMaxZ1)
dMoveXtoFinalPosition = true
end end
-- caso speciale per trave alta con rotazione lama pericolosa (tolto "and EMT.SB > 379") -- caso speciale per trave alta con rotazione lama pericolosa (tolto "and EMT.SB > 379")
@@ -1264,6 +1251,9 @@ function OnRapid()
if bMoveZbeforeX then if bMoveZbeforeX then
EmitMoveDataHead( 1, { Z=EMT.L3, S=Speed}) EmitMoveDataHead( 1, { Z=EMT.L3, S=Speed})
end end
if dMoveXtoFinalPosition then
EmitMoveDataHead( 1, { X=EMT.L2, S=Speed})
end
-- altrimenti caso standard -- altrimenti caso standard
else else
EmitMoveDataHead( 1, { Z=dZref, S=Speed}) EmitMoveDataHead( 1, { Z=dZref, S=Speed})
+9
View File
@@ -1003,14 +1003,20 @@ function OnSimulMoveStart()
bMoveZbeforeX = true bMoveZbeforeX = true
end end
-- se vado in posizione speciale rotazione assi, poi devo ritornare alla X vera di lavoro
local dMoveXtoFinalPosition = false
local dXref = EMT.L2 local dXref = EMT.L2
if EMT.HEAD == 'H12' and -EMT.L2 < -LimX1PlRotSaw then if EMT.HEAD == 'H12' and -EMT.L2 < -LimX1PlRotSaw then
dXref = LimX1PlRotSaw dXref = LimX1PlRotSaw
SimulMoveAxis( 'X1', dXref, MCH_SIM_STEP.RAPID) SimulMoveAxis( 'X1', dXref, MCH_SIM_STEP.RAPID)
dZref = Z1Home + GetZExtra( EMT.HEAD, EMT.R2)
dMoveXtoFinalPosition = true
elseif not bMoveZbeforeX then elseif not bMoveZbeforeX then
SimulMoveAxis( 'X1', dXref, MCH_SIM_STEP.RAPID) SimulMoveAxis( 'X1', dXref, MCH_SIM_STEP.RAPID)
else else
SimulMoveAxis( 'X1', LimX1PlRotSaw, MCH_SIM_STEP.RAPID) SimulMoveAxis( 'X1', LimX1PlRotSaw, MCH_SIM_STEP.RAPID)
dZref = Z1Home + GetZExtra( EMT.HEAD, EMT.R2)
dMoveXtoFinalPosition = true
end end
-- caso speciale per trave alta con rotazione lama pericolosa (tolto "and EMT.SB > 379") -- caso speciale per trave alta con rotazione lama pericolosa (tolto "and EMT.SB > 379")
@@ -1021,6 +1027,9 @@ function OnSimulMoveStart()
if bMoveZbeforeX then if bMoveZbeforeX then
SimulMoveAxis( 'Z1', EMT.L3, MCH_SIM_STEP.RAPID) SimulMoveAxis( 'Z1', EMT.L3, MCH_SIM_STEP.RAPID)
end end
if dMoveXtoFinalPosition then
SimulMoveAxis( 'X1', EMT.L2, MCH_SIM_STEP.RAPID)
end
-- caso standard -- caso standard
else else
SimulMoveAxis( 'Z1', dZref, MCH_SIM_STEP.RAPID) SimulMoveAxis( 'Z1', dZref, MCH_SIM_STEP.RAPID)
+2 -3
View File
@@ -1,8 +1,7 @@
==== Common_ONE-PF Update Log ==== ==== Common_ONE-PF Update Log ====
Versione 2.6-- (--/--/2024) Versione 2.6j1 (08/10/2024)
- (SIM-GEN) Corretto movimento in Home in caso di lama e movimento rulliera di carico. Ticket#2054 -- (SIM-GEN) Corretto primo movimento di approccio al pezzo. Ticket#2093
- (GEN) In caso di movimento in Home non si fa più preselezione ma si tiene utensile vecchio. Ticket#1926
Versione 2.6i2 (13/09/2024) 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 - (GEN) Migliorato calcolo chiusura paratia rulli con aggiornamento lunghezza della barra in caso di ultimo taglio e grezzo residuo in coda. Ticket#2017
+1 -1
View File
@@ -3,7 +3,7 @@
local InfoCommon_STD_PP = { local InfoCommon_STD_PP = {
NAME = 'Common_ONE-PF', -- nome script PP standard NAME = 'Common_ONE-PF', -- nome script PP standard
VERSION = '2.6--', -- versione script VERSION = '2.6j1', -- versione script
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
} }