Files
infineon_plc/PLC/00_Main/PRG_Main.TcPOU
m.heisig 67ba80893f Started kuka robot integration with hardware
- Modified PackML state machine to be able to disable unused states
- Added PackTag datatypes for recipe handling
- Started recipe parameter description in json file
- Added schema file for recipe json
- Added state machine drawing for packml
2026-01-30 09:09:30 +01:00

83 lines
1.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<POU Name="PRG_Main" Id="{e44f5145-cb67-4abd-8a28-92b41a0d9dbd}" SpecialFunc="None">
<Declaration><![CDATA[PROGRAM PRG_Main
VAR
_fbRobot : FB_KukaRobot;
_fbHVTester : FB_HVTester;
_fbEtcher1 : FB_Etcher;
_fbEtcher2 : FB_Etcher;
_stRobotCmd : ST_PMLc;
_xConfirmAlarms : BOOL;
_xClear : BOOL;
_xReset : BOOL;
_xStart : BOOL;
_stRobotStatus : ST_PMLs;
_stRobotAdmin : ST_PMLa;
_xFirstCycle : BOOL := TRUE;
_stRecipeGripperChange : ST_PackMLRecipe := (
diID := 0,
sName := 'Change gripper'
);
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[IF _xFirstCycle THEN
_xFirstCycle := FALSE;
END_IF
IF _xClear THEN
_xClear := FALSE;
_stRobotCmd.eCntrlCmd := E_PackMLCmd.CLEAR;
_stRobotCmd.xCmdChangeRequest := TRUE;
END_IF
IF _xReset THEN
_xReset := FALSE;
_stRobotCmd.eCntrlCmd := E_PackMLCmd.RESET;
_stRobotCmd.xCmdChangeRequest := TRUE;
END_IF
IF _xStart THEN
_xStart := FALSE;
_stRobotCmd.eCntrlCmd := E_PackMLCmd.START;
_stRobotCmd.xCmdChangeRequest := TRUE;
END_IF
_fbRobot(
stCommand:= _stRobotCmd,
xReleaseAlarms:= TRUE,
xConfirmAlarms:= _xConfirmAlarms,
stStatus => _stRobotStatus,
stAdmin => _stRobotAdmin,
xReady=> ,
xError=> );
IF _stRobotCmd.xCmdChangeRequest THEN
_stRobotCmd.xCmdChangeRequest := FALSE;
END_IF
_fbHVTester(xOpenChambers:= GVL_SCADA.xOpenAllChambers);
_fbEtcher1(xOpenDoor:= GVL_SCADA.xOpenAllChambers);
_fbEtcher2(xOpenDoor:= GVL_SCADA.xOpenAllChambers);
// Call safety program
PRG_Safety(xConfirmAlarms := GVL_SCADA.xErrAck);
// Reset alarm reset request
GVL_SCADA.xErrAck := FALSE;
IF _xConfirmAlarms THEN
_xConfirmAlarms := FALSE;
END_IF]]></ST>
</Implementation>
</POU>
</TcPlcObject>