127 lines
2.7 KiB
XML
127 lines
2.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;
|
|
_fbTrayFeederInput : FB_TrayFeeder(sIPAddr := '192.168.1.10', udiPort := 5000);
|
|
_fbHeatCoolPlates : FB_HeatCoolPlates;
|
|
|
|
_xConfirmAlarms : BOOL;
|
|
|
|
_stRobotCmd : ST_PMLc;
|
|
_stRobotStatus : ST_PMLs;
|
|
_stRobotAdmin : ST_PMLa;
|
|
|
|
_stRobotJobParams : ST_KukaRobot_JobParams;
|
|
|
|
_stCamResult AT %I* : ST_TrayFeederCamPosData;
|
|
|
|
_rtStopRobotFromSafety : R_TRIG;
|
|
|
|
|
|
// DEBUG commands
|
|
_xClear : BOOL;
|
|
_xReset : BOOL;
|
|
_xStart : BOOL;
|
|
_xHold : BOOL;
|
|
_xUnhold : BOOL;
|
|
_xStop : BOOL;
|
|
|
|
_xStartTrigger : BOOL;
|
|
_tofTriggerTime : TOF := (PT := T#1S);
|
|
_xTriggerCamera AT %Q* : BOOL;
|
|
END_VAR
|
|
]]></Declaration>
|
|
<Implementation>
|
|
<ST><![CDATA[IF _xClear THEN
|
|
_xClear := FALSE;
|
|
_fbRobot.M_Clear();
|
|
END_IF
|
|
|
|
IF _xReset THEN
|
|
_xReset := FALSE;
|
|
_fbRobot.M_Reset();
|
|
END_IF
|
|
|
|
IF _xStart THEN
|
|
_xStart := FALSE;
|
|
_fbRobot.M_Start();
|
|
END_IF
|
|
|
|
IF _xHold THEN
|
|
_xHold := FALSE;
|
|
_fbRobot.M_Hold();
|
|
END_IF
|
|
|
|
IF _xUnhold THEN
|
|
_xUnhold := FALSE;
|
|
_fbRobot.M_Unhold();
|
|
END_IF
|
|
|
|
IF _xStop THEN
|
|
_xStop := FALSE;
|
|
_fbRobot.M_Stop();
|
|
END_IF
|
|
|
|
_rtStopRobotFromSafety(CLK := PRG_Safety.xStopRobot);
|
|
IF _rtStopRobotFromSafety.Q THEN
|
|
_stRobotCmd.eCntrlCmd := E_PackMLCmd.STOP;
|
|
_stRobotCmd.xCmdChangeRequest := TRUE;
|
|
END_IF
|
|
|
|
_fbRobot(
|
|
stCommand:= _stRobotCmd,
|
|
stJobParams := _stRobotJobParams,
|
|
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, xConfirmAlarms := GVL_SCADA.xErrAck);
|
|
_fbEtcher2(xOpenDoor:= GVL_SCADA.xOpenAllChambers, xConfirmAlarms := GVL_SCADA.xErrAck);
|
|
|
|
// _fbTrayFeederInput(
|
|
// stCommand:= ,
|
|
// xConfirmAlarms := GVL_SCADA.xErrAck,
|
|
// stStatus=> GVL_SCADA.stTrayFeederInputState,
|
|
// stAdmin=> GVL_SCADA.stTRayFeederInputAdmin);
|
|
|
|
_fbHeatCoolPlates(xConfirmAlarms:= GVL_SCADA.xErrAck);
|
|
|
|
|
|
// Call safety program
|
|
PRG_Safety(
|
|
xConfirmAlarms := GVL_SCADA.xErrAck,
|
|
xRobotStopped := (_stRobotStatus.eStateCurrent <> E_PackMLState.EXECUTE));
|
|
|
|
// =====
|
|
// DEBUG
|
|
// =====
|
|
|
|
_tofTriggerTime(IN := _xStartTrigger);
|
|
IF _xStartTrigger THEN
|
|
_xStartTrigger := FALSE;
|
|
END_IF
|
|
_xTriggerCamera := _tofTriggerTime.Q;
|
|
|
|
// Reset alarm reset request
|
|
GVL_SCADA.xErrAck := FALSE;
|
|
|
|
IF _xConfirmAlarms THEN
|
|
_xConfirmAlarms := FALSE;
|
|
END_IF]]></ST>
|
|
</Implementation>
|
|
</POU>
|
|
</TcPlcObject> |