Files
infineon_plc/PLC/00_Main/PRG_Safety.TcPOU
m.heisig 0c40092d8f Some improvements and fixes
- Added robot schift params for aligning etcher 1 position
- Added HMI Interface to robot fb
- Added machine LED's at main cabinet
- Aligner now works in auto mode
- Added HMI interface to etcher station
- Added cReleaseAlarms to HeatCoolPlates
- Added HMI interface to HVTester
- STarted tray feeder response parsing
- Fixed some packml base state machine bugs
2026-02-15 10:04:59 +01:00

49 lines
1.1 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;
_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>