Linked all tank sensors in media cabinet

- Additional fixes for the hmi
This commit is contained in:
2026-03-10 18:03:28 +01:00
parent 218d815380
commit f4562af86f
24 changed files with 1859 additions and 288 deletions

View File

@@ -41,13 +41,13 @@
</Io> </Io>
</Project> </Project>
<Mappings> <Mappings>
<MappingInfo Identifier="{00000000-2001-0850-0020-500840000403}" Id="#x02030050"/> <MappingInfo Identifier="{00000000-2001-0850-0020-500840000403}" Id="#x02030080"/>
<MappingInfo Identifier="{00000000-2001-0850-0020-500851000403}" Id="#x02030040"/> <MappingInfo Identifier="{00000000-2001-0850-0020-500851000403}" Id="#x02030040"/>
<MappingInfo Identifier="{00000000-2001-0850-0020-500890000403}" Id="#x02030080"/> <MappingInfo Identifier="{00000000-2001-0850-0020-500890000403}" Id="#x02030060"/>
<MappingInfo Identifier="{00000000-2001-0850-0020-5008B0000403}" Id="#x02030070"/> <MappingInfo Identifier="{00000000-2001-0850-0020-5008B0000403}" Id="#x02030050"/>
<MappingInfo Identifier="{00000000-0010-0304-3000-040310000403}" Id="#x02030010"/> <MappingInfo Identifier="{00000000-0010-0304-3000-040310000403}" Id="#x02030010"/>
<MappingInfo Identifier="{00000000-0020-0304-3000-040322000403}" Id="#x02030030"/> <MappingInfo Identifier="{00000000-0020-0304-3000-040322000403}" Id="#x02030030"/>
<MappingInfo Identifier="{05000010-2001-0850-3000-040300205008}" Id="#x02030060" Watchdog="10000000040000000400000004000000"/> <MappingInfo Identifier="{05000010-2001-0850-3000-040300205008}" Id="#x02030070" Watchdog="10000000040000000400000004000000"/>
<MappingInfo Identifier="{03040050-0050-0304-5000-040350000403}" Id="#x02030020" Watchdog="04000000040000000400000004000000"/> <MappingInfo Identifier="{03040050-0050-0304-5000-040350000403}" Id="#x02030020" Watchdog="04000000040000000400000004000000"/>
</Mappings> </Mappings>
</TcSmProject> </TcSmProject>

View File

@@ -17,6 +17,10 @@ VAR
_fbCoolplate : FB_Coolplate; _fbCoolplate : FB_Coolplate;
_fbHVTesterHot : FB_HVTester; _fbHVTesterHot : FB_HVTester;
_fbHVTesterCold : FB_HVTester; _fbHVTesterCold : FB_HVTester;
_fbMediaCabinet : FB_MediaCabinet;
_fbModbusMaster : FB_ModbusMaster;
_fbFlowSensor : FB_Levi_LFC6IO;
//_fbInput : FB_Input; //_fbInput : FB_Input;
//_fbNOK : FB_NOK; //_fbNOK : FB_NOK;
//_fbTrayFeederOutput : FB_TrayFeeder(sIPAddr := '192.168.1.11', udiPort := 5000); //_fbTrayFeederOutput : FB_TrayFeeder(sIPAddr := '192.168.1.11', udiPort := 5000);
@@ -25,6 +29,7 @@ VAR
// ======================= // =======================
// DEBUG AND TESTING STUFF // DEBUG AND TESTING STUFF
// ======================= // =======================
_xReadFullScale : BOOL;
_xReleaseAlarms : BOOL; _xReleaseAlarms : BOOL;
_stRobotCmd : ST_PMLc; _stRobotCmd : ST_PMLc;
@@ -109,6 +114,12 @@ _fbCoolplate(stHMIInterface := GVL_SCADA.stMachine.stCoolplate);
_fbAligner(stCommand:= , stStatus=> , stAdmin=> , xConfirmAlarms:= GVL_SCADA.stMachine.stConfirmAlarmsBtn.xRequest, stHMIInterface := GVL_SCADA.stMachine.stAligner); _fbAligner(stCommand:= , stStatus=> , stAdmin=> , xConfirmAlarms:= GVL_SCADA.stMachine.stConfirmAlarmsBtn.xRequest, stHMIInterface := GVL_SCADA.stMachine.stAligner);
_fbMediaCabinet(
xReleaseManualMode := TRUE,
xReleaseErrors := _xReleaseAlarms,
xConfirmAlarms := GVL_SCADA.stMachine.stConfirmAlarmsBtn.xRequest,
stHMIInterface := GVL_SCADA.stMachine.stMediaCabinet);
// Call safety program // Call safety program
PRG_Safety( PRG_Safety(
@@ -117,6 +128,23 @@ PRG_Safety(
// Handle robot cmds // Handle robot cmds
M_HandleRobotCmd(); M_HandleRobotCmd();
// DEBUG
//_fbModbusMaster();
// IF _xReadFullScale THEN
// _xReadFullScale := FALSE;
//
// _fbFlowSensor(
// byBaseAddr:= ,
// xReleaseAlarms:= ,
// xConfirmAlarms:= ,
// fbMBMaster:= ,
// rCurrFlowrate=> ,
// xBusy=> ,
// xDone=> ,
// xError=> );
// END_IF
// Main state machine // Main state machine
CASE _iState OF CASE _iState OF

View File

@@ -22,6 +22,10 @@ VAR
xLEDMachineOn AT %Q* : BOOL; xLEDMachineOn AT %Q* : BOOL;
xLEDMachineOff AT %Q* : BOOL; xLEDMachineOff AT %Q* : BOOL;
xLockMediaDoor1 AT %Q* : BOOL := TRUE;
xLockMediaDoor2 AT %Q* : BOOL := TRUE;
xLockMediaDoor3 AT %Q* : BOOL := TRUE;
_rtDoorUnlock : R_TRIG; _rtDoorUnlock : R_TRIG;
_tofErrorAck : TOF; _tofErrorAck : TOF;

View File

@@ -39,6 +39,8 @@ STRUCT
stHVTesterCold : ST_HMI_HVTester; stHVTesterCold : ST_HMI_HVTester;
stTrayFeederOut : ST_HMI_TrayFeeder; stTrayFeederOut : ST_HMI_TrayFeeder;
stNOK : ST_HMI_NOK; stNOK : ST_HMI_NOK;
stMediaCabinet : ST_HMI_MediaCabinet;
END_STRUCT END_STRUCT
END_TYPE END_TYPE
]]></Declaration> ]]></Declaration>

View File

@@ -90,7 +90,7 @@ _fbValveDoor(
xAutomaticOpen:= xOpenDoor, xAutomaticOpen:= xOpenDoor,
xReleaseErrors:= xReleaseAlarms, xReleaseErrors:= xReleaseAlarms,
stValveConfig:= _stValveDoorCfg, stValveConfig:= _stValveDoorCfg,
xReleaseManualMode:= FALSE, xReleaseManualMode:= xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms, xConfirmAlarms:= xConfirmAlarms,
stHMIInterface:= stHMIInterface.stDoorValve); stHMIInterface:= stHMIInterface.stDoorValve);

View File

@@ -90,6 +90,8 @@ _fbPWMOut(
xOutput=> xEnableHotplate); xOutput=> xEnableHotplate);
SUPER^(stPackMLHMIInterface := stHMIInterface.stStationCmds); SUPER^(stPackMLHMIInterface := stHMIInterface.stStationCmds);
M_HandleHMIOutput();
]]></ST> ]]></ST>
</Implementation> </Implementation>
<Action Name="A_HandleHMIInput" Id="{d22cec08-4a88-4001-b04b-e7a9775ff9a8}"> <Action Name="A_HandleHMIInput" Id="{d22cec08-4a88-4001-b04b-e7a9775ff9a8}">
@@ -101,6 +103,20 @@ END_IF
IF stHMIInterface.stSetpoint.rValue < 0.0 THEN IF stHMIInterface.stSetpoint.rValue < 0.0 THEN
stHMIInterface.stSetpoint.rValue := 0.0; stHMIInterface.stSetpoint.rValue := 0.0;
END_IF
IF stHMIInterface.stEnableBtn.xRequest THEN
stHMIInterface.stEnableBtn.xRequest := FALSE;
IF stHMIInterface.stEnableBtn.xRelease THEN
_xEnable := TRUE;
END_IF
END_IF
IF stHMIInterface.stDisableBtn.xRequest THEN
stHMIInterface.stDisableBtn.xRequest := FALSE;
IF stHMIInterface.stDisableBtn.xRelease THEN
_xEnable := FALSE;
END_IF
END_IF]]></ST> END_IF]]></ST>
</Implementation> </Implementation>
</Action> </Action>
@@ -128,5 +144,23 @@ END_VAR
<ST><![CDATA[]]></ST> <ST><![CDATA[]]></ST>
</Implementation> </Implementation>
</Method> </Method>
<Method Name="M_HandleHMIOutput" Id="{64dfce9b-801c-40e9-9327-9ba9e736e727}">
<Declaration><![CDATA[METHOD PRIVATE M_HandleHMIOutput
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[stHMIInterface.stEnableBtn.xRelease := (NOT _xEnable);
IF _xEnable THEN
stHMIInterface.stEnableBtn.eFeedback := 1;
stHMIInterface.stDisableBtn.eFeedback := 0;
ELSE
stHMIInterface.stDisableBtn.eFeedback := 1;
stHMIInterface.stEnableBtn.eFeedback := 0;
END_IF
stHMIInterface.stDisableBtn.xRelease := _xEnable;]]></ST>
</Implementation>
</Method>
</POU> </POU>
</TcPlcObject> </TcPlcObject>

View File

@@ -460,7 +460,7 @@ END_VAR]]></Declaration>
0: 0:
_byGripperSideNrCalc := M_CalcGripperNr(_stJobParams.byGripperNumber); _byGripperSideNrCalc := M_CalcGripperNr(_stJobParams.byGripperNumber);
IF (_stJobParams.byGripperNumber > 3) // Wrong gripper number IF (_stJobParams.byGripperNumber > 4) // Wrong gripper number
//OR (_stJobParams.byChuckNumber < 1) OR (_stJobParams.byChuckNumber > 6) // Wrong chuck number //OR (_stJobParams.byChuckNumber < 1) OR (_stJobParams.byChuckNumber > 6) // Wrong chuck number
OR (_byGripperSideNrCalc < 1) OR (_byGripperSideNrCalc > 6) // Wrong gripper side OR (_byGripperSideNrCalc < 1) OR (_byGripperSideNrCalc > 6) // Wrong gripper side
THEN THEN
@@ -470,9 +470,9 @@ END_VAR]]></Declaration>
END_IF END_IF
// BLOCKIERE GREIFER TAUSCH, DA AKTUELL KABEL DEFEKT !!!!! // BLOCKIERE GREIFER TAUSCH, DA AKTUELL KABEL DEFEKT !!!!!
IF _stJobParams.eJob = E_KukaRobot_JobNumberRobot.CHANGE_GRIPPER THEN // IF _stJobParams.eJob = E_KukaRobot_JobNumberRobot.CHANGE_GRIPPER THEN
_eCmd := E_PackMLCmd.ABORT;; // _eCmd := E_PackMLCmd.ABORT;;
END_IF // END_IF
// Transfer job data to robot // Transfer job data to robot
10: 10:
@@ -496,16 +496,16 @@ END_VAR]]></Declaration>
END_IF END_IF
// Position on hotplate // Position on hotplate
abyToolsAndPositions[2] := stJobParams.byPlaceOnHotplate; abyToolsAndPositions[2] := _stJobParams.byPlaceOnHotplate;
// Position on coolplate // Position on coolplate
abyToolsAndPositions[3] := stJobParams.byPlaceOnCoolPlate; abyToolsAndPositions[3] := _stJobParams.byPlaceOnCoolPlate;
// Gripper number // Gripper number
abyToolsAndPositions[0] := stJobParams.byGripperNumber; abyToolsAndPositions[0] := _stJobParams.byGripperNumber;
// Chuck for etcher to load // Chuck for etcher to load
abyToolsAndPositions[1] := stJobParams.byChuckNumber; abyToolsAndPositions[1] := _stJobParams.byChuckNumber;
// Safety reset timout fb // Safety reset timout fb
_tonTimeout(IN := FALSE); _tonTimeout(IN := FALSE);
@@ -516,10 +516,10 @@ END_VAR]]></Declaration>
15: 15:
_tonTimeout(IN := TRUE, PT := T#5S); _tonTimeout(IN := TRUE, PT := T#5S);
IF abyMirrorToolsAndPositions[0] = stJobParams.byGripperNumber IF abyMirrorToolsAndPositions[0] = _stJobParams.byGripperNumber
AND abyMirrorToolsAndPositions[1] = stJobParams.byChuckNumber AND abyMirrorToolsAndPositions[1] = _stJobParams.byChuckNumber
AND abyMirrorToolsAndPositions[2] = stJobParams.byPlaceOnHotplate AND abyMirrorToolsAndPositions[2] = _stJobParams.byPlaceOnHotplate
AND abyMirrorToolsAndPositions[3] = stJobParams.byPlaceOnCoolPlate AND abyMirrorToolsAndPositions[3] = _stJobParams.byPlaceOnCoolPlate
THEN THEN
_tonTimeout(IN := FALSE); _tonTimeout(IN := FALSE);
_iSSM := 20; _iSSM := 20;

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="ST_HMI_MediaCabinet" Id="{531277fd-be49-4a36-8089-70f1b95b2250}">
<Declaration><![CDATA[TYPE ST_HMI_MediaCabinet :
STRUCT
// (1) Acetic acid 99%
stTankAceticAcidHigh : ST_HMI_Tank;
// (2) Sulfuric acid
stTankSulfuricAcid : ST_HMI_Tank;
// (3) Nitric acid 65% mixing
stTankNitricAcid : ST_HMI_Tank;
// (4) Acetic acid 10%
stTankAceticAcidLow : ST_HMI_Tank;
// (5) Hydrofluoric acid 40%
stTankHydrofluoricAcid : ST_HMI_Tank;
// (6) Sulfuric acid mixing
stTankSulfuricAcidMixing : ST_HMI_Tank;
// (7) Hydrofluoric acid 40% for mixing
stTankHydrofluoricAcidMixing : ST_HMI_Tank;
// (8) SEF
stTankSEF : ST_HMI_Tank;
// (9) Filmetch
stTankFilmetch : ST_HMI_Tank;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -3,10 +3,14 @@
<DUT Name="ST_HMI_Tank" Id="{65129234-1803-4176-b0ff-e2e1212dc4a3}"> <DUT Name="ST_HMI_Tank" Id="{65129234-1803-4176-b0ff-e2e1212dc4a3}">
<Declaration><![CDATA[TYPE ST_HMI_Tank : <Declaration><![CDATA[TYPE ST_HMI_Tank :
STRUCT STRUCT
stWaterValve : ST_HMI_VALVE_DATA;
stFillingValve : ST_HMI_VALVE_DATA; stFillingValve : ST_HMI_VALVE_DATA;
stDrainValve : ST_HMI_VALVE_DATA; stDrainValve : ST_HMI_VALVE_DATA;
stPumpValve : ST_HMI_VALVE_DATA; stPumpValve : ST_HMI_VALVE_DATA;
stEmptyButton : ST_HMI_CONTROL_BUTTON;
stFillButton : ST_HMI_CONTROL_BUTTON;
xOverfull : BOOL; xOverfull : BOOL;
xFull : BOOL; xFull : BOOL;
xEmpty : BOOL; xEmpty : BOOL;

View File

@@ -1,164 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<POU Name="FB_Levi_Flowsensor" Id="{650b4e84-15bc-4cc6-bda5-d5ab333779ee}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK FB_Levi_LFC6IO
VAR_INPUT
// Base station address
byBaseAddr : BYTE;
xReleaseAlarms : BOOL;
xConfirmAlarms : BOOL;
END_VAR
VAR_IN_OUT
// Modbus master comm fb
fbMBMaster : ModbusRtuMasterV2_KL6x22B;
END_VAR
VAR_OUTPUT
// Current flowrate in ml/min
rCurrFlowrate : ARRAY[0..5] OF REAL;
xBusy : BOOL;
xDone : BOOL;
xError : BOOL;
END_VAR
VAR
// Full scale value of all channels in ml/min
_dwFullScale : DWORD;
// Channel data
_astChannelData : ARRAY[0..5] OF ST_Levi_ChData;
// Temporary data storage for writing settings
_awTempData : ARRAY[0..1] OF WORD;
// State machine state
_iState : INT;
// Internal commands
_eCmd : (NONE, SET_FULL_SCALE, );
END_VAR
VAR CONSTANT
REG_SET_MODE : WORD := 0;
REG_FULL_SCALE : WORD := 2;
REG_CH_DATA : WORD := 0;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[CASE _iState OF
// Wait for Modbus master to be ready
0:
IF (NOT fbMBMaster.BUSY)THEN
// Get full scale value for later flow calculation
fbMBMaster.UnitID := byBaseAddr;
fbMBMaster.MBAddr := REG_FULL_SCALE;
fbMBMaster.Quantity := 2;
fbMBMaster.cbLength := SIZEOF(_dwFullScale);
fbMBMaster.pMemoryAddr := ADR(_dwFullScale);
_iState := 10;
END_IF
// Wait for reading done
10:
fbMBMaster.ReadRegs();
IF (NOT fbMBMaster.BUSY) THEN
_iState := 20;
END_IF
IF fbMBMaster.Error THEN
_iState := 900;
END_IF
// Poll channel data
20:
IF THEN
fbMBMaster.UnitID := byBaseAddr;
fbMBMaster.MBAddr := REG_CH_DATA;
fbMBMaster.Quantity := 24;
fbMBMaster.cbLength := SIZEOF(_astChannelData);
fbMBMaster.pMemoryAddr := ADR(_astChannelData);
// Call once to set MB Master to busy
fbMBMaster.ReadInputRegs();
_iState := 21;
ELSIF (_eCmd <> NONE) AND (NOT fbMBMaster.BUSY) THEN
_iState := 30;
END_IF
// Wait for response
21:
fbMBMaster.ReadInputRegs();
IF (NOT fbMBMaster.BUSY) THEN
// Calculate output flowrates
M_CalcOutputData();
_iState := 20;
END_IF
IF fbMBMaster.Error THEN
_iState := 900;
END_IF
// Command handling -> Set mode
30:
// Set bit 1 to 1 for Set Mode
_awTempData[0] := 2#10;
fbMBMaster.UnitID := byBaseAddr;
fbMBMaster.MBAddr := REG_SET_MODE;
fbMBMaster.Quantity := 1;
fbMBMaster.cbLength := 2;
fbMBMaster.pMemoryAddr := ADR(_awTempData[0]);
// Error state
900:
IF xConfirmAlarms THEN
xError := FALSE;
_iState := 0;
END_IF
END_CASE]]></ST>
</Implementation>
<Method Name="M_CalcOutputData" Id="{5b932e1a-1437-4032-adb5-2eae4b98574c}">
<Declaration><![CDATA[METHOD PRIVATE M_CalcOutputData
VAR
i : int;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[FOR i := 0 TO 5 DO
// Current flowrate from channel data is in % of full scale (-30.000 ~ 30.000 => (-300 ~ +300) %
// _Full scale is in l/min but scaling is as followed: 10 ~ 500000 => (0.010 ~ 500) l/min => (10 ~ 500.000) ml/min
// Result is in ml/min
rCurrFlowrate[i] := (SINT_TO_REAL(_astChannelData[i].siCurrFlow) * DWORD_TO_REAL(_dwFullScale)) / 10_000;
END_FOR
]]></ST>
</Implementation>
</Method>
<Method Name="M_ReadSensorData" Id="{2cd73435-5e66-4519-8bdc-106eb3093539}">
<Declaration><![CDATA[METHOD M_ReadSensorData : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[IF xBusy THEN
M_ReadSensorData := FALSE;
RETURN;
END_IF
]]></ST>
</Implementation>
</Method>
<Method Name="M_SetFullScale" Id="{ee32b999-71fe-4e16-ab8c-09e92e1f41ef}">
<Declaration><![CDATA[METHOD M_SetFullScale : BOOL
VAR_INPUT
// Full scale in ml/min
siFullScale : SINT;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
</Method>
</POU>
</TcPlcObject>

View File

@@ -0,0 +1,248 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<POU Name="FB_Levi_LFC6IO" Id="{650b4e84-15bc-4cc6-bda5-d5ab333779ee}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK FB_Levi_LFC6IO
VAR_INPUT
// Base station address
byBaseAddr : BYTE;
xReleaseAlarms : BOOL;
xConfirmAlarms : BOOL;
END_VAR
VAR_IN_OUT
// Modbus master comm fb
fbMBMaster : FB_ModbusMaster;
END_VAR
VAR_OUTPUT
// Current flowrate in ml/min
rCurrFlowrate : ARRAY[0..5] OF REAL;
xBusy : BOOL;
xDone : BOOL;
xError : BOOL;
END_VAR
VAR
// Full scale value of all channels in ml/min
_dwFullScale : DWORD := 4000;
// Channel data
_astChannelData : ARRAY[0..5] OF ST_Levi_ChData;
// Temporary data storage for writing settings
_awTempData : ARRAY[0..1] OF WORD;
// Start waiting for response
_xExecute : BOOL;
_xReady : BOOL;
_xError : BOOL;
// Request data
_stModbusData : ST_Modbus_Req;
_xMBDone : BOOL;
_xMBError : BOOL;
// State machine state
_iState : INT;
END_VAR
VAR CONSTANT
REG_SET_MODE : WORD := 0;
REG_FULL_SCALE : WORD := 2;
REG_CH_DATA : WORD := 0;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[CASE _iState OF
// Idle
0:
IF _xExecute THEN
_xExecute := FALSE;
_iState := 10;
END_IF
// Wait for reading done
10:
IF _xMBDone THEN
_xReady := TRUE;
xBusy := FALSE;
xDone := TRUE;
_iState := 0;
END_IF
IF _xMBError THEN
_iState := 900;
END_IF
// Error state
900:
xDone := FALSE;
xBusy := FALSE;
xError := TRUE;
_iState := 901;
// Wait for reset
901:
IF xConfirmAlarms THEN
_xReady := TRUE;
xError := FALSE;
_iState := 0;
END_IF
END_CASE
// Calculate output data
M_CalcOutputData();]]></ST>
</Implementation>
<Method Name="M_CalcOutputData" Id="{5b932e1a-1437-4032-adb5-2eae4b98574c}">
<Declaration><![CDATA[METHOD PRIVATE M_CalcOutputData
VAR
i : int;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[FOR i := 0 TO 5 DO
// Current flowrate from channel data is in % of full scale (-30.000 ~ 30.000 => (-300 ~ +300) %
// _Full scale is in l/min but scaling is as followed: 10 ~ 500000 => (0.010 ~ 500) l/min => (10 ~ 500.000) ml/min
// Result is in ml/min
rCurrFlowrate[i] := (SINT_TO_REAL(_astChannelData[i].siCurrFlow) * DWORD_TO_REAL(_dwFullScale)) / 10_000;
END_FOR
]]></ST>
</Implementation>
</Method>
<Method Name="M_DisableSetMode" Id="{f89e844d-3a6f-40d7-9da3-bae450f616ea}">
<Declaration><![CDATA[METHOD M_DisableSetMode : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[IF _xReady THEN
M_StartExec();
// Prepare value to write
_awTempData[0] := 0;
_awTempData[1] := 0;
_stModbusData.bySlaveAddr := byBaseAddr;
_stModbusData.eCmd := E_Modbus_Cmd.WRITE_HOLDING;
_stModbusData.pvData := ADR(_awTempData);
_stModbusData.pxDone := ADR(_xMBDone);
_stModbusData.pxError := ADR(_xMBError);
_stModbusData.wDataSize := SIZEOF(_awTempData[0]);
_stModbusData.wQuantity := 1;
_stModbusData.wStartAddr := REG_SET_MODE;
fbMBMaster.M_Enqueue(stReq := _stModbusData);
END_IF]]></ST>
</Implementation>
</Method>
<Method Name="M_EnableSetMode" Id="{de18b8f5-be31-468c-a5e8-49fab953c64b}">
<Declaration><![CDATA[METHOD M_EnableSetMode : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[IF _xReady THEN
M_StartExec();
// Prepare value to write
_awTempData[0] := 2#10;
_awTempData[1] := 0;
_stModbusData.bySlaveAddr := byBaseAddr;
_stModbusData.eCmd := E_Modbus_Cmd.WRITE_HOLDING;
_stModbusData.pvData := ADR(_awTempData);
_stModbusData.pxDone := ADR(_xMBDone);
_stModbusData.pxError := ADR(_xMBError);
_stModbusData.wDataSize := SIZEOF(_awTempData[0]);
_stModbusData.wQuantity := 1;
_stModbusData.wStartAddr := REG_SET_MODE;
fbMBMaster.M_Enqueue(stReq := _stModbusData);
END_IF]]></ST>
</Implementation>
</Method>
<Method Name="M_PollSensorData" Id="{95195e13-015b-491e-bb17-770ecd95cc2e}">
<Declaration><![CDATA[METHOD M_PollSensorData : BOOL;
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[IF _xReady THEN
M_StartExec();
_stModbusData.bySlaveAddr := byBaseAddr;
_stModbusData.eCmd := E_Modbus_Cmd.READ_INPUTS;
_stModbusData.pvData := ADR(_astChannelData);
_stModbusData.pxDone := ADR(_xMBDone);
_stModbusData.pxError := ADR(_xMBError);
_stModbusData.wDataSize := SIZEOF(_astChannelData);
_stModbusData.wQuantity := 24;
_stModbusData.wStartAddr := REG_CH_DATA;
fbMBMaster.M_Enqueue(stReq := _stModbusData);
END_IF
]]></ST>
</Implementation>
</Method>
<Method Name="M_ReadFullScale" Id="{14c84036-88ce-4b20-9f11-8cae269c566f}">
<Declaration><![CDATA[METHOD M_ReadFullScale : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[IF _xReady THEN
M_StartExec();
_stModbusData.bySlaveAddr := byBaseAddr;
_stModbusData.eCmd := E_Modbus_Cmd.READ_HOLDING;
_stModbusData.pvData := ADR(_dwFullScale);
_stModbusData.pxDone := ADR(_xMBDone);
_stModbusData.pxError := ADR(_xMBError);
_stModbusData.wDataSize := SIZEOF(_dwFullScale);
_stModbusData.wQuantity := 2;
_stModbusData.wStartAddr := REG_FULL_SCALE;
fbMBMaster.M_Enqueue(stReq := _stModbusData);
END_IF]]></ST>
</Implementation>
</Method>
<Method Name="M_SetFullScale" Id="{ee32b999-71fe-4e16-ab8c-09e92e1f41ef}">
<Declaration><![CDATA[METHOD M_SetFullScale : BOOL
VAR_INPUT
// Full scale in ml/min
dwFullScale : DWORD;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[IF _xReady THEN
M_StartExec();
_dwFullScale := dwFullScale;
_stModbusData.bySlaveAddr := byBaseAddr;
_stModbusData.eCmd := E_Modbus_Cmd.WRITE_HOLDING;
_stModbusData.pvData := ADR(_dwFullScale);
_stModbusData.pxDone := ADR(_xMBDone);
_stModbusData.pxError := ADR(_xMBError);
_stModbusData.wDataSize := SIZEOF(_dwFullScale);
_stModbusData.wQuantity := 2;
_stModbusData.wStartAddr := REG_FULL_SCALE;
fbMBMaster.M_Enqueue(stReq := _stModbusData);
END_IF]]></ST>
</Implementation>
</Method>
<Method Name="M_StartExec" Id="{991a93fa-4cc2-4ad6-b2a3-8f9bf70f5fb5}">
<Declaration><![CDATA[METHOD PRIVATE M_StartExec
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[xBusy := TRUE;
xDone := FALSE;
xError := FALSE;
_xReady := FALSE;
_xExecute := TRUE;]]></ST>
</Implementation>
</Method>
</POU>
</TcPlcObject>

View File

@@ -3,9 +3,15 @@
<POU Name="FB_MediaCabinet" Id="{9de34b64-23ba-4fef-b086-9297bbd06f24}" SpecialFunc="None"> <POU Name="FB_MediaCabinet" Id="{9de34b64-23ba-4fef-b086-9297bbd06f24}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK FB_MediaCabinet <Declaration><![CDATA[FUNCTION_BLOCK FB_MediaCabinet
VAR_INPUT VAR_INPUT
xReleaseManualMode : BOOL;
xReleaseErrors : BOOL;
xConfirmAlarms : BOOL;
END_VAR END_VAR
VAR_OUTPUT VAR_OUTPUT
END_VAR END_VAR
VAR_IN_OUT
stHMIInterface : ST_HMI_MediaCabinet;
END_VAR
VAR VAR
// (1) Acetic acid 99% // (1) Acetic acid 99%
_fbTankAceticAcidHigh : FB_Tank; _fbTankAceticAcidHigh : FB_Tank;
@@ -35,12 +41,64 @@ VAR
_fbTankFilmetch : FB_Tank; _fbTankFilmetch : FB_Tank;
// Flowsensors // Flowsensors
//_fbFlowSensors16 : FB_Levi_LFC6IO
END_VAR END_VAR
]]></Declaration> ]]></Declaration>
<Implementation> <Implementation>
<ST><![CDATA[]]></ST> <ST><![CDATA[_fbTankAceticAcidHigh(
xReleaseErrors:= xReleaseErrors,
xReleaseManualMode:= xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms,
stHMIInterface:= stHMIInterface.stTankAceticAcidHigh);
_fbTankSulfuricAcid(
xReleaseErrors:= xReleaseErrors,
xReleaseManualMode:= xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms,
stHMIInterface:= stHMIInterface.stTankSulfuricAcid);
_fbTankNitricAcid(
xReleaseErrors:= xReleaseErrors,
xReleaseManualMode:= xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms,
stHMIInterface:= stHMIInterface.stTankNitricAcid);
_fbTankAceticAcidLow(
xReleaseErrors:= xReleaseErrors,
xReleaseManualMode:= xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms,
stHMIInterface:= stHMIInterface.stTankAceticAcidLow);
_fbTankHydrofluoricAcid(
xReleaseErrors:= xReleaseErrors,
xReleaseManualMode:= xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms,
stHMIInterface:= stHMIInterface.stTankHydrofluoricAcid);
_fbTankSulfuricAcidMixing(
xReleaseErrors:= xReleaseErrors,
xReleaseManualMode:= xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms,
stHMIInterface:= stHMIInterface.stTankSulfuricAcidMixing);
_fbTankHydrofluoricAcidMixing(
xReleaseErrors:= xReleaseErrors,
xReleaseManualMode:= xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms,
stHMIInterface:= stHMIInterface.stTankHydrofluoricAcidMixing);
_fbTankSEF(
xReleaseErrors:= xReleaseErrors,
xReleaseManualMode:= xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms,
stHMIInterface:= stHMIInterface.stTankSEF);
_fbTankFilmetch(
xReleaseErrors:= xReleaseErrors,
xReleaseManualMode:= xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms,
stHMIInterface:= stHMIInterface.stTankFilmetch);]]></ST>
</Implementation> </Implementation>
</POU> </POU>
</TcPlcObject> </TcPlcObject>

View File

@@ -21,20 +21,31 @@ VAR
i_xFull AT %I* : BOOL; i_xFull AT %I* : BOOL;
i_xEmpty AT %I* : BOOL; i_xEmpty AT %I* : BOOL;
fbFillingValve : FB_Valve; _fbWaterValve : FB_Valve('Water valve');
fbDrainValve : FB_Valve; _fbFillingValve : FB_Valve('Filling valve');
fbPumpValve : FB_Valve; _fbDrainValve : FB_Valve('Drain Valve');
_fbPumpValve : FB_Valve('Pump Valve');
_stValveConfig : ST_ValveConfig; _stValveConfig : ST_ValveConfig;
_wFillingValveSafetyIntlkUsed : T_INTERLOCK; _wFillingValveSafetyIntlkUsed : T_INTERLOCK;
_wFillingValveSafetyIntlk : T_INTERLOCK; _wFillingValveSafetyIntlk : T_INTERLOCK;
_iState : INT;
_xFirstCycle : BOOL := TRUE;
END_VAR END_VAR
]]></Declaration> ]]></Declaration>
<Implementation> <Implementation>
<ST><![CDATA[// Overfull is NC so true if ok <ST><![CDATA[IF _xFirstCycle THEN
_xFirstCycle := FALSE;
stHMIInterface.stFillingValve.stInterlock.asSafetyINTLKName[0] := 'Tank overfull';
_wFillingValveSafetyIntlkUsed.0 := 1;
END_IF
// Overfull is NC so true if ok
_wFillingValveSafetyIntlk.0 := i_xOverfull; _wFillingValveSafetyIntlk.0 := i_xOverfull;
fbFillingValve( _fbFillingValve(
xReleaseErrors:= xReleaseErrors, xReleaseErrors:= xReleaseErrors,
stValveConfig:= _stValveConfig, stValveConfig:= _stValveConfig,
xReleaseManualMode:= xReleaseManualMode, xReleaseManualMode:= xReleaseManualMode,
@@ -42,20 +53,60 @@ fbFillingValve(
wSafetyINTLKUsed:= _wFillingValveSafetyIntlkUsed, wSafetyINTLKUsed:= _wFillingValveSafetyIntlkUsed,
xConfirmAlarms:= xConfirmAlarms, xConfirmAlarms:= xConfirmAlarms,
stHMIInterface:= stHMIInterface.stFillingValve); stHMIInterface:= stHMIInterface.stFillingValve);
_fbWaterValve(
xReleaseErrors:= xReleaseErrors,
stValveConfig:= _stValveConfig,
xReleaseManualMode:= xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms,
stHMIInterface:= stHMIInterface.stDrainValve);
fbDrainValve( _fbDrainValve(
xReleaseErrors:= xReleaseErrors, xReleaseErrors:= xReleaseErrors,
stValveConfig:= _stValveConfig, stValveConfig:= _stValveConfig,
xReleaseManualMode:= xReleaseManualMode, xReleaseManualMode:= xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms, xConfirmAlarms:= xConfirmAlarms,
stHMIInterface:= stHMIInterface.stDrainValve); stHMIInterface:= stHMIInterface.stDrainValve);
fbPumpValve( _fbPumpValve(
xReleaseErrors:= xReleaseErrors, xReleaseErrors:= xReleaseErrors,
stValveConfig:= _stValveConfig, stValveConfig:= _stValveConfig,
xReleaseManualMode:= xReleaseManualMode, xReleaseManualMode:= xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms, xConfirmAlarms:= xConfirmAlarms,
stHMIInterface:= stHMIInterface.stPumpValve);]]></ST> stHMIInterface:= stHMIInterface.stPumpValve);
CASE _iState OF
// Idle
0:
// Start emptying tank
IF stHMIInterface.stEmptyButton.xRequest THEN
stHMIInterface.stEmptyButton.xRequest := FALSE;
_iState := 10;
END_IF
// Start filling tank with water
IF stHMIInterface.stFillButton.xRequest THEN
stHMIInterface.stFillButton.xRequest := FALSE;
_iState := 20;
END_IF
// Empty tank
10:
_fbDrainValve.xAutomaticOpen := TRUE;
IF (NOT i_xEmpty) THEN
_fbDrainValve.xAutomaticOpen := FALSE;
_iState := 0;
END_IF
// Fill tank with water
20:
IF xFull THEN
;
END_IF
END_CASE]]></ST>
</Implementation> </Implementation>
<Method Name="FB_Init" Id="{9c6d1842-9c2e-4437-b40f-941f77668ffe}"> <Method Name="FB_Init" Id="{9c6d1842-9c2e-4437-b40f-941f77668ffe}">
<Declaration><![CDATA[//FB_Init is always available implicitly and it is used primarily for initialization. <Declaration><![CDATA[//FB_Init is always available implicitly and it is used primarily for initialization.
@@ -70,10 +121,7 @@ END_VAR
]]></Declaration> ]]></Declaration>
<Implementation> <Implementation>
<ST><![CDATA[_stValveConfig.xHasOpenFeedback := FALSE; <ST><![CDATA[_stValveConfig.xHasOpenFeedback := FALSE;
_stValveConfig.xHasClosedFeedback := FALSE; _stValveConfig.xHasClosedFeedback := FALSE;]]></ST>
stHMIInterface.stFillingValve.stInterlock.asSafetyINTLKName[0] := 'Tank overfull';
_wFillingValveSafetyIntlkUsed.0 := 1;]]></ST>
</Implementation> </Implementation>
</Method> </Method>
<Method Name="M_HandleHMIOutput" Id="{8939e00b-3459-4b5e-a4b3-7b489eec260a}"> <Method Name="M_HandleHMIOutput" Id="{8939e00b-3459-4b5e-a4b3-7b489eec260a}">

View File

@@ -114,7 +114,7 @@ IF _iHead = _iTail THEN
M_Dequeue := FALSE; M_Dequeue := FALSE;
ELSE ELSE
// Get next entry // Get next entry
_stCurrReq := _astReqQueue; _stCurrReq := _astReqQueue[_iHead];
_iHead := (_iHead + 1) MOD GVL_ModbusMaster.QUEUE_SIZE; _iHead := (_iHead + 1) MOD GVL_ModbusMaster.QUEUE_SIZE;
M_Dequeue := TRUE; M_Dequeue := TRUE;
END_IF]]></ST> END_IF]]></ST>
@@ -140,7 +140,11 @@ ELSE
_astReqQueue[_iNextTail] := stReq; _astReqQueue[_iNextTail] := stReq;
_iTail := _iNextTail; _iTail := _iNextTail;
M_Enqueue := TRUE; M_Enqueue := TRUE;
END_IF]]></ST> END_IF
// Reset error and done
stReq.pxDone^ := FALSE;
stReq.pxError^ := FALSE;]]></ST>
</Implementation> </Implementation>
</Method> </Method>
</POU> </POU>

View File

@@ -182,6 +182,9 @@
<Compile Include="01_Stationen\Kuka_Robot\ST_KukaRobot_UnitFeedbacks.TcDUT"> <Compile Include="01_Stationen\Kuka_Robot\ST_KukaRobot_UnitFeedbacks.TcDUT">
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Compile Include="01_Stationen\MediaStation\DUTs\ST_HMI_MediaCabinet.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="01_Stationen\MediaStation\DUTs\ST_HMI_Tank.TcDUT"> <Compile Include="01_Stationen\MediaStation\DUTs\ST_HMI_Tank.TcDUT">
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
@@ -191,7 +194,7 @@
<Compile Include="01_Stationen\MediaStation\DUTs\ST_Levi_ChDStatus.TcDUT"> <Compile Include="01_Stationen\MediaStation\DUTs\ST_Levi_ChDStatus.TcDUT">
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Compile Include="01_Stationen\MediaStation\FB_Levi_Flowsensor.TcPOU"> <Compile Include="01_Stationen\MediaStation\FB_Levi_LFC6IO.TcPOU">
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Compile Include="01_Stationen\MediaStation\POUs\FB_MediaCabinet.TcPOU"> <Compile Include="01_Stationen\MediaStation\POUs\FB_MediaCabinet.TcPOU">

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<SafetyDeviceDesc Crc="162942154" FileFormatVersion="1.9"> <SafetyDeviceDesc Crc="2894377215" FileFormatVersion="1.9">
<AliasDeviceType> <AliasDeviceType>
<Type>4</Type> <Type>4</Type>
<SubType>17827710</SubType> <SubType>17827710</SubType>
@@ -13,8 +13,8 @@
<ConnectionMode>master</ConnectionMode> <ConnectionMode>master</ConnectionMode>
<ConnectionType>FSoE</ConnectionType> <ConnectionType>FSoE</ConnectionType>
<MapDiag>false</MapDiag> <MapDiag>false</MapDiag>
<MapInputs>false</MapInputs> <MapInputs>true</MapInputs>
<MapOutputs>false</MapOutputs> <MapOutputs>true</MapOutputs>
<MapState>false</MapState> <MapState>false</MapState>
<ModuleFaultIsComErr>false</ModuleFaultIsComErr> <ModuleFaultIsComErr>false</ModuleFaultIsComErr>
<SafeAddress>10</SafeAddress> <SafeAddress>10</SafeAddress>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<SafetyDeviceDesc Crc="3975529795" FileFormatVersion="1.9"> <SafetyDeviceDesc Crc="1921019104" FileFormatVersion="1.9">
<AliasDeviceType> <AliasDeviceType>
<Type>4</Type> <Type>4</Type>
<SubType>17827710</SubType> <SubType>17827710</SubType>
@@ -13,8 +13,8 @@
<ConnectionMode>master</ConnectionMode> <ConnectionMode>master</ConnectionMode>
<ConnectionType>FSoE</ConnectionType> <ConnectionType>FSoE</ConnectionType>
<MapDiag>false</MapDiag> <MapDiag>false</MapDiag>
<MapInputs>false</MapInputs> <MapInputs>true</MapInputs>
<MapOutputs>false</MapOutputs> <MapOutputs>true</MapOutputs>
<MapState>false</MapState> <MapState>false</MapState>
<ModuleFaultIsComErr>false</ModuleFaultIsComErr> <ModuleFaultIsComErr>false</ModuleFaultIsComErr>
<SafeAddress>11</SafeAddress> <SafeAddress>11</SafeAddress>

View File

@@ -179,6 +179,154 @@
<Elements>6</Elements> <Elements>6</Elements>
</ArrayInfo> </ArrayInfo>
</DataType> </DataType>
<DataType>
<Name GUID="{00690516-A06B-2FAC-765F-330C43E46EC8}" AutoDeleteType="true">INFODATA_3187781607</Name>
<BitSize>24</BitSize>
<SubItem>
<Name>Input Safe Data FSIN Module 1.Input</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>0</BitOffs>
</SubItem>
<SubItem>
<Name>Input Safe Data FSIN Module 1.Module Fault</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>1</BitOffs>
</SubItem>
<SubItem>
<Name>Input Safe Data FSIN Module 2.Input</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>2</BitOffs>
</SubItem>
<SubItem>
<Name>Input Safe Data FSIN Module 2.Module Fault</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>3</BitOffs>
</SubItem>
<SubItem>
<Name>Input Safe Data FSIN Module 3.Input</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>4</BitOffs>
</SubItem>
<SubItem>
<Name>Input Safe Data FSIN Module 3.Module Fault</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>5</BitOffs>
</SubItem>
<SubItem>
<Name>Input Safe Data FSIN Module 4.Input</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>6</BitOffs>
</SubItem>
<SubItem>
<Name>Input Safe Data FSIN Module 4.Module Fault</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>7</BitOffs>
</SubItem>
<SubItem>
<Name>Input Safe Data FSIN Module 5.Input</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>8</BitOffs>
</SubItem>
<SubItem>
<Name>Input Safe Data FSIN Module 5.Module Fault</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>9</BitOffs>
</SubItem>
<SubItem>
<Name>Input Safe Data FSIN Module 6.Input</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>10</BitOffs>
</SubItem>
<SubItem>
<Name>Input Safe Data FSIN Module 6.Module Fault</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>11</BitOffs>
</SubItem>
<SubItem>
<Name>Input Safe Data FSIN Module 7.Input</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>12</BitOffs>
</SubItem>
<SubItem>
<Name>Input Safe Data FSIN Module 7.Module Fault</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>13</BitOffs>
</SubItem>
<SubItem>
<Name>Input Safe Data FSIN Module 8.Input</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>14</BitOffs>
</SubItem>
<SubItem>
<Name>Input Safe Data FSIN Module 8.Module Fault</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>15</BitOffs>
</SubItem>
<SubItem>
<Name>Output Safe Data FSIN Module 1.ErrAck</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>16</BitOffs>
</SubItem>
<SubItem>
<Name>Output Safe Data FSIN Module 2.ErrAck</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>17</BitOffs>
</SubItem>
<SubItem>
<Name>Output Safe Data FSIN Module 3.ErrAck</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>18</BitOffs>
</SubItem>
<SubItem>
<Name>Output Safe Data FSIN Module 4.ErrAck</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>19</BitOffs>
</SubItem>
<SubItem>
<Name>Output Safe Data FSIN Module 5.ErrAck</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>20</BitOffs>
</SubItem>
<SubItem>
<Name>Output Safe Data FSIN Module 6.ErrAck</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>21</BitOffs>
</SubItem>
<SubItem>
<Name>Output Safe Data FSIN Module 7.ErrAck</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>22</BitOffs>
</SubItem>
<SubItem>
<Name>Output Safe Data FSIN Module 8.ErrAck</Name>
<Type GUID="{18071995-0000-0000-0000-000000000010}">BIT</Type>
<BitSize>1</BitSize>
<BitOffs>23</BitOffs>
</SubItem>
</DataType>
<DataType> <DataType>
<Name GUID="{5557A808-610D-F5D5-7930-B8923A6373FA}" AutoDeleteType="true">INFODATA_957728927</Name> <Name GUID="{5557A808-610D-F5D5-7930-B8923A6373FA}" AutoDeleteType="true">INFODATA_957728927</Name>
<BitSize>8</BitSize> <BitSize>8</BitSize>
@@ -666,7 +814,7 @@
<SyncMan>001000012600010001000000000100010001001026010000</SyncMan> <SyncMan>001000012600010001000000000100010001001026010000</SyncMan>
<SyncMan>001100012200010002000000000100010001001122010000</SyncMan> <SyncMan>001100012200010002000000000100010001001122010000</SyncMan>
<SyncMan>0012b1002400010003000000000000000800001224010000</SyncMan> <SyncMan>0012b1002400010003000000000000000800001224010000</SyncMan>
<SyncMan>001da8002000010004000000000000000900001d20010000</SyncMan> <SyncMan>001dae002000010004000000000000000900001d20010000</SyncMan>
<SyncMan>002e00002400000003000000000000000000002e24000000</SyncMan> <SyncMan>002e00002400000003000000000000000000002e24000000</SyncMan>
<SyncMan>002f00002000000004000000000000000000002f20000000</SyncMan> <SyncMan>002f00002000000004000000000000000000002f20000000</SyncMan>
<Fmmu>0000000000000000001200020100000001000000060000000200000000000000</Fmmu> <Fmmu>0000000000000000001200020100000001000000060000000200000000000000</Fmmu>
@@ -887,9 +1035,15 @@
</Entry> </Entry>
</Pdo> </Pdo>
<Pdo Name="Connection Info Data" Index="#x1bf9" Flags="#x2011" SyncMan="3"> <Pdo Name="Connection Info Data" Index="#x1bf9" Flags="#x2011" SyncMan="3">
<Entry Name="Message_155 Info Data" Index="#x7000" Sub="#x01"> <Entry Name="Message_154 Info Data" Index="#x7000" Sub="#x01">
<Type GUID="{00690516-A06B-2FAC-765F-330C43E46EC8}">INFODATA_3187781607</Type>
</Entry>
<Entry Name="Message_155 Info Data" Index="#x7000" Sub="#x02">
<Type GUID="{5557A808-610D-F5D5-7930-B8923A6373FA}">INFODATA_957728927</Type> <Type GUID="{5557A808-610D-F5D5-7930-B8923A6373FA}">INFODATA_957728927</Type>
</Entry> </Entry>
<Entry Name="Message_194 Info Data" Index="#x7000" Sub="#x03">
<Type GUID="{00690516-A06B-2FAC-765F-330C43E46EC8}">INFODATA_3187781607</Type>
</Entry>
</Pdo> </Pdo>
<Pdo Name="Device Info Data" Index="#x1bfe" Flags="#x2011" SyncMan="3"> <Pdo Name="Device Info Data" Index="#x1bfe" Flags="#x2011" SyncMan="3">
<Entry Name="Internal I/O" Index="#x7000" Sub="#x01"> <Entry Name="Internal I/O" Index="#x7000" Sub="#x01">

View File

@@ -2182,7 +2182,7 @@ External Setpoint Generation:
<Axis Id="6" CreateSymbols="true" AxisType="1"> <Axis Id="6" CreateSymbols="true" AxisType="1">
<Name>AlignerYAxis</Name> <Name>AlignerYAxis</Name>
<AxisPara> <AxisPara>
<Dynamic AccelerationMaximum="2000" DecelerationMaximum="2000" Acceleration="1.99999914163127" Deceleration="1.99999914163127" Jerk="22.4999806867077"/> <Dynamic AccelerationMaximum="2000" DecelerationMaximum="2000" Acceleration="2" Deceleration="2" Jerk="22.5"/>
<Velo RefSearch="1.5" RefSync="0.5" SlowManual="1" FastManual="5" Fast="12.834" Maximum="5"/> <Velo RefSearch="1.5" RefSync="0.5" SlowManual="1" FastManual="5" Fast="12.834" Maximum="5"/>
<OtherSettings AllowMotionCmdToSlave="true"/> <OtherSettings AllowMotionCmdToSlave="true"/>
</AxisPara> </AxisPara>

View File

@@ -101,6 +101,17 @@
</Instance> </Instance>
<Mappings> <Mappings>
<OwnerA> <OwnerA>
<OwnerB Name="TIID^Device 1 (EtherCAT)^Box 104 (EX260-SEC1)">
<Link VarA="PlcTask Outputs^PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh._fbDrainValve.xOpenValve" VarB="Byte 1^Output[5]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbMediaCabinet._fbTankAceticAcidLow._fbDrainValve.xOpenValve" VarB="Byte 1^Output[2]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbMediaCabinet._fbTankFilmetch._fbDrainValve.xOpenValve" VarB="Byte 0^Output[5]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid._fbDrainValve.xOpenValve" VarB="Byte 1^Output[1]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing._fbDrainValve.xOpenValve" VarB="Byte 0^Output[7]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbMediaCabinet._fbTankNitricAcid._fbDrainValve.xOpenValve" VarB="Byte 1^Output[3]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbMediaCabinet._fbTankSEF._fbDrainValve.xOpenValve" VarB="Byte 0^Output[6]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbMediaCabinet._fbTankSulfuricAcid._fbDrainValve.xOpenValve" VarB="Byte 1^Output[4]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing._fbDrainValve.xOpenValve" VarB="Byte 1^Output[0]" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^Box 26 (TM-X5K_CB-NEC20E)"> <OwnerB Name="TIID^Device 1 (EtherCAT)^Box 26 (TM-X5K_CB-NEC20E)">
<Link VarA="PlcTask Inputs^PRG_Main._fbAligner.diXOffset" VarB="Module 1 (Result Data 128Byte)^Result Data 128Byte^Result Data7"/> <Link VarA="PlcTask Inputs^PRG_Main._fbAligner.diXOffset" VarB="Module 1 (Result Data 128Byte)^Result Data 128Byte^Result Data7"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbAligner.diYOffset" VarB="Module 1 (Result Data 128Byte)^Result Data 128Byte^Result Data8"/> <Link VarA="PlcTask Inputs^PRG_Main._fbAligner.diYOffset" VarB="Module 1 (Result Data 128Byte)^Result Data 128Byte^Result Data8"/>
@@ -180,12 +191,17 @@
<Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.stCtrl^bTransmitRequest" VarB="COM RxPDO-Map Outputs^Ctrl^Transmit request"/> <Link VarA="PlcTask Outputs^PRG_Main._fbCoolplate.stCtrl^bTransmitRequest" VarB="COM RxPDO-Map Outputs^Ctrl^Transmit request"/>
</OwnerB> </OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^K01_KL01 (EK1100)^K01_KL02 (EL1018)"> <OwnerB Name="TIID^Device 1 (EtherCAT)^K01_KL01 (EK1100)^K01_KL02 (EL1018)">
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh.i_xEmpty" VarB="Channel 5^Tank1NotEmpty" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh.i_xFull" VarB="Channel 6^Tank1Full" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Safety.xRequestOpenDoor" VarB="Channel 4^MainDoorUnlock" Size="1"/> <Link VarA="PlcTask Inputs^PRG_Safety.xRequestOpenDoor" VarB="Channel 4^MainDoorUnlock" Size="1"/>
</OwnerB> </OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^K01_KL01 (EK1100)^K01_KL04 (EL2008)"> <OwnerB Name="TIID^Device 1 (EtherCAT)^K01_KL01 (EK1100)^K01_KL04 (EL2008)">
<Link VarA="PlcTask Outputs^PRG_Safety.xLEDMachineOff" VarB="Channel 2^MachineOff" Size="1"/> <Link VarA="PlcTask Outputs^PRG_Safety.xLEDMachineOff" VarB="Channel 2^MachineOff" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Safety.xLEDMachineOn" VarB="Channel 1^MachineOn" Size="1"/> <Link VarA="PlcTask Outputs^PRG_Safety.xLEDMachineOn" VarB="Channel 1^MachineOn" Size="1"/>
</OwnerB> </OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^K01_KL01 (EK1100)^K01_KL06 (EL1918)">
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh.i_xOverfull" VarB="Module 1 (FSOE)^FSoE Inputs^FSOE^Tank1NotOverFull" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^K12_KL01 (EK1100)^K12_KL04 (EL1018)"> <OwnerB Name="TIID^Device 1 (EtherCAT)^K12_KL01 (EK1100)^K12_KL04 (EL1018)">
<Link VarA="PlcTask Inputs^PRG_Main._fbAligner.xVacuumOk" VarB="Channel 7^Input" Size="1"/> <Link VarA="PlcTask Inputs^PRG_Main._fbAligner.xVacuumOk" VarB="Channel 7^Input" Size="1"/>
</OwnerB> </OwnerB>
@@ -238,6 +254,54 @@
<OwnerB Name="TIID^Device 1 (EtherCAT)^K21_KL01 (EK1100)^K21_KL07 (EL2008) Done"> <OwnerB Name="TIID^Device 1 (EtherCAT)^K21_KL01 (EK1100)^K21_KL07 (EL2008) Done">
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._fbRobot.xReset" VarB="Channel 2^RobotReset" Size="1"/> <Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._fbRobot.xReset" VarB="Channel 2^RobotReset" Size="1"/>
</OwnerB> </OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^K21_KL01 (EK1100)^K21_KL08 (EL6021)">
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 0" Size="8"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 1" Size="8" OffsA="8"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 10" Size="8" OffsA="80"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 11" Size="8" OffsA="88"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 12" Size="8" OffsA="96"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 13" Size="8" OffsA="104"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 14" Size="8" OffsA="112"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 15" Size="8" OffsA="120"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 16" Size="8" OffsA="128"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 17" Size="8" OffsA="136"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 18" Size="8" OffsA="144"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 19" Size="8" OffsA="152"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 2" Size="8" OffsA="16"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 20" Size="8" OffsA="160"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 21" Size="8" OffsA="168"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 3" Size="8" OffsA="24"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 4" Size="8" OffsA="32"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 5" Size="8" OffsA="40"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 6" Size="8" OffsA="48"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 7" Size="8" OffsA="56"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 8" Size="8" OffsA="64"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^D" VarB="COM TxPDO-Map Inputs^Data In 9" Size="8" OffsA="72"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbModbusMaster._fbMaster.InData^Status" VarB="COM TxPDO-Map Inputs^Status"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^Ctrl" VarB="COM RxPDO-Map Outputs^Ctrl"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 0" Size="8"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 1" Size="8" OffsA="8"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 10" Size="8" OffsA="80"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 11" Size="8" OffsA="88"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 12" Size="8" OffsA="96"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 13" Size="8" OffsA="104"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 14" Size="8" OffsA="112"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 15" Size="8" OffsA="120"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 16" Size="8" OffsA="128"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 17" Size="8" OffsA="136"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 18" Size="8" OffsA="144"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 19" Size="8" OffsA="152"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 2" Size="8" OffsA="16"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 20" Size="8" OffsA="160"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 21" Size="8" OffsA="168"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 3" Size="8" OffsA="24"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 4" Size="8" OffsA="32"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 5" Size="8" OffsA="40"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 6" Size="8" OffsA="48"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 7" Size="8" OffsA="56"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 8" Size="8" OffsA="64"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbModbusMaster._fbMaster.OutData^D" VarB="COM RxPDO-Map Outputs^Data Out 9" Size="8" OffsA="72"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^K21_QM01 (EX260-SEC1)"> <OwnerB Name="TIID^Device 1 (EtherCAT)^K21_QM01 (EX260-SEC1)">
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._fbEjectBack.xCloseValve" VarB="Byte 0^Output[7]" Size="1"/> <Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._fbEjectBack.xCloseValve" VarB="Byte 0^Output[7]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._fbEjectBack.xOpenValve" VarB="Byte 0^Output[6]" Size="1"/> <Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._fbEjectBack.xOpenValve" VarB="Byte 0^Output[6]" Size="1"/>
@@ -256,6 +320,9 @@
<Link VarA="PlcTask Inputs^PRG_Safety.xEStopOk" VarB="StandardInputs^Standard Out Var 157" Size="1"/> <Link VarA="PlcTask Inputs^PRG_Safety.xEStopOk" VarB="StandardInputs^Standard Out Var 157" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Safety.xErrorAck" VarB="StandardOutputs^Standard In Var 212" Size="1"/> <Link VarA="PlcTask Outputs^PRG_Safety.xErrorAck" VarB="StandardOutputs^Standard In Var 212" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Safety.xLockDoor" VarB="StandardOutputs^Standard In Var 192" Size="1"/> <Link VarA="PlcTask Outputs^PRG_Safety.xLockDoor" VarB="StandardOutputs^Standard In Var 192" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Safety.xLockMediaDoor1" VarB="StandardOutputs^Standard In Var 207" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Safety.xLockMediaDoor2" VarB="StandardOutputs^Standard In Var 208" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Safety.xLockMediaDoor3" VarB="StandardOutputs^Standard In Var 209" Size="1"/>
</OwnerB> </OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^RobotMain"> <OwnerB Name="TIID^Device 1 (EtherCAT)^RobotMain">
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot.abyMirrorToolsAndPositions" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 4 (Greifer/Drehteller/Positionen)"/> <Link VarA="PlcTask Inputs^PRG_Main._fbRobot.abyMirrorToolsAndPositions" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 4 (Greifer/Drehteller/Positionen)"/>
@@ -275,6 +342,45 @@
<Link VarA="PlcTask Outputs^PRG_Main._fbRobot.stCtrl" VarB="Module 3 (Default IO)^Std. Out (64 Bytes)^Output DWORD 0 (CMDs)"/> <Link VarA="PlcTask Outputs^PRG_Main._fbRobot.stCtrl" VarB="Module 3 (Default IO)^Std. Out (64 Bytes)^Output DWORD 0 (CMDs)"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbRobot.stJobs" VarB="Module 3 (Default IO)^Std. Out (64 Bytes)^Output DWORD 1 (JobNr/PLCJobNr)"/> <Link VarA="PlcTask Outputs^PRG_Main._fbRobot.stJobs" VarB="Module 3 (Default IO)^Std. Out (64 Bytes)^Output DWORD 1 (JobNr/PLCJobNr)"/>
</OwnerB> </OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^Tank_1_4_9 (EK1100)^M1_KL02 (EL1918)">
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankAceticAcidLow.i_xOverfull" VarB="Module 1 (FSOE)^FSoE Inputs^FSOE^Tank4NotOverFull" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankFilmetch.i_xOverfull" VarB="Module 1 (FSOE)^FSoE Inputs^FSOE^Tank9NotOverFull" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^Tank_1_4_9 (EK1100)^M1_KL04 (EL1018)">
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankAceticAcidLow.i_xEmpty" VarB="Channel 3^Tank4NotEmpty" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankAceticAcidLow.i_xFull" VarB="Channel 4^Tank4Full" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankFilmetch.i_xEmpty" VarB="Channel 5^Tank9NotEmpty" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankFilmetch.i_xFull" VarB="Channel 6^Tank9Full" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^Tank_5_6_2 (EK1100)^M3_KL02 (EL1918)">
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid.i_xOverfull" VarB="Module 1 (FSOE)^FSoE Inputs^FSOE^Tank5NotOverFull" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankSulfuricAcid.i_xOverfull" VarB="Module 1 (FSOE)^FSoE Inputs^FSOE^Tank2NotOverFull" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing.i_xOverfull" VarB="Module 1 (FSOE)^FSoE Inputs^FSOE^Tank6NotOverFull" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^Tank_5_6_2 (EK1100)^M3_KL04 (EL1018)">
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid.i_xEmpty" VarB="Channel 1^Tank5NotEmpty" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid.i_xFull" VarB="Channel 2^Tank5Full" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankSulfuricAcid.i_xEmpty" VarB="Channel 5^Tank2NotEmpty" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankSulfuricAcid.i_xFull" VarB="Channel 6^Tank2Full" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing.i_xEmpty" VarB="Channel 3^Tank6NotEmpty" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing.i_xFull" VarB="Channel 4^Tank6Full" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^Tank_7_3_8 (EK1100)^M2_KL02 (EL1918)">
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing.i_xOverfull" VarB="Module 1 (FSOE)^FSoE Inputs^FSOE^Tank7NotOverFull" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankNitricAcid.i_xOverfull" VarB="Module 1 (FSOE)^FSoE Inputs^FSOE^Tank3NotOverFull" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankSEF.i_xOverfull" VarB="Module 1 (FSOE)^FSoE Inputs^FSOE^Tank8NotOverFull" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^Tank_7_3_8 (EK1100)^M2_KL04 (EL1018)">
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing.i_xEmpty" VarB="Channel 1^Tank7NotEmpty" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing.i_xFull" VarB="Channel 2^Tank7Full" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankNitricAcid.i_xEmpty" VarB="Channel 3^Tank3NotEmpty" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankNitricAcid.i_xFull" VarB="Channel 4^Tank3Full" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankSEF.i_xEmpty" VarB="Channel 5^Tank8NotEmpty" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbMediaCabinet._fbTankSEF.i_xFull" VarB="Channel 6^Tank8Full" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 2 (Profinet Controller)^vs-0001">
<Link VarA="PlcTask Outputs^PRG_Main.xTriggerCamera" VarB="API^Term 10 (Control)^Subterm 12 (Control)^Outputs^Control Register[0]^Trigger" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 5 (EtherCAT)^Etcher1Robot (Meca500)"> <OwnerB Name="TIID^Device 5 (EtherCAT)^Etcher1Robot (Meca500)">
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbRobot.stRobotInputs^stConfigurations^siElbow" VarB="Configurations^Elbow"/> <Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbRobot.stRobotInputs^stConfigurations^siElbow" VarB="Configurations^Elbow"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbRobot.stRobotInputs^stConfigurations^siShoulder" VarB="Configurations^Shoulder"/> <Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbRobot.stRobotInputs^stConfigurations^siShoulder" VarB="Configurations^Shoulder"/>

View File

@@ -1952,6 +1952,31 @@ External Setpoint Generation:
<Elements>22</Elements> <Elements>22</Elements>
</ArrayInfo> </ArrayInfo>
</DataType> </DataType>
<DataType>
<Name GUID="{F852D9F7-9DB9-AE77-EE6D-D9BA52CDE308}" Namespace="Tc2_ModbusRTU" AutoDeleteType="true">MB_KL6inData22B</Name>
<BitSize>192</BitSize>
<SubItem>
<Name>Status</Name>
<Type GUID="{18071995-0000-0000-0000-000000000004}">WORD</Type>
<BitSize>16</BitSize>
<BitOffs>0</BitOffs>
</SubItem>
<SubItem>
<Name>D</Name>
<Type GUID="{18071995-0000-0000-0000-000000000001}">BYTE</Type>
<ArrayInfo>
<LBound>0</LBound>
<Elements>22</Elements>
</ArrayInfo>
<BitSize>176</BitSize>
<BitOffs>16</BitOffs>
</SubItem>
<Properties>
<Property>
<Name>hide</Name>
</Property>
</Properties>
</DataType>
<DataType> <DataType>
<Name GUID="{AD971A80-45B7-4E5E-395A-353C04CA73A1}" AutoDeleteType="true">ST_PosData</Name> <Name GUID="{AD971A80-45B7-4E5E-395A-353C04CA73A1}" AutoDeleteType="true">ST_PosData</Name>
<BitSize>32</BitSize> <BitSize>32</BitSize>
@@ -2626,8 +2651,33 @@ External Setpoint Generation:
</Property> </Property>
</Properties> </Properties>
</DataType> </DataType>
<DataType>
<Name GUID="{E4C24E72-EF65-C814-8E17-663F53275EE3}" Namespace="Tc2_ModbusRTU" AutoDeleteType="true">MB_KL6outData22B</Name>
<BitSize>192</BitSize>
<SubItem>
<Name>Ctrl</Name>
<Type GUID="{18071995-0000-0000-0000-000000000004}">WORD</Type>
<BitSize>16</BitSize>
<BitOffs>0</BitOffs>
</SubItem>
<SubItem>
<Name>D</Name>
<Type GUID="{18071995-0000-0000-0000-000000000001}">BYTE</Type>
<ArrayInfo>
<LBound>0</LBound>
<Elements>22</Elements>
</ArrayInfo>
<BitSize>176</BitSize>
<BitOffs>16</BitOffs>
</SubItem>
<Properties>
<Property>
<Name>hide</Name>
</Property>
</Properties>
</DataType>
</DataTypes> </DataTypes>
<Instance TmcHash="{BEB1669A-FD40-47A8-2118-6427AD9B7C58}"> <Instance TmcHash="{C3D1172C-C3FF-CE61-14D7-FC4C273B8DEA}">
<Vars VarGrpType="1"> <Vars VarGrpType="1">
<Name>PlcTask Inputs</Name> <Name>PlcTask Inputs</Name>
<Var> <Var>
@@ -2912,6 +2962,14 @@ External Setpoint Generation:
<Name>PRG_Main._fbHVTesterCold.stReleaseChamberMovement.xCloseFeedback</Name> <Name>PRG_Main._fbHVTesterCold.stReleaseChamberMovement.xCloseFeedback</Name>
<Type>BOOL</Type> <Type>BOOL</Type>
</Var> </Var>
<Var>
<Name>PRG_Main._fbModbusMaster._fbMaster.InData</Name>
<Type GUID="{F852D9F7-9DB9-AE77-EE6D-D9BA52CDE308}" Namespace="Tc2_ModbusRTU">MB_KL6inData22B</Type>
</Var>
<Var>
<Name>PRG_Main._fbModbusMaster._fbMaster.WcState</Name>
<Type>BOOL</Type>
</Var>
<Var> <Var>
<Name>PRG_Main.stCamResult</Name> <Name>PRG_Main.stCamResult</Name>
<Type GUID="{A86AEC57-FBDB-D0EE-AB47-339A794FEE1B}">ST_TrayFeederCamPosData</Type> <Type GUID="{A86AEC57-FBDB-D0EE-AB47-339A794FEE1B}">ST_TrayFeederCamPosData</Type>
@@ -2928,13 +2986,405 @@ External Setpoint Generation:
<Name>PRG_Safety.xRequestOpenDoor</Name> <Name>PRG_Safety.xRequestOpenDoor</Name>
<Type>BOOL</Type> <Type>BOOL</Type>
</Var> </Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh.i_xOverfull</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh.i_xFull</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh.i_xEmpty</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh._fbWaterValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh._fbWaterValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh._fbFillingValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh._fbFillingValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh._fbDrainValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh._fbDrainValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh._fbPumpValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh._fbPumpValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid.i_xOverfull</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid.i_xFull</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid.i_xEmpty</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid._fbWaterValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid._fbWaterValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid._fbFillingValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid._fbFillingValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid._fbDrainValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid._fbDrainValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid._fbPumpValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid._fbPumpValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid.i_xOverfull</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid.i_xFull</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid.i_xEmpty</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid._fbWaterValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid._fbWaterValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid._fbFillingValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid._fbFillingValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid._fbDrainValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid._fbDrainValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid._fbPumpValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid._fbPumpValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow.i_xOverfull</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow.i_xFull</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow.i_xEmpty</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow._fbWaterValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow._fbWaterValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow._fbFillingValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow._fbFillingValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow._fbDrainValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow._fbDrainValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow._fbPumpValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow._fbPumpValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid.i_xOverfull</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid.i_xFull</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid.i_xEmpty</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid._fbWaterValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid._fbWaterValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid._fbFillingValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid._fbFillingValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid._fbDrainValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid._fbDrainValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid._fbPumpValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid._fbPumpValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing.i_xOverfull</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing.i_xFull</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing.i_xEmpty</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing._fbWaterValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing._fbWaterValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing._fbFillingValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing._fbFillingValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing._fbDrainValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing._fbDrainValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing._fbPumpValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing._fbPumpValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing.i_xOverfull</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing.i_xFull</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing.i_xEmpty</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing._fbWaterValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing._fbWaterValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing._fbFillingValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing._fbFillingValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing._fbDrainValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing._fbDrainValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing._fbPumpValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing._fbPumpValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF.i_xOverfull</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF.i_xFull</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF.i_xEmpty</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF._fbWaterValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF._fbWaterValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF._fbFillingValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF._fbFillingValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF._fbDrainValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF._fbDrainValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF._fbPumpValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF._fbPumpValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch.i_xOverfull</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch.i_xFull</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch.i_xEmpty</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch._fbWaterValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch._fbWaterValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch._fbFillingValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch._fbFillingValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch._fbDrainValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch._fbDrainValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch._fbPumpValve.xOpenFeedback</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch._fbPumpValve.xCloseFeedback</Name>
<Type>BOOL</Type>
</Var>
</Vars> </Vars>
<Vars VarGrpType="2" AreaNo="1"> <Vars VarGrpType="2" AreaNo="1">
<Name>PlcTask Outputs</Name> <Name>PlcTask Outputs</Name>
<Var>
<Name>PRG_Main.xTriggerCamera</Name>
<Type>BOOL</Type>
</Var>
<Var> <Var>
<Name>PRG_Main._fbRobot.stCtrl</Name> <Name>PRG_Main._fbRobot.stCtrl</Name>
<Comment><![CDATA[ 0 - Nicht aus <Comment><![CDATA[ 0 - Nicht aus
@@ -3198,6 +3648,14 @@ External Setpoint Generation:
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment> <Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type> <Type>BOOL</Type>
</Var> </Var>
<Var>
<Name>PRG_Main._fbModbusMaster._fbMaster.OutData</Name>
<Type GUID="{E4C24E72-EF65-C814-8E17-663F53275EE3}" Namespace="Tc2_ModbusRTU">MB_KL6outData22B</Type>
</Var>
<Var>
<Name>PRG_Main.xTriggerCamera</Name>
<Type>BOOL</Type>
</Var>
<Var> <Var>
<Name>PRG_Safety.xRun</Name> <Name>PRG_Safety.xRun</Name>
<Type>BOOL</Type> <Type>BOOL</Type>
@@ -3218,6 +3676,378 @@ External Setpoint Generation:
<Name>PRG_Safety.xLEDMachineOff</Name> <Name>PRG_Safety.xLEDMachineOff</Name>
<Type>BOOL</Type> <Type>BOOL</Type>
</Var> </Var>
<Var>
<Name>PRG_Safety.xLockMediaDoor1</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Safety.xLockMediaDoor2</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Safety.xLockMediaDoor3</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh._fbWaterValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh._fbWaterValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh._fbFillingValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh._fbFillingValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh._fbDrainValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh._fbDrainValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh._fbPumpValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidHigh._fbPumpValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid._fbWaterValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid._fbWaterValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid._fbFillingValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid._fbFillingValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid._fbDrainValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid._fbDrainValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid._fbPumpValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcid._fbPumpValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid._fbWaterValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid._fbWaterValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid._fbFillingValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid._fbFillingValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid._fbDrainValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid._fbDrainValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid._fbPumpValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankNitricAcid._fbPumpValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow._fbWaterValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow._fbWaterValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow._fbFillingValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow._fbFillingValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow._fbDrainValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow._fbDrainValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow._fbPumpValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankAceticAcidLow._fbPumpValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid._fbWaterValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid._fbWaterValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid._fbFillingValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid._fbFillingValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid._fbDrainValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid._fbDrainValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid._fbPumpValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcid._fbPumpValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing._fbWaterValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing._fbWaterValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing._fbFillingValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing._fbFillingValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing._fbDrainValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing._fbDrainValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing._fbPumpValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSulfuricAcidMixing._fbPumpValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing._fbWaterValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing._fbWaterValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing._fbFillingValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing._fbFillingValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing._fbDrainValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing._fbDrainValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing._fbPumpValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankHydrofluoricAcidMixing._fbPumpValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF._fbWaterValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF._fbWaterValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF._fbFillingValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF._fbFillingValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF._fbDrainValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF._fbDrainValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF._fbPumpValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankSEF._fbPumpValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch._fbWaterValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch._fbWaterValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch._fbFillingValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch._fbFillingValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch._fbDrainValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch._fbDrainValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch._fbPumpValve.xOpenValve</Name>
<Comment><![CDATA[ Use xOpenValve for normally closed valves]]></Comment>
<Type>BOOL</Type>
</Var>
<Var>
<Name>PRG_Main._fbMediaCabinet._fbTankFilmetch._fbPumpValve.xCloseValve</Name>
<Comment><![CDATA[ Use xCloseValve for normally open valves]]></Comment>
<Type>BOOL</Type>
</Var>
</Vars> </Vars>
<Vars VarGrpType="8" AreaNo="4"> <Vars VarGrpType="8" AreaNo="4">
<Name>PlcTask Retains</Name> <Name>PlcTask Retains</Name>

View File

@@ -0,0 +1,46 @@
<mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.6.1 Chrome/142.0.7444.265 Electron/39.8.0 Safari/537.36" version="29.6.1">
<diagram name="Seite-1" id="GqlXxqPff2601l4cULB9">
<mxGraphModel dx="581" dy="749" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="R6117Jvxweap9o7Wo7Lm-1" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="Start" vertex="1">
<mxGeometry height="30" width="80" x="160" y="160" as="geometry" />
</mxCell>
<mxCell id="R6117Jvxweap9o7Wo7Lm-2" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="Stop" vertex="1">
<mxGeometry height="30" width="80" x="160" y="280" as="geometry" />
</mxCell>
<mxCell id="R6117Jvxweap9o7Wo7Lm-3" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="Hold" vertex="1">
<mxGeometry height="30" width="80" x="160" y="200" as="geometry" />
</mxCell>
<mxCell id="R6117Jvxweap9o7Wo7Lm-4" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="Unhold" vertex="1">
<mxGeometry height="30" width="80" x="250" y="200" as="geometry" />
</mxCell>
<mxCell id="R6117Jvxweap9o7Wo7Lm-5" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="Suspend" vertex="1">
<mxGeometry height="30" width="80" x="160" y="240" as="geometry" />
</mxCell>
<mxCell id="R6117Jvxweap9o7Wo7Lm-6" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="Unsuspend" vertex="1">
<mxGeometry height="30" width="80" x="250" y="240" as="geometry" />
</mxCell>
<mxCell id="R6117Jvxweap9o7Wo7Lm-7" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="Clear" vertex="1">
<mxGeometry height="30" width="80" x="160" y="320" as="geometry" />
</mxCell>
<mxCell id="R6117Jvxweap9o7Wo7Lm-8" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="Reset" vertex="1">
<mxGeometry height="30" width="80" x="250" y="320" as="geometry" />
</mxCell>
<mxCell id="R6117Jvxweap9o7Wo7Lm-9" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="Complete" vertex="1">
<mxGeometry height="30" width="80" x="250" y="160" as="geometry" />
</mxCell>
<mxCell id="R6117Jvxweap9o7Wo7Lm-10" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="Abort" vertex="1">
<mxGeometry height="30" width="80" x="250" y="280" as="geometry" />
</mxCell>
<mxCell id="R6117Jvxweap9o7Wo7Lm-11" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="Production" vertex="1">
<mxGeometry height="30" width="80" x="160" y="120" as="geometry" />
</mxCell>
<mxCell id="R6117Jvxweap9o7Wo7Lm-12" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="Manual" vertex="1">
<mxGeometry height="30" width="80" x="250" y="120" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@@ -1,6 +1,6 @@
<mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.6.1 Chrome/142.0.7444.265 Electron/39.8.0 Safari/537.36" version="29.6.1" pages="5"> <mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.6.1 Chrome/142.0.7444.265 Electron/39.8.0 Safari/537.36" version="29.6.1" pages="5">
<diagram name="Complete_SM" id="ftpb_kXLDtCrtDVQ6dMH"> <diagram name="Complete_SM" id="ftpb_kXLDtCrtDVQ6dMH">
<mxGraphModel dx="2946" dy="1201" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> <mxGraphModel dx="1106" dy="762" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root> <root>
<mxCell id="0" /> <mxCell id="0" />
<mxCell id="HZ1lZV176OuICY9gLn3O-1" parent="0" style="locked=1;" value="Unbenannte Ebene" /> <mxCell id="HZ1lZV176OuICY9gLn3O-1" parent="0" style="locked=1;" value="Unbenannte Ebene" />
@@ -99,6 +99,11 @@
<mxCell id="MSPdzodM52y7OSiT-G8--60" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.3;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;" target="MSPdzodM52y7OSiT-G8--5"> <mxCell id="MSPdzodM52y7OSiT-G8--60" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.3;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;" target="MSPdzodM52y7OSiT-G8--5">
<mxGeometry relative="1" as="geometry" /> <mxGeometry relative="1" as="geometry" />
</mxCell> </mxCell>
<mxCell id="yQyZe9oQD96PFGrsmZSj-1" connectable="0" parent="MSPdzodM52y7OSiT-G8--60" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Stop" vertex="1">
<mxGeometry relative="1" x="-0.1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="MSPdzodM52y7OSiT-G8--49" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--48" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--36"> <mxCell id="MSPdzodM52y7OSiT-G8--49" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--48" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--36">
<mxGeometry relative="1" as="geometry"> <mxGeometry relative="1" as="geometry">
<Array as="points" /> <Array as="points" />