Added hot and cold plates

- Started spinner chuck io's
This commit is contained in:
2026-02-01 13:53:21 +01:00
parent 8c41ff9bad
commit 1ade81c1c5
30 changed files with 3626 additions and 5882 deletions

View File

@@ -7,6 +7,8 @@ VAR
_fbHVTester : FB_HVTester;
_fbEtcher1 : FB_Etcher;
_fbEtcher2 : FB_Etcher;
_fbTrayFeederInput : FB_TrayFeeder(sIPAddr := '192.168.1.10', udiPort := 5000);
_fbHeatCoolPlates : FB_HeatCoolPlates;
_xConfirmAlarms : BOOL;
@@ -16,11 +18,18 @@ VAR
_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);
@@ -30,19 +39,37 @@ END_VAR
<Implementation>
<ST><![CDATA[IF _xClear THEN
_xClear := FALSE;
_stRobotCmd.eCntrlCmd := E_PackMLCmd.CLEAR;
_stRobotCmd.xCmdChangeRequest := TRUE;
_fbRobot.M_Clear();
END_IF
IF _xReset THEN
_xReset := FALSE;
_stRobotCmd.eCntrlCmd := E_PackMLCmd.RESET;
_stRobotCmd.xCmdChangeRequest := TRUE;
_fbRobot.M_Reset();
END_IF
IF _xStart THEN
_xStart := FALSE;
_stRobotCmd.eCntrlCmd := E_PackMLCmd.START;
_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
@@ -62,12 +89,22 @@ END_IF
_fbHVTester(xOpenChambers:= GVL_SCADA.xOpenAllChambers);
_fbEtcher1(xOpenDoor:= GVL_SCADA.xOpenAllChambers);
_fbEtcher2(xOpenDoor:= 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);
PRG_Safety(
xConfirmAlarms := GVL_SCADA.xErrAck,
xRobotStopped := (_stRobotStatus.eStateCurrent <> E_PackMLState.EXECUTE));
// =====
// DEBUG

View File

@@ -4,9 +4,15 @@
<Declaration><![CDATA[PROGRAM PRG_Safety
VAR_INPUT
xConfirmAlarms : BOOL;
xRobotStopped : BOOL;
END_VAR
VAR_OUTPUT
xStopRobot : BOOL := FALSE;
END_VAR
VAR
_xRun AT %Q* : BOOL;
_xEStopOk AT %I* : BOOL;
_xRequestOpenDoor AT %I* : BOOL;
_rtrigDoorUnlock : R_TRIG;
@@ -22,8 +28,9 @@ END_VAR
<Implementation>
<ST><![CDATA[_xRun := NOT _xComStartup;
_rtrigDoorUnlock(CLK := _xRequestOpenDoor);
_rtrigDoorUnlock(CLK := _xRequestOpenDoor AND xRobotStopped);
IF _rtrigDoorUnlock.Q THEN
xStopRobot := (NOT xStopRobot);
_xLockDoor := (NOT _xLockDoor);
END_IF

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="ST_PosData" Id="{a239aa72-8733-4bd3-94a0-6f6589ef2443}">
<Declaration><![CDATA[{attribute 'pack_mode' := '1'}
TYPE ST_PosData :
STRUCT
wPosX : INT;
wPosY : INT;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="ST_TrayFeederCamPosData" Id="{b23e235e-7a29-4216-a7f3-ec637f9c5927}">
<Declaration><![CDATA[{attribute 'pack_mode' := '1'}
TYPE ST_TrayFeederCamPosData :
STRUCT
byNumberOf : BYTE;
astPosData : ARRAY[0..7] OF ST_PosData;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>