Files
infineon_plc/PLC/00_Main/PRG_Main.TcPOU
m.heisig 1ade81c1c5 Added hot and cold plates
- Started spinner chuck io's
2026-02-01 13:53:21 +01:00

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>