- 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
83 lines
1.7 KiB
XML
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> |