diff --git a/Logical/Communication/GlobalCom.var b/Logical/Communication/GlobalCom.var index d8c8399..0ba99d1 100644 --- a/Logical/Communication/GlobalCom.var +++ b/Logical/Communication/GlobalCom.var @@ -3,6 +3,7 @@ VAR gIPGLaserInterface : gytp_IPGInterface; (*Interface IPG Laser*) gRTLaserInterface : gytp_RTInterface; (*Interface Raytools*) gLineInterface : gytp_LineInterface; (*Interface Liniensteuerung*) + gbLaserCutGasFault : BOOL; END_VAR (*Variablen / Strukturen*) VAR diff --git a/Logical/Communication/IPG/IPG/Cyclic.st b/Logical/Communication/IPG/IPG/Cyclic.st index 4170741..a0dcd7b 100644 --- a/Logical/Communication/IPG/IPG/Cyclic.st +++ b/Logical/Communication/IPG/IPG/Cyclic.st @@ -104,13 +104,26 @@ PROGRAM _CYCLIC //Ausgänge //============================================== - //Schneidgas (Mit Laser Einschalten oder über M-Befahl aus CNC Task FUBs.TOF_CuttingGas.IN := (LaserOut.uiOutPutPower > 0) AND LaserOut.Control.bLaserOn; FUBs.TOF_CuttingGas.PT := t#1s; FUBs.TOF_CuttingGas (); bOuCuttingGas := FUBs.TOF_CuttingGas.Q OR gIPGLaserInterface.Out.bCuttingGasOn; + + FUBs.TON_ChkCuttingGasOk.IN := bOuCuttingGas; + FUBs.TON_ChkCuttingGasOk.PT := t#1s500ms; + FUBs.TON_ChkCuttingGasOk (); + FUBs.TOF_CuttingGasOk.IN := bInCuttingGasFlowOk; + FUBs.TOF_CuttingGasOk.PT := t#1s; + FUBs.TOF_CuttingGasOk (); + + IF FUBs.TON_ChkCuttingGasOk.Q AND NOT FUBs.TOF_CuttingGasOk.Q THEN + gbLaserCutGasFault := TRUE; + ELSIF gCmd1.bResetErrors THEN + gbLaserCutGasFault := FALSE; + END_IF + //Byte 1 LaserOut.Control.bRequestLaser := TRUE; usOuByte[1].0 := LaserOut.Control.bRequestLaser; @@ -260,4 +273,9 @@ PROGRAM _CYCLIC FUBs.Alarm_Shotmode.sInAlName := 'IPGShotMode'; FUBs.Alarm_Shotmode (); + //Schneidgas / Durchfluss + FUBs.Alarm_CuttingGas.MpLink := gMpAlarmXCore; + FUBs.Alarm_CuttingGas.bInAlarmSignal := gbLaserCutGasFault; + FUBs.Alarm_CuttingGas.sInAlName := 'IPGGuttingGas'; + FUBs.Alarm_CuttingGas (); END_PROGRAM diff --git a/Logical/Communication/IPG/IPG/IOs.var b/Logical/Communication/IPG/IPG/IOs.var index a44a544..3bf808a 100644 --- a/Logical/Communication/IPG/IPG/IOs.var +++ b/Logical/Communication/IPG/IPG/IOs.var @@ -3,4 +3,5 @@ VAR usInByte : ARRAY[1..32] OF USINT; usOuByte : ARRAY[1..32] OF USINT; bOuCuttingGas : BOOL; + bInCuttingGasFlowOk : BOOL; END_VAR diff --git a/Logical/Communication/IPG/IPG/TxtAlarms.tmx b/Logical/Communication/IPG/IPG/TxtAlarms.tmx index 5444eca..e3f1fa9 100644 --- a/Logical/Communication/IPG/IPG/TxtAlarms.tmx +++ b/Logical/Communication/IPG/IPG/TxtAlarms.tmx @@ -90,5 +90,10 @@ Laser: Einzelschussbetrieb + + + Laser: Durchfluss Schneidgas + + \ No newline at end of file diff --git a/Logical/Communication/IPG/IPG/Types.typ b/Logical/Communication/IPG/IPG/Types.typ index a531f61..6a86ab7 100644 --- a/Logical/Communication/IPG/IPG/Types.typ +++ b/Logical/Communication/IPG/IPG/Types.typ @@ -71,6 +71,8 @@ TYPE typ_FUBs : STRUCT TON_Shot : TON; (*Einzelschuss*) TOF_CuttingGas : TOF; (*Schneidgas nachlauf*) + TON_ChkCuttingGasOk : TON; + TOF_CuttingGasOk : TOF; Alarm_SystemWarning : FUB_AlarmSimple; (*Systemwarnung*) Alarm_SoftwareCtrlActive : FUB_AlarmSimple; (*Lasercontrl Steuerung aktiv*) Alarm_RobotModeNotActive : FUB_AlarmSimple; (*Lasercontrl Robotermodeus nicht aktiv*) @@ -88,5 +90,6 @@ TYPE Alarm_CommunicationError : FUB_AlarmSimple; (*Kommunikationsfehler*) Alarm_LocalMode : FUB_AlarmSimple; (*Laser Lokale Steuerung (Einrichten)*) Alarm_Shotmode : FUB_AlarmSimple; (*Einzelschussbetrieb*) + Alarm_CuttingGas : FUB_AlarmSimple; (*Einzelschussbetrieb*) END_STRUCT; END_TYPE diff --git a/Logical/MachCtrl/MachCtrl/Cyclic.st b/Logical/MachCtrl/MachCtrl/Cyclic.st index 6319da0..2245408 100644 --- a/Logical/MachCtrl/MachCtrl/Cyclic.st +++ b/Logical/MachCtrl/MachCtrl/Cyclic.st @@ -732,7 +732,7 @@ PROGRAM _CYCLIC States.bErrorDuringCycle := TRUE; END_IF - IF VCButtons.AutoStopCNCCycle.bCommand OR gRTLaserInterface.In.bHeadLimitPos THEN + IF VCButtons.AutoStopCNCCycle.bCommand OR gRTLaserInterface.In.bHeadLimitPos OR gbLaserCutGasFault THEN //Abbruch MpFUB.MpCNC5Axis.MoveProgram := FALSE; States.bStoppedCycle := TRUE; diff --git a/Physical/Config0/5APC3100_KBU0_000/IoMap.iom b/Physical/Config0/5APC3100_KBU0_000/IoMap.iom index ee86bc7..820b04b 100644 --- a/Physical/Config0/5APC3100_KBU0_000/IoMap.iom +++ b/Physical/Config0/5APC3100_KBU0_000/IoMap.iom @@ -300,4 +300,5 @@ VAR_CONFIG MachCtrl:bOuValveCleanSh1 AT %QX."62K1_X20DO9322-Allg".DigitalOutput07; MachCtrl:bOuValveCleanSh2 AT %QX."62K1_X20DO9322-Allg".DigitalOutput08; gbSOuSTOGates AT %QX."X20SO4110".DigitalOutput02; + IPG:bInCuttingGasFlowOk AT %IX."60K1_X20DI9371-Allg".DigitalInput06; END_VAR diff --git a/Physical/Config0/5APC3100_KBU0_000/mappServices/CfgAlarmX.mpalarmxcore b/Physical/Config0/5APC3100_KBU0_000/mappServices/CfgAlarmX.mpalarmxcore index f9cbc1f..37dcc89 100644 --- a/Physical/Config0/5APC3100_KBU0_000/mappServices/CfgAlarmX.mpalarmxcore +++ b/Physical/Config0/5APC3100_KBU0_000/mappServices/CfgAlarmX.mpalarmxcore @@ -402,18 +402,27 @@ - - - - + + + + + + + + + + + + + - - + + diff --git a/Physical/Config0/Hardware.hwl b/Physical/Config0/Hardware.hwl index 5dd476a..5f4e0ce 100644 --- a/Physical/Config0/Hardware.hwl +++ b/Physical/Config0/Hardware.hwl @@ -2,7 +2,7 @@ - + @@ -27,9 +27,9 @@ - - - + + + @@ -100,14 +100,14 @@ - - - + + + - - + + @@ -172,6 +172,14 @@ + + + + + + + + @@ -282,14 +290,6 @@ - - - - - - - - \ No newline at end of file diff --git a/Physical/Config0/Hardware.jpg b/Physical/Config0/Hardware.jpg index 997254a..78a53e0 100644 Binary files a/Physical/Config0/Hardware.jpg and b/Physical/Config0/Hardware.jpg differ