Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 707eb81248 | |||
| c64d5666f0 | |||
| 11c3e0c3e5 | |||
| a7824bf0c8 | |||
| 0f036d5be5 | |||
| d14c84da8f | |||
| 95b10fdfe6 |
+34
-9
@@ -521,8 +521,10 @@ function OnMachiningEnd()
|
||||
end
|
||||
EmitRemark( 'PART FALL')
|
||||
elseif EMT.UNLOAD and not nNextPathId and not nNextMchId then
|
||||
EmitZmax( false, true, EMT.R1, EMT.R2, false, false, false)
|
||||
EMT.ZMAX = true
|
||||
if not EMT.ZMAX then
|
||||
EmitZmax( false, true, EMT.R1, EMT.R2, false, false, false)
|
||||
EMT.ZMAX = true
|
||||
end
|
||||
EmitRemark( 'PART UNLOAD ON LOAD POSITION')
|
||||
else
|
||||
EmitZmax( false, true, EMT.R1, EMT.R2, false, false, false)
|
||||
@@ -603,6 +605,9 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnPathStart()
|
||||
if EMT.OPEISDISP then
|
||||
return
|
||||
end
|
||||
-- non ancora iniziata la lavorazione
|
||||
EMT.MCHFIRST = true
|
||||
EMT.MCHFIRSTFEED = true
|
||||
@@ -632,6 +637,9 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnPathEnd()
|
||||
if EMT.OPEISDISP then
|
||||
return
|
||||
end
|
||||
if not EMT.ZMAX then
|
||||
EmitResetMachining()
|
||||
end
|
||||
@@ -1991,11 +1999,6 @@ function PrepareResidue( sCmd, nInd)
|
||||
elseif Cmd[1] == '1' then
|
||||
if Cmd[2] ~= 'Z' then
|
||||
local MDChar
|
||||
-- se scarico al carico parcheggio per sicurezza morsa e paratia lato scarico
|
||||
if EMT.UNL2 then
|
||||
MDChar = { Y2=ParkY2, V2=ParkV2, IniStatY2=1, FinStatY2=1, BeamVise=0}
|
||||
table.insert( EMT.MDCHAR, MDChar)
|
||||
end
|
||||
if not EMT.UNL then
|
||||
MDChar = { [Cmd[2]]=tonumber(Cmd[3]), IniStatY1=EMT.ISY1, FinStatY1=EMT.FSY1, IniStatY2=EMT.ISY2, FinStatY2=EMT.FSY2, BeamVise=EMT.BV}
|
||||
else
|
||||
@@ -2006,6 +2009,11 @@ function PrepareResidue( sCmd, nInd)
|
||||
MDChar.V2 = MaxV2 ; EMT.V2POS = MDChar.V2
|
||||
EMT.ROLL_IN = nil
|
||||
end
|
||||
-- se scarico al carico parcheggio per sicurezza morsa e paratia lato scarico
|
||||
if EMT.UNL2 then
|
||||
MDChar.V1 = ParkV1 ; EMT.V1POS = MDChar.V1
|
||||
MDChar.V2 = ParkV2 ; EMT.V2POS = MDChar.V2
|
||||
end
|
||||
table.insert( EMT.MDCHAR, MDChar)
|
||||
end
|
||||
elseif Cmd[1] == '2' then
|
||||
@@ -2170,27 +2178,44 @@ function PreparePreRotation( sCmd, nInd)
|
||||
EMT.PREROT = true
|
||||
elseif Cmd[2] == 'SplitRot' then
|
||||
EMT.SPLITROT = true
|
||||
-- se è scarico al carico
|
||||
elseif Cmd[2] == 'Unload-On-Load' then
|
||||
EMT.UNL2 = true
|
||||
end
|
||||
elseif Cmd[1] == '1' then
|
||||
if Cmd[2] ~= 'Z' then
|
||||
local MDChar
|
||||
if not EMT.PREROT then
|
||||
MDChar = { [Cmd[2]]=tonumber(Cmd[3]), IniStatY1=EMT.ISY1, FinStatY1=EMT.FSY1, IniStatY2=EMT.ISY2, FinStatY2=EMT.FSY2, BeamVise=EMT.BV}
|
||||
if EMT.UNL2 then
|
||||
MDChar.V1 = ParkV1 ; EMT.V1POS = MDChar.V1
|
||||
MDChar.V2 = ParkV2 ; EMT.V2POS = MDChar.V2
|
||||
end
|
||||
else
|
||||
MDChar = { [Cmd[2]]=tonumber(Cmd[3]), IniStatY1=86, FinStatY1=87, IniStatY2=1, BeamVise=0}
|
||||
end
|
||||
table.insert( EMT.MDCHAR, MDChar)
|
||||
end
|
||||
elseif Cmd[1] == '2' then
|
||||
local MDChar = { IniStatY1=EMT.ISY1, FinStatY1=EMT.FSY1, IniStatY2=EMT.ISY2, FinStatY2=EMT.FSY2, BeamVise=EMT.BV}
|
||||
local MDChar = { IniStatY1=EMT.ISY1, FinStatY1=EMT.FSY1, IniStatY2=EMT.ISY2, FinStatY2=EMT.FSY2, IniStatV2=1, BeamVise=EMT.BV}
|
||||
if Cmd[2] ~= 'T' then MDChar[Cmd[2]] = tonumber( Cmd[3]) end
|
||||
if Cmd[4] ~= 'T' then MDChar[Cmd[4]] = tonumber( Cmd[5]) end
|
||||
if EMT.ROLL_IN then
|
||||
MDChar.V1 = MinV1 ; EMT.V1POS = MDChar.V1
|
||||
MDChar.V2 = MaxV2 ; EMT.V2POS = MDChar.V2
|
||||
EMT.ROLL_IN = nil
|
||||
end
|
||||
table.insert( EMT.MDCHAR, MDChar)
|
||||
elseif Cmd[1] == '3' then
|
||||
local MDChar = { IniStatY1=EMT.ISY1, FinStatY1=EMT.FSY1, IniStatY2=EMT.ISY2, FinStatY2=EMT.FSY2, BeamVise=EMT.BV}
|
||||
local MDChar = { IniStatY1=EMT.ISY1, FinStatY1=EMT.FSY1, IniStatY2=EMT.ISY2, FinStatY2=EMT.FSY2, IniStatV1=1, IniStatV2=1, BeamVise=EMT.BV}
|
||||
if Cmd[2] ~= 'T' then MDChar[Cmd[2]] = tonumber( Cmd[3]) end
|
||||
if Cmd[4] ~= 'T' then MDChar[Cmd[4]] = tonumber( Cmd[5]) end
|
||||
if Cmd[6] ~= 'T' then MDChar[Cmd[6]] = tonumber( Cmd[7]) end
|
||||
if EMT.ROLL_IN then
|
||||
MDChar.V1 = MinV1 ; EMT.V1POS = MDChar.V1
|
||||
MDChar.V2 = MaxV2 ; EMT.V2POS = MDChar.V2
|
||||
EMT.ROLL_IN = nil
|
||||
end
|
||||
table.insert( EMT.MDCHAR, MDChar)
|
||||
elseif Cmd[1] == '4' then
|
||||
EMT.TO_ZMAX = true
|
||||
|
||||
+30
-10
@@ -687,7 +687,7 @@ function OnPostApplyMachining()
|
||||
local OriY2Delta = EMC.Y2DELTA
|
||||
local OriV1Pos = EMC.V1POS
|
||||
local OriV2Pos = EMC.V2POS
|
||||
local OriCnt = EMC.CNT
|
||||
local OriCnt = EMC.CNT
|
||||
-- eseguo le elaborazioni
|
||||
SpecApplyPath( bPreSplit, bSplitting, bPreCut, bCutting, bLast and bUnload)
|
||||
-- se separazione, verifico il risultato
|
||||
@@ -763,8 +763,13 @@ function SpecApplyPath( bPreSplit, bSplitting, bPreCut, bCutting, bUnload)
|
||||
local b3Tot = BBox3d()
|
||||
local b3Raw = BBox3d()
|
||||
local nNextOddPhase = GetNextStartOrRestPhase( EMC.PHASE)
|
||||
-- se esistono più grezzi toglie l'impostazione di scarico al carico
|
||||
if bUnloadOnLoadPos and ( nNextOddPhase and nNextOddPhase <= EgtGetPhaseCount()) then bUnloadOnLoadPos = false end
|
||||
-- se esistono più grezzi toglie l'impostazione di scarico al carico e ritorna errore
|
||||
if bUnloadOnLoadPos and ( nNextOddPhase and nNextOddPhase <= EgtGetPhaseCount()) then
|
||||
bUnloadOnLoadPos = false
|
||||
EMC.ERR = 22
|
||||
EMC.MSG = ' Error : Unload on Load Position not reachable if raw part on Load Position'
|
||||
return
|
||||
end
|
||||
local nRawId = EgtGetFirstRawPart()
|
||||
local nCurrRawId = GDB_ID.NULL
|
||||
while nRawId do
|
||||
@@ -1351,12 +1356,20 @@ end
|
||||
function SpecCalcUnloadOnLoadPos()
|
||||
local vCmdPre = {}
|
||||
EgtOutLog( ' *[UL]', 1)
|
||||
if not EMC.Y1DELTA and not EMC.Y2DELTA then
|
||||
EMC.ERR = 21
|
||||
EMC.MSG = ' Error : Y1 and Y2 not clamped for unloading'
|
||||
return {}
|
||||
end
|
||||
-- Se pinza Y2 chiusa, devo effettuare uno scambio
|
||||
local dY1DeltaMaxSP = MaxY1 - LoadT - TurnerOffs - 10 * GEO.EPS_SMALL
|
||||
if EMC.Y2DELTA or EMC.Y1DELTA > dY1DeltaMaxSP then
|
||||
-- imposto quote aggancio per avere solo pinza Y
|
||||
local dDistFront = 0
|
||||
local dDistBack = EMC.LB - MinOther - EMC.HOVM + 10 * GEO.EPS_SMALL
|
||||
-- dico che le paratie sono chiuse perchè poi se ho dei movimenti, verranno chiuse, quindi parto considerandole già chiuse
|
||||
EMC.V1POS = 0
|
||||
EMC.V2POS = 0
|
||||
-- effettuo scambio
|
||||
vCmdPre = SpecCalcCarriages( dDistFront, dDistBack, 0, 0, dY1DeltaMaxSP)
|
||||
-- recupero nuova posizione carrelli
|
||||
@@ -1399,16 +1412,23 @@ function SpecCalcUnload()
|
||||
-- In caso di condizioni rispettate richiama lo scarico al carico e ritorna
|
||||
local nNextPathId
|
||||
local nNextMchId
|
||||
local nNextDispId
|
||||
if EMC.PATHID then nNextPathId = EgtGetNextActiveOperation( EMC.PATHID) end
|
||||
if EMC.MCHID then nNextMchId = EgtGetNextActiveOperation( EMC.MCHID) end
|
||||
if EMC.DISPID then nNextDispId = EgtGetNextActiveOperation( EMC.DISPID) end
|
||||
-- se il pezzo dev'essere scaricato al carico
|
||||
local dUnloadType = EgtGetInfo( EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo') or GDB_ID.NULL, 'UNLOAD', 'd')
|
||||
local bUnloadOnLoadPos = dUnloadType == 1 or dUnloadType == -1
|
||||
|
||||
-- Opzione attiva, è l'ultimo path, è l'ultima lavorazione e non c'è rimanenza
|
||||
if bUnloadOnLoadPos and not nNextPathId and not nNextMchId and not IsStartOrRestPhase(EMC.PHASE) then
|
||||
local vCmd = SpecCalcUnloadOnLoadPos()
|
||||
return vCmd
|
||||
if bUnloadOnLoadPos then
|
||||
-- è l'ultimo path, è l'ultima lavorazione, non ci sono altre disposizioni e non c'è rimanenza
|
||||
if not nNextPathId and not nNextMchId and not nNextDispId and not IsStartOrRestPhase(EMC.PHASE) then
|
||||
local vCmd = SpecCalcUnloadOnLoadPos()
|
||||
return vCmd
|
||||
else
|
||||
EMC.ERR = 21
|
||||
EMC.MSG = ' Error : Unload on Load Position not reachable if raw part on Load Position'
|
||||
return {}
|
||||
end
|
||||
end
|
||||
local vCmdPre = {}
|
||||
EgtOutLog( ' *[U]', 1)
|
||||
@@ -1665,7 +1685,7 @@ local function PosForEnl1FY1( dY1a, dY2a, dTa, dExtra, dCorsaY1e, dCorsaY2Te)
|
||||
if dDispl/2 <= dCorsaY1e then
|
||||
dY1a = dY1a + dDispl / 2
|
||||
dY2a = dY2a - dDispl / 2
|
||||
dTa = dTa - dDispl / 2
|
||||
dTa = dTa - dDispl / 2
|
||||
else
|
||||
dY1a = dY1a + dCorsaY1e
|
||||
dY2a = dY2a - (dDispl - dCorsaY1e)
|
||||
@@ -1687,7 +1707,7 @@ local function PosForEnl1FY2( dY1a, dY2a, dTa, dExtra, dCorsaY1Te, dCorsaY2e)
|
||||
if dDispl/2 <= dCorsaY1Te then
|
||||
if dDispl/2 <= dCorsaY2e then
|
||||
dY1a = dY1a + dDispl / 2
|
||||
dTa = dTa + dDispl / 2
|
||||
dTa = dTa + dDispl / 2
|
||||
dY2a = dY2a - dDispl / 2
|
||||
else
|
||||
dY2a = dY2a - dCorsaY2e
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
|
||||
PP_VER = '3.1a2_DEV8'
|
||||
PP_VER = '3.1a2_DEV13'
|
||||
PP_NVER = '3.1.1.2'
|
||||
MIN_MACH_VER = '2.7d2'
|
||||
MACH_NAME = EgtGetCurrMachineName()
|
||||
@@ -86,7 +86,7 @@ ParkTc2X1 = 3100
|
||||
ParkZ1 = -545
|
||||
ParkC1 = -90
|
||||
ParkB1 = -90
|
||||
ParkCSawX1 = 1500
|
||||
ParkCSawX1 = 1700
|
||||
ParkCSawZ1 = -100
|
||||
ParkCSaw0Z1 = -400
|
||||
ParkCSawC1 = -90
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,8 @@
|
||||
==== Common_PF1250 Update Log ====
|
||||
|
||||
Versione 3.1b1 (17/02/2026)
|
||||
- (GEN) Generazione non allineata a simulazione. Ticket#2819
|
||||
|
||||
Versione 3.1a2 (30/01/2026)
|
||||
- (SIM) Allineato approccio simulazione a generazione in caso di lavorazione in doppio verticale. Ticket#2781
|
||||
- (GEN) Simulazione non allineata a generazione. Mancava reset flag di pezzo a caduta. Ticket#2798
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
|
||||
local InfoCommon_STD_PP = {
|
||||
NAME = 'Common_PF1250', -- nome script PP standard
|
||||
VERSION = '3.1a2', -- versione script
|
||||
VERSION = '3.1b1', -- versione script
|
||||
MIN_MACH_VER_PP_COMMON = '2.7k1' -- versione minima kernel
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user