Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 831d368199 | |||
| 8089a830e4 | |||
| 4016796045 | |||
| cad19cffca | |||
| 77cf0826d5 | |||
| 996185e332 | |||
| ec0e8b479a | |||
| c06e5c334e |
+2
-2
@@ -118,8 +118,8 @@ if EgtExistsFile( sDataBeam) then
|
||||
BeamData.USE_LONGCUT = SecondSaw or BeamData.USE_LONGCUT
|
||||
if Machine.Offsets.CUT_SIC then BeamData.CUT_SIC = EgtClamp( Machine.Offsets.CUT_SIC, 15, 50) end
|
||||
if Machine.Offsets.USE_PART_OFFSET then BeamData.USE_PART_OFFSET = ( Machine.Offsets.USE_PART_OFFSET == 1) end
|
||||
if Machine.Offsets.MIN_JOIN_S then BeamData.MIN_JOIN_S = Machine.Offsets.MIN_JOIN_S end
|
||||
if Machine.Offsets.MIN_JOIN_L then BeamData.MIN_JOIN_L = Machine.Offsets.MIN_JOIN_L end
|
||||
if Machine.Offsets.MIN_JOIN_S then BeamData.MIN_JOIN_S = EgtClamp( Machine.Offsets.MIN_JOIN_S, 80, 150) end
|
||||
if Machine.Offsets.MIN_JOIN_L then BeamData.MIN_JOIN_L = EgtClamp( Machine.Offsets.MIN_JOIN_L, 300, 450) end
|
||||
end
|
||||
if Machine.Trave then
|
||||
BeamData.MIN_WIDTH = Machine.Trave.XMIN or BeamData.MIN_WIDTH
|
||||
|
||||
+52
-21
@@ -303,22 +303,29 @@ function OnDispositionEnd()
|
||||
-- Se è un'istruzione del piano ferma pezzo
|
||||
if EMT.MDCHAR[i].StopBeamStat then
|
||||
EmitStopBeam( EMT.MDCHAR[i])
|
||||
EMT.LASTOISBRAKE = true
|
||||
else
|
||||
EmitMoveDataChars( EMT.MDCHAR[i])
|
||||
if EMT.MDCHAR[i].Y1 then EMT.CHY_ON = true end
|
||||
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
|
||||
EMT.LASTOISBRAKE = false
|
||||
end
|
||||
end
|
||||
if #EMT.MDCHAR > 0 then
|
||||
local nMoveType = EgtIf( EMT.CHY_ON, 3, 2)
|
||||
EmitMoveStartChars( nMoveType)
|
||||
-- se dopo c'è scarico spezzone devo mettere attesa termine esecuzione
|
||||
if IsRestPhase( EMT.PHASE + 1) then
|
||||
EmitMoveWaitChars( nMoveType)
|
||||
if not EMT.LASTOISBRAKE then
|
||||
local nMoveType = EgtIf( EMT.CHY_ON, 3, 2)
|
||||
EmitMoveStartChars( nMoveType)
|
||||
-- se dopo c'è scarico spezzone devo mettere attesa termine esecuzione
|
||||
if IsRestPhase( EMT.PHASE + 1) then
|
||||
EmitMoveWaitChars( nMoveType)
|
||||
else
|
||||
EmitMoveWaitChars( nMoveType, true)
|
||||
end
|
||||
else
|
||||
EmitMoveWaitChars( nMoveType, true)
|
||||
EMT.LASTOISBRAKE = nil
|
||||
end
|
||||
|
||||
-- emissione conclusione pezzo precedente (se non in modalità test)
|
||||
if not TEST_USE and EMT.PRODID then
|
||||
local sEnd= 'M113 P1='..tostring( EMT.PRODID)..' P2='..tostring( EMT.PATTID)..' P3='..tostring( EMT.CUTID)..' P4=2'
|
||||
@@ -537,22 +544,28 @@ function OnMachiningEnd()
|
||||
-- Se è un'istruzione del piano ferma pezzo
|
||||
if EMT.MDCHAR[i].StopBeamStat then
|
||||
EmitStopBeam( EMT.MDCHAR[i])
|
||||
EMT.LASTOISBRAKE = true
|
||||
else
|
||||
EmitMoveDataChars( EMT.MDCHAR[i])
|
||||
EMT.LASTOISBRAKE = false
|
||||
end
|
||||
end
|
||||
if #EMT.MDCHAR > 0 then
|
||||
if EMT.AUXTYPE == 'S' then
|
||||
EmitMoveStartChars( 1)
|
||||
EmitMoveWaitChars( 1)
|
||||
if not EMT.LASTOISBRAKE then
|
||||
EmitMoveStartChars( 1)
|
||||
EmitMoveWaitChars( 1)
|
||||
end
|
||||
elseif EMT.AUXTYPE == 'U' then
|
||||
local nMoveType = EgtIf( EMT.CHY_ON, 3, 2)
|
||||
EmitMoveStartChars( nMoveType)
|
||||
-- se dopo cè scarico spezzone devo mettere attesa termine esecuzione
|
||||
if IsRestPhase( EMT.PHASE + 1) then
|
||||
EmitMoveWaitChars( nMoveType)
|
||||
else
|
||||
EmitMoveWaitChars( nMoveType, true)
|
||||
if not EMT.LASTOISBRAKE then
|
||||
local nMoveType = EgtIf( EMT.CHY_ON, 3, 2)
|
||||
EmitMoveStartChars( nMoveType)
|
||||
-- se dopo cè scarico spezzone devo mettere attesa termine esecuzione
|
||||
if IsRestPhase( EMT.PHASE + 1) then
|
||||
EmitMoveWaitChars( nMoveType)
|
||||
else
|
||||
EmitMoveWaitChars( nMoveType, true)
|
||||
end
|
||||
end
|
||||
-- emissione conclusione pezzo precedente (se non è modalità test)
|
||||
if not TEST_USE and EMT.PRODID then
|
||||
@@ -560,8 +573,10 @@ function OnMachiningEnd()
|
||||
MyOutput( sEnd)
|
||||
end
|
||||
elseif EMT.AUXTYPE == 'P' then
|
||||
EmitMoveStartChars( 3)
|
||||
EmitMoveWaitChars( 3)
|
||||
if not EMT.LASTOISBRAKE then
|
||||
EmitMoveStartChars( 3)
|
||||
EmitMoveWaitChars( 3)
|
||||
end
|
||||
if EMT.FALL then
|
||||
MyOutput( 'M155')
|
||||
-- emissione conclusione pezzo (se non in modalità test)
|
||||
@@ -2215,6 +2230,12 @@ function PreparePreRotation( sCmd, nInd)
|
||||
MDChar = { [Cmd[2]]=tonumber(Cmd[3]), IniStatY1=86, FinStatY1=87, IniStatY2=1, BeamVise=0}
|
||||
end
|
||||
table.insert( EMT.MDCHAR, MDChar)
|
||||
-- Se scarico in linea con abbassamento piano ferma pezzo allo scarico
|
||||
if Cmd[4] == 'UnBrakeBeam' then
|
||||
-- Abbassa ferma pezzo
|
||||
local MDStopBeam = { StopBeamStat=2, Load=1}
|
||||
table.insert( EMT.MDCHAR, MDStopBeam)
|
||||
end
|
||||
end
|
||||
elseif Cmd[1] == '2' then
|
||||
local MDChar = { IniStatY1=EMT.ISY1, FinStatY1=EMT.FSY1, IniStatY2=EMT.ISY2, FinStatY2=EMT.FSY2, IniStatV2=1, BeamVise=EMT.BV}
|
||||
@@ -2226,6 +2247,11 @@ function PreparePreRotation( sCmd, nInd)
|
||||
EMT.ROLL_IN = nil
|
||||
end
|
||||
table.insert( EMT.MDCHAR, MDChar)
|
||||
-- Alza ferma pezzo
|
||||
if Cmd[6] == 'BrakeBeam' then
|
||||
local MDStopBeam = { StopBeamStat=1, Load=1}
|
||||
table.insert( EMT.MDCHAR, MDStopBeam)
|
||||
end
|
||||
elseif Cmd[1] == '3' then
|
||||
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
|
||||
@@ -3136,11 +3162,16 @@ end
|
||||
---------------------------------------------------------------------
|
||||
-- Emette i movimenti di esecuzione movimenti trave e alzata o discesa del piano ferma pezzo
|
||||
function EmitStopBeam( MoData)
|
||||
EmitMoveStartChars(2)
|
||||
EmitMoveWaitChars(2)
|
||||
if MoData.StopBeamStat then
|
||||
local sUnloadSide = EgtIf( MoData.Load, 'P1=', 'P2=')
|
||||
sOut = 'M125 ' .. sUnloadSide .. EgtNumToString( MoData.StopBeamStat, 0)
|
||||
if MoData.Load then
|
||||
EmitMoveStartChars( 3)
|
||||
EmitMoveWaitChars( 3)
|
||||
sOut = 'M125 P1=' .. EgtNumToString( MoData.StopBeamStat, 0)
|
||||
else
|
||||
EmitMoveStartChars( 2)
|
||||
EmitMoveWaitChars( 2)
|
||||
sOut = 'M125 P2=' .. EgtNumToString( MoData.StopBeamStat, 0)
|
||||
end
|
||||
end
|
||||
MyOutput( sOut)
|
||||
end
|
||||
|
||||
+21
-4
@@ -1226,7 +1226,9 @@ function SpecCalcCarriages( dDistFront, dDistBack, dRollFront, dRollBack, dY1Del
|
||||
WorkTab.dY1DeltaMaxF = min( EMC.LB - MinJoin, MaxY1 + dDistFront + dRollFront + AGG_V)
|
||||
WorkTab.dY2DeltaMinF = max( MinJoin + EMC.HCING + EMC.HOVM, EMC.LB + MinY2 - dMyDistBack - AGG_V - dRollBack)
|
||||
WorkTab.dY2DeltaMaxF = min( dDistFront, EMC.LB - MyMinOther) -- - EMC.TCING
|
||||
if dY1DeltaMaxSP then WorkTab.dY1DeltaMaxF = min( WorkTab.dY1DeltaMaxF, dY1DeltaMaxSP) end
|
||||
if dY1DeltaMaxSP and dY1DeltaMaxSP > WorkTab.dY1DeltaMinF then
|
||||
WorkTab.dY1DeltaMaxF = min( WorkTab.dY1DeltaMaxF, dY1DeltaMaxSP)
|
||||
end
|
||||
if dY2DeltaMinUL then WorkTab.dY2DeltaMinF = max( WorkTab.dY2DeltaMinF, dY2DeltaMinUL) end
|
||||
WorkTab.dV1PosF = dRollBack
|
||||
WorkTab.bV1CloseF = false
|
||||
@@ -1362,7 +1364,7 @@ function SpecCalcUnloadOnLoadPos()
|
||||
return {}
|
||||
end
|
||||
-- Se pinza Y2 chiusa, devo effettuare uno scambio
|
||||
local dY1DeltaMaxSP = MaxY1 - LoadT - TurnerOffs - 10 * GEO.EPS_SMALL
|
||||
local dY1DeltaMaxSP = MaxY1 - UnloadOnLoadTPos - TurnerOffs - 10 * GEO.EPS_SMALL
|
||||
if EMC.Y2DELTA or EMC.Y1DELTA > dY1DeltaMaxSP then
|
||||
-- imposto quote aggancio per avere solo pinza Y
|
||||
local dDistFront = 0
|
||||
@@ -1391,8 +1393,23 @@ function SpecCalcUnloadOnLoadPos()
|
||||
table.insert( vCmd, { 12, 0})
|
||||
end
|
||||
-- riporto la trave al carico
|
||||
local dRotT = LoadT + TurnerOffs
|
||||
table.insert( vCmd, { 2, 'Y1', dRotT + EMC.Y1DELTA, 'T', dRotT, 'BrakeBeam'})
|
||||
local dRotT = UnloadOnLoadTPos + TurnerOffs
|
||||
local dY1Move = dRotT + EMC.Y1DELTA
|
||||
if dY1Move > MaxY1 then
|
||||
local dRotTStep, dY1MoveStep = dRotT - dY1Move + MaxY1, MaxY1
|
||||
if MinBeamLenUnloadInLine and EMC.LB >= MinBeamLenUnloadInLine then
|
||||
table.insert( vCmd, { 2, 'Y1', dY1MoveStep, 'T', dRotTStep, 'BrakeBeam'})
|
||||
-- apro la morsa
|
||||
table.insert( vCmd, { 11, 0})
|
||||
-- riporto il carrello in fondo alla trave
|
||||
dY1MoveStep = dRotTStep + ( EMC.HCING or 0)
|
||||
dY1Move = dY1MoveStep + dY1Move - MaxY1
|
||||
table.insert( vCmd, { 1, 'Y1', dY1MoveStep, 'UnBrakeBeam'})
|
||||
-- chiudo la morsa
|
||||
table.insert( vCmd, { 11, 1})
|
||||
end
|
||||
end
|
||||
table.insert( vCmd, { 2, 'Y1', dY1Move, 'T', dRotT, 'BrakeBeam'})
|
||||
-- apro la morsa
|
||||
table.insert( vCmd, { 11, 0})
|
||||
EMC.CNT = nil
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
|
||||
PP_VER = '3.1a2_DEV18'
|
||||
PP_VER = '3.1a2_DEV24'
|
||||
PP_NVER = '3.1.1.2'
|
||||
MIN_MACH_VER = '2.7d2'
|
||||
MACH_NAME = EgtGetCurrMachineName()
|
||||
@@ -173,6 +173,7 @@ EstimationRapidMultiplier = 1
|
||||
DistZClampToTable = 5 -- distanza tra la tavola e il punto più basso della morsa
|
||||
ClampingCoeffMin = nil -- coefficiente di fissaggio, se 0 o nil non fa controllo, per il momento da inizializzare da Ts3Data
|
||||
MinBeamLenUnloadInLine = 2400 -- se lo scarico è su una linea deve scaricare il pezzo al massimo e deve essere maggiore del valore della variabile
|
||||
UnloadOnLoadTPos = LoadT -- posizione di scarico al carico
|
||||
|
||||
-- Aggiornamento con dati da TechnoEssetre7
|
||||
local sTs3Data = EgtGetStringFromIni( 'Beam', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-PF1250-3T_5Ax.data"
|
||||
@@ -222,6 +223,8 @@ if EgtExistsFile( sDataBeam) then
|
||||
if Machine.Offsets.Z3_NEG then MinZ3 = Machine.Offsets.Z3_NEG end
|
||||
if Machine.Offsets.Z3_POS then MaxZ3 = Machine.Offsets.Z3_POS end
|
||||
if Machine.Offsets.PARK_Z3 then ParkZ3 = Machine.Offsets.PARK_Z3 end
|
||||
if Machine.Offsets.PARK_C3 then ParkC3 = Machine.Offsets.PARK_C3 end
|
||||
if Machine.Offsets.PARK_B3 then ParkB3 = Machine.Offsets.PARK_B3 end
|
||||
if Machine.Offsets.B3_NEG then MinB3 = Machine.Offsets.B3_NEG end
|
||||
if Machine.Offsets.B3_POS then MaxB3 = Machine.Offsets.B3_POS end
|
||||
if Machine.Offsets.MIN_Y1 then MinMchY1 = Machine.Offsets.MIN_Y1 end
|
||||
@@ -272,6 +275,11 @@ if EgtExistsFile( sDataBeam) then
|
||||
if Machine.Offsets.LEN_STEM_H2 then LenStemH2 = Machine.Offsets.LEN_STEM_H2 end
|
||||
if Machine.Offsets.COEFF_CLAMP_CHECK then ClampingCoeffMin = Machine.Offsets.COEFF_CLAMP_CHECK end
|
||||
if Machine.Offsets.MIN_BEAM_LEN_UNLOAD_IN_LINE then MinBeamLenUnloadInLine = Machine.Offsets.MIN_BEAM_LEN_UNLOAD_IN_LINE end
|
||||
if Machine.Offsets.UNLOAD_ON_LOAD_T_POS then
|
||||
UnloadOnLoadTPos = Machine.Offsets.UNLOAD_ON_LOAD_T_POS
|
||||
elseif Machine.Offsets.DIST_FTZERO then
|
||||
UnloadOnLoadTPos = Machine.Offsets.DIST_FTZERO
|
||||
end
|
||||
|
||||
-- aggiustamenti
|
||||
MinY1 = MinV1 + MinDeltaYV
|
||||
|
||||
Reference in New Issue
Block a user