Added first hmi interface implementation
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -11,6 +11,9 @@ END_VAR
|
||||
VAR_OUTPUT
|
||||
xVacuumEnabled : BOOL;
|
||||
END_VAR
|
||||
VAR_IN_OUT
|
||||
stHMIInterface : ST_HMI_Aligner;
|
||||
END_VAR
|
||||
VAR
|
||||
xActivateVacuum AT %Q* : BOOL := FALSE;
|
||||
xDeactivateVacuum AT %Q* : BOOL := TRUE;
|
||||
@@ -22,9 +25,6 @@ VAR
|
||||
_fbXAxis : FB_AxisPTP;
|
||||
_fbYAxis : FB_AxisPTP;
|
||||
|
||||
_rXPosToGo : REAL;
|
||||
_rYPosToGo : REAL;
|
||||
|
||||
_rtExecute : R_TRIG;
|
||||
_xStartAlign : BOOL;
|
||||
END_VAR
|
||||
@@ -56,22 +56,10 @@ _fbYAxis(
|
||||
// =============================
|
||||
// Call isa88 base state machine
|
||||
// =============================
|
||||
SUPER^(stPackMLHMIInterface := THIS^.stPackMLHMIInterface);
|
||||
SUPER^(stPackMLHMIInterface := stHMIInterface.stStationCmds);
|
||||
|
||||
_rtExecute(CLK:= xExecute, Q=> _xStartAlign);
|
||||
|
||||
// Drei mal ausführen damit die Position genau ist
|
||||
IF _xStartAlign THEN
|
||||
|
||||
_rXPosToGo := DINT_TO_REAL(diXOffset) * -0.001;
|
||||
_rYPosToGo := ((DINT_TO_REAL(diYOffset) * 0.001) - 37.5) * -1;
|
||||
|
||||
IF (ABS(_rXPosToGo) < 10.0) AND (ABS(_rYPosToGo) < 10.0) AND (NOT _fbXAxis.xError) AND (NOT _fbYAxis.xError) THEN
|
||||
_fbXAxis.M_MoveRel(lrRelDist := _rXPosToGo);
|
||||
_fbYAxis.M_MoveRel(lrRelDist := _rYPosToGo);
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
// Handle enable disable vacuum command
|
||||
xActivateVacuum := xEnableVacuum;
|
||||
xDeactivateVacuum := (NOT xEnableVacuum);
|
||||
|
||||
14
PLC/01_Stationen/Aligner/ST_HMI_Aligner.TcDUT
Normal file
14
PLC/01_Stationen/Aligner/ST_HMI_Aligner.TcDUT
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_HMI_Aligner" Id="{39b635fb-f58d-41f9-b477-6d52ee4f55cd}">
|
||||
<Declaration><![CDATA[TYPE ST_HMI_Aligner :
|
||||
STRUCT
|
||||
stStationCmds : ST_HMI_PackML;
|
||||
|
||||
// Vacuum valve
|
||||
stVacuumValve : ST_HMI_VALVE_DATA;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -10,13 +10,15 @@ VAR_INPUT
|
||||
xReleaseManualMode : BOOL;
|
||||
xReleaseAlarms : BOOL;
|
||||
xConfirmAlarms : BOOL;
|
||||
stHMIInterface : ST_Etcher_HMIInterface;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
xDoorOpen : BOOL;
|
||||
xChuckClampOpen : BOOL;
|
||||
xVacuumEnabled : BOOL;
|
||||
END_VAR
|
||||
VAR_IN_OUT
|
||||
stHMIInterface : ST_HMI_Etcher;
|
||||
END_VAR
|
||||
VAR
|
||||
_fbValveDoor : FB_Valve('Door');
|
||||
_stValveDoorCfg : ST_ValveConfig := (
|
||||
@@ -85,7 +87,7 @@ _fbValveDoor(
|
||||
stValveConfig:= _stValveDoorCfg,
|
||||
xReleaseManualMode:= FALSE,
|
||||
xConfirmAlarms:= xConfirmAlarms,
|
||||
stHMIInterface:= stHMIInterface.stDoorHMIInterface);
|
||||
stHMIInterface:= stHMIInterface.stDoorValve);
|
||||
|
||||
|
||||
// Chuck
|
||||
@@ -102,7 +104,7 @@ _fbUnlockLeft(
|
||||
stValveConfig:= _stValveUnlockLeftCfg,
|
||||
xReleaseManualMode:= xReleaseManualMode,
|
||||
xConfirmAlarms:= xConfirmAlarms,
|
||||
stHMIInterface:= stHMIInterface.stUnlockLeftHMIInterface);
|
||||
stHMIInterface:= stHMIInterface.stChuckUnlockLeft);
|
||||
|
||||
_fbUnlockRight(
|
||||
xAutomaticOpen:= xOpenChuckClamp,
|
||||
@@ -110,7 +112,7 @@ _fbUnlockRight(
|
||||
stValveConfig:= _stValveUnlockRightCfg,
|
||||
xReleaseManualMode:= xReleaseManualMode,
|
||||
xConfirmAlarms:= xConfirmAlarms,
|
||||
stHMIInterface:= stHMIInterface.stUnlockRightHMIInterface);
|
||||
stHMIInterface:= stHMIInterface.stChuckUnlockRight);
|
||||
|
||||
_fbEjectFront(
|
||||
xAutomaticOpen:= _tpEjectChuck.Q,
|
||||
@@ -118,7 +120,7 @@ _fbEjectFront(
|
||||
stValveConfig:= _stValveClampingFrontCfg,
|
||||
xReleaseManualMode:= xReleaseManualMode,
|
||||
xConfirmAlarms:= xConfirmAlarms,
|
||||
stHMIInterface:= stHMIInterface.stEjectFrontHMIInterface);
|
||||
stHMIInterface:= stHMIInterface.stChuckEjectFront);
|
||||
|
||||
_fbEjectBack(
|
||||
xAutomaticOpen:= _tpEjectChuck.Q,
|
||||
@@ -126,12 +128,12 @@ _fbEjectBack(
|
||||
stValveConfig:= _stValveEjectBackCfg,
|
||||
xReleaseManualMode:= xReleaseManualMode,
|
||||
xConfirmAlarms:= xConfirmAlarms,
|
||||
stHMIInterface:= stHMIInterface.stEjectBackHMIInterface);
|
||||
stHMIInterface:= stHMIInterface.stChuckEjectBack);
|
||||
|
||||
xDisableVacuum := (NOT xEnableVacuum);
|
||||
|
||||
// Call base sm
|
||||
SUPER^(stPackMLHMIInterface := THIS^.stPackMLHMIInterface);
|
||||
SUPER^(stPackMLHMIInterface := stHMIInterface.stStationCmds);
|
||||
|
||||
// Copy internal signals to output
|
||||
xDoorOpen := _fbValveDoor.IsOpen;
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_Etcher_HMIInterface" Id="{b42cab98-5a22-4703-a464-a4d1f5cdc177}">
|
||||
<Declaration><![CDATA[TYPE ST_Etcher_HMIInterface :
|
||||
STRUCT
|
||||
stDoorHMIInterface : ST_HMI_VALVE_DATA;
|
||||
stUnlockLeftHMIInterface : ST_HMI_VALVE_DATA;
|
||||
stUnlockRightHMIInterface : ST_HMI_VALVE_DATA;
|
||||
stEjectFrontHMIInterface : ST_HMI_VALVE_DATA;
|
||||
stEjectBackHMIInterface : ST_HMI_VALVE_DATA;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
38
PLC/01_Stationen/Etcher/ST_HMI_Etcher.TcDUT
Normal file
38
PLC/01_Stationen/Etcher/ST_HMI_Etcher.TcDUT
Normal file
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_HMI_Etcher" Id="{430b2000-fd60-4c23-be04-2ef93001007b}">
|
||||
<Declaration><![CDATA[TYPE ST_HMI_Etcher :
|
||||
STRUCT
|
||||
stStationCmds : ST_HMI_PackML;
|
||||
|
||||
// Vacuum valve
|
||||
stVacuumValve : ST_HMI_VALVE_DATA;
|
||||
|
||||
// Door valve
|
||||
stDoorValve : ST_HMI_VALVE_DATA;
|
||||
|
||||
// Chuck unlock left valve
|
||||
stChuckUnlockLeft : ST_HMI_VALVE_DATA;
|
||||
|
||||
// Chuck unlock right valve
|
||||
stChuckUnlockRight : ST_HMI_VALVE_DATA;
|
||||
|
||||
// Chuck eject front valve
|
||||
stChuckEjectFront : ST_HMI_VALVE_DATA;
|
||||
|
||||
// Chuck eject back valve
|
||||
stChuckEjectBack: ST_HMI_VALVE_DATA;
|
||||
|
||||
// Unlock chuck command
|
||||
stChuckUnlockCmd : ST_HMI_CONTROL_BUTTON;
|
||||
|
||||
// Lock chuck command
|
||||
stChuckLockCmd : ST_HMI_CONTROL_BUTTON;
|
||||
|
||||
// Chuck eject command
|
||||
stChuckEjectCmd : ST_HMI_CONTROL_BUTTON;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -7,38 +7,20 @@ VAR_INPUT
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
END_VAR
|
||||
VAR_IN_OUT
|
||||
stHMIInterface : ST_HMI_HVTester;
|
||||
END_VAR
|
||||
VAR
|
||||
xOpenDoor1 AT %Q* : BOOL;
|
||||
xOpenDoor2 AT %Q* : BOOL;
|
||||
|
||||
xCloseDoor1 AT %Q* : BOOL;
|
||||
xCloseDoor2 AT %Q* : BOOL;
|
||||
|
||||
// Chamber is the big cylinder not the door
|
||||
xOpenChamber1 AT %Q* : BOOL;
|
||||
xOpenChamber2 AT %Q* : BOOL;
|
||||
|
||||
xCloseChamber1 AT %Q* : BOOL;
|
||||
xCloseChamber2 AT %Q* : BOOL;
|
||||
stDoorValve : FB_Valve('');
|
||||
stTestChamberValve : FB_Valve('');
|
||||
stReleaseChamberMovement : FB_Valve('');
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[IF xOpenChambers THEN
|
||||
xOpenDoor1 := TRUE;
|
||||
xOpenDoor2 := TRUE;
|
||||
|
||||
xCloseDoor1 := FALSE;
|
||||
xCloseDoor2 := FALSE;
|
||||
ELSE
|
||||
xOpenDoor1 := FALSE;
|
||||
xOpenDoor2 := FALSE;
|
||||
|
||||
xCloseDoor1 := TRUE;
|
||||
xCloseDoor2 := TRUE;
|
||||
END_IF
|
||||
<ST><![CDATA[
|
||||
|
||||
// Call base sm
|
||||
SUPER^(stPackMLHMIInterface := THIS^.stPackMLHMIInterface);]]></ST>
|
||||
SUPER^(stPackMLHMIInterface := stHMIInterface.stStationCmds);]]></ST>
|
||||
</Implementation>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
20
PLC/01_Stationen/HVTester/ST_HMI_HVTester.TcDUT
Normal file
20
PLC/01_Stationen/HVTester/ST_HMI_HVTester.TcDUT
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_HMI_HVTester" Id="{2e5a3886-f38d-4b91-b83d-51766b9f5c82}">
|
||||
<Declaration><![CDATA[TYPE ST_HMI_HVTester :
|
||||
STRUCT
|
||||
stStationCmds : ST_HMI_PackML;
|
||||
|
||||
// Door valve
|
||||
stDoorValve : ST_HMI_VALVE_DATA;
|
||||
|
||||
// Test chamber open close valve
|
||||
stTestChamberValve : ST_HMI_VALVE_DATA;
|
||||
|
||||
// Optional temperature setpoint
|
||||
stTempSP : ST_HMI_ANALOG_VALUE;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -1,24 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<POU Name="FB_CoolPlate" Id="{629e3316-5d72-4e23-a03a-af14d37e58d6}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_CoolPlate
|
||||
<POU Name="FB_Coolplate" Id="{629e3316-5d72-4e23-a03a-af14d37e58d6}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_Coolplate
|
||||
VAR_INPUT
|
||||
rTempSetpoint : REAL := 25.0;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
END_VAR
|
||||
VAR_IN_OUT
|
||||
stHMIInterface : ST_HCPlateHMIInterface;
|
||||
stHMIInterface : ST_HMI_Coolplate;
|
||||
END_VAR
|
||||
VAR
|
||||
// Card inputs
|
||||
stStatus AT %I* : ST_SerialStatus;
|
||||
//abyDataIn AT %I* : ARRAY[0..21] OF BYTE;
|
||||
abyDataIn AT %I* : ARRAY[0..21] OF BYTE;
|
||||
|
||||
// Card outputs
|
||||
stCtrl AT %Q* : ST_SerialCrl;
|
||||
abyDataOut AT %Q* : ARRAY[0..21] OF BYTE;
|
||||
|
||||
_fbTempSensor : FB_AnalogInput('');
|
||||
|
||||
// Internal temp setpoint
|
||||
_rTempSetpoint : REAL;
|
||||
|
||||
@@ -32,7 +34,7 @@ END_VAR
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Clamp temperature settings
|
||||
// Currently only controlled throught hmi interface
|
||||
_rTempSetpoint := stHMIInterface.rSetpoint;
|
||||
_rTempSetpoint := stHMIInterface.stSetpoint.rValue;
|
||||
|
||||
IF _rTempSetpoint > 60.0 THEN
|
||||
_rTempSetpoint := 60.0;
|
||||
@@ -62,10 +64,9 @@ IF stStatus.bTransmitAccepted THEN
|
||||
stCtrl.bTransmitRequest := 0;
|
||||
END_IF
|
||||
|
||||
// Debug test
|
||||
IF stHMIInterface.xEnable THEN
|
||||
stHMIInterface.xEnable := FALSE;
|
||||
M_SetTemp(rTemp := _rTempSetpoint);
|
||||
IF stHMIInterface.stSetSetpointBtn.xRequest THEN
|
||||
stHMIInterface.stSetSetpointBtn.xRequest := FALSE;
|
||||
M_SetTemp(rTemp := stHMIInterface.stSetpoint.rValue);
|
||||
_xSend := TRUE;
|
||||
END_IF]]></ST>
|
||||
</Implementation>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<POU Name="FB_HotPlate" Id="{317a2373-f886-4e32-b683-81b726d00aac}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_HotPlate
|
||||
<POU Name="FB_Hotplate" Id="{317a2373-f886-4e32-b683-81b726d00aac}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_Hotplate EXTENDS FB_PackMLGeneric
|
||||
VAR_INPUT
|
||||
xEnable : BOOL;
|
||||
rTargetTemp : REAL;
|
||||
@@ -14,7 +14,7 @@ VAR_OUTPUT
|
||||
uiNextReadySlot : UINT;
|
||||
END_VAR
|
||||
VAR_IN_OUT
|
||||
stHMIInterface : ST_HCPlateHMIInterface;
|
||||
stHMIInterface : ST_HMI_Hotplate;
|
||||
END_VAR
|
||||
VAR
|
||||
xEnableHotplate AT %Q* : BOOL;
|
||||
@@ -41,10 +41,25 @@ VAR
|
||||
_fbPITempControl : FB_PI;
|
||||
_fbLimit : FB_Limit;
|
||||
_fbPWMOut : FB_PWM;
|
||||
|
||||
_xEnable : BOOL;
|
||||
|
||||
_xFirstCycle : BOOL := TRUE;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Call sensor fbs
|
||||
<ST><![CDATA[IF _xFirstCycle THEN
|
||||
_xFirstCycle := FALSE;
|
||||
|
||||
stHMIInterface.stSetpoint.rMin := 0;
|
||||
stHMIInterface.stSetpoint.rMax := 140.0;
|
||||
stHMIInterface.stSetpoint.sUnit := '°C';
|
||||
stHMIInterface.stSetpoint.sName := 'Temp. Hotplate';
|
||||
END_IF
|
||||
|
||||
A_HandleHMIInput();
|
||||
|
||||
// Call sensor fbs
|
||||
_fbTempSensor(
|
||||
stAnalogIOConfig:= _stTempSensorConfig,
|
||||
stAnalogEWConfig:= _stTempSEnsorEWConfig,
|
||||
@@ -52,24 +67,15 @@ _fbTempSensor(
|
||||
xReleaseLimitErrors:= FALSE,
|
||||
xReleaseHardwareErrors:= TRUE,
|
||||
xConfirmAlarms:= xConfirmAlarms,
|
||||
stHMIInterface=> );
|
||||
|
||||
// Clamp HMI Setpoint
|
||||
IF stHMIInterface.rSetpoint > 140.0 THEN
|
||||
stHMIInterface.rSetpoint := 140;
|
||||
END_IF
|
||||
|
||||
IF stHMIInterface.rSetpoint < 0.0 THEN
|
||||
stHMIInterface.rSetpoint := 0.0;
|
||||
END_IF
|
||||
stHMIInterface=> stHMIInterface.stPV);
|
||||
|
||||
// For now get setpoint from HMI interface
|
||||
_fbPITempControl(
|
||||
rSP:= stHMIInterface.rSetpoint,
|
||||
rSP:= stHMIInterface.stSetpoint.rValue,
|
||||
rPV:= _fbTempSensor.rScaledValue,
|
||||
rKp:= 6,
|
||||
rTn:= 0,
|
||||
xEnable:= stHMIInterface.xEnable,
|
||||
xEnable:= _xEnable,
|
||||
rMV=> _fbLimit.rIn);
|
||||
|
||||
_fbLimit(
|
||||
@@ -83,10 +89,36 @@ _fbPWMOut(
|
||||
timPeriod:= T#100MS,
|
||||
xOutput=> xEnableHotplate);
|
||||
|
||||
// Output HMI Interface
|
||||
stHMIInterface.rPV := _fbTempSensor.rScaledValue;
|
||||
SUPER^(stPackMLHMIInterface := stHMIInterface.stStationCmds);
|
||||
]]></ST>
|
||||
</Implementation>
|
||||
<Action Name="A_HandleHMIInput" Id="{d22cec08-4a88-4001-b04b-e7a9775ff9a8}">
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Clamp HMI Setpoint
|
||||
IF stHMIInterface.stSetpoint.rValue > 140.0 THEN
|
||||
stHMIInterface.stSetpoint.rValue := 140;
|
||||
END_IF
|
||||
|
||||
IF stHMIInterface.stSetpoint.rValue < 0.0 THEN
|
||||
stHMIInterface.stSetpoint.rValue := 0.0;
|
||||
END_IF]]></ST>
|
||||
</Implementation>
|
||||
</Action>
|
||||
<Method Name="FB_Init" Id="{b45cedd9-9c6c-4658-b56c-da5577886b8f}">
|
||||
<Declaration><![CDATA[//FB_Init is always available implicitly and it is used primarily for initialization.
|
||||
//The return value is not evaluated. For a specific influence, you can also declare the
|
||||
//methods explicitly and provide additional code there with the standard initialization
|
||||
//code. You can evaluate the return value.
|
||||
METHOD FB_Init: BOOL
|
||||
VAR_INPUT
|
||||
bInitRetains: BOOL; // TRUE: the retain variables are initialized (reset warm / reset cold)
|
||||
bInCopyCode: BOOL; // TRUE: the instance will be copied to the copy code afterward (online change)
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_AddItem" Id="{9707459a-6558-487c-b730-c9dc92d598ed}">
|
||||
<Declaration><![CDATA[METHOD M_AddItem
|
||||
VAR_INPUT
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<GVL Name="GVL_HeatCoolConfig" Id="{865917de-a2fa-49b0-b682-05395fd01971}">
|
||||
<Declaration><![CDATA[{attribute 'qualified_only'}
|
||||
{attribute 'naming' := 'off'}
|
||||
{attribute 'analysis' := '-43'}
|
||||
VAR_GLOBAL CONSTANT
|
||||
HEAT_COOL_PLATES_NUM_SLOTS : UINT := 9;
|
||||
END_VAR]]></Declaration>
|
||||
</GVL>
|
||||
</TcPlcObject>
|
||||
@@ -1,13 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_HCPlateHMIInterface" Id="{cc97f396-14fe-4cf1-8a0f-254b86749233}">
|
||||
<Declaration><![CDATA[TYPE ST_HCPlateHMIInterface :
|
||||
STRUCT
|
||||
xEnable : BOOL;
|
||||
rSetpoint : REAL;
|
||||
rPV : REAL;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_HCStationHMIInterface" Id="{2459de16-cb2e-4745-be67-cc251c8b91cf}">
|
||||
<Declaration><![CDATA[TYPE ST_HCStationHMIInterface :
|
||||
STRUCT
|
||||
stHotplateHMIInterface : ST_HCPlateHMIInterface;
|
||||
stCoolplateHMIInterface : ST_HCPlateHMIInterface;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
17
PLC/01_Stationen/HeatCoolPlates/ST_HMI_Coolplate.TcDUT
Normal file
17
PLC/01_Stationen/HeatCoolPlates/ST_HMI_Coolplate.TcDUT
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_HMI_Coolplate" Id="{0ae5281c-4f55-43f7-9c76-f3b88f84f743}">
|
||||
<Declaration><![CDATA[TYPE ST_HMI_Coolplate :
|
||||
STRUCT
|
||||
stStationCmds : ST_HMI_PackML;
|
||||
|
||||
// Setpoint
|
||||
stSetpoint : ST_HMI_ANALOG_VALUE;
|
||||
|
||||
// Set setpoint
|
||||
stSetSetpointBtn : ST_HMI_CONTROL_BUTTON;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
23
PLC/01_Stationen/HeatCoolPlates/ST_HMI_Hotplate.TcDUT
Normal file
23
PLC/01_Stationen/HeatCoolPlates/ST_HMI_Hotplate.TcDUT
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_HMI_Hotplate" Id="{ab37d0f5-58b8-40e5-b7d2-1ab669f4a063}">
|
||||
<Declaration><![CDATA[TYPE ST_HMI_Hotplate :
|
||||
STRUCT
|
||||
stStationCmds : ST_HMI_PackML;
|
||||
|
||||
// Setpoint
|
||||
stSetpoint : ST_HMI_ANALOG_VALUE;
|
||||
|
||||
// Process value
|
||||
stPV : ST_HMI_ANALOG_VALUE;
|
||||
|
||||
// Enable button
|
||||
stEnableBtn : ST_HMI_CONTROL_BUTTON;
|
||||
|
||||
// Disable button
|
||||
stDisableBtn : ST_HMI_CONTROL_BUTTON;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -23,6 +23,9 @@ VAR_OUTPUT
|
||||
xReady : BOOL;
|
||||
xError : BOOL;
|
||||
END_VAR
|
||||
VAR_IN_OUT
|
||||
stHMIInterface : ST_HMI_Kuka;
|
||||
END_VAR
|
||||
VAR
|
||||
// 0 - Nicht aus
|
||||
// 1 - Enable
|
||||
@@ -142,7 +145,7 @@ _xRobotReady := stState.bExt
|
||||
// =============================
|
||||
// Call isa88 base state machine
|
||||
// =============================
|
||||
SUPER^(stPackMLHMIInterface := THIS^.stPackMLHMIInterface);
|
||||
SUPER^(stPackMLHMIInterface := stHMIInterface.stStationCmds);
|
||||
|
||||
|
||||
// ==============================
|
||||
|
||||
14
PLC/01_Stationen/Kuka_Robot/ST_HMI_Kuka.TcDUT
Normal file
14
PLC/01_Stationen/Kuka_Robot/ST_HMI_Kuka.TcDUT
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_HMI_Kuka" Id="{d33ceec3-928d-4488-9aec-30598b609ff5}">
|
||||
<Declaration><![CDATA[TYPE ST_HMI_Kuka :
|
||||
STRUCT
|
||||
stStationCmds : ST_HMI_PackML;
|
||||
|
||||
// Job parameter
|
||||
stJobParams : ST_KukaRobot_JobParams;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -6,16 +6,16 @@ STRUCT
|
||||
// Robot job number
|
||||
eJob : E_KukaRobot_JobNumberRobot;
|
||||
|
||||
// Position in x in mm
|
||||
// Pick/Place position in x in mm
|
||||
rPosX : REAL := 78;
|
||||
|
||||
// Position in y in mm
|
||||
// Pick/Place Position in y in mm
|
||||
rPosY : REAL := 88;
|
||||
|
||||
// Substrate thickness in mm
|
||||
rThickness : REAL := 2.7;
|
||||
|
||||
// Gripper side (1 or 2)
|
||||
// Gripper side (1 - 6)
|
||||
byGripperSide : BYTE := 3;
|
||||
|
||||
// Scan QR Code during pickup from loading station
|
||||
|
||||
19
PLC/01_Stationen/NIO/FB_NOK.TcPOU
Normal file
19
PLC/01_Stationen/NIO/FB_NOK.TcPOU
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<POU Name="FB_NOK" Id="{a2df56e9-efea-40aa-988c-7d0f04448d9f}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_NOK EXTENDS FB_PackMLGeneric
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
END_VAR
|
||||
VAR_IN_OUT
|
||||
stHMIInterface : ST_HMI_NOK;
|
||||
END_VAR
|
||||
VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[]]></ST>
|
||||
</Implementation>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
23
PLC/01_Stationen/NIO/ST_HMI_NOK.TcDUT
Normal file
23
PLC/01_Stationen/NIO/ST_HMI_NOK.TcDUT
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_HMI_NOK" Id="{d259a86f-52c2-4bdd-8153-d79adfe6f6fe}">
|
||||
<Declaration><![CDATA[TYPE ST_HMI_NOK :
|
||||
STRUCT
|
||||
stStationCmds : ST_HMI_PackML;
|
||||
|
||||
// Clamp trays diagonal
|
||||
stClampDiagValve : ST_HMI_VALVE_DATA;
|
||||
|
||||
// Clamp try across
|
||||
stClampAcrossValve : ST_HMI_VALVE_DATA;
|
||||
|
||||
// Clamp command
|
||||
stClampCmd : ST_HMI_CONTROL_BUTTON;
|
||||
|
||||
// Unclamp command
|
||||
stUnclampCmd : ST_HMI_CONTROL_BUTTON;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -8,6 +8,9 @@ VAR_INPUT
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
END_VAR
|
||||
VAR_IN_OUT
|
||||
stHMIInterface : ST_HMI_TrayFeeder;
|
||||
END_VAR
|
||||
VAR
|
||||
_sIpAddr : STRING(15);
|
||||
_udiPort : UDINT;
|
||||
@@ -34,7 +37,7 @@ _fbProtocolHandler(
|
||||
xError=> );
|
||||
|
||||
// Call isa88 base state machine
|
||||
SUPER^(stPackMLHMIInterface := THIS^.stPackMLHMIInterface);]]></ST>
|
||||
SUPER^(stPackMLHMIInterface := stHMIInterface.stStationCmds);]]></ST>
|
||||
</Implementation>
|
||||
<Method Name="FB_init" Id="{6c7048d9-3836-4289-b5f3-f8878267494f}">
|
||||
<Declaration><![CDATA[//FB_Init ist immer implizit verfügbar und wird primär für die Initialisierung verwendet.
|
||||
|
||||
11
PLC/01_Stationen/TrayFeeder/ST_HMI_TrayFeeder.TcDUT
Normal file
11
PLC/01_Stationen/TrayFeeder/ST_HMI_TrayFeeder.TcDUT
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_HMI_TrayFeeder" Id="{4414491b-4072-41e7-8d0d-7bcf44378912}">
|
||||
<Declaration><![CDATA[TYPE ST_HMI_TrayFeeder :
|
||||
STRUCT
|
||||
stStationCmds : ST_HMI_PackML;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -4,6 +4,13 @@
|
||||
<Declaration><![CDATA[{attribute 'qualified_only'}
|
||||
{attribute 'analysis' := '-43'}
|
||||
VAR_GLOBAL
|
||||
// Machine HMI interface
|
||||
stMachine : ST_HMI_Machine;
|
||||
|
||||
// ====================
|
||||
// DEBUG - NOT FOR HMI!
|
||||
// ====================
|
||||
|
||||
xErrAck : BOOL;
|
||||
|
||||
xOpenAllChambers : BOOL;
|
||||
@@ -14,12 +21,6 @@ VAR_GLOBAL
|
||||
// Unit states
|
||||
stTrayFeederInputState : ST_PMLs;
|
||||
stTRayFeederInputAdmin : ST_PMLa;
|
||||
|
||||
// HMI Interface
|
||||
stHCPlatesHMIInterface : ST_HCStationHMIInterface;
|
||||
|
||||
// Machine HMI interface
|
||||
stMachine : ST_HMI_Machine;
|
||||
END_VAR]]></Declaration>
|
||||
</GVL>
|
||||
</TcPlcObject>
|
||||
@@ -13,6 +13,9 @@ STRUCT
|
||||
stBtnUnhold : ST_HMI_CONTROL_BUTTON;
|
||||
stBtnUnsuspend : ST_HMI_CONTROL_BUTTON;
|
||||
|
||||
stBtnManualMode : ST_HMI_CONTROL_BUTTON;
|
||||
stBtnProdMode : ST_HMI_CONTROL_BUTTON;
|
||||
|
||||
eCurrentState : E_PackMLState;
|
||||
eCurrentMode : E_PackMLUnitMode;
|
||||
END_STRUCT
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_PackMLGeneric
|
||||
VAR_INPUT
|
||||
stCommand : ST_PMLc;
|
||||
stPackMLHMIInterface : REFERENCE TO ST_HMI_PackML;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
// Unit status
|
||||
@@ -12,9 +13,6 @@ VAR_OUTPUT
|
||||
// Admin data
|
||||
stAdmin : ST_PMLa;
|
||||
END_VAR
|
||||
VAR_IN_OUT
|
||||
stPackMLHMIInterface : ST_HMI_PackML;
|
||||
END_VAR
|
||||
VAR
|
||||
// State machine handler
|
||||
_fbStateMachine : FB_PackMLStateMachine;
|
||||
@@ -57,7 +55,7 @@ IF _rtChangeCmdRequest.Q THEN
|
||||
_eCmd := stCommand.eCntrlCmd;
|
||||
END_IF
|
||||
|
||||
// Hande mode change request
|
||||
// Handle mode change request
|
||||
_rtChangeModeRequest(CLK := stCommand.xUnitModeChangeRequest);
|
||||
|
||||
IF _rtChangeModeRequest.Q THEN
|
||||
@@ -151,7 +149,32 @@ A_HandleHMIOutput();]]></ST>
|
||||
<Folder Name="States" Id="{2cf25144-1e5c-4db8-ba57-9d98461c53ce}" />
|
||||
<Action Name="A_HandleHMIInput" Id="{723844ed-d531-4820-b577-cf5a7662c8f5}">
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Handle clear button
|
||||
<ST><![CDATA[// Check for valid hmi interface reference
|
||||
IF (NOT __ISVALIDREF(stPackMLHMIInterface)) THEN
|
||||
RETURN;
|
||||
END_IF
|
||||
|
||||
|
||||
// Handle manual mode button
|
||||
IF stPackMLHMIInterface.stBtnManualMode.xRequest THEN
|
||||
stPackMLHMIInterface.stBtnManualMode.xRequest := FALSE;
|
||||
|
||||
IF stPackMLHMIInterface.stBtnManualMode.xRelease THEN
|
||||
M_ChangeToManual();
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
// Handle production mode button
|
||||
IF stPackMLHMIInterface.stBtnProdMode.xRequest THEN
|
||||
stPackMLHMIInterface.stBtnProdMode.xRequest := FALSE;
|
||||
|
||||
IF stPackMLHMIInterface.stBtnProdMode.xRelease THEN
|
||||
M_ChangeToProd();
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
|
||||
// Handle clear button
|
||||
IF stPackMLHMIInterface.stBtnClear.xRequest THEN
|
||||
stPackMLHMIInterface.stBtnClear.xRequest := FALSE;
|
||||
|
||||
@@ -235,7 +258,28 @@ END_IF]]></ST>
|
||||
</Action>
|
||||
<Action Name="A_HandleHMIOutput" Id="{73c47dbe-0382-4e83-8c9e-e4744dd66394}">
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Handle clear button
|
||||
<ST><![CDATA[// Check for valid hmi interface reference
|
||||
IF (NOT __ISVALIDREF(stPackMLHMIInterface)) THEN
|
||||
RETURN;
|
||||
END_IF
|
||||
|
||||
// Handle manual mode button
|
||||
stPackMLHMIInterface.stBtnManualMode.xRelease := (stStatus.eStateCurrent = E_PackMLState.STOPPED) OR (stStatus.eStateCurrent = E_PackMLState.ABORTED);
|
||||
IF stStatus.eUnitModeCurrent = E_PackMLUnitMode.MANUAL THEN
|
||||
stPackMLHMIInterface.stBtnManualMode.eFeedback := E_HMI_BUTTON_FEEDBACK.ACTIVE;
|
||||
ELSE
|
||||
stPackMLHMIInterface.stBtnManualMode.eFeedback := E_HMI_BUTTON_FEEDBACK.NONE;
|
||||
END_IF
|
||||
|
||||
// Handle production mode button
|
||||
stPackMLHMIInterface.stBtnProdMode.xRelease := (stStatus.eStateCurrent = E_PackMLState.STOPPED) OR (stStatus.eStateCurrent = E_PackMLState.ABORTED);
|
||||
IF stStatus.eUnitModeCurrent = E_PackMLUnitMode.PRODUCTION THEN
|
||||
stPackMLHMIInterface.stBtnProdMode.eFeedback := E_HMI_BUTTON_FEEDBACK.ACTIVE;
|
||||
ELSE
|
||||
stPackMLHMIInterface.stBtnProdMode.eFeedback := E_HMI_BUTTON_FEEDBACK.NONE;
|
||||
END_IF
|
||||
|
||||
// Handle clear button
|
||||
stPackMLHMIInterface.stBtnClear.xRelease := (stStatus.eStateCurrent = E_PackMLState.ABORTED);
|
||||
IF stStatus.eStateCurrent = E_PackMLState.CLEARING THEN
|
||||
stPackMLHMIInterface.stBtnClear.eFeedback := E_HMI_BUTTON_FEEDBACK.ACTIVE;
|
||||
@@ -345,6 +389,28 @@ END_IF]]></ST>
|
||||
<ST><![CDATA[M_StateComplete();]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_ChangeToManual" Id="{c8cc7ed4-1875-4691-b0ed-83c905e5b965}" FolderPath="Commands\">
|
||||
<Declaration><![CDATA[METHOD M_ChangeToManual : BOOL
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[IF (stStatus.eStateCurrent = E_PackMLState.STOPPED) OR (stStatus.eStateCurrent = E_PackMLState.ABORTED) THEN
|
||||
_eMode := E_PackMLUnitMode.MANUAL;
|
||||
END_IF]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_ChangeToProd" Id="{84f37ed0-0634-44e0-9515-b7938cb81a06}" FolderPath="Commands\">
|
||||
<Declaration><![CDATA[METHOD M_ChangeToProd : BOOL
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[IF (stStatus.eStateCurrent = E_PackMLState.STOPPED) OR (stStatus.eStateCurrent = E_PackMLState.ABORTED) THEN
|
||||
_eMode := E_PackMLUnitMode.PRODUCTION;
|
||||
END_IF]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Clear" Id="{1ae1174f-acb8-4f8a-bc73-ec233f6637b2}" FolderPath="Commands\">
|
||||
<Declaration><![CDATA[METHOD M_Clear : BOOL
|
||||
|
||||
|
||||
@@ -40,10 +40,10 @@
|
||||
<Compile Include="01_Stationen\Aligner\FB_Aligner.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\Etcher\FB_Etcher.TcPOU">
|
||||
<Compile Include="01_Stationen\Aligner\ST_HMI_Aligner.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\ST_Etcher_HMIInterface.TcDUT">
|
||||
<Compile Include="01_Stationen\Etcher\FB_Etcher.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\ST_Meca_JointSet.TcDUT">
|
||||
@@ -58,26 +58,25 @@
|
||||
<Compile Include="01_Stationen\Etcher\Mecademics\FB_Mecademics.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\HeatCoolPlates\FB_CoolPlate.TcPOU">
|
||||
<Compile Include="01_Stationen\Etcher\ST_HMI_Etcher.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\HeatCoolPlates\FB_Coolplate.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\HeatCoolPlates\FB_HeatCoolPlates.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\HeatCoolPlates\FB_HotPlate.TcPOU">
|
||||
<Compile Include="01_Stationen\HeatCoolPlates\FB_Hotplate.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\HeatCoolPlates\FB_PWM.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\HeatCoolPlates\GVL_HeatCoolConfig.TcGVL">
|
||||
<SubType>Code</SubType>
|
||||
<LinkAlways>true</LinkAlways>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\HeatCoolPlates\ST_HCPlateHMIInterface.TcDUT">
|
||||
<Compile Include="01_Stationen\HeatCoolPlates\ST_HMI_Coolplate.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\HeatCoolPlates\ST_HCStationHMIInterface.TcDUT">
|
||||
<Compile Include="01_Stationen\HeatCoolPlates\ST_HMI_Hotplate.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\HeatCoolPlates\ST_SerialCrl.TcDUT">
|
||||
@@ -89,6 +88,9 @@
|
||||
<Compile Include="01_Stationen\HVTester\FB_HVTester.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\HVTester\ST_HMI_HVTester.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\Kuka_Robot\E_KukaRobot_JobNumberRobot.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
@@ -107,12 +109,21 @@
|
||||
<Compile Include="01_Stationen\Kuka_Robot\InterfaceStructs\ST_KukaRobot_State.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\Kuka_Robot\ST_HMI_Kuka.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\Kuka_Robot\ST_KukaRobot_JobParams.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\Kuka_Robot\ST_KukaRobot_UnitFeedbacks.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\NIO\FB_NOK.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\NIO\ST_HMI_NOK.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\TrayFeeder\E_TFInputStackState.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
@@ -131,6 +142,9 @@
|
||||
<Compile Include="01_Stationen\TrayFeeder\FB_TrayFeederParser.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\TrayFeeder\ST_HMI_TrayFeeder.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\TrayFeeder\ST_TrayFeederStatus.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
@@ -221,6 +235,7 @@
|
||||
<Folder Include="01_Stationen\Etcher" />
|
||||
<Folder Include="01_Stationen\HeatCoolPlates" />
|
||||
<Folder Include="01_Stationen\Aligner" />
|
||||
<Folder Include="01_Stationen\NIO" />
|
||||
<Folder Include="01_Stationen\TrayFeeder" />
|
||||
<Folder Include="01_Stationen" />
|
||||
<Folder Include="00_Main" />
|
||||
|
||||
109
PLC/PLC.tmc
109
PLC/PLC.tmc
File diff suppressed because one or more lines are too long
@@ -19,6 +19,36 @@
|
||||
</OwnerB>
|
||||
</OwnerA>
|
||||
</UnrestoredVarLinks>
|
||||
<UnrestoredVarLinks ImportTime="2026-02-18T23:52:50">
|
||||
<OwnerA Name="InputDst" Prefix="TIPC^PLC^PLC Instance" Type="1">
|
||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^HP (EK1100)^Term 48 (EL3202)">
|
||||
<Link VarA="PRG_Main._fbHeatCoolPlates._fbHeatingPlate._fbTempSensor.iAnalogValue" TypeA="INT" InOutA="0" GuidA="{18071995-0000-0000-0000-000000000006}" VarB="RTD Inputs Channel 1^HOTPLATE_CurrentTemp" RestoreInfo="ANotFound"/>
|
||||
</OwnerB>
|
||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^HP (EK1100)^Term 49 (EL6021)">
|
||||
<Link VarA="PRG_Main._fbHeatCoolPlates._fbCoolPlate.stStatus" TypeA="ST_SerialStatus" InOutA="0" GuidA="{316D4479-F8E3-7DF9-F5FD-35B2CCAFA8B4}" VarB="COM TxPDO-Map Inputs^Status" RestoreInfo="ANotFound"/>
|
||||
</OwnerB>
|
||||
</OwnerA>
|
||||
<OwnerA Name="OutputSrc" Prefix="TIPC^PLC^PLC Instance" Type="2">
|
||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^Box 44 (EX260-SEC1)">
|
||||
<Link VarA="PRG_Main._fbHVTester.xCloseDoor1" TypeA="BOOL" InOutA="1" GuidA="{18071995-0000-0000-0000-000000000030}" VarB="Byte 0^Output[3]" Size="1" RestoreInfo="ANotFound"/>
|
||||
<Link VarA="PRG_Main._fbHVTester.xCloseDoor2" TypeA="BOOL" InOutA="1" GuidA="{18071995-0000-0000-0000-000000000030}" VarB="Byte 0^Output[1]" Size="1" RestoreInfo="ANotFound"/>
|
||||
<Link VarA="PRG_Main._fbHVTester.xOpenDoor1" TypeA="BOOL" InOutA="1" GuidA="{18071995-0000-0000-0000-000000000030}" VarB="Byte 0^Output[2]" Size="1" RestoreInfo="ANotFound"/>
|
||||
<Link VarA="PRG_Main._fbHVTester.xOpenDoor2" TypeA="BOOL" InOutA="1" GuidA="{18071995-0000-0000-0000-000000000030}" VarB="Byte 0^Output[0]" Size="1" RestoreInfo="ANotFound"/>
|
||||
</OwnerB>
|
||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^HP (EK1100)^Term 47 (EL2004)">
|
||||
<Link VarA="PRG_Main._fbHeatCoolPlates._fbHeatingPlate.xEnableHotplate" TypeA="BOOL" InOutA="1" GuidA="{18071995-0000-0000-0000-000000000030}" VarB="Channel 1^HotplateControl" Size="1" RestoreInfo="ANotFound"/>
|
||||
</OwnerB>
|
||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^HP (EK1100)^Term 49 (EL6021)">
|
||||
<Link VarA="PRG_Main._fbHeatCoolPlates._fbCoolPlate.stCtrl" TypeA="ST_SerialCrl" InOutA="1" GuidA="{3D9C0EE4-9AEB-6E1F-C91F-A19495867B58}" VarB="COM RxPDO-Map Outputs^Ctrl" RestoreInfo="ANotFound"/>
|
||||
</OwnerB>
|
||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^HV_K01_KL01^HV_K01_KL07 (EL2008)">
|
||||
<Link VarA="PRG_Main._fbHVTester.xCloseChamber1" TypeA="BOOL" InOutA="1" GuidA="{18071995-0000-0000-0000-000000000030}" VarB="Channel 6^HV Hot_CloseChamber" Size="1" RestoreInfo="ANotFound"/>
|
||||
<Link VarA="PRG_Main._fbHVTester.xCloseChamber2" TypeA="BOOL" InOutA="1" GuidA="{18071995-0000-0000-0000-000000000030}" VarB="Channel 3^HV Cold_CloseChamber" Size="1" RestoreInfo="ANotFound"/>
|
||||
<Link VarA="PRG_Main._fbHVTester.xOpenChamber1" TypeA="BOOL" InOutA="1" GuidA="{18071995-0000-0000-0000-000000000030}" VarB="Channel 5^HV Hot_OpenChamber" Size="1" RestoreInfo="ANotFound"/>
|
||||
<Link VarA="PRG_Main._fbHVTester.xOpenChamber2" TypeA="BOOL" InOutA="1" GuidA="{18071995-0000-0000-0000-000000000030}" VarB="Channel 2^HV Cold_OpenChamber" Size="1" RestoreInfo="ANotFound"/>
|
||||
</OwnerB>
|
||||
</OwnerA>
|
||||
</UnrestoredVarLinks>
|
||||
<Contexts>
|
||||
<Context>
|
||||
<Id>0</Id>
|
||||
@@ -41,30 +71,83 @@
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbAligner.diYOffset" VarB="Module 1 (Result Data 128Byte)^Result Data 128Byte^Result Data8"/>
|
||||
</OwnerB>
|
||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^Box 44 (EX260-SEC1)">
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester.xCloseDoor1" VarB="Byte 0^Output[3]" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester.xCloseDoor2" VarB="Byte 0^Output[1]" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester.xOpenDoor1" VarB="Byte 0^Output[2]" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester.xOpenDoor2" VarB="Byte 0^Output[0]" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTesterCold.stDoorValve.xCloseValve" VarB="Byte 0^Output[1]" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTesterCold.stDoorValve.xOpenValve" VarB="Byte 0^Output[0]" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTesterHot.stDoorValve.xCloseValve" VarB="Byte 0^Output[3]" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTesterHot.stDoorValve.xOpenValve" VarB="Byte 0^Output[2]" Size="1"/>
|
||||
</OwnerB>
|
||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^Box 7 (EX600-SEC#)">
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbAligner.xActivateVacuum" VarB="Module 1 (EX600-SEC#, 32 Valves)^Valve Outputs^Aligner enable vacuum" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbAligner.xDeactivateVacuum" VarB="Module 1 (EX600-SEC#, 32 Valves)^Valve Outputs^Aligner disable vacuum" Size="1"/>
|
||||
</OwnerB>
|
||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^HP (EK1100)^Term 47 (EL2004)">
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHeatCoolPlates._fbHeatingPlate.xEnableHotplate" VarB="Channel 1^HotplateControl" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHotplate.xEnableHotplate" VarB="Channel 1^HotplateControl" Size="1"/>
|
||||
</OwnerB>
|
||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^HP (EK1100)^Term 48 (EL3202)">
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbHeatCoolPlates._fbHeatingPlate._fbTempSensor.iAnalogValue" VarB="RTD Inputs Channel 1^HOTPLATE_CurrentTemp"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate._fbTempSensor.iAnalogValue" VarB="RTD Inputs Channel 2^CP_CurrentTemp"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate._fbTempSensor.xErrorCard" VarB="RTD Inputs Channel 2^Status^Error" Size="1"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate._fbTempSensor.xOverrange" VarB="RTD Inputs Channel 2^Status^Overrange" Size="1"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate._fbTempSensor.xUnderrange" VarB="RTD Inputs Channel 2^Status^Underrange" Size="1"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbHotplate._fbTempSensor.iAnalogValue" VarB="RTD Inputs Channel 1^HOTPLATE_CurrentTemp"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbHotplate._fbTempSensor.xErrorCard" VarB="RTD Inputs Channel 1^Status^Error" Size="1"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbHotplate._fbTempSensor.xOverrange" VarB="RTD Inputs Channel 1^Status^Overrange" Size="1"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbHotplate._fbTempSensor.xUnderrange" VarB="RTD Inputs Channel 1^Status^Underrange" Size="1"/>
|
||||
</OwnerB>
|
||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^HP (EK1100)^Term 49 (EL6021)">
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbHeatCoolPlates._fbCoolPlate.stStatus" VarB="COM TxPDO-Map Inputs^Status"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHeatCoolPlates._fbCoolPlate.stCtrl" VarB="COM RxPDO-Map Outputs^Ctrl"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 0" Size="8"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 1" Size="8" OffsA="8"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 10" Size="8" OffsA="80"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 11" Size="8" OffsA="88"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 12" Size="8" OffsA="96"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 13" Size="8" OffsA="104"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 14" Size="8" OffsA="112"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 15" Size="8" OffsA="120"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 16" Size="8" OffsA="128"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 17" Size="8" OffsA="136"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 18" Size="8" OffsA="144"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 19" Size="8" OffsA="152"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 2" Size="8" OffsA="16"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 20" Size="8" OffsA="160"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 21" Size="8" OffsA="168"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 3" Size="8" OffsA="24"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 4" Size="8" OffsA="32"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 5" Size="8" OffsA="40"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 6" Size="8" OffsA="48"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 7" Size="8" OffsA="56"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 8" Size="8" OffsA="64"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.abyDataIn" VarB="COM TxPDO-Map Inputs^Data In 9" Size="8" OffsA="72"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbCoolplate.stStatus" VarB="COM TxPDO-Map Inputs^Status"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 0" Size="8"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 1" Size="8" OffsA="8"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 10" Size="8" OffsA="80"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 11" Size="8" OffsA="88"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 12" Size="8" OffsA="96"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 13" Size="8" OffsA="104"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 14" Size="8" OffsA="112"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 15" Size="8" OffsA="120"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 16" Size="8" OffsA="128"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 17" Size="8" OffsA="136"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 18" Size="8" OffsA="144"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 19" Size="8" OffsA="152"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 2" Size="8" OffsA="16"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 20" Size="8" OffsA="160"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 21" Size="8" OffsA="168"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 3" Size="8" OffsA="24"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 4" Size="8" OffsA="32"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 5" Size="8" OffsA="40"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 6" Size="8" OffsA="48"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 7" Size="8" OffsA="56"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 8" Size="8" OffsA="64"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.abyDataOut" VarB="COM RxPDO-Map Outputs^Data Out 9" Size="8" OffsA="72"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.stCtrl" VarB="COM RxPDO-Map Outputs^Ctrl"/>
|
||||
</OwnerB>
|
||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^HV_K01_KL01^HV_K01_KL07 (EL2008)">
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester.xCloseChamber1" VarB="Channel 6^HV Hot_CloseChamber" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester.xCloseChamber2" VarB="Channel 3^HV Cold_CloseChamber" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester.xOpenChamber1" VarB="Channel 5^HV Hot_OpenChamber" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester.xOpenChamber2" VarB="Channel 2^HV Cold_OpenChamber" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTesterCold.stReleaseChamberMovement.xOpenValve" VarB="Channel 4^HV Cold_Vlave" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTesterCold.stTestChamberValve.xCloseValve" VarB="Channel 3^HV Cold_CloseChamber" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTesterCold.stTestChamberValve.xOpenValve" VarB="Channel 2^HV Cold_OpenChamber" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTesterHot.stReleaseChamberMovement.xOpenValve" VarB="Channel 7^HV Hot_Valve" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTesterHot.stTestChamberValve.xCloseValve" VarB="Channel 6^HV Hot_CloseChamber" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTesterHot.stTestChamberValve.xOpenValve" VarB="Channel 5^HV Hot_OpenChamber" Size="1"/>
|
||||
</OwnerB>
|
||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^K01_KL01 (EK1100)^K01_KL02 (EL1018)">
|
||||
<Link VarA="PlcTask Inputs^PRG_Safety.xRequestOpenDoor" VarB="Channel 4^MainDoorUnlock" Size="1"/>
|
||||
|
||||
Reference in New Issue
Block a user