53 lines
1.2 KiB
XML
53 lines
1.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<TcPlcObject Version="1.1.0.1">
|
|
<POU Name="PRG_Safety" Id="{3b12eabc-3e96-45aa-8279-75f07072b9b0}" SpecialFunc="None">
|
|
<Declaration><![CDATA[PROGRAM PRG_Safety
|
|
VAR_INPUT
|
|
xConfirmAlarms : BOOL;
|
|
xRobotStopped : BOOL;
|
|
END_VAR
|
|
VAR_OUTPUT
|
|
xStopRobot : BOOL := FALSE;
|
|
xEStopOk AT %I* : BOOL;
|
|
END_VAR
|
|
VAR
|
|
xComStartup AT %I* : BOOL;
|
|
|
|
xRequestOpenDoor AT %I* : BOOL;
|
|
|
|
xRun AT %Q* : BOOL;
|
|
xErrorAck AT %Q* : BOOL;
|
|
xLockDoor AT %Q* : BOOL := TRUE;
|
|
|
|
xLEDMachineOn AT %Q* : BOOL;
|
|
xLEDMachineOff AT %Q* : BOOL;
|
|
|
|
xLockMediaDoor1 AT %Q* : BOOL := TRUE;
|
|
xLockMediaDoor2 AT %Q* : BOOL := TRUE;
|
|
xLockMediaDoor3 AT %Q* : BOOL := TRUE;
|
|
|
|
_rtDoorUnlock : R_TRIG;
|
|
_tofErrorAck : TOF;
|
|
|
|
_xStopRobot : BOOL;
|
|
END_VAR
|
|
]]></Declaration>
|
|
<Implementation>
|
|
<ST><![CDATA[xRun := NOT xComStartup;
|
|
|
|
_rtDoorUnlock(CLK := xRequestOpenDoor AND xRobotStopped);
|
|
IF _rtDoorUnlock.Q THEN
|
|
_xStopRobot := (NOT _xStopRobot);
|
|
xLockDoor := (NOT xLockDoor);
|
|
END_IF
|
|
|
|
// Reset safety group errors
|
|
_tofErrorAck(IN:= xConfirmAlarms, PT:= T#500MS, Q=> xErrorAck, ET=> );
|
|
|
|
// Copy internal signals to outputs
|
|
xStopRobot := _xStopRobot;
|
|
xLEDMachineOn := xEStopOk;
|
|
xLEDMachineOff := (NOT xEStopOk);]]></ST>
|
|
</Implementation>
|
|
</POU>
|
|
</TcPlcObject> |