Added first hmi interface implementation

This commit is contained in:
2026-02-19 00:20:05 +01:00
parent 0c40092d8f
commit a3ad956f0d
29 changed files with 591 additions and 240 deletions

View File

@@ -3,31 +3,39 @@
<POU Name="PRG_Main" Id="{e44f5145-cb67-4abd-8a28-92b41a0d9dbd}" SpecialFunc="None">
<Declaration><![CDATA[PROGRAM PRG_Main
VAR
// ========
// Stations
// ========
_fbRobot : FB_KukaRobot;
_fbHVTester : FB_HVTester;
_fbTrayFeederInput : FB_TrayFeeder(sIPAddr := '192.168.1.10', udiPort := 5000);
_fbAligner : FB_Aligner;
_fbEtcher1 : FB_Etcher;
_fbEtcher2 : FB_Etcher;
_fbTrayFeederInput : FB_TrayFeeder(sIPAddr := '192.168.1.10', udiPort := 5000);
_fbHeatCoolPlates : FB_HeatCoolPlates;
_fbAligner : FB_Aligner;
_fbHotplate : FB_Hotplate;
_fbCoolplate : FB_Coolplate;
_fbHVTesterHot : FB_HVTester;
_fbHVTesterCold : FB_HVTester;
//_fbNOK : FB_NOK;
//_fbTrayFeederOutput : FB_TrayFeeder(sIPAddr := '192.168.1.11', udiPort := 5000);
// =======================
// DEBUG AND TESTING STUFF
// =======================
_xReleaseAlarms : BOOL;
_xConfirmAlarms : BOOL;
_stRobotCmd : ST_PMLc;
_stRobotStatus : ST_PMLs;
_stRobotAdmin : ST_PMLa;
_stRobotJobParams : ST_KukaRobot_JobParams;
_stUnitFeedbacks : ST_KukaRobot_UnitFeedbacks;
stCamResult AT %I* : ST_TrayFeederCamPosData;
_rtStopRobotFromSafety : R_TRIG;
// DEBUG commands
// commands
_xClear : BOOL;
_xReset : BOOL;
_xStart : BOOL;
@@ -95,27 +103,29 @@ _fbRobot(
xConfirmAlarms:= GVL_SCADA.xErrAck,
stStatus => _stRobotStatus,
stAdmin => _stRobotAdmin,
stPackMLHMIInterface := GVL_SCADA.stMachine.stKukaRobot);
stHMIInterface := GVL_SCADA.stMachine.stKukaRobot);
IF _stRobotCmd.xCmdChangeRequest THEN
_stRobotCmd.xCmdChangeRequest := FALSE;
END_IF
_fbHVTester(xOpenChambers:= GVL_SCADA.xOpenAllChambers, stPackMLHMIInterface := GVL_SCADA.stMachine.stHVTester);
_fbHVTesterHot(xOpenChambers:= GVL_SCADA.xOpenAllChambers, stHMIInterface := GVL_SCADA.stMachine.stHVTesterHot);
_fbHVTesterCold(xOpenChambers:= GVL_SCADA.xOpenAllChambers, stHMIInterface := GVL_SCADA.stMachine.stHVTesterCold);
_fbEtcher1(
xOpenDoor:= GVL_SCADA.xOpenAllChambers,
xOpenChuckClamp := GVL_SCADA.xOpenChuckClampEtcher1,
xReleaseAlarms := _xReleaseAlarms,
xConfirmAlarms := GVL_SCADA.xErrAck,
stPackMLHMIInterface := GVL_SCADA.stMachine.stEtcher1);
stHMIInterface := GVL_SCADA.stMachine.stEtcher1);
_fbEtcher2(
xOpenDoor:= GVL_SCADA.xOpenAllChambers,
xOpenChuckClamp := GVL_SCADA.xOpenChuckClampEtcher2,
xReleaseAlarms := _xReleaseAlarms,
xConfirmAlarms := GVL_SCADA.xErrAck,
stPackMLHMIInterface := GVL_SCADA.stMachine.stEtcher2);
stHMIInterface := GVL_SCADA.stMachine.stEtcher2);
_fbTrayFeederInput(
stCommand:= ,
@@ -123,14 +133,21 @@ _fbTrayFeederInput(
xConfirmAlarms := GVL_SCADA.xErrAck,
stStatus=> GVL_SCADA.stTrayFeederInputState,
stAdmin=> GVL_SCADA.stTRayFeederInputAdmin,
stPackMLHMIInterface := GVL_SCADA.stMachine.stTrayFeeder);
_fbHeatCoolPlates(
stHMIInterface := GVL_SCADA.stHCPlatesHMIInterface,
stHMIInterface := GVL_SCADA.stMachine.stTrayFeederIn);
_fbTrayFeederInput(
stCommand:= ,
xReleaseAlarms := _xReleaseAlarms,
xConfirmAlarms:= GVL_SCADA.xErrAck);
xConfirmAlarms := GVL_SCADA.xErrAck,
stStatus=> GVL_SCADA.stTrayFeederInputState,
stAdmin=> GVL_SCADA.stTRayFeederInputAdmin,
stHMIInterface := GVL_SCADA.stMachine.stTrayFeederOut);
_fbAligner(stCommand:= , stStatus=> , stAdmin=> , xConfirmAlarms:= GVL_SCADA.xErrAck, stPackMLHMIInterface := GVL_SCADA.stMachine.stAligner);
_fbHotplate(stHMIInterface := GVL_SCADA.stMachine.stHotplate);
_fbCoolplate(stHMIInterface := GVL_SCADA.stMachine.stCoolplate);
_fbAligner(stCommand:= , stStatus=> , stAdmin=> , xConfirmAlarms:= GVL_SCADA.xErrAck, stHMIInterface := GVL_SCADA.stMachine.stAligner);
// Call safety program

View File

@@ -3,12 +3,24 @@
<DUT Name="ST_HMI_Machine" Id="{60f4c1e9-5df6-4709-9b42-c771abc6cf78}">
<Declaration><![CDATA[TYPE ST_HMI_Machine :
STRUCT
stAligner : ST_HMI_PackML;
stEtcher1 : ST_HMI_PackML;
stEtcher2 : ST_HMI_PackML;
stHVTester : ST_HMI_PackML;
stKukaRobot : ST_HMI_PackML;
stTrayFeeder : ST_HMI_PackML;
// Acknowledge alarm button
stConfirmAlarmsBtn : ST_HMI_CONTROL_BUTTON := (xRelease := TRUE);
stMachineCmds : ST_HMI_PackML;
stKukaRobot : ST_HMI_Kuka;
stTrayFeederIn : ST_HMI_TrayFeeder;
stAligner : ST_HMI_Aligner;
stEtcher1 : ST_HMI_Etcher;
stEtcher2 : ST_HMI_Etcher;
stHotplate : ST_HMI_Hotplate;
stCoolplate : ST_HMI_Coolplate;
stHVTesterHot : ST_HMI_HVTester;
stHVTesterCold : ST_HMI_HVTester;
stTrayFeederOut : ST_HMI_TrayFeeder;
stNOK : ST_HMI_NOK;
END_STRUCT
END_TYPE
]]></Declaration>