Compare commits

...

5 Commits

Author SHA1 Message Date
andrea.villa 3e80505457 - Sistemato script per setup
- Rimosso frame copiato per sbaglio
2025-08-28 14:50:25 +02:00
andrea.villa 7d1749c9ab - Allinemento con common ver. 2.7h2
- Aggiunto secondo cambio utensile
2025-08-28 13:06:28 +02:00
andrea.villa 900cc65fb0 Merge remote-tracking branch 'origin/develop' 2025-08-20 14:31:12 +02:00
andrea.villa 7850144992 Allineamento con common ver. 2.7h1 2025-08-20 14:30:55 +02:00
andrea.villa d6c384d159 Merge remote-tracking branch 'origin/V1OpenOnTailCut' into develop 2025-08-20 14:28:59 +02:00
7 changed files with 105 additions and 39 deletions
+22 -12
View File
@@ -312,6 +312,8 @@ function OnDispositionEnd()
MyOutputNoNum( '(PART UNLOAD)')
for i = 1, #EMT.MDCHAR do
EmitMoveDataChars( EMT.MDCHAR[i])
if EMT.MDCHAR[i].V1 then EMT.V1POS = EMT.MDCHAR[i].V1 end
if EMT.MDCHAR[i].V2 then EMT.V2POS = EMT.MDCHAR[i].V2 end
end
EmitMoveStartChars( 2)
-- se dopo c'è scarico spezzone devo mettere attesa termine esecuzione
@@ -327,7 +329,8 @@ function OnDispositionEnd()
end
elseif EMT.SPECUNLOADING then
EmtOutput( '(PART SPEC UNLOADING)')
EmitBeamHeadData( { T=EMT.L1, Pz5=2})
local dAbsHeadPos = EMT.L1pp or EMT.L1
EmitBeamHeadData( { T=dAbsHeadPos, Pz5=2})
EMT.SPECUNLOADING = nil
EMT.W2DELTA = nil
-- emissione conclusione pezzo precedente
@@ -674,8 +677,8 @@ function OnPathStart()
EMT.L1pp = EMT.L1op
EMT.L2pp = EMT.L2op
EMT.L3pp = EMT.L3op
EMT.R1pp = EMT.R1p
EMT.R2pp = EMT.R2p
EMT.R1pp = EMT.R1p or EMT.R1pp
EMT.R2pp = EMT.R2p or EMT.R2pp
else
EMT.L1pp = nil
EMT.L2pp = nil
@@ -1518,6 +1521,7 @@ function OnRapid()
end
EMT.REFLOC = 0
EMT.MCHFIRST = false
EMT.PLANEACTIVE = true
EMT.ZMAX = false
-- se standard
elseif EMT.FLAG == 0 or EMT.FLAG == 1 or EMT.FLAG == 2 then
@@ -1547,6 +1551,7 @@ function OnRapid()
EmtOutput( 'M175')
end
EMT.MCHFIRST = false
EMT.PLANEACTIVE = true
end
-- se necessario, impostazione riferimento locale
if EMT.REFLOC == 0 then
@@ -1603,7 +1608,7 @@ function OnRapid()
MyAdjustLinearAxes()
EmtAdjustRotaryAxes()
-- se Split o Presplit lascio agganciata solo la pinza Y2 alla fine dei movimenti
local sNextTool = GetNextTool( EMT.MCHID)
local sNextTool = GetNextTool( EMT.MCHID, true)
-- vado in home se è ultimo movimento ed è ultima lavorazione, se sono con motosega e devo cambiare utensile, oppure se ho la lama
local bToXhome = ( IsLastPath( EMT.PATHID) and not sNextTool) or ( EMT.HEAD == 'H23' and EMT.TOOL ~= sNextTool) or ( EMT.HEAD == 'H13' and EMT.TOOL ~= sNextTool) or
( EMT.HEAD == 'H12' and EMT.TOOL ~= sNextTool ) or ( EMT.HEAD == 'H22' and EMT.TOOL ~= sNextTool) or EMT.MCHSPLIT
@@ -1651,6 +1656,7 @@ function OnLinear()
EMT.L3p = nil
local sDouFlag = EgtIf( EMT.DOU_TYPE, ' EE1', '')
EmtOutput( 'G142'..EmtGetAxis('L1')..EmtGetAxis('L2')..EmtGetAxis('L3')..EMT.IPLGLSTR..EgtIf( nHSet~=2, ' EU1', ' EU2')..sDouFlag..' EF'..GetFmaxClamp())
EMT.PLANEACTIVE = true
-- emissione movimento
local sOut = 'G0'..EmtGetAxis('L1')..EmtGetAxis('L2')..EmtGetAxis('L3')..
EmtGetAxis('R2')..EmtGetAxis('R1')
@@ -1734,6 +1740,7 @@ function OnArc()
EMT.L3p = nil
local sDouFlag = EgtIf( EMT.DOU_TYPE, ' EE1', '')
EmtOutput( 'G142'..EmtGetAxis('L1')..EmtGetAxis('L2')..EmtGetAxis('L3')..EMT.IPLGLSTR..EgtIf( nHSet~=2, ' EU1', ' EU2')..sDouFlag..' EF'..GetFmaxClamp())
EMT.PLANEACTIVE = true
-- emissione movimento
local sOut = 'G0'..EmtGetAxis('L1')..EmtGetAxis('L2')..EmtGetAxis('L3')..
EmtGetAxis('R2')..EmtGetAxis('R1')
@@ -2799,9 +2806,7 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt
local MovH = { Z = EgtIf( dZref > EMT.L3o, dZref, EMT.L3o)}
MovH.X = -dXPos ; MovH.B = EgtClamp( PrevR2, -90, 90) ; MovH.C = PrevR1 ;
EmitMoveDataHead( 1, MovH)
if EMT.HEAD == 'H12' and ( abs( dSafeC1 - PrevR1) > 30.1 or abs( dSafeB1 - PrevR2) > 30.1) or not( bProgress) then
EmitMoveDataHead( 1, { Z=dMaxZ1, B=0})
end
EmitMoveDataHead( 1, { Z=dMaxZ1, B=0})
EmitMoveDataHead( 1, { C=dSafeC1})
EmitMoveDataHead( 1, { B=dSafeB1})
EmitMoveDataHead( 1, { Z=dMaxZ1})
@@ -2952,14 +2957,19 @@ end
---------------------------------------------------------------------
function EmitResetMachining()
if ( EMT.TOOL ~= GetNextTool( EMT.MCHID) and IsLastPath( EMT.PATHID)) or GetSpecUnloading( EMT.PATHID) or GetFall( EMT.PATHID) then
-- se da MLDE parametro non settato, o settato a true, scrivo il comando arresto mandrino
if WriteM05Command == nil or WriteM05Command then
if EMT.PLANEACTIVE then
-- se non sono a Z massima e operatore deve entrare in cabina spango sempre
if not EMT.ZMAX and ( GetSpecUnloading( EMT.PATHID) or GetFall( EMT.PATHID)) then
EmtOutput( 'M05')
-- altrimenti spegnimento dipende da parametro
elseif ( EMT.TOOL ~= GetNextTool( EMT.MCHID, false) and IsLastPath( EMT.PATHID)) or GetSpecUnloading( EMT.PATHID) or GetFall( EMT.PATHID) then
EmtOutput( 'M05')
end
local sOut = 'G157 EA1'
EmtOutput( sOut)
-- piano non più attivo
EMT.PLANEACTIVE = false
end
local sOut = 'G157 EA1'
EmtOutput( sOut)
end
---------------------------------------------------------------------
+14 -13
View File
@@ -513,10 +513,8 @@ function OnSimulToolSelect( dPosA)
end
-- se sega a catena, imposto subito angolo scelto per asse virtuale A
if HeadIsChainSaw( EMT.HEAD) then
-- se non Progress, apro le paratie
if not Progress then
ExecParkRoller( nil, nil, nil, nil, false, IsStartPhase( EMT.PHASE))
end
-- apro le paratie
ExecParkRoller( nil, nil, nil, nil, false, IsStartPhase( EMT.PHASE))
-- valore dell'asse virtuale
dPosA = dPosA or GetNextChainSawingVirtualAxis( EMT.MCHID)
-- imposto il valore di A
@@ -721,7 +719,7 @@ function OnSimulToolDeselect( dPrevA)
local MyParkB1 = ParkB1
local MyParkC1 = ParkC1
-- se ho due teste oppure è progress, significa che ho CU verticale
if EgtGetHeadId('H21') or bProgress then
if EgtGetHeadId('H21') or Progress then
MyParkB1 = EgtIf( GetHeadTCSet( EMT.NEXTHEAD, EMT.NEXTTCPOS) == 'Head1_TC1', ParkB1, ParkFrnB1)
MyParkC1 = EgtIf( GetHeadTCSet( EMT.NEXTHEAD, EMT.NEXTTCPOS) == 'Head1_TC1', ParkC1, ParkFrnC1)
-- altrimenti su one CU speciale motosega-utensile lungo
@@ -966,7 +964,12 @@ function OnSimulMoveStart()
-- pinza 5
if EMT.W2DELTA then
EMT.A5n = 'W'
EMT.A5m = 'T'
local dPosQW = EgtGetAxisPos( 'QW') or 0
if dPosQW < 1 then
EMT.A5m = nil
else
EMT.A5m = 'T'
end
EMT.A5 = EMT.L1 + EMT.W2DELTA - EMT.A4
VerifyWStroke( EMT.A5)
end
@@ -1344,7 +1347,7 @@ function OnSimulMoveEnd()
-- eventuale rimozione sfridi
ExecRemoveScraps()
-- se Split o Presplit lascio agganciata solo la pinza Y2 alla fine dei movimenti
local sNextTool = GetNextTool( EMT.MCHID)
local sNextTool = GetNextTool( EMT.MCHID, true)
-- vado in home se è ultimo movimento ed è ultima lavorazione, se sono con motosega e devo cambiare utensile, oppure se ho la lama
local bToXhome = ( IsLastPath( EMT.PATHID) and not sNextTool) or ( EMT.HEAD == 'H23' and EMT.TOOL ~= sNextTool) or ( EMT.HEAD == 'H13' and EMT.TOOL ~= sNextTool) or
( EMT.HEAD == 'H12' and EMT.TOOL ~= sNextTool ) or ( EMT.HEAD == 'H22' and EMT.TOOL ~= sNextTool) or EMT.MCHSPLIT
@@ -1478,7 +1481,7 @@ function ExecAuxCmd( sCmd, bPathStart)
ExecMoveHome( Cmd[2] == '1', EgtIf( bPathStart, false, EMT.MCHSPLIT))
elseif Cmd[1] == '11' then
local bClose = Cmd[2] ~= '0'
if bPathStart and EMT.MCHSPLIT and not EMT.FALL and GetPY2Light() then bClose = false end
if bPathStart and EMT.MCHSPLIT and not ( EMT.FALL or EMT.TO_FALL) and GetPY2Light() then bClose = false end
ExecMovePY1( bClose)
elseif Cmd[1] == '12' then
ExecMovePY2( Cmd[2] ~= '0')
@@ -1681,9 +1684,7 @@ function ExecMoveZmax( bMchSplit, btoXHome)
if abs( HomeC - CurrC) > 0.1 or abs( HomeB - CurrB) > 0.1 then
local dZref = HomeZ + GetZExtra( EMT.HEAD, CurrB)
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) or not( bProgress) then
SimulMoveAxes( 'Z1', MaxZ1, MCH_SIM_STEP.RAPID, 'B1', 0, MCH_SIM_STEP.COLLROT)
end
SimulMoveAxes( 'Z1', MaxZ1, MCH_SIM_STEP.RAPID, 'B1', 0, MCH_SIM_STEP.COLLROT)
SimulMoveAxis( 'C1', HomeC, MCH_SIM_STEP.COLLROT)
SimulMoveAxis( 'B1', HomeB, MCH_SIM_STEP.COLLROT)
end
@@ -2819,7 +2820,7 @@ function GetNextChainSawingVirtualAxis( MchId)
end
---------------------------------------------------------------------
function GetNextTool( nMchId)
function GetNextTool( nMchId, bResetOnStart)
-- inizializzo prossimo utensile
local sNextTool
-- recupero lavorazione successiva
@@ -2827,7 +2828,7 @@ function GetNextTool( nMchId)
while nNextMchId do
-- se la prossima lavorazione è lo start di un altro pezzo, faccio finta che cambia utensile in modo che vada in parcheggio con utensili speciali
if EgtGetOperationType( nNextMchId) == MCH_OY.DISP then
if IsStartOrRestPhase( EMT.PHASE+1) then
if IsStartOrRestPhase( EMT.PHASE+1) and bResetOnStart then
return nil
end
else
+35 -12
View File
@@ -32,8 +32,8 @@
require( 'EmtGenerator')
EgtEnableDebug( false)
PP_VER = '2.7g3_DEV1'
PP_NVER = '2.7.7.3'
PP_VER = '2.7h2'
PP_NVER = '2.7.8.2'
MIN_MACH_VER = '2.5k1'
MACH_NAME = string.match( EgtGetCurrMachineDir(), "[^\\]+$") -- si ricava il nome della macchina dal direttorio
@@ -135,9 +135,9 @@ DimTabX = 30000
AutomaticRotation = true
AutoRotMinLen = 0
DefTcPos1 = 'T3'
CoeffVM = 0.5
EstimationRapidMultiplier = 1
ForceToCloseRollersGate = false
SecondToolChanger = false
-- Aggiornamento con dati da TechnoEssetre7
local sTs3Data = EgtGetStringFromIni( 'Beam', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-ONE.data"
@@ -210,6 +210,7 @@ if EgtExistsFile( sData) then
if Machine.Offsets.CHIUDI_PINZE_2_3_SCAMBIO then ForceToCloseRollersGate = Machine.Offsets.CHIUDI_PINZE_2_3_SCAMBIO == 1 end
if Machine.Offsets.WOOD_DENSITY then WoodDensity = Machine.Offsets.WOOD_DENSITY end
if Machine.Offsets.MAX_BACK_CLAMP_5 then MaxBackClamp5 = Machine.Offsets.MAX_BACK_CLAMP_5 end
if Machine.Offsets.SEC_TC then SecondToolChanger = ( Machine.Offsets.SEC_TC == 1) end
-- aggiustamenti
MinY1 = MinV1 + MinDeltaYV
MaxY1 = MaxMchY1
@@ -223,6 +224,7 @@ if EgtExistsFile( sData) then
ParkCSawZ1 = min( ParkCSawZ1, MaxZ1)
ParkCSaw0Z1 = min( ParkCSaw0Z1, MaxZ1)
Mortiser = ( Mortiser and not Progress)
SecondToolChanger = ( SecondToolChanger and not Progress)
end
end
end
@@ -242,6 +244,10 @@ if Progress then
table.insert( sBaseAux, 'BASE/TC1S')
table.insert( sBaseAux, 'BASE/TC2')
table.insert( sBaseAux, 'BASE/TC3')
elseif SecondToolChanger then
table.insert( sBaseAux, 'BASE/TC2')
table.insert( sBaseAux, 'BASE/TC2S')
table.insert( sBaseAux, 'BASE/TC3')
else
table.insert( sBaseAux, 'BASE/MTC')
if Mortiser then table.insert( sBaseAux, 'BASE/TC3') end
@@ -335,7 +341,7 @@ EmtAxis {
Home = 0,
Geo = 'A1_AXIS/GEO'}
local H13Id
if Progress then
if Progress or SecondToolChanger then
H13Id = EmtHead {
Name = 'H13',
Parent = 'A',
@@ -366,9 +372,9 @@ else
end
EgtSetInfo( H13Id, 'ZSAFEDELTA', '60')
EgtSetInfo( H13Id, 'ZMAXONROT', '1,80')
-- Mortasatrice sotto la traversa (solo per One)
-- Mortasatrice sotto la traversa (solo per One base con un solo cambio utensile)
local H15Id
if not Progress and Mortiser then
if not Progress and Mortiser and not SecondToolChanger then
H15Id = EmtHead {
Name = 'H15',
Parent = 'A',
@@ -622,16 +628,33 @@ EmtTcPos {
TDir = -Y_AX(),
ADir = -X_AX(),
Geo = 'BASE/T10'}
if Progress then
if Progress or SecondToolChanger then
local ptTc2 = Point3d( 150, -170, -217 + ( DeltaTabZ + DeltaRulliTraveZ + 29))
local vtDt2 = Vector3d( 0, 0, - 102.5)
if SecondToolChanger then
EmtTcPos {
Name = 'T11',
Parent = 'Base',
Pos = ptTc2 + Vector3d( SawOffsX, SawOffsZ, 0),
Pos = ptTc2,
TDir = Y_AX(),
ADir = -X_AX(),
Geo = 'BASE/T11'}
Geo = 'BASE/T11b'}
EmtTcPos {
Name = 'T12',
Parent = 'Base',
Pos = ptTc2 + 1 * vtDt1,
TDir = Y_AX(),
ADir = -X_AX(),
Geo = 'BASE/T12'}
else
EmtTcPos {
Name = 'T11',
Parent = 'Base',
Pos = ptTc2 + Vector3d( SawOffsX, SawOffsZ, 0),
TDir = Y_AX(),
ADir = -X_AX(),
Geo = 'BASE/T11'}
end
EmtTcPos {
Name = 'T13',
Parent = 'Base',
@@ -706,9 +729,9 @@ else
ADir = X_AX(),
Geo = 'BASE/T201'}
end
if Progress or Mortiser then
if Progress or Mortiser or SecondToolChanger then
local ptTc3 = Point3d( 480, 506.1, -200.8 + ( DeltaTabZ + DeltaRulliTraveZ + 29))
local sName = EgtIf( Progress, 'T101', 'T301')
local sName = EgtIf( Progress or SecondToolChanger, 'T101', 'T301')
EmtTcPos {
Name = sName,
Parent = 'Base',
@@ -782,7 +805,7 @@ function OnSetHead()
else
local MyHomeB1, MyHomeC1
-- se cambio utensile verticale
if EgtGetHeadId('H21') or bProgress then
if EgtGetHeadId( 'H21') or Progress or SecondToolChanger then
MyHomeB1 = ParkFrnB1
MyHomeC1 = ParkFrnC1
-- altrimenti su one CU speciale motosega-utensile lungo
BIN
View File
Binary file not shown.
+23 -1
View File
@@ -29,8 +29,30 @@ local GS = {}
-- Configurazione posizioni (con o senza TC2)
local PositionTable = {}
-- se secondo toolchanger
if EgtGetTcPosId( 'T12') then
PositionTable = {{Pos = "Pos1", TcPos = "T1", Head = "H12", Group = "G1"},
{Pos = "Pos2", TcPos = "T3", Head = "H11", Group = "G1"},
{Pos = "Pos3", TcPos = "T4", Head = "H11", Group = "G1"},
{Pos = "Pos4", TcPos = "T5", Head = "H11", Group = "G1"},
{Pos = "Pos5", TcPos = "T6", Head = "H11", Group = "G1"},
{Pos = "Pos6", TcPos = "T7", Head = "H11", Group = "G1"},
{Pos = "Pos7", TcPos = "T8", Head = "H11", Group = "G1"},
{Pos = "Pos8", TcPos = "T9", Head = "H11", Group = "G1"},
{Pos = "Pos9", TcPos = "T10", Head = "H11", Group = "G1"},
{Pos = "Pos10", TcPos = "T11", Head = "H11", Group = "G2"},
{Pos = "Pos11", TcPos = "T12", Head = "H11", Group = "G2"},
{Pos = "Pos12", TcPos = "T13", Head = "H11", Group = "G2"},
{Pos = "Pos13", TcPos = "T14", Head = "H11", Group = "G2"},
{Pos = "Pos14", TcPos = "T15", Head = "H11", Group = "G2"},
{Pos = "Pos15", TcPos = "T16", Head = "H11", Group = "G2"},
{Pos = "Pos16", TcPos = "T17", Head = "H11", Group = "G2"},
{Pos = "Pos17", TcPos = "T18", Head = "H11", Group = "G2"},
{Pos = "Pos18", TcPos = "T19", Head = "H11", Group = "G2"},
{Pos = "Pos19", TcPos = "T20", Head = "H11", Group = "G2"},
{Pos = "Pos20", TcPos = "T101", Head = "H13", Group = "G3"}}
-- se Progress
if EgtGetTcPosId( 'T11') then
elseif EgtGetTcPosId( 'T11') then
PositionTable = {{Pos = "Pos1", TcPos = "T1", Head = "H11", Group = "G1"},
{Pos = "Pos2", TcPos = "T2", Head = "H11", Group = "G1"},
{Pos = "Pos3", TcPos = "T3", Head = "H11", Group = "G1"},
+10
View File
@@ -1,5 +1,15 @@
==== Common_ONE-PF Update Log ====
Versione 2.7h2 (28/08/2025)
- (GEN) Migliorata gestione spegnimento utensile e disattivazione piano
- (SIM-GEN) Corretto nome variabile e altre piccole modifiche per Progress
Versione 2.7h1 (20/08/2025)
- (SIM-GEN) Non si chiudono i rulli se tagli o pretagli di testa e coda
- (SIM) Corretto movimento pinza 5 in caso di riposizionamento pinza 1
- (GEN) Corretta quota assoluta posizione testa trave in caso di pinza 5 e testa rimasta bassa
- (GEN) Se ultima lavorazione pezzo precedente ha stesso utensile della prima lavorazione pezzo successivo, la speed resta accesa
Versione 2.7g4 (23/07/2025)
- (SIM-GEN) Aggiunto parametro configurabile da TS3 per massima sporgenza trave in coda per pinza 5. Ticket#2538
+1 -1
View File
@@ -3,7 +3,7 @@
local InfoCommon_STD_PP = {
NAME = 'Common_ONE-PF', -- nome script PP standard
VERSION = '2.7g4', -- versione script
VERSION = '2.7h2', -- versione script
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
}