diff --git a/.gitignore b/.gitignore
index ea6bb11..850f680 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,7 +17,7 @@ LineIDs.dbg.bak
# TwinCAT C++ and shared types
# ignoring the TMC file is only useful for plain PLC programming
# as soon as shared data types (via tmc), C++ or in general TcCom-Module are used, the TMC file has to be part of the repository
-*.tmc
+#*.tmc
*.tmcRefac
# TwinCAT project files
@@ -57,4 +57,5 @@ commit.txt
*.xlsx
# TwinCAT HMI, filter downloaded JSON schema files
json-schema.org
-
+# Drawio backup file
+*.bkp
diff --git a/Infineon.sln b/Infineon.sln
index d3f05e2..9201561 100644
--- a/Infineon.sln
+++ b/Infineon.sln
@@ -148,7 +148,6 @@ Global
{16E7B360-DCD5-431E-9380-EF0E96A38071}.Release|TwinCAT OS (ARMV8-A).ActiveCfg = Release|TwinCAT OS (ARMV8-A)
{16E7B360-DCD5-431E-9380-EF0E96A38071}.Release|TwinCAT OS (ARMV8-A).Build.0 = Release|TwinCAT OS (ARMV8-A)
{16E7B360-DCD5-431E-9380-EF0E96A38071}.Release|TwinCAT OS (x64).ActiveCfg = Release|TwinCAT OS (x64)
- {16E7B360-DCD5-431E-9380-EF0E96A38071}.Release|TwinCAT OS (x64).Build.0 = Release|TwinCAT OS (x64)
{16E7B360-DCD5-431E-9380-EF0E96A38071}.Release|TwinCAT OS (x64-E).ActiveCfg = Release|TwinCAT OS (x64-E)
{16E7B360-DCD5-431E-9380-EF0E96A38071}.Release|TwinCAT OS (x64-E).Build.0 = Release|TwinCAT OS (x64-E)
{16E7B360-DCD5-431E-9380-EF0E96A38071}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
diff --git a/Infineon.tmc b/Infineon.tmc
new file mode 100644
index 0000000..ab58274
--- /dev/null
+++ b/Infineon.tmc
@@ -0,0 +1,43 @@
+
+
+
+
+ KukaRobot
+
+
+ NotInExtMode
+
+ Error
+
+
+ EStopActive
+
+ Error
+
+
+ OperatorSafetyNotOk
+
+ Error
+
+
+ ErrorResetTimeout
+
+ Error
+
+
+ DrivesEnableTimeout
+
+ Error
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Infineon.tsproj b/Infineon.tsproj
index 36f65d6..e6b6071 100644
--- a/Infineon.tsproj
+++ b/Infineon.tsproj
@@ -1,7 +1,10 @@
-
+
+
+
+
{2752D285-16AD-4E89-AE6C-80E72784D264}
@@ -39,4 +42,7 @@
+
+
+
diff --git a/PLC/00_Main/PRG_Main.TcPOU b/PLC/00_Main/PRG_Main.TcPOU
index 1a0ab51..e9f6aa1 100644
--- a/PLC/00_Main/PRG_Main.TcPOU
+++ b/PLC/00_Main/PRG_Main.TcPOU
@@ -8,8 +8,23 @@ VAR
_fbEtcher1 : FB_Etcher;
_fbEtcher2 : FB_Etcher;
+ _stRobotCmd : ST_PMLc;
+
+ _xConfirmAlarms : BOOL;
+
+ _xClear : BOOL;
+ _xReset : BOOL;
+ _xStart : BOOL;
+
+ _stRobotStatus : ST_PMLs;
+ _stRobotAdmin : ST_PMLa;
+
_xFirstCycle : BOOL := TRUE;
+ _stRecipeGripperChange : ST_PackMLRecipe := (
+ diID := 0,
+ sName := 'Change gripper'
+ );
END_VAR
]]>
@@ -17,18 +32,52 @@ END_VAR
_xFirstCycle := FALSE;
END_IF
-_fbRobot(xExecute:= , eCMD:= , eCurrentState=> , eCurrentCMD=> );
+IF _xClear THEN
+ _xClear := FALSE;
+ _stRobotCmd.eCntrlCmd := E_PackMLCmd.CLEAR;
+ _stRobotCmd.xCmdChangeRequest := TRUE;
+END_IF
+
+IF _xReset THEN
+ _xReset := FALSE;
+ _stRobotCmd.eCntrlCmd := E_PackMLCmd.RESET;
+ _stRobotCmd.xCmdChangeRequest := TRUE;
+END_IF
+
+IF _xStart THEN
+ _xStart := FALSE;
+ _stRobotCmd.eCntrlCmd := E_PackMLCmd.START;
+ _stRobotCmd.xCmdChangeRequest := TRUE;
+END_IF
+
+_fbRobot(
+ stCommand:= _stRobotCmd,
+ xReleaseAlarms:= TRUE,
+ xConfirmAlarms:= _xConfirmAlarms,
+ stStatus => _stRobotStatus,
+ stAdmin => _stRobotAdmin,
+ xReady=> ,
+ xError=> );
+
+IF _stRobotCmd.xCmdChangeRequest THEN
+ _stRobotCmd.xCmdChangeRequest := FALSE;
+END_IF
_fbHVTester(xOpenChambers:= GVL_SCADA.xOpenAllChambers);
_fbEtcher1(xOpenDoor:= GVL_SCADA.xOpenAllChambers);
_fbEtcher2(xOpenDoor:= GVL_SCADA.xOpenAllChambers);
+
// Call safety program
PRG_Safety(xConfirmAlarms := GVL_SCADA.xErrAck);
// Reset alarm reset request
-GVL_SCADA.xErrAck := FALSE;]]>
+GVL_SCADA.xErrAck := FALSE;
+
+IF _xConfirmAlarms THEN
+ _xConfirmAlarms := FALSE;
+END_IF]]>
\ No newline at end of file
diff --git a/PLC/01_Stationen/Kuka_Robot/E_KukaRobot_JobNumberRobot.TcDUT b/PLC/01_Stationen/Kuka_Robot/E_KukaRobot_JobNumberRobot.TcDUT
index c54c7c4..3ba6e15 100644
--- a/PLC/01_Stationen/Kuka_Robot/E_KukaRobot_JobNumberRobot.TcDUT
+++ b/PLC/01_Stationen/Kuka_Robot/E_KukaRobot_JobNumberRobot.TcDUT
@@ -59,7 +59,9 @@ TYPE E_KukaRobot_JobNumberRobot :
PUT_CHUCK_ETCHER1 := 62,
PUT_CHUCK_ETCHER2 := 63,
PUT_CHUCK_INTO_MAGAZINE := 64,
- GET_CHUCK_FROM_MAGAZINE := 65
+ GET_CHUCK_FROM_MAGAZINE := 65,
+
+ WARMUP := 80
) WORD := NO_JOB;
END_TYPE
]]>
diff --git a/PLC/01_Stationen/Kuka_Robot/FB_KukaRobot.TcPOU b/PLC/01_Stationen/Kuka_Robot/FB_KukaRobot.TcPOU
index 7023e8d..2c17b14 100644
--- a/PLC/01_Stationen/Kuka_Robot/FB_KukaRobot.TcPOU
+++ b/PLC/01_Stationen/Kuka_Robot/FB_KukaRobot.TcPOU
@@ -4,6 +4,9 @@
0.001mm
FUNCTION_BLOCK FINAL FB_KukaRobot EXTENDS FB_PackMLGeneric
VAR_INPUT
+ eRobotJob : E_KukaRobot_JobNumberRobot;
+
+ xReleaseAlarms : BOOL;
xConfirmAlarms : BOOL;
END_VAR
VAR_OUTPUT
@@ -56,13 +59,16 @@ VAR
_xError : BOOL;
+
// ======
// Alarms
// ======
- _fbAlarmNotInExtMode : FB_AlarmMessage(stEventEntry := TC_EVENTS.RobotEvents.RobotNotInExtMode, xWithConfirmation := FALSE);
- _fbAlarmEStopActive : FB_AlarmMessage(stEventEntry := TC_EVENTS.RobotEvents.RobotEStopActive, xWithConfirmation := FALSE);
- _fbAlarmOperatorSafetyNotOk : FB_AlarmMessage(stEventEntry := TC_EVENTS.RobotEvents.OperatorSafetyNotOk, xWithConfirmation := FALSE);
+ _fbAlarmNotInExtMode : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.NotInExtMode, xWithConfirmation := FALSE);
+ _fbAlarmEStopActive : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.EStopActive, xWithConfirmation := FALSE);
+ _fbAlarmOperatorSafetyNotOk : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.OperatorSafetyNotOk, xWithConfirmation := FALSE);
+ _fbAlarmRobotErrorResetTimeout : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.ErrorResetTimeout, xWithConfirmation := TRUE);
+ _fbAlarmDrivesEnableTimeout : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.DrivesEnableTimeout, xWithConfirmation := TRUE);
END_VAR
]]>
@@ -91,12 +97,22 @@ _fbAlarmOperatorSafetyNotOk(
timOnDelay:= T#0S,
timOffDelay:= T#0S);
+// Handled by M_Resetting
+_fbAlarmDrivesEnableTimeout(
+ xRelease:= xReleaseAlarms,
+ xAcknowledge:= xConfirmAlarms);
+
+// Handled by M_Resetting
+_fbAlarmRobotErrorResetTimeout(
+ xRelease:= xReleaseAlarms,
+ xAcknowledge:= xConfirmAlarms);
+
// =======================
// Check if robot is ready
// =======================
-_xRobotReady := _uState.stState.bExt
+_xRobotReady := _uState.stState.bExt
AND _uState.stState.bAlarmStop
AND _uState.stState.bUserSAF
AND _uState.stState.bPeriRdy
@@ -118,9 +134,7 @@ SUPER^();
_uCtrl.stCtrl.bNotDisableAxes := 1;
// Disable move if in T2 for safety reasons
-IF (NOT _uState.stState.bT2) THEN
- _uCtrl.stCtrl.bEnableMove := 1;
-ELSE
+IF _uState.stState.bT2 THEN
_uCtrl.stCtrl.bEnableMove := 0;
END_IF
@@ -129,8 +143,8 @@ END_IF
// Write job outputs
// ==================
-_uJobs.stJobs.wJobNrForRobot := _eRobotJob;
-_uJobs.stJobs.wFinishedJobNrFromPlc := _ePlcJob;
+//_uJobs.stJobs.wJobNrForRobot := _eRobotJob;
+//_uJobs.stJobs.wFinishedJobNrFromPlc := _ePlcJob;
// =================
@@ -140,15 +154,225 @@ _uJobs.stJobs.wFinishedJobNrFromPlc := _ePlcJob;
xReady := _xRobotReady;
xError := _xError;]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Abort
+// IF _awJobStatesFromRobot[0] <> 0 AND _awJobStatesFromRobot[0] <> E_KukaRobot_JobNumberRobot.WARMUP THEN
+// _eCmd := E_PackMLCmd.ABORT;
+// END_IF
+//
+// // Robot has error
+// IF _dwErrorBits <> 0 THEN
+// _eCmd := E_PackMLCmd.ABORT;
+// END_IF]]>
+
+
+
+
+_ePlcJob := E_KukaRobot_JobNumerPLC.NO_JOB;]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PLC/01_Stationen/Kuka_Robot/InterfaceStructs/ST_KukaRobot_Ctrl.TcDUT b/PLC/01_Stationen/Kuka_Robot/InterfaceStructs/ST_KukaRobot_Ctrl.TcDUT
index 5a0bf11..2c35924 100644
--- a/PLC/01_Stationen/Kuka_Robot/InterfaceStructs/ST_KukaRobot_Ctrl.TcDUT
+++ b/PLC/01_Stationen/Kuka_Robot/InterfaceStructs/ST_KukaRobot_Ctrl.TcDUT
@@ -13,8 +13,21 @@ STRUCT
// MOVE_ENABLE
bEnableMove : BIT;
+ // EXT_START
+ bExtStart : BIT;
+
// CONF_MESS
bConfMess : BIT;
+
+ // Dummy bits
+ bDummy1 : BIT;
+ bDummy2 : BIT;
+ bDummy3 : BIT;
+ bDummy4 : BIT;
+
+ // Abort job with rising edge
+ bAbortJob : BIT;
+
END_STRUCT
END_TYPE
]]>
diff --git a/PLC/GlobalTextList.TcGTLO b/PLC/GlobalTextList.TcGTLO
deleted file mode 100644
index 31e1a87..0000000
--- a/PLC/GlobalTextList.TcGTLO
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
- "134"
- "Rest"
-
-
-
-
- {70dbd3f8-6154-4749-9cca-681da551cf9b}
- {7f241e67-9115-442d-b41b-9dac33ba1617}
- {db2ea5fe-8596-4215-8845-f46ef9e4d4dc}
-
-
-
- System.Collections.ArrayList
- {63784cbb-9ba0-45e6-9d69-babf3f040511}
- System.Guid
- System.String
- {53da1be7-ad25-47c3-b0e8-e26286dad2e0}
-
-
-
-
\ No newline at end of file
diff --git a/PLC/LibraryCandidates/PackML/E_PackMLCmd.TcDUT b/PLC/LibraryCandidates/PackML/DUTs/E_PackMLCmd.TcDUT
similarity index 100%
rename from PLC/LibraryCandidates/PackML/E_PackMLCmd.TcDUT
rename to PLC/LibraryCandidates/PackML/DUTs/E_PackMLCmd.TcDUT
diff --git a/PLC/LibraryCandidates/PackML/E_PackMLState.TcDUT b/PLC/LibraryCandidates/PackML/DUTs/E_PackMLState.TcDUT
similarity index 97%
rename from PLC/LibraryCandidates/PackML/E_PackMLState.TcDUT
rename to PLC/LibraryCandidates/PackML/DUTs/E_PackMLState.TcDUT
index 337c9b1..090c1be 100644
--- a/PLC/LibraryCandidates/PackML/E_PackMLState.TcDUT
+++ b/PLC/LibraryCandidates/PackML/DUTs/E_PackMLState.TcDUT
@@ -23,7 +23,7 @@ TYPE E_PackMLState :
UNSUSPENDING := 14,
RESETTING := 15,
COMPLETING := 16,
- COMPLETE := 17
+ COMPLETED := 17
) DINT := STOPPED;
END_TYPE
]]>
diff --git a/PLC/LibraryCandidates/PackML/E_PackMLUnitMode.TcDUT b/PLC/LibraryCandidates/PackML/DUTs/E_PackMLUnitMode.TcDUT
similarity index 100%
rename from PLC/LibraryCandidates/PackML/E_PackMLUnitMode.TcDUT
rename to PLC/LibraryCandidates/PackML/DUTs/E_PackMLUnitMode.TcDUT
diff --git a/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PMLa.TcDUT b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PMLa.TcDUT
new file mode 100644
index 0000000..c69d88f
--- /dev/null
+++ b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PMLa.TcDUT
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PMLc.TcDUT b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PMLc.TcDUT
new file mode 100644
index 0000000..2cb6463
--- /dev/null
+++ b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PMLc.TcDUT
@@ -0,0 +1,26 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PMLs.TcDUT b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PMLs.TcDUT
new file mode 100644
index 0000000..b331ddc
--- /dev/null
+++ b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PMLs.TcDUT
@@ -0,0 +1,14 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLPI.TcDUT b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLPI.TcDUT
new file mode 100644
index 0000000..a3ae10f
--- /dev/null
+++ b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLPI.TcDUT
@@ -0,0 +1,14 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLParamDINT.TcDUT b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLParamDINT.TcDUT
new file mode 100644
index 0000000..c866f58
--- /dev/null
+++ b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLParamDINT.TcDUT
@@ -0,0 +1,14 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLParamLREAL.TcDUT b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLParamLREAL.TcDUT
new file mode 100644
index 0000000..5f7c2b4
--- /dev/null
+++ b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLParamLREAL.TcDUT
@@ -0,0 +1,14 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLParamREAL.TcDUT b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLParamREAL.TcDUT
new file mode 100644
index 0000000..f99e0e0
--- /dev/null
+++ b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLParamREAL.TcDUT
@@ -0,0 +1,14 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLParamSTRING.TcDUT b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLParamSTRING.TcDUT
new file mode 100644
index 0000000..cead119
--- /dev/null
+++ b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLParamSTRING.TcDUT
@@ -0,0 +1,14 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLRecipe.TcDUT b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLRecipe.TcDUT
new file mode 100644
index 0000000..699d620
--- /dev/null
+++ b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLRecipe.TcDUT
@@ -0,0 +1,15 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackML_ProductData.TcDUT b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackML_ProductData.TcDUT
new file mode 100644
index 0000000..a73d7ed
--- /dev/null
+++ b/PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackML_ProductData.TcDUT
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PLC/LibraryCandidates/PackML/DUTs/ST_PackMLStateMachineConfig.TcDUT b/PLC/LibraryCandidates/PackML/DUTs/ST_PackMLStateMachineConfig.TcDUT
new file mode 100644
index 0000000..36810e0
--- /dev/null
+++ b/PLC/LibraryCandidates/PackML/DUTs/ST_PackMLStateMachineConfig.TcDUT
@@ -0,0 +1,27 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PLC/LibraryCandidates/PackML/FB_PackMLStateMachine.TcPOU b/PLC/LibraryCandidates/PackML/FB_PackMLStateMachine.TcPOU
deleted file mode 100644
index 214c952..0000000
--- a/PLC/LibraryCandidates/PackML/FB_PackMLStateMachine.TcPOU
+++ /dev/null
@@ -1,244 +0,0 @@
-
-
-
-
-
- _eMode THEN
- // Only allow mode switch in stopped state
- // or in aborted state when target mode ist manual mode
- IF (_eState = E_PackMLState.STOPPED) OR (_eState = E_PackMLState.ABORTED AND eMode = E_PackMLUnitMode.MANUAL) THEN
- _eMode := eMode;
- END_IF
-END_IF
-
-
-// Base state machine
-CASE _eState OF
- E_PackMLState.STOPPING:
- IF eCmd = E_PackMLCmd.ABORT THEN
- _eState := E_PackMLState.ABORTING;
- END_IF
-
- E_PackMLState.STOPPED:
- IF eCmd = E_PackMLCmd.RESET THEN
- _eState := E_PackMLState.RESETTING;
- END_IF
-
- IF eCmd = E_PackMLCmd.ABORT THEN
- _eState := E_PackMLState.ABORTING;
- END_IF
-
- E_PackMLState.RESETTING:
- IF eCmd = E_PackMLCmd.STOP THEN
- _eState := E_PackMLState.STOPPING;
- END_IF
-
- IF eCmd = E_PackMLCmd.ABORT THEN
- _eState := E_PackMLState.ABORTING;
- END_IF
-
- E_PackMLState.IDLE:
- IF eCmd = E_PackMLCmd.START THEN
- _eState := E_PackMLState.STARTING;
- END_IF
-
- IF eCmd = E_PackMLCmd.STOP THEN
- _eState := E_PackMLState.STOPPING;
- END_IF
-
- IF eCmd = E_PackMLCmd.ABORT THEN
- _eState := E_PackMLState.ABORTING;
- END_IF
-
- E_PackMLState.STARTING:
- IF eCmd = E_PackMLCmd.STOP THEN
- _eState := E_PackMLState.STOPPING;
- END_IF
-
- IF eCmd = E_PackMLCmd.ABORT THEN
- _eState := E_PackMLState.ABORTING;
- END_IF
-
- E_PackMLState.EXECUTE:
- IF eCmd = E_PackMLCmd.SUSPEND THEN
- _eState := E_PackMLState.SUSPENDING;
- END_IF
-
- IF eCmd = E_PackMLCmd.HOLD THEN
- _eState := E_PackMLState.HOLDING;
- END_IF
-
- IF eCmd = E_PackMLCmd.STOP THEN
- _eState := E_PackMLState.STOPPING;
- END_IF
-
- IF eCmd = E_PackMLCmd.ABORT THEN
- _eState := E_PackMLState.ABORTING;
- END_IF
-
- E_PackMLState.SUSPENDING:
- IF eCmd = E_PackMLCmd.STOP THEN
- _eState := E_PackMLState.STOPPING;
- END_IF
-
- IF eCmd = E_PackMLCmd.ABORT THEN
- _eState := E_PackMLState.ABORTING;
- END_IF
-
- E_PackMLState.SUSPENDED:
- IF eCmd = E_PackMLCmd.UNSUSPEND THEN
- _eState := E_PackMLState.UNSUSPENDING;
- END_IF
-
- IF eCmd = E_PackMLCmd.STOP THEN
- _eState := E_PackMLState.STOPPING;
- END_IF
-
- IF eCmd = E_PackMLCmd.ABORT THEN
- _eState := E_PackMLState.ABORTING;
- END_IF
-
- E_PackMLState.UNSUSPENDING:
- IF eCmd = E_PackMLCmd.STOP THEN
- _eState := E_PackMLState.STOPPING;
- END_IF
-
- IF eCmd = E_PackMLCmd.ABORT THEN
- _eState := E_PackMLState.ABORTING;
- END_IF
-
- E_PackMLState.HOLDING:
- IF eCmd = E_PackMLCmd.STOP THEN
- _eState := E_PackMLState.STOPPING;
- END_IF
-
- IF eCmd = E_PackMLCmd.ABORT THEN
- _eState := E_PackMLState.ABORTING;
- END_IF
-
- E_PackMLState.HELD:
- IF eCmd = E_PackMLCmd.UNHOLD THEN
- _eState := E_PackMLState.UNHOLDING;
- END_IF
-
- IF eCmd = E_PackMLCmd.STOP THEN
- _eState := E_PackMLState.STOPPING;
- END_IF
-
- IF eCmd = E_PackMLCmd.ABORT THEN
- _eState := E_PackMLState.ABORTING;
- END_IF
-
- E_PackMLState.UNHOLDING:
- IF eCmd = E_PackMLCmd.STOP THEN
- _eState := E_PackMLState.STOPPING;
- END_IF
-
- IF eCmd = E_PackMLCmd.ABORT THEN
- _eState := E_PackMLState.ABORTING;
- END_IF
-
- E_PackMLState.COMPLETING:
- IF eCmd = E_PackMLCmd.STOP THEN
- _eState := E_PackMLState.STOPPING;
- END_IF
-
- IF eCmd = E_PackMLCmd.ABORT THEN
- _eState := E_PackMLState.ABORTING;
- END_IF
-
- E_PackMLState.COMPLETE:
- IF eCmd = E_PackMLCmd.RESET THEN
- _eState := E_PackMLState.RESETTING;
- END_IF
-
- IF eCmd = E_PackMLCmd.STOP THEN
- _eState := E_PackMLState.STOPPING;
- END_IF
-
- IF eCmd = E_PackMLCmd.ABORT THEN
- _eState := E_PackMLState.ABORTING;
- END_IF
-
- E_PackMLState.ABORTED:
- IF eCmd = E_PackMLCmd.CLEAR THEN
- _eState := E_PackMLState.CLEARING;
- END_IF
-
- E_PackMLState.CLEARING:
- IF eCmd = E_PackMLCmd.ABORT THEN
- _eState := E_PackMLState.ABORTING;
- END_IF
-
- ELSE
- ;
-END_CASE
-
-// Copy internal state value to fb output
-eState := _eState;
-eCurrentMode := _eMode;]]>
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/PLC/LibraryCandidates/PackML/GVL_PackML_Conf.TcGVL b/PLC/LibraryCandidates/PackML/GVL_PackML_Conf.TcGVL
new file mode 100644
index 0000000..4c71a5d
--- /dev/null
+++ b/PLC/LibraryCandidates/PackML/GVL_PackML_Conf.TcGVL
@@ -0,0 +1,11 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PLC/LibraryCandidates/PackML/FB_PackMLGeneric.TcPOU b/PLC/LibraryCandidates/PackML/POUs/FB_PackMLGeneric.TcPOU
similarity index 76%
rename from PLC/LibraryCandidates/PackML/FB_PackMLGeneric.TcPOU
rename to PLC/LibraryCandidates/PackML/POUs/FB_PackMLGeneric.TcPOU
index d01546f..be92a17 100644
--- a/PLC/LibraryCandidates/PackML/FB_PackMLGeneric.TcPOU
+++ b/PLC/LibraryCandidates/PackML/POUs/FB_PackMLGeneric.TcPOU
@@ -3,39 +3,90 @@
- _eState,
+ stStatus.eStateCurrent,
+ eCurrentMode => stStatus.eUnitModeCurrent,
xError=> );
+
+// Reset state state machine
+IF _eLastState <> stStatus.eStateCurrent THEN
+ _iSSM := 0;
+ _eLastState := stStatus.eStateCurrent;
+END_IF
// Call state method according to current state
-CASE _eState OF
+CASE stStatus.eStateCurrent OF
E_PackMLState.CLEARING:
M_Clearing();
@@ -84,16 +135,13 @@ CASE _eState OF
E_PackMLState.COMPLETING:
M_Completing();
- E_PackMLState.COMPLETE:
+ E_PackMLState.COMPLETED:
M_Complete();
ELSE
;
-END_CASE
-
-// Copy internal flags to output
-eState := _eState;]]>
+END_CASE]]>
-
+
diff --git a/PLC/LibraryCandidates/PackML/POUs/FB_PackMLStateMachine.TcPOU b/PLC/LibraryCandidates/PackML/POUs/FB_PackMLStateMachine.TcPOU
new file mode 100644
index 0000000..1c73884
--- /dev/null
+++ b/PLC/LibraryCandidates/PackML/POUs/FB_PackMLStateMachine.TcPOU
@@ -0,0 +1,428 @@
+
+
+
+
+
+ _eMode THEN
+ // Only allow mode switch in stopped state
+ // or in aborted state when target mode ist manual mode
+ IF (_eState = E_PackMLState.STOPPED) OR (_eState = E_PackMLState.ABORTED AND eMode = E_PackMLUnitMode.MANUAL) THEN
+ _eMode := eMode;
+ END_IF
+END_IF
+
+REPEAT
+ _xRerunSM := FALSE;
+
+ // Base state machine
+ CASE _eState OF
+ E_PackMLState.STOPPING:
+ IF eCmd = E_PackMLCmd.ABORT THEN
+ IF (NOT stConfig.xAbortingDisabled) THEN
+ _eState := E_PackMLState.ABORTING;
+ ELSE
+ _eState := E_PackMLState.ABORTED;
+ END_IF
+ END_IF
+
+ E_PackMLState.STOPPED:
+ IF eCmd = E_PackMLCmd.RESET THEN
+ IF (NOT stConfig.xResettingDisabled)THEN
+ _eState := E_PackMLState.RESETTING;
+ ELSE
+ _eState := E_PackMLState.IDLE;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.ABORT THEN
+ IF (NOT stConfig.xAbortingDisabled) THEN
+ _eState := E_PackMLState.ABORTING;
+ ELSE
+ _eState := E_PackMLState.ABORTED;
+ END_IF
+ END_IF
+
+ E_PackMLState.RESETTING:
+ IF eCmd = E_PackMLCmd.STOP THEN
+ IF (NOT stConfig.xStoppingDisabled) THEN
+ _eState := E_PackMLState.STOPPING;
+ ELSE
+ _eState := E_PackMLState.STOPPED;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.ABORT THEN
+ IF (NOT stConfig.xAbortingDisabled) THEN
+ _eState := E_PackMLState.ABORTING;
+ ELSE
+ _eState := E_PackMLState.ABORTED;
+ END_IF
+ END_IF
+
+
+ E_PackMLState.IDLE:
+ IF eCmd = E_PackMLCmd.START THEN
+ IF (NOT stConfig.xStartingDisabled) THEN
+ _eState := E_PackMLState.STARTING;
+ ELSE
+ _eState := E_PackMLState.EXECUTE;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.STOP THEN
+ IF (NOT stConfig.xStoppingDisabled) THEN
+ _eState := E_PackMLState.STOPPING;
+ ELSE
+ _eState := E_PackMLState.STOPPED;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.ABORT THEN
+ IF (NOT stConfig.xAbortingDisabled) THEN
+ _eState := E_PackMLState.ABORTING;
+ ELSE
+ _eState := E_PackMLState.ABORTED;
+ END_IF
+ END_IF
+
+ E_PackMLState.STARTING:
+ IF eCmd = E_PackMLCmd.STOP THEN
+ IF (NOT stConfig.xStoppingDisabled) THEN
+ _eState := E_PackMLState.STOPPING;
+ ELSE
+ _eState := E_PackMLState.STOPPED;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.ABORT THEN
+ IF (NOT stConfig.xAbortingDisabled) THEN
+ _eState := E_PackMLState.ABORTING;
+ ELSE
+ _eState := E_PackMLState.ABORTED;
+ END_IF
+ END_IF
+
+
+ E_PackMLState.EXECUTE:
+ IF eCmd = E_PackMLCmd.SUSPEND AND (NOT stConfig.xSuspededDisabled) THEN
+ IF (NOT stConfig.xSuspendingDisabled) THEN
+ _eState := E_PackMLState.SUSPENDING;
+ ELSE
+ _eState := E_PackMLState.SUSPENDED;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.HOLD AND (NOT stConfig.xHeldDisabled) THEN
+ IF (NOT stConfig.xHoldingDisabled) THEN
+ _eState := E_PackMLState.HOLDING;
+ ELSE
+ _eState := E_PackMLState.HELD;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.STOP THEN
+ IF (NOT stConfig.xStoppingDisabled) THEN
+ _eState := E_PackMLState.STOPPING;
+ ELSE
+ _eState := E_PackMLState.STOPPED;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.ABORT THEN
+ IF (NOT stConfig.xAbortingDisabled) THEN
+ _eState := E_PackMLState.ABORTING;
+ ELSE
+ _eState := E_PackMLState.ABORTED;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.COMPLETE THEN
+ IF (NOT stConfig.xCompletedDisabled)THEN
+ IF (NOT stConfig.xCompletingDisabled) THEN
+ _eState := E_PackMLState.COMPLETING;
+ ELSE
+ _eState := E_PackMLState.COMPLETED;
+ END_IF
+ ELSE
+ IF (NOT stConfig.xResettingDisabled) THEN
+ _eState := E_PackMLState.RESETTING;
+ ELSE
+ _eState := E_PackMLState.IDLE;
+ END_IF
+ END_IF
+ END_IF
+
+ E_PackMLState.SUSPENDING:
+ IF eCmd = E_PackMLCmd.STOP THEN
+ IF (NOT stConfig.xStoppingDisabled) THEN
+ _eState := E_PackMLState.STOPPING;
+ ELSE
+ _eState := E_PackMLState.STOPPED;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.ABORT THEN
+ IF (NOT stConfig.xAbortingDisabled) THEN
+ _eState := E_PackMLState.ABORTING;
+ ELSE
+ _eState := E_PackMLState.ABORTED;
+ END_IF
+ END_IF
+
+ E_PackMLState.SUSPENDED:
+ IF eCmd = E_PackMLCmd.UNSUSPEND THEN
+ IF (NOT stConfig.xUnsuspendingDisabled) THEN
+ _eState := E_PackMLState.UNSUSPENDING;
+ ELSE
+ _eState := E_PackMLState.EXECUTE;
+ END_IF
+
+ END_IF
+
+ IF eCmd = E_PackMLCmd.HOLD AND (NOT stConfig.xHeldDisabled) THEN
+ IF (NOT stConfig.xHoldingDisabled) THEN
+ _eState := E_PackMLState.HOLDING;
+ ELSE
+ _eState := E_PackMLState.HELD;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.STOP THEN
+ IF (NOT stConfig.xStoppingDisabled) THEN
+ _eState := E_PackMLState.STOPPING;
+ ELSE
+ _eState := E_PackMLState.STOPPED;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.ABORT THEN
+ IF (NOT stConfig.xAbortingDisabled) THEN
+ _eState := E_PackMLState.ABORTING;
+ ELSE
+ _eState := E_PackMLState.ABORTED;
+ END_IF
+ END_IF
+
+ E_PackMLState.UNSUSPENDING:
+ IF eCmd = E_PackMLCmd.STOP THEN
+ IF (NOT stConfig.xStoppingDisabled) THEN
+ _eState := E_PackMLState.STOPPING;
+ ELSE
+ _eState := E_PackMLState.STOPPED;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.ABORT THEN
+ IF (NOT stConfig.xAbortingDisabled) THEN
+ _eState := E_PackMLState.ABORTING;
+ ELSE
+ _eState := E_PackMLState.ABORTED;
+ END_IF
+ END_IF
+
+ E_PackMLState.HOLDING:
+ IF eCmd = E_PackMLCmd.STOP THEN
+ IF (NOT stConfig.xStoppingDisabled) THEN
+ _eState := E_PackMLState.STOPPING;
+ ELSE
+ _eState := E_PackMLState.STOPPED;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.ABORT THEN
+ IF (NOT stConfig.xAbortingDisabled) THEN
+ _eState := E_PackMLState.ABORTING;
+ ELSE
+ _eState := E_PackMLState.ABORTED;
+ END_IF
+ END_IF
+
+ E_PackMLState.HELD:
+ IF eCmd = E_PackMLCmd.UNHOLD THEN
+ IF (NOT stConfig.xUnholdingDisabled) THEN
+ _eState := E_PackMLState.UNHOLDING;
+ ELSE
+ _eState := E_PackMLState.EXECUTE;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.STOP THEN
+ IF (NOT stConfig.xStoppingDisabled) THEN
+ _eState := E_PackMLState.STOPPING;
+ ELSE
+ _eState := E_PackMLState.STOPPED;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.ABORT THEN
+ IF (NOT stConfig.xAbortingDisabled) THEN
+ _eState := E_PackMLState.ABORTING;
+ ELSE
+ _eState := E_PackMLState.ABORTED;
+ END_IF
+ END_IF
+
+ E_PackMLState.UNHOLDING:
+ IF eCmd = E_PackMLCmd.STOP THEN
+ IF (NOT stConfig.xStoppingDisabled) THEN
+ _eState := E_PackMLState.STOPPING;
+ ELSE
+ _eState := E_PackMLState.STOPPED;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.ABORT THEN
+ IF (NOT stConfig.xAbortingDisabled) THEN
+ _eState := E_PackMLState.ABORTING;
+ ELSE
+ _eState := E_PackMLState.ABORTED;
+ END_IF
+ END_IF
+
+ E_PackMLState.COMPLETING:
+ IF eCmd = E_PackMLCmd.STOP THEN
+ IF (NOT stConfig.xStoppingDisabled) THEN
+ _eState := E_PackMLState.STOPPING;
+ ELSE
+ _eState := E_PackMLState.STOPPED;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.ABORT THEN
+ IF (NOT stConfig.xAbortingDisabled) THEN
+ _eState := E_PackMLState.ABORTING;
+ ELSE
+ _eState := E_PackMLState.ABORTED;
+ END_IF
+ END_IF
+
+ E_PackMLState.COMPLETED:
+ IF eCmd = E_PackMLCmd.RESET THEN
+ IF (NOT stConfig.xResettingDisabled)THEN
+ _eState := E_PackMLState.RESETTING;
+ ELSE
+ _eState := E_PackMLState.IDLE;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.STOP THEN
+ IF (NOT stConfig.xStoppingDisabled) THEN
+ _eState := E_PackMLState.STOPPING;
+ ELSE
+ _eState := E_PackMLState.STOPPED;
+ END_IF
+ END_IF
+
+ IF eCmd = E_PackMLCmd.ABORT THEN
+ IF (NOT stConfig.xAbortingDisabled) THEN
+ _eState := E_PackMLState.ABORTING;
+ ELSE
+ _eState := E_PackMLState.ABORTED;
+ END_IF
+ END_IF
+
+ E_PackMLState.ABORTED:
+ IF eCmd = E_PackMLCmd.CLEAR THEN
+ IF (NOT stConfig.xClearingDisabled) THEN
+ _eState := E_PackMLState.CLEARING;
+ ELSE
+ _eState := E_PackMLState.STOPPED;
+ END_IF
+ END_IF
+
+ E_PackMLState.CLEARING:
+ IF eCmd = E_PackMLCmd.ABORT THEN
+ IF (NOT stConfig.xAbortingDisabled) THEN
+ _eState := E_PackMLState.ABORTING;
+ ELSE
+ _eState := E_PackMLState.ABORTED;
+ END_IF
+ END_IF
+
+ ELSE
+ ;
+ END_CASE
+
+UNTIL (NOT _xRerunSM)
+END_REPEAT
+
+
+
+// Copy internal state value to fb output
+eState := _eState;
+eCurrentMode := _eMode;]]>
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PLC/LibraryCandidates/Unittests/FB_PackMLStateMachine_Test.TcPOU b/PLC/LibraryCandidates/Unittests/FB_PackMLStateMachine_Test.TcPOU
index 6e7e40f..3c3efd1 100644
--- a/PLC/LibraryCandidates/Unittests/FB_PackMLStateMachine_Test.TcPOU
+++ b/PLC/LibraryCandidates/Unittests/FB_PackMLStateMachine_Test.TcPOU
@@ -194,7 +194,7 @@ fbPackML.M_StateComplete();
AssertEquals_DINT(E_PackMLState.COMPLETING, fbPackML.eState, 'Should transition to COMPLETING');
fbPackML.M_StateComplete();
-AssertEquals_DINT(E_PackMLState.COMPLETE, fbPackML.eState, 'Should transition to COMPLETE');
+AssertEquals_DINT(E_PackMLState.COMPLETED, fbPackML.eState, 'Should transition to COMPLETE');
TEST_FINISHED();]]>
@@ -221,7 +221,7 @@ AssertEquals_DINT(E_PackMLState.EXECUTE, fbPackML.eState, 'Should reach EXECUTE'
// EXECUTE -> COMPLETING -> COMPLETE
fbPackML.M_StateComplete();
fbPackML.M_StateComplete();
-AssertEquals_DINT(E_PackMLState.COMPLETE, fbPackML.eState, 'Should reach COMPLETE');
+AssertEquals_DINT(E_PackMLState.COMPLETED, fbPackML.eState, 'Should reach COMPLETE');
// COMPLETE -> RESETTING -> IDLE
fbPackML(eCmd := E_PackMLCmd.RESET);
@@ -425,7 +425,7 @@ fbPackML(eCmd := E_PackMLCmd.START);
fbPackML.M_StateComplete();
fbPackML.M_StateComplete();
fbPackML.M_StateComplete();
-AssertEquals_DINT(E_PackMLState.COMPLETE, fbPackML.eState, 'Setup: Should be COMPLETE');
+AssertEquals_DINT(E_PackMLState.COMPLETED, fbPackML.eState, 'Setup: Should be COMPLETE');
// Test RESET from COMPLETE
fbPackML(eCmd := E_PackMLCmd.RESET);
@@ -452,7 +452,7 @@ fbPackML(eCmd := E_PackMLCmd.START);
fbPackML.M_StateComplete();
fbPackML.M_StateComplete();
fbPackML.M_StateComplete();
-AssertEquals_DINT(E_PackMLState.COMPLETE, fbPackML.eState, 'Setup: Should be COMPLETE');
+AssertEquals_DINT(E_PackMLState.COMPLETED, fbPackML.eState, 'Setup: Should be COMPLETE');
// Test STOP from COMPLETE
fbPackML(eCmd := E_PackMLCmd.STOP);
diff --git a/PLC/PLC.plcproj b/PLC/PLC.plcproj
index 191b583..4c1794a 100644
--- a/PLC/PLC.plcproj
+++ b/PLC/PLC.plcproj
@@ -63,28 +63,56 @@
Code
-
- Code
-
Code
true
-
+
Code
-
+
Code
-
+
Code
-
+
Code
-
+
Code
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+ true
+
Code
@@ -94,6 +122,12 @@
Code
+
+ Code
+
+
+ Code
+
Code
@@ -103,13 +137,6 @@
Code
-
- Code
-
-
- Code
- Visualization Manager.TcVMO
-
@@ -122,10 +149,12 @@
+
+
+
-
diff --git a/PLC/PLC.tmc b/PLC/PLC.tmc
new file mode 100644
index 0000000..abc66ee
--- /dev/null
+++ b/PLC/PLC.tmc
@@ -0,0 +1,392 @@
+ST_LibVersion288iMajorUINT160iMinorUINT1616iBuildUINT1632iRevisionUINT1648nFlagsDWORD3264sVersionSTRING(23)19296E_WATCHDOG_TIME_CONFIG16INTeWATCHDOG_TIME_DISABLED0eWATCHDOG_TIME_SECONDS1eWATCHDOG_TIME_MINUTES2INT (2..100)16INTLowerBorder2UpperBorder100E_HashPrefixTypes16INTHASHPREFIX_IEC0HASHPREFIX_STDC1E_SBCSType16INTeSBCS_WesternEuropean1eSBCS_CentralEuropean2T_AmsNetID192STRING(23)E_RouteTransportType16UINTeRouteTransport_None0eRouteTransport_TCP_IP1eRouteTransport_IIO_LIGHTBUS2eRouteTransport_PROFIBUS_DP3eRouteTransport_PCI_ISA_BUS4eRouteTransport_ADS_UDP5eRouteTransport_FATP_UDP6eRouteTransport_COM_PORT7eRouteTransport_USB8eRouteTransport_CAN_OPEN9eRouteTransport_DEVICE_NET10eRouteTransport_SSB11eRouteTransport_SOAP12ST_AmsRouteEntry1184sNameSTRING(31)2560sNetIDT_AmsNetID192256sAddressSTRING(79)640448eTransportE_RouteTransportType161088tTimeoutTIME321120dwFlagsDWORD321152E_ArgType16INTARGTYPE_UNKNOWN0ARGTYPE_BYTE1ARGTYPE_WORD2ARGTYPE_DWORD3ARGTYPE_REAL4ARGTYPE_LREAL5ARGTYPE_SINT6ARGTYPE_INT7ARGTYPE_DINT8ARGTYPE_USINT9ARGTYPE_UINT10ARGTYPE_UDINT11ARGTYPE_STRING12ARGTYPE_BOOL13ARGTYPE_BIGTYPE14ARGTYPE_ULARGE15ARGTYPE_UHUGE16ARGTYPE_LARGE17ARGTYPE_HUGE18ARGTYPE_LWORD19T_Arg128eTypeE_ArgType160E_ArgType.ARGTYPE_UNKNOWNcbLenUDINT cbLen = length of string + 1 (null delimiter). ]]>32320pDataPVOID64640T_ULARGE_INTEGER64dwLowPartDWORD320dwHighPartDWORD3232TIMESTRUCT128wYearWORD160wMonthWORD1616wDayOfWeekWORD1632wDayWORD1648wHourWORD1664wMinuteWORD1680wSecondWORD1696wMillisecondsWORD16112ST_TimeZoneInformation864biasDINT320standardNameSTRING(31)25632standardDateTIMESTRUCT128288standardBiasDINT32416daylightNameSTRING(31)256448daylightDateTIMESTRUCT128704daylightBiasDINT32832TcEventSeverity16INT01234plcAttribute_qualified_onlyplcAttribute_strictTcEventEntryFlags8BYTE0#x1plcAttribute_qualified_onlyTcEventEntry192uuidEventClassGUID1280nEventIdUDINT32128eSeverityTcEventSeverity16160eFlagsTcEventEntryFlags8176UDINT (81..10000)32UDINTLowerBorder81UpperBorder10000T_MaxString2048STRING(255)TOF256INBOOL864ItemTypeInputPTTIME3296ItemTypeInputQBOOL8128ItemTypeOutputETTIME32160ItemTypeOutputMBOOL8192StartTimeTIME32224PouTypeFunctionBlockUINT (0..GVL_Param_TcUnit.MaxNumberOfTestSuites)16UINTLowerBorder0UpperBorder1000UINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16UINTLowerBorder0UpperBorder100E_AssertionType8BYTEType_UNDEFINED0Type_ANY1Type_BOOL2Type_BYTE3Type_DATE4Type_DATE_AND_TIME5Type_DINT6Type_DWORD7Type_INT8Type_LINT9Type_LREAL10Type_LTIME11Type_LWORD12Type_REAL13Type_SINT14Type_STRING15Type_TIME16Type_TIME_OF_DAY17Type_UDINT18Type_UINT19Type_ULINT20Type_USINT21Type_WORD22Type_WSTRING23Type_Array2D_LREAL24Type_Array2D_REAL25Type_Array3D_LREAL26Type_Array3D_REAL27Type_Array_BOOL28Type_Array_BYTE29Type_Array_DINT30Type_Array_DWORD31Type_Array_INT32Type_Array_LINT33Type_Array_LREAL34Type_Array_LWORD35Type_Array_REAL36Type_Array_SINT37Type_Array_UDINT38Type_Array_UINT39Type_Array_ULINT40Type_Array_USINT41Type_Array_WORD42qualified_onlystrictST_TestCaseResult6192TestNameT_MaxString20480TestClassNameT_MaxString20482048TestIsFailedBOOL84096TestIsSkippedBOOL84104FailureMessageT_MaxString20484112FailureTypeE_AssertionType86160NumberOfAssertsUINT166176ST_TestSuiteResult621296NameT_MaxString20480IdentityUINT (0..GVL_Param_TcUnit.MaxNumberOfTestSuites)162048NumberOfTestsUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)162064NumberOfFailedTestsUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)162080TestCaseResultsST_TestCaseResult11006192002096ST_TestSuiteResults621296064NumberOfTestSuitesUINT160NumberOfTestCasesUINT1616NumberOfSuccessfulTestCasesUINT1632NumberOfFailedTestCasesUINT1648TestSuiteResultsST_TestSuiteResult1100062129600064I_TestResults64PVOIDGetAreTestResultsAvailableBOOL8GetTestSuiteResultsST_TestSuiteResults64TcPlcInterfaceTypeUINT (1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16UINTLowerBorder1UpperBorder1000R_TRIG128CLKBOOL864ItemTypeInputQBOOL872ItemTypeOutputMBOOL880conditionalshowPouTypeFunctionBlockconditionalshow_all_localsFB_TestResults621296448I_TestResultsTestSuiteResultsST_TestSuiteResults621296064128StoringTestSuiteResultNumberUINT (1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16621296192StoringTestSuiteTriggerR_TRIG128621296256StoredTestSuiteResultsBOOL8621296384StoredGeneralTestResultsBOOL8621296392NumberOfTestsToAnalyseUINT (1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16621296400GetAreTestResultsAvailableBOOL8GetTestSuiteResultsST_TestSuiteResults64PouTypeFunctionBlockI_TestResultLogger64PVOIDLogTestSuiteResultsTcPlcInterfaceTypeUINT (1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16UINTLowerBorder1UpperBorder100FB_AdsTestResultLogger448I_TestResultLoggerTestResultsI_TestResults64128PrintingTestSuiteResultNumberUINT (1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16192PrintingTestSuiteTriggerR_TRIG128256PrintedFinalTestResultsBOOL8384PrintedTestSuitesResultsBOOL8392LogTestSuiteResultsTcUnitTestResultsST_TestSuiteResults64StringToPrintT_MaxString2048TestsInTestSuiteCounterUINT (1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16MaxNumberOfTestsToPrintUINT (1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16TEST_STATUS_SKIPSTRING(80)648TEST_STATUS_PASSSTRING(80)648TEST_STATUS_FAILSTRING(80)648PouTypeFunctionBlockRTS_IEC_RESULT32UDINTACCESS_MODE32UDINTAM_READ0AM_WRITE1AM_APPEND2AM_READ_PLUS3AM_WRITE_PLUS4AM_APPEND_PLUS5external_nameRTS_ACCESS_MODERTS_IEC_SIZE64BYTERTS_IEC_HANDLE64BYTEFB_FileControl192FileAccessModeACCESS_MODE3264ACCESS_MODE.AM_APPEND_PLUSFileHandleRTS_IEC_HANDLE64128ReadRTS_IEC_RESULT32BufferPointerBYTE64SizeUDINT32FileSizeRTS_IEC_SIZE64ItemTypeOutputCloseRTS_IEC_RESULT32OpenRTS_IEC_RESULT32FileNameT_MaxString2048FileAccessModeACCESS_MODE32DeleteRTS_IEC_RESULT32FileNameT_MaxString2048WriteRTS_IEC_RESULT32BufferPointerBYTE64SizeUDINT32PouTypeFunctionBlockE_XmlError8BYTEOk0ErrorMaxBufferLen1ErrorStringLen2Error3qualified_onlystrictFB_StreamBuffer192_PointerToStringBufferBYTE6464_BufferSizeUDINT32128_LengthUDINT32160CutOffT_MaxString2048StartPosUDINT32CutLenUDINT32ItemTypeOutputXmlErrorE_XmlError8ItemTypeOutputLoopUDINT32PointerToByteToCutBYTE64PointerToByteBufferBYTE64FindUDINT32SearchStringSTRING(80)648StartPosUDINT32LoopUDINT32SearchUDINT32PointerToBufferBYTE64PointerToSearchBYTE64FindBackUDINT32SearchStringT_MaxString2048LoopUDINT32SearchUDINT32PointerToBufferBYTE64PointerToSearchBYTE64__getLengthUDINT32LengthUDINT32propertyClearCountUDINT32__setAppendAppendT_MaxString2048ByteInBYTE64ByteBufferBYTE64property__getBufferSizeUDINT32BufferSizeUDINT32property__setLengthLengthUDINT32propertySetBufferBOOL8PointerToBufferAddressBYTE64SizeOfBufferUDINT32CopyT_MaxString2048StartPosUDINT32EndPosUDINT32CopyLenUDINT32ItemTypeOutputXmlErrorE_XmlError8ItemTypeOutputLoopUDINT32PointerToByteToCopyBYTE64PointerToBufferBYTE64CurPosUDINT32PouTypeFunctionBlockFB_XmlControl6016XmlBufferFB_StreamBuffer19264TagListBufferFB_StreamBuffer192256TagsT_MaxString2048448TagListSeekBufferFB_StreamBuffer1922496TagsSeekSTRING(80)6482688TagBufferFB_StreamBuffer1923392TagT_MaxString20483584TagOpenBOOL85632SelectUDINT325664SearchPositionUDINT325696TAG_OPENSTRING(1)165728<TAG_CLOSESTRING(1)165744>END_TAG_CLOSESTRING(2)245760/>SPACESTRING(1)165784 EQUALSSTRING(1)165800=QUOTESTRING(1)165816"BACK_SLASHSTRING(1)165832\FORWARD_SLASHSTRING(1)165848/OPEN_COMMENTSTRING(5)485864<!-- CLOSE_COMMENTSTRING(4)405912 -->TABSTRING(2)245952 CR_LFSTRING(4)405976
+NewParameterNameT_MaxString2048ValueT_MaxString2048NewTag
+
+ XML.NewTag(Name: = 'MyTag');
+]]>NameT_MaxString2048CloseTag'
+
+ Method: XML.CloseTag();
+]]>T_MaxString2048ClosedTagT_MaxString2048WriteDocumentHeader
+
+ Start with calling this method before appending any other tags!
+
+ XML.WriteDocumentHeader('');
+]]>HeaderT_MaxString2048NewComment
+
+ XML.NewComment(Comment: = 'MyComment');
+]]>CommentT_MaxString2048__getLengthUDINT32LengthUDINT32propertyNewTagDataDataT_MaxString2048SetBufferPointerToBufferBYTE64SizeOfBufferUDINT32ClearBufferToStartBufferPouTypeFunctionBlockFB_xUnitXmlPublisher530944I_TestResultLoggerTestResultsI_TestResults64128AccessModeACCESS_MODE32192ACCESS_MODE.AM_WRITE_PLUSFileFB_FileControl192256XmlFB_XmlControl6016448BufferInitialisedBOOL86464falseBufferBYTE0655355242806472WritingTestSuiteResultNumberUINT (1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16530752PublishTriggerR_TRIG128530816DeleteOpenWriteCloseRTS_IEC_RESULT32LogTestSuiteResultsUnitTestResultsST_TestSuiteResults64CurrentSuiteNumberUINT16CurrentTestCountUINT16TEST_STATUS_SKIPSTRING(80)648TEST_STATUS_PASSSTRING(80)648TEST_STATUS_FAILSTRING(80)648InitialisedBOOL8PouTypeFunctionBlockFB_TcUnitRunner621828480AllTestSuitesFinishedBOOL864falseTestResultsFB_TestResults621296448128AdsTestResultLoggerFB_AdsTestResultLogger448621296576TestResultLoggerI_TestResultLogger64621297024AbortRunningTestSuitesBOOL8621297088xUnitXmlPublisherFB_xUnitXmlPublisher530944621297152XmlTestResultPublisherI_TestResultLogger64621828096__FB_TCUNITRUNNER__RUNTESTSUITETESTSINSEQUENCE__CURRENTLYRUNNINGTESTSUITEUINT166218281601implicit_inst_var__FB_TCUNITRUNNER__RUNTESTSUITETESTSINSEQUENCE__TIMERBETWEENEXECUTIONOFTESTSUITESTOF256621828224implicit_inst_varAbortRunningTestSuiteTestsRunTestSuiteTestsInSequenceTimeBetweenTestSuitesExecutionTIME32BusyPrintingBOOL8NumberOfTestSuitesFinishedUINT16CurrentlyRunningTestSuiteUINT16uselocation__FB_TCUNITRUNNER__RUNTESTSUITETESTSINSEQUENCE__CURRENTLYRUNNINGTESTSUITETimerBetweenExecutionOfTestSuitesTOF256uselocation__FB_TCUNITRUNNER__RUNTESTSUITETESTSINSEQUENCE__TIMERBETWEENEXECUTIONOFTESTSUITESRunTestSuiteTestsCounterUINT16BusyPrintingBOOL8NumberOfTestSuitesFinishedUINT16PouTypeFunctionBlockFB_Test4224TestNameT_MaxString204864TestIsFinishedBOOL82112TestIsSkippedBOOL82120NumberOfAssertionsUINT162128TestOrderNumberUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) 0 tells in which order this test will be executed/evaluated. The lower the number, the earlier it will execute. ]]>162144TestIsFailedBOOL82160AssertionMessageT_MaxString20482168AssertionTypeE_AssertionType84216GetAssertionTypeE_AssertionType8SetFailedSetNameNameT_MaxString2048GetNameT_MaxString2048SetNumberOfAssertionsNoOfAssertionsUINT16SetTestOrderOrderNumberUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16IsSkippedBOOL8GetNumberOfAssertionsUINT16SetFinishedBOOL8GetAssertionMessageT_MaxString2048SetSkippedSetAssertionMessageAssertMessageT_MaxString2048SetAssertionTypeAssertTypeE_AssertionType8IsFinishedBOOL8GetTestOrderUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16IsFailedBOOL8PouTypeFunctionBlockTYPE_CLASS32DWORDTYPE_BOOL0TYPE_BIT1TYPE_BYTE2TYPE_WORD3TYPE_DWORD4TYPE_LWORD5TYPE_SINT6TYPE_INT7TYPE_DINT8TYPE_LINT9TYPE_USINT10TYPE_UINT11TYPE_UDINT12TYPE_ULINT13TYPE_REAL14TYPE_LREAL15TYPE_STRING16TYPE_WSTRING17TYPE_TIME18TYPE_DATE19TYPE_DATEANDTIME20TYPE_TIMEOFDAY21TYPE_POINTER22TYPE_REFERENCE23TYPE_SUBRANGE24TYPE_ENUM25TYPE_ARRAY26TYPE_PARAMS27TYPE_USERDEF28TYPE_NONE29TYPE_ANY30TYPE_ANYBIT31TYPE_ANYDATE32TYPE_ANYINT33TYPE_ANYNUM34TYPE_ANYREAL35TYPE_LAZY36TYPE_LTIME37TYPE_BITCONST38TYPE_UXINT39TYPE_XWORD40TYPE_XINT41TYPE_XSTRING42TYPE_VARLENARRAY43TYPE_ANYSTRING44TYPE_VECTOR45TYPE_LDATE46TYPE_LDATEANDTIME47TYPE_LTIMEOFDAY48qualified_onlym4export_hidegenerate_implicit_init_functionAnyType128pValueBYTE640diSizeDINT3264TypeClassTYPE_CLASS3296linkalwaysFW_GetCurTaskIndex128nIndexBYTE864ItemTypeOutputPouTypeFunctionBlockconditionalshowGETCURTASKINDEX256indexBYTE864ItemTypeOutputfbGetCurTaskIndexFW_GetCurTaskIndex128128conditionalshowPouTypeFunctionBlockconditionalshow_all_localsE_TypeFieldParam16INTTYPEFIELD_UNKNOWN0TYPEFIELD_B1TYPEFIELD_O2TYPEFIELD_U3TYPEFIELD_C4TYPEFIELD_F5TYPEFIELD_D6TYPEFIELD_S7TYPEFIELD_XU8TYPEFIELD_XL9TYPEFIELD_EU10TYPEFIELD_EL11ST_FormatParameters160bPercentBOOL80bFlagsBOOL88bWidthBOOL816bDotBOOL824bPrecisionBOOL832bTypeBOOL840bAlignBOOL848bSignBOOL856bNullBOOL864bBlankBOOL872bHashBOOL880iWidthINT1696iPrecisionINT16112bWidthAsteriskBOOL8128bPrecisionAsteriskBOOL8136eTypeE_TypeFieldParam16144conditionalshowFB_FormatString8576sFormatT_MaxString204864ItemTypeInputarg1T_Arg1282112ItemTypeInputarg2T_Arg1282240ItemTypeInputarg3T_Arg1282368ItemTypeInputarg4T_Arg1282496ItemTypeInputarg5T_Arg1282624ItemTypeInputarg6T_Arg1282752ItemTypeInputarg7T_Arg1282880ItemTypeInputarg8T_Arg1283008ItemTypeInputarg9T_Arg1283136ItemTypeInputarg10T_Arg1283264ItemTypeInputbErrorBOOL error, FALSE => no error ]]>83392ItemTypeOutputnErrIdUDINT323424ItemTypeOutputsOutT_MaxString20483456ItemTypeOutputpFormatBYTE6455040conditionalshowpOutBYTE6455680conditionalshowiRemOutLenINT165632conditionalshowbValidBOOL85648conditionalshowstFmtST_FormatParameters1605664conditionalshownArrayElemINT165824conditionalshownArgumentUDINT325856conditionalshowparArgsT_Arg1106405888conditionalshowsArgStrT_MaxString20486528conditionalshowPouTypeFunctionBlockconditionalshow_all_localsTypeClass16INTTYPE_BOOL0TYPE_BIT1TYPE_BYTE2TYPE_WORD3TYPE_DWORD4TYPE_LWORD5TYPE_SINT6TYPE_INT7TYPE_DINT8TYPE_LINT9TYPE_USINT10TYPE_UINT11TYPE_UDINT12TYPE_ULINT13TYPE_REAL14TYPE_LREAL15TYPE_STRING16TYPE_WSTRING17TYPE_TIME18TYPE_DATE19TYPE_DATEANDTIME20TYPE_TIMEOFDAY21TYPE_POINTER22TYPE_REFERENCE23TYPE_SUBRANGE24TYPE_ENUM25TYPE_ARRAY26TYPE_PARAMS27TYPE_USERDEF28TYPE_NONE29TYPE_ANY30TYPE_ANYBIT31TYPE_ANYDATE32TYPE_ANYINT33TYPE_ANYNUM34TYPE_ANYREAL35TYPE_LAZY36TYPE_LTIME37TYPE_BITCONST38TYPE_UXINT39TYPE_XWORD40TYPE_XINT41TYPE_XSRTING42TYPE_VARLENARRAY43TYPE_ANYSTRING44TYPE_VECTOR45TYPE_LDATE46TYPE_LDATEANDTIME47TYPE_LTIMEOFDAY48TYPE_INTERFACE-4096compatibility_id52A6FD6D-031C-41c0-A818-0F45FE19AF8FU_ExpectedOrActual4096boolExpectedOrActualBOOL80bitExpectedOrActualBIT80byteExpectedOrActualBYTE80sintExpectedOrActualSINT80usintExpectedOrActualUSINT80intExpectedOrActualINT160uintExpectedOrActualUINT160wordExpectedOrActualWORD160dwordExpectedOrActualDWORD320dateandtimeExpectedOrActualDATE_AND_TIME320dintExpectedOrActualDINT320realExpectedOrActualREAL320timeExpectedOrActualTIME320dateExpectedOrActualDATE320udintExpectedOrActualUDINT320timeofdayExpectedOrActualTIME_OF_DAY320lwordExpectedOrActualLWORD640lintExpectedOrActualLINT640ulintExpectedOrActualULINT640lrealExpectedOrActualLREAL640ltimeExpectedOrActualLTIME640stringExpectedOrActualT_MaxString20480wstringExpectedOrActualWSTRING(255)40960ST_AssertResult12288ExpectedU_ExpectedOrActual40960ActualU_ExpectedOrActual40964096MessageT_MaxString20488192TestInstancePathT_MaxString204810240ST_AssertResultInstances12352AssertResultST_AssertResult122880DetectionCountUINT1612288DetectionCountThisCycleUINT1612304FB_AssertResultStatic24640448AssertResultsST_AssertResult110001228800064TotalAssertsUINT16122880640GetCurrentTaskIndexGETCURTASKINDEX25612288128AssertResultInstancesST_AssertResultInstances110001235200012288384CycleCountUDINT3224640384FirstCycleExecutedBOOL824640416CopyDetectionCountAndResetDetectionCountInThisCycleIteratorCounterUINT16GetNumberOfAssertsForTestUINT16CompleteTestInstancePathT_MaxString2048CounterUINT16NumberOfAssertsUINT16CreateAssertResultInstanceExpectedSizeUDINT32ExpectedTypeClassTypeClass16ExpectedValueBYTE64ActualSizeUDINT32ActualTypeClassTypeClass16ActualValueBYTE64MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16GetDetectionCountThisCycleUINT16ExpectedSizeUDINT32ExpectedTypeClassTypeClass16ExpectedValueBYTE64ActualSizeUDINT32ActualTypeClassTypeClass16ActualValueBYTE64MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16GetDetectionCountUINT16ExpectedSizeUDINT32ExpectedTypeClassTypeClass16ExpectedValueBYTE64ActualSizeUDINT32ActualTypeClassTypeClass16ActualValueBYTE64MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16ReportResultExpectedSizeUDINT32ExpectedTypeClassTypeClass16ExpectedValueBYTE64ActualSizeUDINT32ActualTypeClassTypeClass16ActualValueBYTE64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8ItemTypeOutputLocationIndexUINT16DataTypesNotEqualsBOOL8DataSizeNotEqualsBOOL8DataContentNotEqualsBOOL8CurrentCycleCountUDINT32IteratorCounterUINT16DetectionCountTempUINT16FoundOneBOOL8AdditionalIdenticalAssertBOOL8AddAssertResultExpectedSizeUDINT32ExpectedTypeClassTypeClass16ExpectedValueBYTE64ActualSizeUDINT32ActualTypeClassTypeClass16ActualValueBYTE64MessageT_MaxString2048TestInstancePathT_MaxString2048PouTypeFunctionBlockST_AssertArrayResult4224ExpectedsSizeUDINT320ExpectedsTypeClassTypeClass1632ActualsSizeUDINT3264ActualsTypeClassTypeClass1696MessageT_MaxString2048112TestInstancePathT_MaxString20482160ST_AssertArrayResultInstances4256AssertArrayResultST_AssertArrayResult42240DetectionCountUINT164224DetectionCountThisCycleUINT164240FB_AssertArrayResultStatic8480448AssertArrayResultsST_AssertArrayResult11000422400064TotalArrayAssertsUINT1642240640GetCurrentTaskIndexGETCURTASKINDEX2564224128AssertArrayResultInstancesST_AssertArrayResultInstances1100042560004224384CycleCountUDINT328480384FirstCycleExecutedBOOL88480416CreateAssertResultInstanceExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16GetDetectionCountThisCycleUINT16ExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16GetDetectionCountUINT16ExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16ReportResultExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8ItemTypeOutputLocationIndexUINT16DataTypesNotEqualsBOOL8DataSizeNotEqualsBOOL8DataContentNotEqualsBOOL8CurrentCycleCountUDINT32IteratorCounterUINT16DetectionCountTempUINT16FoundOneBOOL8AdditionalIdenticalAssertBOOL8GetNumberOfArrayAssertsForTestUINT16CompleteTestInstancePathT_MaxString2048CounterUINT16NumberOfArrayAssertsUINT16CopyDetectionCountAndResetDetectionCountInThisCycleIteratorCounterUINT16AddAssertArrayResultExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048PouTypeFunctionBlockI_AssertMessageFormatter64PVOIDLogAssertFailureExpectedT_MaxString2048ActualT_MaxString2048MessageT_MaxString2048TestInstancePathT_MaxString2048TcPlcInterfaceTypeFB_AdjustAssertFailureMessageToMax253CharLength11648MsgFmtStringT_MaxString204864ItemTypeInputStringArgT_MaxString20482112ItemTypeInputMsgFmtStringProcessedT_MaxString20484160ItemTypeOutputStringArgProcessedT_MaxString20486208ItemTypeOutputMsgFmtStringTempT_MaxString20488256TestNameTooLongSTRING(80)64810304...TestName too longTestMsgTooLongSTRING(80)64810952...TestMsg too longMSG_FMT_STRING_MAX_NUMBER_OF_CHARACTERSINT1611600253PouTypeFunctionBlockFB_AdsAssertMessageFormatter128I_AssertMessageFormatterLogAssertFailureExpectedT_MaxString2048ActualT_MaxString2048MessageT_MaxString2048TestInstancePathT_MaxString2048AdjustAssertFailureMessageToMax253CharLengthFB_AdjustAssertFailureMessageToMax253CharLength11648TestInstancePathCleanedT_MaxString2048TestInstancePathFinalT_MaxString2048ReturnValueDINT32TestInstancePathProcessedT_MaxString2048MessageProcessedT_MaxString2048PouTypeFunctionBlockFB_TestSuite33561984InstancePathT_MaxString204864instance-pathnoinitGetCurrentTaskIndexGETCURTASKINDEX2562112NumberOfTestsUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)1623680TestsFB_Test11004224002432TestDuplicateNameTriggerR_TRIG110012800424832TestCycleCountIndexUDINT11003200437632AssertResultsFB_AssertResultStatic24640448440832AssertArrayResultsFB_AssertArrayResultStatic848044825081280AdsAssertMessageFormatterFB_AdsAssertMessageFormatter12833561728AssertMessageFormatterI_AssertMessageFormatter6433561856HasStartedRunningBOOL833561920NumberOfOrderedTestsUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)1633561936AssertEquals_LINTExpectedLINT64ActualLINT64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8GetNumberOfSuccessfulTestsUINT16AssertArrayEquals_ULINTExpectedsULINT64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF ULINTDimensions1ActualsULINT64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF ULINTDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32FindTestSuiteInstancePathT_MaxString2048AssertEquals_TIMEExpectedTIME32ActualTIME32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_TIME_OF_DAYExpectedTIME_OF_DAY32ActualTIME_OF_DAY32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_BYTEExpectedBYTE8ActualBYTE8MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8GetNumberOfFailedTestsUINT16CounterUINT16FailedTestsCountUINT16NumberOfTestsToAnalyseUINT (1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16NumberOfTestOverArrayLimitUINT16AssertEquals_DATE_AND_TIMEExpectedDATE_AND_TIME32ActualDATE_AND_TIME32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8GetTestByPositionFB_Test4224PositionUINT (1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16AssertArrayEquals_BOOLExpectedsBOOL64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF BOOLDimensions1ActualsBOOL64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF BOOLDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32AssertArrayEquals_BYTEExpectedsBYTE64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF BYTEDimensions1ActualsBYTE64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF BYTEDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedByteStringSTRING(80)648ActualByteStringSTRING(80)648ExpectedsIndexDINT32ActualsIndexDINT32AssertEquals_DATEExpectedDATE32ActualDATE32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_WORDExpectedWORD16ActualWORD16MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_LINTExpectedsLINT64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF LINTDimensions1ActualsLINT64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF LINTDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32AssertEquals_LTIMEExpectedLTIME64ActualLTIME64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_UINTExpectedsUINT64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF UINTDimensions1ActualsUINT64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF UINTDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32AssertEquals_LREALExpectedLREAL64ActualLREAL64DeltaLREAL64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_LWORDExpectedsLWORD64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF LWORDDimensions1ActualsLWORD64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF LWORDDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedLWordStringSTRING(80)648ActualLWordStringSTRING(80)648ExpectedsIndexDINT32ActualsIndexDINT32AssertEqualsExpectedAnyType128anytypeclassANYActualAnyType128anytypeclassANYMessageT_MaxString2048CountDINT32ExpectedDataStringT_MaxString2048ActualDataStringT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8boolExpectedBOOL8boolActualBOOL8byteExpectedBYTE8byteActualBYTE8dateExpectedDATE32dateActualDATE32dateAndTimeExpectedDATE_AND_TIME32dateAndTimeActualDATE_AND_TIME32dintExpectedDINT32dintActualDINT32dwordExpectedDWORD32dwordActualDWORD32intExpectedINT16intActualINT16lintExpectedLINT64lintActualLINT64lrealExpectedLREAL64lrealActualLREAL64ltimeExpectedLTIME64ltimeActualLTIME64lwordExpectedLWORD64lwordActualLWORD64realExpectedREAL32realActualREAL32sintExpectedSINT8sintActualSINT8stringExpectedT_MaxString2048stringActualT_MaxString2048wstringExpectedWSTRING(255)4096wstringActualWSTRING(255)4096timeExpectedTIME32timeActualTIME32timeOfDayExpectedTIME_OF_DAY32timeOfDayActualTIME_OF_DAY32udintExpectedUDINT32udintActualUDINT32uintExpectedUINT16uintActualUINT16ulintExpectedULINT64ulintActualULINT64usintExpectedUSINT8usintActualUSINT8wordExpectedWORD16wordActualWORD16DataTypesNotEqualsBOOL8DataSizeNotEqualsBOOL8DataContentNotEqualsBOOL8IteratorCounterDINT32hasanytypeAssertFalseConditionBOOL8MessageT_MaxString2048AssertEquals_SINTExpectedSINT8ActualSINT8MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArray2dEquals_LREALExpectedsLREAL64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*,*] OF LREALDimensions2ActualsLREAL64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*,*] OF LREALDimensions2DeltaLREAL64MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048DimensionIndexUSINT8LowerBoundExpectedsDINT1264UpperBoundExpectedsDINT1264LowerBoundActualsDINT1264UpperBoundActualsDINT1264SizeOfExpectedsDINT1264SizeOfActualsDINT1264OffsetDINT1264ExpectedArrayIndexDINT1264ActualArrayIndexDINT1264ExpectedLREAL64ActualLREAL64__Index__0DINT32AssertEquals_ULINTExpectedULINT64ActualULINT64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_BOOLExpectedBOOL8ActualBOOL8MessageT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048AssertEquals_USINTExpectedUSINT8ActualUSINT8MessageT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048AssertEquals_LWORDExpectedLWORD64ActualLWORD64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_USINTExpectedsUSINT64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF USINTDimensions1ActualsUSINT64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF USINTDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32SetHasStartedRunningSetTestFailedAssertionTypeE_AssertionType8AssertionMessageT_MaxString2048IteratorCounterUINT16NumberOfTestsToAnalyseUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16GetInstancePathT_MaxString2048GetTestOrderNumberUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16TestNameT_MaxString2048IteratorCounterUINT16NumberOfTestsToAnalyseUINT (1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16GetNumberOfTestsUINT16AssertArrayEquals_DWORDExpectedsDWORD64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF DWORDDimensions1ActualsDWORD64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF DWORDDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedDWordStringSTRING(80)648ActualDWordStringSTRING(80)648ExpectedsIndexDINT32ActualsIndexDINT32GetHasStartedRunningBOOL8AssertArrayEquals_LREALExpectedsLREAL64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF LREALDimensions1ActualsLREAL64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF LREALDimensions1DeltaLREAL64MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32AssertEquals_WSTRINGExpectedWSTRING(255)4096ActualWSTRING(255)4096MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8IsTestFinishedBOOL8TestNameT_MaxString2048IteratorCounterUINT16NumberOfTestsToAnalyseUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16AssertArrayEquals_REALExpectedsREAL64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF REALDimensions1ActualsREAL64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF REALDimensions1DeltaREAL32MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32AssertEquals_DINTExpectedDINT32ActualDINT32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_DINTExpectedsDINT64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF DINTDimensions1ActualsDINT64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF DINTDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32AssertEquals_STRINGExpectedT_MaxString2048ActualT_MaxString2048MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8SetTestFinishedBOOL8TestNameT_MaxString2048IteratorCounterUINT16NumberOfTestsToAnalyseUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16AreAllTestsFinishedBOOL8CounterUINT16GetCurTaskIndexGETCURTASKINDEX256NumberOfTestsToAnalyseUINT (1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16AssertArrayEquals_WORDExpectedsWORD64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF WORDDimensions1ActualsWORD64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF WORDDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedDWordStringSTRING(80)648ActualDWordStringSTRING(80)648ExpectedsIndexDINT32ActualsIndexDINT32AssertArray3dEquals_LREALExpectedsLREAL64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*,*,*] OF LREALDimensions3ActualsLREAL64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*,*,*] OF LREALDimensions3DeltaLREAL64MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048DimensionIndexUSINT8LowerBoundExpectedsDINT1396UpperBoundExpectedsDINT1396LowerBoundActualsDINT1396UpperBoundActualsDINT1396SizeOfExpectedsDINT1396SizeOfActualsDINT1396OffsetDINT1396ExpectedArrayIndexDINT1396ActualArrayIndexDINT1396ExpectedLREAL64ActualLREAL64__Index__0DINT32AssertArrayEquals_INTExpectedsINT64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF INTDimensions1ActualsINT64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF INTDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32CalculateAndSetNumberOfAssertsForTestTestNameT_MaxString2048TestInstancePathT_MaxString2048TotalNumberOfAssertsUINT16NumberOfAssertsUINT16NumberOfArrayAssertsUINT16IteratorCounterUINT16GetNumberOfSkippedTestsUINT16CounterUINT16SkippedTestsCountUINT16NumberOfTestsToAnalyseUINT (1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16AssertEquals_DWORDExpectedDWORD32ActualDWORD32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertTrueConditionBOOL8MessageT_MaxString2048AssertEquals_INTExpectedINT16ActualINT16MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_UINTExpectedUINT16ActualUINT16MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArray2dEquals_REALExpectedsREAL64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*,*] OF REALDimensions2ActualsREAL64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*,*] OF REALDimensions2DeltaREAL32MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048DimensionIndexUSINT8LowerBoundExpectedsDINT1264UpperBoundExpectedsDINT1264LowerBoundActualsDINT1264UpperBoundActualsDINT1264SizeOfExpectedsDINT1264SizeOfActualsDINT1264OffsetDINT1264ExpectedArrayIndexDINT1264ActualArrayIndexDINT1264ExpectedREAL32ActualREAL32__Index__0DINT32AddTestTestNameT_MaxString2048IsTestOrderedBOOL8IteratorCounterUINT16ErrorMessageT_MaxString2048TestInstancePathT_MaxString2048FunctionCallResultDINT32CycleCountUDINT32TestWithThisNameAlreadyExistsBOOL8LowerCasedTestNameT_MaxString2048TrimmedTestNameT_MaxString2048IgnoreCurrentTestCaseBOOL8NumberOfTestsToAnalyseUINT (1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16AssertArray3dEquals_REALExpectedsREAL64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*,*,*] OF REALDimensions3ActualsREAL64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*,*,*] OF REALDimensions3DeltaREAL32MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048DimensionIndexUSINT8LowerBoundExpectedsDINT1396UpperBoundExpectedsDINT1396LowerBoundActualsDINT1396UpperBoundActualsDINT1396SizeOfExpectedsDINT1396SizeOfActualsDINT1396OffsetDINT1396ExpectedArrayIndexDINT1396ActualArrayIndexDINT1396ExpectedREAL32ActualREAL32ExpectedValueStringT_MaxString2048ActualValueStringT_MaxString2048FormatStringFB_FormatString8576__Index__0DINT32AddTestNameToInstancePathT_MaxString2048TestInstancePathT_MaxString2048CompleteTestInstancePathT_MaxString2048AssertEquals_UDINTExpectedUDINT32ActualUDINT32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_REALExpectedREAL32ActualREAL32DeltaREAL32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_SINTExpectedsSINT64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF SINTDimensions1ActualsSINT64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF SINTDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32AssertArrayEquals_UDINTExpectedsUDINT64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF UDINTDimensions1ActualsUDINT64variable_length_array_original_scopeInoutvariable_length_arrayARRAY[*] OF UDINTDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32PouTypeFunctionBlockcall_after_initreflectionUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16UINTLowerBorder1UpperBorder100ST_AdsLogStringMessage4128MsgCtrlMaskDWORD320MsgFmtStrT_MaxString204832StrArgT_MaxString20482080pack_mode1FB_MemRingBuffer768pWriteBYTE6464ItemTypeInputcbWriteUDINT32128ItemTypeInputpReadBYTE64192ItemTypeInputcbReadUDINT32256ItemTypeInputpBufferBYTE64320ItemTypeInputcbBufferUDINT32384ItemTypeInputbOkBOOL8416ItemTypeOutputnCountUDINT324480ItemTypeOutputcbSizeUDINT324800ItemTypeOutputcbReturnUDINT Number of recend realy returned (removed or get) data bytes
+ If bOk == FALSE and cbReturn <> 0 => Number of required read buffer data bytes (cbRead underflow) ]]>325120ItemTypeOutputidxLastDWORD325440conditionalshowidxFirstDWORD325760conditionalshowidxGetDWORD32608conditionalshowpTmpBYTE64640conditionalshowcbTmpDWORD32704conditionalshowcbCopiedDWORD32736conditionalshowA_ResetA_AddTailA_RemoveHeadA_GetHeadPouTypeFunctionBlockconditionalshow_all_localsTON256INBOOL864ItemTypeInputPTTIME3296ItemTypeInputQBOOL8128ItemTypeOutputETTIME32160ItemTypeOutputMBOOL8192StartTimeTIME32224PouTypeFunctionBlockFB_AdsLogStringMessageFifoQueue8321152ArrayBufferBYTE01040000832000064MemRingBufferFB_MemRingBuffer7688320064TimerBetweenMessagesTON2568320832.INtrue.PTT#10MSMEM_RING_BUFFER_INTERNAL_USE_PER_DATA_RECORDUSINT883210884TIME_BETWEEN_MESSAGESTIME328321120T#10MSGetLogCountUDINT32WriteLogMsgCtrlMaskDWORD32MsgFmtStrT_MaxString2048StrArgT_MaxString2048ErrorBOOL8ItemTypeOutputAdsLogStringMessageST_AdsLogStringMessage4128GetAndRemoveLogFromQueueAdsLogStringMessageST_AdsLogStringMessage4128ItemTypeOutputErrorBOOL8ItemTypeOutputPouTypeFunctionBlockST_KukaRobot960NotInExtModeTcEventEntry1920.uuidEventClass.Data1865841334.uuidEventClass.Data244474.uuidEventClass.Data319271.uuidEventClass.Data4[0]142.uuidEventClass.Data4[1]227.uuidEventClass.Data4[2]19.uuidEventClass.Data4[3]162.uuidEventClass.Data4[4]7.uuidEventClass.Data4[5]151.uuidEventClass.Data4[6]8.uuidEventClass.Data4[7]144.nEventIDE_KukaRobot.NotInExtMode.eSeverityTcEventSeverity.ErrorEStopActiveTcEventEntry192192.uuidEventClass.Data1865841334.uuidEventClass.Data244474.uuidEventClass.Data319271.uuidEventClass.Data4[0]142.uuidEventClass.Data4[1]227.uuidEventClass.Data4[2]19.uuidEventClass.Data4[3]162.uuidEventClass.Data4[4]7.uuidEventClass.Data4[5]151.uuidEventClass.Data4[6]8.uuidEventClass.Data4[7]144.nEventIDE_KukaRobot.EStopActive.eSeverityTcEventSeverity.ErrorOperatorSafetyNotOkTcEventEntry192384.uuidEventClass.Data1865841334.uuidEventClass.Data244474.uuidEventClass.Data319271.uuidEventClass.Data4[0]142.uuidEventClass.Data4[1]227.uuidEventClass.Data4[2]19.uuidEventClass.Data4[3]162.uuidEventClass.Data4[4]7.uuidEventClass.Data4[5]151.uuidEventClass.Data4[6]8.uuidEventClass.Data4[7]144.nEventIDE_KukaRobot.OperatorSafetyNotOk.eSeverityTcEventSeverity.ErrorErrorResetTimeoutTcEventEntry192576.uuidEventClass.Data1865841334.uuidEventClass.Data244474.uuidEventClass.Data319271.uuidEventClass.Data4[0]142.uuidEventClass.Data4[1]227.uuidEventClass.Data4[2]19.uuidEventClass.Data4[3]162.uuidEventClass.Data4[4]7.uuidEventClass.Data4[5]151.uuidEventClass.Data4[6]8.uuidEventClass.Data4[7]144.nEventIDE_KukaRobot.ErrorResetTimeout.eSeverityTcEventSeverity.ErrorDrivesEnableTimeoutTcEventEntry192768.uuidEventClass.Data1865841334.uuidEventClass.Data244474.uuidEventClass.Data319271.uuidEventClass.Data4[0]142.uuidEventClass.Data4[1]227.uuidEventClass.Data4[2]19.uuidEventClass.Data4[3]162.uuidEventClass.Data4[4]7.uuidEventClass.Data4[5]151.uuidEventClass.Data4[6]8.uuidEventClass.Data4[7]144.nEventIDE_KukaRobot.DrivesEnableTimeout.eSeverityTcEventSeverity.ErrorTcTypeSystemTcEventClassKukaRobotFB_HVTester192xOpenChambersBOOL864ItemTypeInput_xOpenDoor1BOOL872_xOpenDoor2BOOL880_xCloseDoor1BOOL888_xCloseDoor2BOOL896_xOpenChamber1BOOL8104_xOpenChamber2BOOL8112_xCloseChamber1BOOL8120_xCloseChamber2BOOL8128PouTypeFunctionBlockST_KukaRobot_State16bUserSAFBIT10bAlarmStopBIT11bPeriRdyBIT12bIOActConfBIT13bStopMessBIT14bProActBIT15bDummyBIT16bRobStoppedBIT17bInHomeBIT18bRCRdy1BIT19bT1BIT110bT2BIT111bAutBIT112bExtBIT113pack_mode0U_KukaRobot_State32stStateST_KukaRobot_State160dwStateDWORD320FB_Etcher128xOpenDoorBOOL864ItemTypeInput_xOpenDoorBOOL872_xCloseDoorBOOL880PouTypeFunctionBlockE_PackMLUnitMode32DINTINVALID0PRODUCTION1MAINTENANCE2MANUAL3CHANGE_OVER4CLEAN5SET_UP6EMPTY_OUT7qualified_onlystrictto_stringgenerate_implicit_init_functionPRODUCTIONE_PackMLCmd32DINTUNDEFINED0RESET1START2STOP3HOLD4UNHOLD5SUSPEND6UNSUSPEND7ABORT8CLEAR9COMPLETE10qualified_onlystrictto_stringgenerate_implicit_init_functionST_PackMLParamREAL768diIDDINT320sNameSTRING(80)64832sUnitSTRING(6)56680ValueREAL32736ST_PackMLParamSTRING1408diIDDINT320sNameSTRING(80)64832sUnitSTRING(6)56680ValueSTRING(80)648736ST_PackMLParamLREAL832diIDDINT320sNameSTRING(80)64832sUnitSTRING(6)56680ValueLREAL64768ST_PackMLParamDINT768diIDDINT320sNameSTRING(80)64832sUnitSTRING(6)56680ValueDINT32736ST_PackMLPI37760astParameterRealST_PackMLParamREAL01076800astParameterStringST_PackMLParamSTRING010140807680astParameterLRealST_PackMLParamLREAL010832021760astParameterDIntST_PackMLParamDINT010768030080ST_PackMLRecipe76288diIDDINT320sNameSTRING(80)64832rPrimaryQtyREAL32704stProcessVariablesST_PackMLPI37760768stIngredientsST_PackMLPI3776038528ST_PMLc419456eUnitModeE_PackMLUnitMode320xUnitModeChangeRequestBOOL832rMachSpeedREAL3264eCntrlCmdE_PackMLCmd3296xCmdChangeRequestBOOL8128astParameterRealST_PackMLParamREAL0107680160astParameterStringST_PackMLParamSTRING010140807840astParameterLRealST_PackMLParamLREAL010832021952astParameterDIntST_PackMLParamDINT010768030272diSelectedRecipeDINT3237952xRecipeChangeRequestBOOL837984astRecipeST_PackMLRecipe0538144038016E_PackMLState32DINTUNDEFINED0CLEARING1STOPPED2STARTING3IDLE4SUSPENDED5EXECUTE6STOPPING7ABORTING8ABORTED9HOLDING10HELD11UNHOLDING12SUSPENDING13UNSUSPENDING14RESETTING15COMPLETING16COMPLETED17qualified_onlystrictto_stringgenerate_implicit_init_functionSTOPPEDST_PMLs128eUnitModeCurrentE_PackMLUnitMode320eStateCurrentE_PackMLState3232rMachSpeedREAL3264rCurMachSpeedREAL3296ST_PackML_ProductData64diProcessedCountDINT320diDefectiveCountDINT3232ST_PMLa672astProductDataST_PackML_ProductData0106400diStopReasonDINT32640EPlcPersistentStatus8USINT012PlcAppSystemInfo2048ObjIdOTCID320TaskCntUDINT3232OnlineChangeCntUDINT3264FlagsDWORD3296AdsPortUINT16128BootDataLoadedBOOL8144OldBootDataBOOL8152AppTimestampDT32160KeepOutputsOnBPBOOL8192ShutdownInProgressBOOL8200LicensesPendingBOOL8208BSODOccuredBOOL8216LoggedInBOOL8224PersistentStatusEPlcPersistentStatus8232TComSrvPtrITComObjectServer32256TcComInterfaceAppNameSTRING(63)512512ProjectNameSTRING(63)5121024PlcTaskSystemInfo1024ObjIdOTCID320CycleTimeUDINT3232PriorityUINT1664AdsPortUINT1680CycleCountUDINT3296DcTaskTimeLINT64128LastExecTimeUDINT32192FirstCycleBOOL8224CycleTimeExceededBOOL8232InCallAfterOutputUpdateBOOL8240RTViolationBOOL8248TaskNameSTRING(63)512512_Implicit_KindOfTask16INT_implicit_cyclic0_implicit_event1_implicit_external2_implicit_freewheeling3signature_flag256hidegenerate_implicit_init_function_Implicit_Jitter_Distribution48wRangeMaxWORD160wCountJitterNegWORD1616wCountJitterPosWORD1632signature_flag256hide_Implicit_Task_Info896dwVersionDWORD320pszNameSTRING(80)6464nPriorityINT16128KindOf_Implicit_KindOfTask16144bWatchdogBOOL8160bProfilingTaskBOOL8168dwEventFunctionPointerBYTE64192pszExternalEventSTRING(80)64256dwTaskEntryFunctionPointerBYTE64320dwWatchdogSensitivityDWORD32384dwIntervalDWORD32416dwWatchdogTimeDWORD32448dwLastCycleTimeDWORD32480dwAverageCycleTimeDWORD32512dwMaxCycleTimeDWORD32544dwMinCycleTimeDWORD32576diJitterDINT32608diJitterMinDINT32640diJitterMaxDINT32672dwCycleCountDWORD32704wTaskStatusWORD16736wNumOfJitterDistributionsWORD16752pJitterDistribution_Implicit_Jitter_Distribution64768bWithinSPSTimeSlicingBOOL8832byDummyBYTE8840bShouldBlockBOOL8848bActiveBOOL8856dwIECCycleCountDWORD32864signature_flag256hideI_UnitState64PVOIDM_AbortedM_AbortingM_ClearingM_CompleteM_CompletingM_ExecuteM_HeldM_HoldingM_IdleM_ResettingM_StartingM_StoppedM_StoppingM_SuspendedM_SuspendingM_UnholdingM_UnsuspendingTcPlcInterfaceTypeST_PackMLStateMachineConfig104xClearingDisabledBOOL80xStartingDisabledBOOL88xSuspededDisabledBOOL816xStoppingDisabledBOOL824xAbortingDisabledBOOL832xHoldingDisabledBOOL840xHeldDisabledBOOL848xUnholdingDisabledBOOL856xSuspendingDisabledBOOL864xUnsuspendingDisabledBOOL872xResettingDisabledBOOL880xCompletingDisabledBOOL888xCompletedDisabledBOOL896FB_PackMLStateMachine448eModeE_PackMLUnitMode3264ItemTypeInputeCmdE_PackMLCmd3296ItemTypeInputstConfigST_PackMLStateMachineConfig104128ItemTypeInputeStateE_PackMLState32256ItemTypeOutputeCurrentModeE_PackMLUnitMode32288ItemTypeOutputxErrorBOOL8320ItemTypeOutput_eModeE_PackMLUnitMode32352_eStateE_PackMLState32384_xRerunSMBOOL8416M_StateCompletePouTypeFunctionBlockFB_PackMLGeneric497856I_UnitStatestCommandST_PMLc419456128ItemTypeInputstStatusST_PMLs128419584ItemTypeOutputstAdminST_PMLa672419712ItemTypeOutput_fbStateMachineFB_PackMLStateMachine448420416_stSMConfigST_PackMLStateMachineConfig104420864_eCmdE_PackMLCmd32420992_eModeE_PackMLUnitMode32421024_eStateE_PackMLState32421056_eLastStateE_PackMLState32421088_stRecipeST_PackMLRecipe76288421120_rtChangeCmdRequestR_TRIG128497408_rtChangeModeRequestR_TRIG128497536_rtChangeRecipeRequestR_TRIG128497664_iSSMINT164977920M_SuspendedM_UnholdingM_CompletingM_StoppingM_StoppedM_IdleM_ExecuteM_CompleteM_AbortingM_SuspendingM_StartingM_HeldM_UnsuspendingM_AbortedM_ResettingM_ClearingM_StateCompleteM_HoldingPouTypeFunctionBlockE_KukaRobot_JobNumberRobot16WORDNO_JOB0GET_FROM_INPUT10PUT_TO_OUTPUT11PUT_INTO_ALIGNER15GET_FROM_ALIGNER16PUT_INTO_ETCHER120GET_FROM_ETCHER122GET_AND_PUT_ETCHER124PUT_INTO_ETCHER221GET_GROM_ETCHER223GET_AND_PUT_ETCHER225PUT_HV130GET_HV132GET_AND_PUT_HV134PUT_HV231GET_HV233GET_AND_PUT_HV235PUT_HOT_PLATE40GET_HOT_PLATE41PUT_COOL_PLATE42GET_COOL_PLATE43PUT_INTO_NIO70GET_FROM_NIO71CHANGE_GRIPPER50GET_CHUCK_ETCHER160GET_CHUCK_ETCHER261PUT_CHUCK_ETCHER162PUT_CHUCK_ETCHER263PUT_CHUCK_INTO_MAGAZINE64GET_CHUCK_FROM_MAGAZINE65WARMUP80qualified_onlystrictto_stringgenerate_implicit_init_functionNO_JOBST_KukaRobot_Ctrl16bNotDisableAxesBIT10bEnableAxesBIT11bEnableMoveBIT12bExtStartBIT13bConfMessBIT14bDummy1BIT15bDummy2BIT16bDummy3BIT17bDummy4BIT18bAbortJobBIT19pack_mode0U_KukaRobot_Ctrl32stCtrlST_KukaRobot_Ctrl160dwCtrlDWORD320ST_KukaRobot_Jobs32wJobNrForRobotWORD160wFinishedJobNrFromPlcWORD1616pack_mode0U_KukaRobot_Jobs32dwJobsDWORD320stJobsST_KukaRobot_Jobs320E_KukaRobot_JobNumerPLC16WORDNO_JOB0ENABLE_VACUUM_ALIGNER15DISABLE_VACUUM_ALIGNER16ENABLE_VACUUM_ETCHER120DISABLE_VACUUM_ETHER122UNLOCK_CHUCK_ETCHER160LOCK_CHUCK_ETCHER162ENABLE_VACUUM_ETCHER221DISABLE_VACUUM_ETCHER223UNLOCK_CHUCK_ETHCER261LOCK_CHUCK_ETCHER263qualified_onlystrictto_stringgenerate_implicit_init_functionNO_JOBIQueryInterface64PVOID__GetInterfacePointerBOOL8pRefDWORD64__GetInterfaceReferenceBOOL8nInterfaceIdDINT32pRefDWORD64TcPlcInterfaceTypeTcEventArgumentType16INT0123456789101112131415161718192021plcAttribute_qualified_onlyplcAttribute_strictITcArguments32ITcUnknownCountHRESULT32nCountUDINT32AddArgumentHRESULT32eTypeTcEventArgumentType16pDataPVOID32cbDataUDINT32GetHRESULT32nIndexUDINT32eTypeTcEventArgumentType32ppDataPVOID32ClearHRESULT32GetArgumentTypesHRESULT32pArgumentTypesTcEventArgumentType32GetDataSizeHRESULT32cbDataUDINT32GetDataHRESULT32pDataBYTE32I_TcArguments64IQueryInterface__getipDataITcArguments64propertyconditionalshow__getnCountUDINT32propertyAddBlobI_TcArguments64pDataPVOID64cbDataUINT16AddBoolI_TcArguments64valueBOOL8AddByteI_TcArguments64valueBYTE8AddDIntI_TcArguments64valueDINT32AddDWordI_TcArguments64valueDWORD32AddEventReferenceExI_TcArguments64stEventEntryTcEventEntry192AddEventReferenceIdI_TcArguments64nEventIdUDINT32AddEventReferenceIdGuidI_TcArguments64nEventIdUDINT32EventClassGUID128AddIntI_TcArguments64valueINT16AddLIntI_TcArguments64valueLINT64AddLRealI_TcArguments64valueLREAL64AddRealI_TcArguments64valueREAL32AddSIntI_TcArguments64valueSINT8AddStringI_TcArguments64valueSTRING(80)64ItemTypeInOutAddStringByValueI_TcArguments64valueT_MaxString2048AddUDIntI_TcArguments64valueUDINT32AddUIntI_TcArguments64valueUINT16AddULIntI_TcArguments64valueULINT64AddUSIntI_TcArguments64valueUSINT8AddUtf8EncodedStringI_TcArguments64valueSTRING(80)64ItemTypeInOutAddWordI_TcArguments64valueWORD16AddWStringI_TcArguments64valueWSTRING(80)64ItemTypeInOutAddWStringByValueI_TcArguments64valueWSTRING(255)4096ClearI_TcArguments64TcPlcInterfaceTypeFB_ReleaseSignal704xSignalBOOL864falseItemTypeInputxReleaseBOOL872trueItemTypeInputtimOnDelayTIME3296T#0MSItemTypeInputtimOffDelayTIME32128T#0MSItemTypeInputxReleaseSignalBOOL8160ItemTypeOutput_fbOnDelayTimerTON256192_fbOffDelayTimerTON256448PouTypeFunctionBlockI_ArgumentsChangeListener64PVOIDOnArgumentsChangedTcPlcInterfaceTypeITcAsyncResult32ITcUnknownGetIsBusyHRESULT32bIsBusyBOOL3232GetHasErrorHRESULT32bErrorBOOL3232GetErrorCodeHRESULT32hresultHRESULT32FB_AsyncStrResult128bBusyBOOL879338664bErrorBOOL879338736hrErrorCodeHRESULT3279338752nStringSizeUDINT3279338712sResultSTRING(255)204879338744TcEncodingUTF-8__getbBusyBOOL8bBusyBOOL8b32IsBusyBOOL3232propertyInitipResultITcAsyncStringResult64conditionalshowGetStringBOOL8sResultSTRING(80)64nResultUDINT32__getnStringSizeUDINT32nStringSizeUDINT32pEmptySTRING(80)64propertyClear__getbErrorBOOL8bErrorBOOL8b32HasErrorBOOL3232property__getsResultSTRING(255)2048sResultSTRING(255)2048propertyTcEncodingUTF-8__gethrErrorCodeHRESULT32hrErrorCodeHRESULT32hrErrorHRESULT32propertyPouTypeFunctionBlockVTableOffset79330640VfInitVTableIndex8enable_dynamic_creationconditionalshow_all_localsno_explicit_calldo not call this POU directlyTcSourceInfoType32UDINT0124plcAttribute_qualified_onlyplcAttribute_strictTcSerializedSourceInfoType96eTypeTcSourceInfoType320obDataUDINT3232cbDataUDINT3264ITcSourceInfo32ITcUnknownGetNumTypesHRESULT32nCountUDINT32GetTypesHRESULT32ppSourceInfoTypesTcSerializedSourceInfoType32GetDataSizeHRESULT32cbDataUDINT32GetDataHRESULT32ppDataPVOID32ITcEvent32ITcUnknownGetEventClassHRESULT32eventClassGUID32GetEventIdHRESULT32eventIdUDINT32GetSeverityHRESULT32severityTcEventSeverity32GetSourceInfoHRESULT32pipSourceInfoITcSourceInfo32GetJsonAttributeHRESULT32sJsonAttributeSTRING(80)32nJsonAttributeUDINT32GetTextHRESULT32nLangIdDINT32pipResultITcAsyncStringResult32GetEventClassNameHRESULT32nLangIdDINT32pipResultITcAsyncStringResult32I_TcSourceInfo64PVOIDnIdUDINT32sNameSTRING(255)2048__getguidGUID128property__getipDataITcSourceInfo64propertyconditionalshow__getnIdUDINT32property__getsNameSTRING(255)2048propertyTcEncodingUTF-8EqualsToBOOL8ipOtherI_TcSourceInfo64TcPlcInterfaceTypeI_TcEventBase64PVOIDeSeverityTcEventSeverity16ipSourceInfoI_TcSourceInfo64nEventIdUDINT32sEventClassNameSTRING(255)2048sEventTextSTRING(255)2048__geteSeverityTcEventSeverity16property__getEventClassGUID128property__getipSourceInfoI_TcSourceInfo64property__getnEventIdUDINT32property__getsEventClassNameSTRING(255)2048propertyTcEncodingUTF-8__getsEventTextSTRING(255)2048propertyTcEncodingUTF-8__getstEventEntryTcEventEntry192propertyEqualsToBOOL8ipOtherI_TcEventBase64EqualsToEventClassBOOL8OtherEventClassGUID128EqualsToEventEntryBOOL8OtherEventClassGUID128nOtherEventIDUDINT32eOtherSeverityTcEventSeverity16EqualsToEventEntryExBOOL8stOtherTcEventEntry192GetJsonAttributeHRESULT32sJsonAttributeSTRING(80)64nJsonAttributeUDINT32RequestEventClassNameBOOL8nLangIdDINT32sResultSTRING(80)64nResultSizeUDINT32bErrorBOOL8ItemTypeOutputhrErrorCodeHRESULT32ItemTypeOutputRequestEventTextBOOL8nLangIdDINT32sResultSTRING(80)64nResultSizeUDINT32bErrorBOOL8ItemTypeOutputhrErrorCodeHRESULT32ItemTypeOutputTcPlcInterfaceTypeITcEventUniqueIdProvider32ITcUnknownGetUniqueIdHRESULT32idUDINT32ST_SourceInfo2400guidGUID1280nIdUDINT32128sNameSTRING(278)2232160TcEncodingUTF-8FB_SourceInfoData2944ITcSourceInfohrInitHRESULT32128no_init_bCutInstancePathByLastInstBOOL8160no_init_stSourceInfoST_SourceInfo2400192no_initbIdExistsBOOL82592no_initbGuidExistsBOOL82600no_initbSourceNameIsEqualDefaultBOOL82608no_initbSourceNameShouldBeDefaultBOOL82616no_initaSourceInfoDataTcSerializedSourceInfoType032882624no_initm_refCntUDINT322912conditionalshowno_initnSourceIdUDINT327933833679338488sSourceNameSTRING(255)20487933846479338424TcEncodingUTF-8TcAddRefUDINT32c++_compatiblepack_mode4showminimal_input_size4__getnSourceIdUDINT32nSourceIdUDINT32property__setbCutInstancePathByLastInstbCutInstancePathByLastInstBOOL8propertyCopyFromipDataITcSourceInfo64nTypesUDINT32pDataPVOID64cbDataUDINT32iUDINT32pTypesTcSerializedSourceInfoType64GetNumTypesHRESULT32nCountUDINT64c++_compatiblepack_mode4showminimal_input_size4ExtendNameBOOL8sExtensionSTRING(80)64ItemTypeInOutResetToDefaultHRESULT32nNameUDINT32hrHRESULT32bCutFailedBOOL8GetDataSizeHRESULT32cbDataUDINT64iUDINT32nDataSizeUDINT32c++_compatiblepack_mode4showminimal_input_size4CutInstancePathByLastInstBOOL8Clear__setsSourceNamesSourceNameSTRING(255)2048monitoringcallTcEncodingUTF-8propertyTcEncodingUTF-8GetDataHRESULT32ppDataPVOID64c++_compatiblepack_mode4showminimal_input_size4__getsourceGuidGUID128sourceGuidGUID128propertyGetTypesHRESULT32ppSourceInfoTypesTcSerializedSourceInfoType64curIndexUDINT32c++_compatiblepack_mode4showminimal_input_size4__getsSourceNameSTRING(255)2048sSourceNameSTRING(255)2048propertyTcEncodingUTF-8TcReleaseUDINT32c++_compatiblepack_mode4showminimal_input_size4__setnSourceIdnSourceIdUDINT32monitoringcallproperty__setsourceGuidsourceGuidGUID128propertyTcQueryInterfaceHRESULT32iidIID64pipItfPVOID64c++_compatiblepack_mode4showminimal_input_size4PouTypeFunctionBlockc++_compatibleno_explicit_calldo not call this POU directlyFB_TcSourceInfo3072I_TcSourceInfofbSrcDataFB_SourceInfoData2944128conditionalshownIdUDINT327933856079338608sNameSTRING(255)20487933863279338656TcEncodingUTF-8__setbCutInstancePathByLastInstbCutInstancePathByLastInstBOOL8propertyCopyFromipSourceInfoI_TcSourceInfo64ClearExtendNameBOOL8sExtensionSTRING(255)2048__getipDataITcSourceInfo64ipDataITcSourceInfo64propertyconditionalshow__getnIdUDINT32nIdUDINT32propertyResetToDefaultHRESULT32__getguidGUID128guidGUID128property__setnIdnIdUDINT32monitoringcallproperty__setguidguidGUID128propertyEqualsToBOOL8ipOtherI_TcSourceInfo64__getsNameSTRING(255)2048sNameSTRING(255)2048propertyTcEncodingUTF-8__setsNamesNameSTRING(255)2048monitoringcallTcEncodingUTF-8propertyTcEncodingUTF-8PouTypeFunctionBlockno_explicit_calldo not call this POU directlyFB_TcEventBase4160I_ArgumentsChangeListenerfbSourceInfoFB_TcSourceInfo3072512.bCutInstancePathByLastInsttrueconditionalshow__FB_TCEVENTBASE__REQUESTEVENTCLASSNAME__FBRESULTFB_AsyncStrResult1283776conditionalshowimplicit_inst_var__FB_TCEVENTBASE__REQUESTEVENTCLASSNAME__BBUSYBOOL83904conditionalshowimplicit_inst_var__FB_TCEVENTBASE__REQUESTEVENTTEXT__FBRESULTFB_AsyncStrResult1283968conditionalshowimplicit_inst_var__FB_TCEVENTBASE__REQUESTEVENTTEXT__BBUSYBOOL84096conditionalshowimplicit_inst_vareSeverityTcEventSeverity1679338848ipSourceInfoI_TcSourceInfo6479338808nEventIdUDINT3279338984nUniqueIdUDINT3279338992sEventClassNameSTRING(255)204879338904TcEncodingUTF-8sEventTextSTRING(255)204879339000TcEncodingUTF-8EqualsToEventClassBOOL8OtherEventClassGUID128_EventClassGUID128GetEventClassNameHRESULT32nLangIdDINT32fbResultFB_AsyncStrResult64ItemTypeInOutipTmpEventITcEvent64ipResultITcAsyncStringResult64hrHRESULT32ReleaseHRESULT32UpdateLangId__getipSourceInfoI_TcSourceInfo64ipSourceInfoI_TcSourceInfo64propertyEqualsToBOOL8ipOtherI_TcEventBase64__getipEventITcEvent64ipEventITcEvent64propertyconditionalshow__getEventClassGUID128EventClassGUID128ipTmpEventITcEvent64property__geteSeverityTcEventSeverity16eSeverityTcEventSeverity16ipTmpEventITcEvent64property__getstEventEntryTcEventEntry192stEventEntryTcEventEntry192propertyOnCreateHRESULT32EqualsToEventEntryBOOL8OtherEventClassGUID128nOtherEventIDUDINT32eOtherSeverityTcEventSeverity16RequestEventTextBOOL8nLangIdDINT32sResultSTRING(80)64nResultSizeUDINT32bErrorBOOL8ItemTypeOutputhrErrorCodeHRESULT32ItemTypeOutputfbResultFB_AsyncStrResult128uselocation__FB_TCEVENTBASE__REQUESTEVENTTEXT__FBRESULTbBusyBOOL8uselocation__FB_TCEVENTBASE__REQUESTEVENTTEXT__BBUSYOnArgumentsChanged__getsEventClassNameSTRING(255)2048sEventClassNameSTRING(255)2048propertyTcEncodingUTF-8__getipArgumentsI_TcArguments64ipArgumentsI_TcArguments64propertyGetEventTextHRESULT32nLangIdDINT32fbResultFB_AsyncStrResult64ItemTypeInOutipTmpEventITcEvent64ipResultITcAsyncStringResult64hrHRESULT32GetJsonAttributeHRESULT32sJsonAttributeSTRING(80)64nJsonAttributeUDINT32ipTmpEventITcEvent64RequestEventClassNameBOOL8nLangIdDINT32sResultSTRING(80)64nResultSizeUDINT32bErrorBOOL8ItemTypeOutputhrErrorCodeHRESULT32ItemTypeOutputfbResultFB_AsyncStrResult128uselocation__FB_TCEVENTBASE__REQUESTEVENTCLASSNAME__FBRESULTbBusyBOOL8uselocation__FB_TCEVENTBASE__REQUESTEVENTCLASSNAME__BBUSYEqualsToEventEntryExBOOL8stOtherTcEventEntry192__getnEventIdUDINT32nEventIdUDINT32ipTmpEventITcEvent64property__getnUniqueIdUDINT32nUniqueIdUDINT32ipTmpEventITcEvent64ipProviderITcEventUniqueIdProvider64property__getsEventTextSTRING(255)2048sEventTextSTRING(255)2048propertyTcEncodingUTF-8PouTypeFunctionBlockconditionalshow_all_localsno_explicit_calldo not call this POU directlyTcEventConfirmationState16INT01234plcAttribute_qualified_onlyplcAttribute_strictITcAlarm32ITcEventSetJsonAttributeHRESULT32sJsonAttributePCCH32GetArgumentsHRESULT32pipArgumentsITcArguments32GetIsRaisedHRESULT32bIsRaisedBOOL3232RaiseHRESULT32timeStampULINT64ClearHRESULT32timeStampULINT64bResetConfirmationBOOL3232GetConfirmationStateHRESULT32stateTcEventConfirmationState32ConfirmHRESULT32timeStampULINT64ITcAlarm232ITcAlarmGetTimeRaisedHRESULT32timeStampULINT32GetTimeConfirmedHRESULT32timeStampULINT32GetTimeClearedHRESULT32timeStampULINT32FB_TcAlarm4224FB_TcEventBasebActiveBOOL879339040bRaisedBOOL879339168eConfirmationStateTcEventConfirmationState1679339112nTimeClearedULINT6479339048TcDisplayTypeGUID18071995-0000-0000-0000-000000000046nTimeConfirmedULINT6479339176TcDisplayTypeGUID18071995-0000-0000-0000-000000000046nTimeRaisedULINT6479339144TcDisplayTypeGUID18071995-0000-0000-0000-000000000046SetJsonAttributeHRESULT32sJsonAttributeSTRING(80)64ItemTypeInOutCreateExHRESULT32stEventEntryTcEventEntry192bWithConfirmationBOOL8ipSourceInfoI_TcSourceInfo64InitipAlarmITcAlarm64ipArgumentsITcArguments64ipSourceInfoITcSourceInfo64conditionalshow__getbActiveBOOL8bActiveBOOL8b32IsRaisedBOOL3232property__getnTimeClearedULINT64nTimeClearedULINT64ipAlarm2ITcAlarm264nTimeStampULINT64propertyTcDisplayTypeGUID18071995-0000-0000-0000-000000000046CreateEx2HRESULT32stEventEntryTcEventEntry192ipSourceInfoI_TcSourceInfo64bWithConfirmationBOOL8CreateHRESULT32eventClassGUID128nEventIdUDINT32eSeverityTcEventSeverity16bWithConfirmationBOOL8ipSourceInfoI_TcSourceInfo64hrHRESULT32ipArgumentsITcArguments64pAddressPVOID64sAddressSTRING(80)648RaiseHRESULT32nTimeStampULINT64ClearHRESULT32nTimeStampULINT64bResetConfirmationBOOL8__geteConfirmationStateTcEventConfirmationState16eConfirmationStateTcEventConfirmationState16propertyConfirmHRESULT32nTimeStampULINT64__getipEventITcEvent64ipEventITcEvent64propertyconditionalshow__getnTimeRaisedULINT64nTimeRaisedULINT64ipAlarm2ITcAlarm264nTimeStampULINT64propertyTcDisplayTypeGUID18071995-0000-0000-0000-000000000046ReleaseHRESULT32__getbRaisedBOOL8bRaisedBOOL8b32IsRaisedBOOL3232property__getnTimeConfirmedULINT64nTimeConfirmedULINT64ipAlarm2ITcAlarm264nTimeStampULINT64propertyTcDisplayTypeGUID18071995-0000-0000-0000-000000000046PouTypeFunctionBlockreflectionconditionalshow_all_localsno_explicit_calldo not call this POU directlyFB_AlarmMessage8192xActiveBOOL864ItemTypeInputxReleaseBOOL872ItemTypeInputxAcknowledgeBOOL880ItemTypeInputtimOnDelayTIME3296T#0SItemTypeInputtimOffDelayTIME32128T#0SItemTypeInput_fbReleaseAlarmFB_ReleaseSignal704192_fbAlarmMessageFB_TcAlarm4224896_fbSourceInfoFB_TcSourceInfo30725120__getActiveBOOL8ActiveBOOL8property__getArgumentsI_TcArguments64ArgumentsI_TcArguments64property__getRaisedBOOL8RaisedBOOL8property__getTriggeredBOOL8TriggeredBOOL8propertyPouTypeFunctionBlockFB_KukaRobot 0.001mm]]>539968FB_PackMLGenericeRobotJobE_KukaRobot_JobNumberRobot16497856ItemTypeInputxReleaseAlarmsBOOL8497872ItemTypeInputxConfirmAlarmsBOOL8497880ItemTypeInputxReadyBOOL8497888ItemTypeOutputxErrorBOOL8497896ItemTypeOutput_uCtrlU_KukaRobot_Ctrl32497920_uJobsU_KukaRobot_Jobs Robot job to do
+ 1 -> PLC job which is finished]]>32497952_abToolsAndPositionsBYTE0432497984_diOffsetPosXDINT32498016_diOffsetPosYDINT32498048_diThicknessDINT32498080_uStateU_KukaRobot_State32498112_dwErrorBitsDWORD32498144_awJobStatesFromRobotWORD0232498176_dwJobForPLCDWORD32498208_abMirrorToolsAndPositionsBYTE0432498240_diMirrorOffsetPosXDINT32498272_diMirrorOffsetPosYDINT32498304_diMirrorThicknessDINT32498336_asiMotorTemps1To4SINT0432498368_asiMotorTemps5To8SINT0432498400_eRobotJobE_KukaRobot_JobNumberRobot16498432_ePlcJobE_KukaRobot_JobNumerPLC16498448_xRobotReadyBOOL8498464_xErrorBOOL8498472_fbAlarmNotInExtModeFB_AlarmMessage8192498496_fbAlarmEStopActiveFB_AlarmMessage8192506688_fbAlarmOperatorSafetyNotOkFB_AlarmMessage8192514880_fbAlarmRobotErrorResetTimeoutFB_AlarmMessage8192523072_fbAlarmDrivesEnableTimeoutFB_AlarmMessage8192531264__FB_KUKAROBOT__M_CLEARING___TONWAITTON256539456implicit_inst_var__FB_KUKAROBOT__M_RESETTING___TONTIMEOUTTON256539712implicit_inst_varM_UnholdingM_StoppedM_IdleM_ExecuteM_UnsuspendingM_Clearing_tonWaitTON256uselocation__FB_KUKAROBOT__M_CLEARING___TONWAITM_SuspendingM_StartingM_HeldM_AbortedM_Resetting_tonTimeoutTON256uselocation__FB_KUKAROBOT__M_RESETTING___TONTIMEOUTM_SuspendedM_HoldingPouTypeFunctionBlockGVL_TYPE_CONSTINT_MININT16-32768INT_MAXINT1632767UINT_MAXUINT1665535UINT_MINUINT160DINT_MAXDINT322147483647DINT_MINDINT32-2147483648UDINT_MAXUDINT324294967295UDINT_MINUDINT320REAL_MAXREAL323.042823E+38REAL_MINREAL321E-44qualified_onlynamingoffanalysis-33GVL_CONFIGSMAX_INTERLOCKSUSINT816qualified_onlyGlobal_VariablesBOOTDATAFLAGS_RETAIN_LOADEDBYTE81AMSPORT_LOGGERUINT16100AMSPORT_EVENTLOGUINT16110AMSPORT_R0_RTIMEUINT16200AMSPORT_R0_IOUINT16300AMSPORT_R0_NCUINT16500AMSPORT_R0_NCSAFUINT16501AMSPORT_R0_NCSVBUINT16511AMSPORT_R0_ISGUINT16550AMSPORT_R0_CNCUINT16600AMSPORT_R0_LINEUINT16700AMSPORT_R0_PLCUINT16800AMSPORT_R0_PLC_RTS1UINT16801AMSPORT_R0_PLC_RTS2UINT16811AMSPORT_R0_PLC_RTS3UINT16821AMSPORT_R0_PLC_RTS4UINT16831AMSPORT_R0_CAMUINT16900AMSPORT_R0_CAMTOOLUINT16950AMSPORT_R3_SYSSERVUINT1610000AMSPORT_R3_SCOPESERVERUINT1614001ADSSTATE_INVALIDUINT160ADSSTATE_IDLEUINT161ADSSTATE_RESETUINT162ADSSTATE_INITUINT163ADSSTATE_STARTUINT164ADSSTATE_RUNUINT165ADSSTATE_STOPUINT166ADSSTATE_SAVECFGUINT167ADSSTATE_LOADCFGUINT168ADSSTATE_POWERFAILUREUINT169ADSSTATE_POWERGOODUINT1610ADSSTATE_ERRORUINT1611ADSSTATE_SHUTDOWNUINT1612ADSSTATE_SUSPENDUINT1613ADSSTATE_RESUMEUINT1614ADSSTATE_CONFIGUINT1615ADSSTATE_RECONFIGUINT1616ADSSTATE_STOPPINGUINT1617ADSSTATE_INCOMPATIBLEUINT1618ADSSTATE_EXCEPTIONUINT1619ADSSTATE_MAXSTATESUINT1620BOOTDATAFLAGS_RETAIN_INVALIDBYTE82BOOTDATAFLAGS_RETAIN_REQUESTEDBYTE84ADSIGRP_SYMTABUDINT3261440ADSIGRP_SYMNAMEUDINT3261441ADSIGRP_SYMVALUDINT3261442ADSIGRP_SYM_HNDBYNAMEUDINT3261443ADSIGRP_SYM_VALBYNAMEUDINT3261444ADSIGRP_SYM_VALBYHNDUDINT3261445ADSIGRP_SYM_RELEASEHNDUDINT3261446ADSIGRP_SYM_INFOBYNAMEUDINT3261447ADSIGRP_SYM_VERSIONUDINT3261448ADSIGRP_SYM_INFOBYNAMEEXUDINT3261449ADSIGRP_SYM_DOWNLOADUDINT3261450ADSIGRP_SYM_UPLOADUDINT3261451ADSIGRP_SYM_UPLOADINFOUDINT3261452ADSIGRP_SYMNOTEUDINT3261456ADSIGRP_IOIMAGE_RWIBUDINT3261472ADSIGRP_IOIMAGE_RWIXUDINT3261473ADSIGRP_IOIMAGE_RISIZEUDINT3261477ADSIGRP_IOIMAGE_RWOBUDINT3261488ADSIGRP_IOIMAGE_RWOXUDINT3261489ADSIGRP_IOIMAGE_ROSIZEUDINT3261493ADSIGRP_IOIMAGE_CLEARIUDINT3261504ADSIGRP_IOIMAGE_CLEAROUDINT3261520ADSIGRP_IOIMAGE_RWIOBUDINT3261536ADSIGRP_DEVICE_DATAUDINT3261696ADSIOFFS_DEVDATA_ADSSTATEUDINT320ADSIOFFS_DEVDATA_DEVSTATEUDINT322SYSTEMSERVICE_OPENCREATEUDINT32100SYSTEMSERVICE_OPENREADUDINT32101SYSTEMSERVICE_OPENWRITEUDINT32102SYSTEMSERVICE_CREATEFILEUDINT32110SYSTEMSERVICE_CLOSEHANDLEUDINT32111SYSTEMSERVICE_FOPENUDINT32120SYSTEMSERVICE_FCLOSEUDINT32121SYSTEMSERVICE_FREADUDINT32122SYSTEMSERVICE_FWRITEUDINT32123SYSTEMSERVICE_FSEEKUDINT32124SYSTEMSERVICE_FTELLUDINT32125SYSTEMSERVICE_FGETSUDINT32126SYSTEMSERVICE_FPUTSUDINT32127SYSTEMSERVICE_FSCANFUDINT32128SYSTEMSERVICE_FPRINTFUDINT32129SYSTEMSERVICE_FEOFUDINT32130SYSTEMSERVICE_FDELETEUDINT32131SYSTEMSERVICE_FRENAMEUDINT32132SYSTEMSERVICE_MKDIRUDINT32138SYSTEMSERVICE_RMDIRUDINT32139SYSTEMSERVICE_REG_HKEYLOCALMACHINEUDINT32200SYSTEMSERVICE_SENDEMAILUDINT32300SYSTEMSERVICE_TIMESERVICESUDINT32400SYSTEMSERVICE_STARTPROCESSUDINT32500SYSTEMSERVICE_CHANGENETIDUDINT32600TIMESERVICE_DATEANDTIMEUDINT321TIMESERVICE_SYSTEMTIMESUDINT322TIMESERVICE_RTCTIMEDIFFUDINT323TIMESERVICE_ADJUSTTIMETORTCUDINT324TIMESERVICE_TIMEZONINFORMATIONUDINT326ADSLOG_MSGTYPE_HINTDWORD321ADSLOG_MSGTYPE_WARNDWORD322ADSLOG_MSGTYPE_ERRORDWORD324ADSLOG_MSGTYPE_LOGDWORD3216ADSLOG_MSGTYPE_MSGBOXDWORD3232ADSLOG_MSGTYPE_RESOURCEDWORD3264ADSLOG_MSGTYPE_STRINGDWORD32128BOOTDATAFLAGS_PERSISTENT_LOADEDBYTE816BOOTDATAFLAGS_PERSISTENT_INVALIDBYTE832SYSTEMSTATEFLAGS_BSODBYTE81SYSTEMSTATEFLAGS_RTVIOLATIONBYTE82FOPEN_MODEREADDWORD321FOPEN_MODEWRITEDWORD322FOPEN_MODEAPPENDDWORD324FOPEN_MODEPLUSDWORD328FOPEN_MODEBINARYDWORD3216FOPEN_MODETEXTDWORD3232TCEVENTFLAG_PRIOCLASSWORD1616TCEVENTFLAG_FMTSELFWORD1632TCEVENTFLAG_LOGWORD1664TCEVENTFLAG_MSGBOXWORD16128TCEVENTFLAG_SRCIDWORD16256TCEVENTFLAG_AUTOFMTALLWORD164096TCEVENTSTATE_INVALIDWORD160TCEVENTSTATE_SIGNALEDWORD161TCEVENTSTATE_RESETWORD162TCEVENTSTATE_CONFIRMEDWORD1616TCEVENTSTATE_RESETCONWORD1618TCEVENT_SRCNAMESIZEINT1615TCEVENT_FMTPRGSIZEINT1631eWatchdogConfigE_WATCHDOG_TIME_CONFIG16E_WATCHDOG_TIME_CONFIG.eWATCHDOG_TIME_DISABLEDDEFAULT_ADS_TIMEOUTTIME325000PILREAL643.14159265358979MAX_STRING_LENGTHUDINT32255nWatchdogTimeBYTE8Global_VariablesGLOBAL_DCF77_SEQUENCE_CHECKBOOL8falseMAX_AVERAGE_MEASURESINT (2..100)1610GLOBAL_FORMAT_HASH_PREFIX_TYPEE_HashPrefixTypes16E_HashPrefixTypes.HASHPREFIX_IECGLOBAL_SBCS_TABLEE_SBCSType16E_SBCSType.eSBCS_WesternEuropeanGLOBAL_DCF77_PULSE_SPLITTIME pulse < 140ms, Bit == 1 => pulse >= 140ms ]]>32140DEFAULT_CSV_FIELD_SEPBYTE german field separator, comma (,) := 16#2C => US field separator ]]>859MAX_ROUTE_NAME_LENBYTE831MAX_REMOTE_PCSINT1699MAX_ADAPTER_NAME_LENGTHUDINT32259MAX_ADAPTER_DESCRIPTION_LENGTHUDINT32131MAX_ADAPTER_ADDRESS_LENGTHUDINT327SYSTEMSERVICE_IPHELPERAPIUDINT32701SYSTEMSERVICE_IPHOSTNAMEUDINT32702IPHELPERAPI_ADAPTERSINFOUDINT321IPHELPERAPI_IPADDRBYHOSTNAMEUDINT324MAX_LOCAL_ADAPTERSUDINT325SYSTEMSERVICE_ADDREMOTEUDINT32801SYSTEMSERVICE_DELREMOTEUDINT32802SYSTEMSERVICE_ENUMREMOTEUDINT32803ROUTE_FLAG_TEMPORARYDWORD321ROUTE_FLAG_DYNAMICDWORD322ROUTE_FLAG_NOOVERRIDEDWORD324MAX_ROUTE_ADDR_LENBYTE879MIN_ROUTE_TRANSPORTBYTE80MAX_ROUTE_TRANSPORTBYTE812DEFAULT_CSV_FIELD_DOUBLE_QUOTEBYTE used to enclose special characters like line breaks, double-quotes, commas... ]]>834EMPTY_ROUTE_ENTRYST_AmsRouteEntry1184.sName.sNetID.sAddress.tTimeout0.dwFlags0SYSTEMSERVICE_FFILEFINDUDINT32133HKEY_MAX_BINARY_DATA_SIZEUDINT32500AMSLOGGER_IGR_GENERALUDINT324096AMSLOGGER_IOF_MODEUDINT321AMSPORT_AMSLOGGERUINT1610502FORMAT_MAX_ARGSINT1610FLOATREC_EXP_IS_NANINT16-32768FLOATREC_EXP_IS_INFINT1632767FLOATREC_MAX_DIGITSINT1620FLOATREC_MAX_PRECISIONINT16307FLOATREC_MIN_PRECISIONINT160FMTERR_NOERRORDWORD320FMTERR_PERCENTSIGNPOSITIONDWORD3216FMTERR_ASTERISKPOSITIONDWORD3232FMTERR_WIDTHVALUEDWORD3264FMTERR_PRECISIONVALUEDWORD32128FMTERR_FLAGPOSITIONDWORD32256FMTERR_WIDTHPRECISIONVALPOSDWORD32512FMTERR_PRECISIONDOTPOSITIONDWORD321024FMTERR_TYPEFIELDVALUEDWORD322048FMTERR_ARGTYPEINVALIDDWORD324096FMTERR_UNACCEPTEDPARAMETERDWORD328192FMTERR_INSUFFICIENTARGSDWORD3216384FMTERR_DESTBUFFOVERFLOWDWORD3232768FMTERR_INVALIDPOINTERINPUTDWORD3265536EMPTY_ARG_VALUET_Arg128.eTypeE_ArgType.ARGTYPE_UNKNOWN.cbLen0.pData0FORMAT_HEXASC_CODESBYTE02016256[0,0]48[0,1]49[0,2]50[0,3]51[0,4]52[0,5]53[0,6]54[0,7]55[0,8]56[0,9]57[0,10]97[0,11]98[0,12]99[0,13]100[0,14]101[0,15]102[1,0]48[1,1]49[1,2]50[1,3]51[1,4]52[1,5]53[1,6]54[1,7]55[1,8]56[1,9]57[1,10]65[1,11]66[1,12]67[1,13]68[1,14]69[1,15]70FORMAT_DECASC_CODESBYTE01080[0]48[1]49[2]50[3]51[4]52[5]53[6]54[7]55[8]56[9]57SYSTEMTIME_MAX_MONTHDAYSWORD02112384[0,1]31[0,2]28[0,3]31[0,4]30[0,5]31[0,6]30[0,7]31[0,8]31[0,9]30[0,10]31[0,11]30[0,12]31[1,1]31[1,2]29[1,3]31[1,4]30[1,5]31[1,6]30[1,7]31[1,8]31[1,9]30[1,10]31[1,11]30[1,12]31SYSTEMTIME_MAX_YEARSDAYWORD02014448[0,0]0[0,1]31[0,2]59[0,3]90[0,4]120[0,5]151[0,6]181[0,7]212[0,8]243[0,9]273[0,10]304[0,11]334[0,12]365[0,13]396[1,0]0[1,1]31[1,2]60[1,3]91[1,4]121[1,5]152[1,6]182[1,7]213[1,8]244[1,9]274[1,10]305[1,11]335[1,12]366[1,13]397SYSTEMTIME_DATEDELTA_OFFSETDWORD32584389SYSTEMTIME_TICKSPERMSECT_ULARGE_INTEGER64.dwHighPart0.dwLowPart10000SYSTEMTIME_TICKSPERSECT_ULARGE_INTEGER64.dwHighPart0.dwLowPart10000000SYSTEMTIME_TICKSPERDAYT_ULARGE_INTEGER64.dwHighPart201.dwLowPart711573504SYSTEMTIME_DATE_AND_TIME_MINT_ULARGE_INTEGER64.dwHighPart27111902.dwLowPart3577643008SYSTEMTIME_DATE_AND_TIME_MAXT_ULARGE_INTEGER64.dwHighPart37111701.dwLowPart2856069504DATE_AND_TIME_SECPERDAYDWORD3286400SYSTEMTIME_TICKSPERMSEC64ULINT6410000SYSTEMTIME_TICKSPERSEC64ULINT6410000000SYSTEMTIME_TICKSPERDAY64ULINT64864000000000SYSTEMTIME_DATE_AND_TIME_MIN64ULINT64116444736000000000SYSTEMTIME_DATE_AND_TIME_MAX64ULINT64159393544950000000WEST_EUROPE_TZIST_TimeZoneInformation864.bias-60.standardNameW. Europe Standard Time.standardDate.wYear0.standardDate.wMonth10.standardDate.wDayOfWeek0.standardDate.wDay5.standardDate.wHour3.standardBias0.daylightNameW. Europe Daylight Time.daylightDate.wYear0.daylightDate.wMonth3.daylightDate.wDayOfWeek0.daylightDate.wDay5.daylightDate.wHour2.daylightBias-60DATE_AND_TIME_SECPERWEEKDWORD32604800DBG_OUTPUT_NONEDWORD320DBG_OUTPUT_LOGDWORD321DBG_OUTPUT_FILEDWORD322DBG_OUTPUT_VISUDWORD324DEFAULT_CSV_RECORD_SEP_CRBYTE record separator (first character) ]]>813DEFAULT_CSV_RECORD_SEP_LFBYTE record separator (second character) ]]>810EMPTY_GUID_STRUCTGUID128.Data10.Data20.Data30.Data4[0]0.Data4[1]0.Data4[2]0.Data4[3]0.Data4[4]0.Data4[5]0.Data4[6]0.Data4[7]0EMPTY_GUID_STRINGSTRING(36)29600000000-0000-0000-0000-000000000000EMPTY_GUID_REGSTRINGSTRING(38)312{00000000-0000-0000-0000-000000000000}Global_ConstantsEMPTY_SEVERITYTcEventSeverity16TcEventSeverity.VerboseEMPTY_EVENT_CLASSGUID128.Data10.Data20.Data30.Data4[0]0.Data4[1]0.Data4[2]0.Data4[3]0.Data4[4]0.Data4[5]0.Data4[6]0.Data4[7]0EMPTY_EVENT_IDUDINT320SUCCESS_EVENTTcEventEntry192.uuidEventClass.Data10.uuidEventClass.Data20.uuidEventClass.Data30.uuidEventClass.Data4[0]0.uuidEventClass.Data4[1]0.uuidEventClass.Data4[2]0.uuidEventClass.Data4[3]0.uuidEventClass.Data4[4]0.uuidEventClass.Data4[5]0.uuidEventClass.Data4[6]0.uuidEventClass.Data4[7]0.nEventID0.eSeverityGlobal_Constants.EMPTY_SEVERITYGVLnLangId_OnlineMonitoringDINT321033qualified_onlyParameterListcSourceNameSizeUDINT (81..10000)32256parameterlistqualified_onlyGVL_INTERNALUNINITIALIZED_CLASS_GUIDGUID128.Data13886330336.Data262671.Data318227.Data4[0]149.Data4[1]213.Data4[2]115.Data4[3]223.Data4[4]8.Data4[5]75.Data4[6]96.Data4[7]248GVL_Param_TcUnitMaxNumberOfTestSuitesUINT161000MaxNumberOfTestsForEachTestSuiteUINT16100MaxNumberOfAssertsForEachTestSuiteUINT161000LogExtendedResultsBOOL8truexUnitEnablePublishBOOL8falseAdsLogMessageFifoRingBufferSizeUINT162000xUnitBufferSizeUDINT3265535xUnitFilePathT_MaxString2048C:\tcunit_xunit_testresults.xmlTimeBetweenTestSuitesExecutionTIME32T#0MSparameterlistqualified_onlyGVL_TcUnitTestSuiteIsRegisteredBOOL8CurrentTestIsFinishedBOOL8IgnoreCurrentTestBOOL8TcUnitRunnerFB_TcUnitRunner621828480CurrentTestSuiteBeingCalledFB_TestSuite64CurrentTestNameBeingCalledT_MaxString2048NumberOfInitializedTestSuitesUINT160TestSuiteAddressesFB_TestSuite1100064000CurrentlyRunningOrderedTestInTestSuiteUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)1100016000AdsMessageQueueFB_AdsLogStringMessageFifoQueue8321152no_assignqualified_onlyParamTCPADS_MAXUDP_BUFFSIZEUDINT328192TCPADS_TLS_HOSTNAME_SIZEUDINT32255TCPADS_TLS_CERTIFICATE_PATH_SIZEUDINT32255TCPADS_TLS_KEY_PASSWORD_SIZEUDINT32255TCPADS_TLS_PSK_IDENTITY_SIZEUDINT32255TCPADS_TLS_MAX_PSK_KEY_SIZEUDINT32128Tc2GvlVarNamesparameterlistTC_EVENTSTcTypeSystemglobal_init_slot10003qualified_onlyTC_EVENTSPRG_Main_xConfirmAlarmsBOOL8_xClearBOOL8_xResetBOOL8_xFirstCycleBOOL8true_fbHVTesterFB_HVTester192_fbEtcher1FB_Etcher128_fbEtcher2FB_Etcher128_stRobotCmdST_PMLc419456_stRobotStatusST_PMLs128_stRobotAdminST_PMLa672_xStartBOOL8_stRecipeGripperChangeST_PackMLRecipe76288.diID0.sNameChange gripper_fbRobotFB_KukaRobot539968PRG_SafetyxConfirmAlarmsBOOL8ItemTypeInput_xRunBOOL8_xRequestOpenDoorBOOL8_xLockDoorBOOL8true_xComStartupBOOL8_rtrigDoorUnlockR_TRIG128_xErrorAckBOOL8_tofErrorAckTOF256.PTT#500MSTwinCAT_PreventOnlineChangeGvlWriteLineIDsBOOL8truePlcProfilerActiveBOOL8falsePlcProfilerConfigChecksumSTRING(64)520linkalwaysGVL_SCADAxErrAckBOOL8xOpenAllChambersBOOL8qualified_onlyGVL_PackML_ConfMAX_PARAMSUINT1610MAX_PRODUCT_DATAUINT1610MAX_RECIPES_PER_UNITUINT165qualified_onlyKukaRobotNotInExtModeErrorEStopActiveErrorOperatorSafetyNotOkErrorErrorResetTimeoutErrorDrivesEnableTimeoutErrorPLC{08500001-0000-0000-F000-000000000064}0PlcTask#x02010030DeviceLog FilterUDINT#x08508045DeviceLog Filter000000000PlcTask Inputs095748096PRG_Safety._xRequestOpenDoor8BOOL634598760PRG_Safety._xComStartup8BOOL634598776PRG_Main._fbRobot._uState32U_KukaRobot_State635376576PRG_Main._fbRobot._dwErrorBits32DWORD635376608PRG_Main._fbRobot._awJobStatesFromRobot32WORD02635376640PRG_Main._fbRobot._dwJobForPLC32DWORD635376672PRG_Main._fbRobot._abMirrorToolsAndPositions32BYTE04635376704PRG_Main._fbRobot._diMirrorOffsetPosX32DINT635376736PRG_Main._fbRobot._diMirrorOffsetPosY32DINT635376768PRG_Main._fbRobot._diMirrorThickness32DINT635376800PRG_Main._fbRobot._asiMotorTemps1To432SINT04635376832PRG_Main._fbRobot._asiMotorTemps5To832SINT046353768641PlcTask Outputs095748096PRG_Main._fbHVTester._xOpenDoor18BOOL634178120PRG_Main._fbHVTester._xOpenDoor28BOOL634178128PRG_Main._fbHVTester._xCloseDoor18BOOL634178136PRG_Main._fbHVTester._xCloseDoor28BOOL634178144PRG_Main._fbHVTester._xOpenChamber18BOOL634178152PRG_Main._fbHVTester._xOpenChamber28BOOL634178160PRG_Main._fbHVTester._xCloseChamber18BOOL634178168PRG_Main._fbHVTester._xCloseChamber28BOOL634178176PRG_Main._fbEtcher1._xOpenDoor8BOOL634178312PRG_Main._fbEtcher1._xCloseDoor8BOOL634178320PRG_Main._fbEtcher2._xOpenDoor8BOOL634178440PRG_Main._fbEtcher2._xCloseDoor8BOOL634178448PRG_Safety._xRun8BOOL634598752PRG_Safety._xLockDoor8BOOLtrue634598768PRG_Safety._xErrorAck8BOOL634598912PRG_Main._fbRobot._uCtrl32U_KukaRobot_Ctrl635376384PRG_Main._fbRobot._uJobs Robot job to do
+ 1 -> PLC job which is finished]]>32U_KukaRobot_Jobs635376416PRG_Main._fbRobot._abToolsAndPositions32BYTE04635376448PRG_Main._fbRobot._diOffsetPosX32DINT635376480PRG_Main._fbRobot._diOffsetPosY32DINT635376512PRG_Main._fbRobot._diThickness32DINT6353765443PlcTask Internal095748096GVL_TYPE_CONST.INT_MIN16INT-32768TcVarGlobal3072000GVL_TYPE_CONST.INT_MAX16INT32767TcVarGlobal3072016GVL_TYPE_CONST.UINT_MAX16UINT65535TcVarGlobal3072032GVL_TYPE_CONST.UINT_MIN16UINT0TcVarGlobal3072048GVL_TYPE_CONST.DINT_MAX32DINT2147483647TcVarGlobal3072064GVL_TYPE_CONST.DINT_MIN32DINT-2147483648TcVarGlobal3072096GVL_TYPE_CONST.UDINT_MAX32UDINT4294967295TcVarGlobal3072128GVL_TYPE_CONST.UDINT_MIN32UDINT0TcVarGlobal3072160GVL_TYPE_CONST.REAL_MAX32REAL3.042823E+38TcVarGlobal3072192GVL_TYPE_CONST.REAL_MIN32REAL1E-44TcVarGlobal3072224GVL_CONFIGS.MAX_INTERLOCKS8USINT16TcVarGlobal3072256Global_Variables.BOOTDATAFLAGS_RETAIN_LOADED8BYTE1TcVarGlobal3072264Global_Variables.AMSPORT_LOGGER16UINT100TcVarGlobal3072272Global_Version.stLibVersion_Tc2_MC2288ST_LibVersion.iMajor3.iMinor3.iBuild69.iRevision0.nFlags1.sVersion3.3.69.0const_non_replacedTcVarGlobal3072288Global_Version.stLibVersion_Tc2_Math288ST_LibVersion.iMajor3.iMinor5.iBuild1.iRevision0.nFlags1.sVersion3.5.1.0const_non_replacedTcVarGlobal3072576Global_Version.stLibVersion_Tc2_Standard288ST_LibVersion.iMajor3.iMinor4.iBuild5.iRevision0.nFlags1.sVersion3.4.5.0const_non_replacedTcVarGlobal3072864Global_Version.stLibVersion_Tc2_System288ST_LibVersion.iMajor3.iMinor9.iBuild1.iRevision0.nFlags1.sVersion3.9.1.0const_non_replacedTcVarGlobal3073152Global_Variables.AMSPORT_EVENTLOG16UINT110TcVarGlobal3073440Global_Variables.AMSPORT_R0_RTIME16UINT200TcVarGlobal3073456Global_Variables.AMSPORT_R0_IO16UINT300TcVarGlobal3073472Global_Variables.AMSPORT_R0_NC16UINT500TcVarGlobal3073488Global_Variables.AMSPORT_R0_NCSAF16UINT501TcVarGlobal3073504Global_Variables.AMSPORT_R0_NCSVB16UINT511TcVarGlobal3073520Global_Variables.AMSPORT_R0_ISG16UINT550TcVarGlobal3073536Global_Variables.AMSPORT_R0_CNC16UINT600TcVarGlobal3073552Global_Variables.AMSPORT_R0_LINE16UINT700TcVarGlobal3073568Global_Variables.AMSPORT_R0_PLC16UINT800TcVarGlobal3073584Global_Variables.AMSPORT_R0_PLC_RTS116UINT801TcVarGlobal3073600Global_Variables.AMSPORT_R0_PLC_RTS216UINT811TcVarGlobal3073616Global_Variables.AMSPORT_R0_PLC_RTS316UINT821TcVarGlobal3073632Global_Variables.AMSPORT_R0_PLC_RTS416UINT831TcVarGlobal3073648Global_Variables.AMSPORT_R0_CAM16UINT900TcVarGlobal3073664Global_Variables.AMSPORT_R0_CAMTOOL16UINT950TcVarGlobal3073680Global_Variables.AMSPORT_R3_SYSSERV16UINT10000TcVarGlobal3073696Global_Variables.AMSPORT_R3_SCOPESERVER16UINT14001TcVarGlobal3073712Global_Variables.ADSSTATE_INVALID16UINT0TcVarGlobal3073728Global_Variables.ADSSTATE_IDLE16UINT1TcVarGlobal3073744Global_Variables.ADSSTATE_RESET16UINT2TcVarGlobal3073760Global_Variables.ADSSTATE_INIT16UINT3TcVarGlobal3073776Global_Variables.ADSSTATE_START16UINT4TcVarGlobal3073792Global_Variables.ADSSTATE_RUN16UINT5TcVarGlobal3073808Global_Variables.ADSSTATE_STOP16UINT6TcVarGlobal3073824Global_Variables.ADSSTATE_SAVECFG16UINT7TcVarGlobal3073840Global_Variables.ADSSTATE_LOADCFG16UINT8TcVarGlobal3073856Global_Variables.ADSSTATE_POWERFAILURE16UINT9TcVarGlobal3073872Global_Variables.ADSSTATE_POWERGOOD16UINT10TcVarGlobal3073888Global_Variables.ADSSTATE_ERROR16UINT11TcVarGlobal3073904Global_Variables.ADSSTATE_SHUTDOWN16UINT12TcVarGlobal3073920Global_Variables.ADSSTATE_SUSPEND16UINT13TcVarGlobal3073936Global_Variables.ADSSTATE_RESUME16UINT14TcVarGlobal3073952Global_Variables.ADSSTATE_CONFIG16UINT15TcVarGlobal3073968Global_Variables.ADSSTATE_RECONFIG16UINT16TcVarGlobal3073984Global_Variables.ADSSTATE_STOPPING16UINT17TcVarGlobal3074000Global_Variables.ADSSTATE_INCOMPATIBLE16UINT18TcVarGlobal3074016Global_Variables.ADSSTATE_EXCEPTION16UINT19TcVarGlobal3074032Global_Variables.ADSSTATE_MAXSTATES16UINT20TcVarGlobal3074048Global_Variables.BOOTDATAFLAGS_RETAIN_INVALID8BYTE2TcVarGlobal3074064Global_Variables.BOOTDATAFLAGS_RETAIN_REQUESTED8BYTE4TcVarGlobal3074072Global_Variables.ADSIGRP_SYMTAB32UDINT61440TcVarGlobal3074080Global_Variables.ADSIGRP_SYMNAME32UDINT61441TcVarGlobal3074112Global_Variables.ADSIGRP_SYMVAL32UDINT61442TcVarGlobal3074144Global_Variables.ADSIGRP_SYM_HNDBYNAME32UDINT61443TcVarGlobal3074176Global_Variables.ADSIGRP_SYM_VALBYNAME32UDINT61444TcVarGlobal3074208Global_Variables.ADSIGRP_SYM_VALBYHND32UDINT61445TcVarGlobal3074240Global_Variables.ADSIGRP_SYM_RELEASEHND32UDINT61446TcVarGlobal3074272Global_Variables.ADSIGRP_SYM_INFOBYNAME32UDINT61447TcVarGlobal3074304Global_Variables.ADSIGRP_SYM_VERSION32UDINT61448TcVarGlobal3074336Global_Variables.ADSIGRP_SYM_INFOBYNAMEEX32UDINT61449TcVarGlobal3074368Global_Variables.ADSIGRP_SYM_DOWNLOAD32UDINT61450TcVarGlobal3074400Global_Variables.ADSIGRP_SYM_UPLOAD32UDINT61451TcVarGlobal3074432Global_Variables.ADSIGRP_SYM_UPLOADINFO32UDINT61452TcVarGlobal3074464Global_Variables.ADSIGRP_SYMNOTE32UDINT61456TcVarGlobal3074496Global_Variables.ADSIGRP_IOIMAGE_RWIB32UDINT61472TcVarGlobal3074528Global_Variables.ADSIGRP_IOIMAGE_RWIX32UDINT61473TcVarGlobal3074560Global_Variables.ADSIGRP_IOIMAGE_RISIZE32UDINT61477TcVarGlobal3074592Global_Variables.ADSIGRP_IOIMAGE_RWOB32UDINT61488TcVarGlobal3074624Global_Variables.ADSIGRP_IOIMAGE_RWOX32UDINT61489TcVarGlobal3074656Global_Variables.ADSIGRP_IOIMAGE_ROSIZE32UDINT61493TcVarGlobal3074688Global_Variables.ADSIGRP_IOIMAGE_CLEARI32UDINT61504TcVarGlobal3074720Global_Variables.ADSIGRP_IOIMAGE_CLEARO32UDINT61520TcVarGlobal3074752Global_Variables.ADSIGRP_IOIMAGE_RWIOB32UDINT61536TcVarGlobal3074784Global_Variables.ADSIGRP_DEVICE_DATA32UDINT61696TcVarGlobal3074816Global_Variables.ADSIOFFS_DEVDATA_ADSSTATE32UDINT0TcVarGlobal3074848Global_Variables.ADSIOFFS_DEVDATA_DEVSTATE32UDINT2TcVarGlobal3074880Global_Variables.SYSTEMSERVICE_OPENCREATE32UDINT100TcVarGlobal3074912Global_Variables.SYSTEMSERVICE_OPENREAD32UDINT101TcVarGlobal3074944Global_Variables.SYSTEMSERVICE_OPENWRITE32UDINT102TcVarGlobal3074976Global_Variables.SYSTEMSERVICE_CREATEFILE32UDINT110TcVarGlobal3075008Global_Variables.SYSTEMSERVICE_CLOSEHANDLE32UDINT111TcVarGlobal3075040Global_Variables.SYSTEMSERVICE_FOPEN32UDINT120TcVarGlobal3075072Global_Variables.SYSTEMSERVICE_FCLOSE32UDINT121TcVarGlobal3075104Global_Variables.SYSTEMSERVICE_FREAD32UDINT122TcVarGlobal3075136Global_Variables.SYSTEMSERVICE_FWRITE32UDINT123TcVarGlobal3075168Global_Variables.SYSTEMSERVICE_FSEEK32UDINT124TcVarGlobal3075200Global_Variables.SYSTEMSERVICE_FTELL32UDINT125TcVarGlobal3075232Global_Variables.SYSTEMSERVICE_FGETS32UDINT126TcVarGlobal3075264Global_Variables.SYSTEMSERVICE_FPUTS32UDINT127TcVarGlobal3075296Global_Variables.SYSTEMSERVICE_FSCANF32UDINT128TcVarGlobal3075328Global_Variables.SYSTEMSERVICE_FPRINTF32UDINT129TcVarGlobal3075360Global_Variables.SYSTEMSERVICE_FEOF32UDINT130TcVarGlobal3075392Global_Variables.SYSTEMSERVICE_FDELETE32UDINT131TcVarGlobal3075424Global_Variables.SYSTEMSERVICE_FRENAME32UDINT132TcVarGlobal3075456Global_Variables.SYSTEMSERVICE_MKDIR32UDINT138TcVarGlobal3075488Global_Variables.SYSTEMSERVICE_RMDIR32UDINT139TcVarGlobal3075520Global_Variables.SYSTEMSERVICE_REG_HKEYLOCALMACHINE32UDINT200TcVarGlobal3075552Global_Variables.SYSTEMSERVICE_SENDEMAIL32UDINT300TcVarGlobal3075584Global_Variables.SYSTEMSERVICE_TIMESERVICES32UDINT400TcVarGlobal3075616Global_Variables.SYSTEMSERVICE_STARTPROCESS32UDINT500TcVarGlobal3075648Global_Variables.SYSTEMSERVICE_CHANGENETID32UDINT600TcVarGlobal3075680Global_Variables.TIMESERVICE_DATEANDTIME32UDINT1TcVarGlobal3075712Global_Variables.TIMESERVICE_SYSTEMTIMES32UDINT2TcVarGlobal3075744Global_Variables.TIMESERVICE_RTCTIMEDIFF32UDINT3TcVarGlobal3075776Global_Variables.TIMESERVICE_ADJUSTTIMETORTC32UDINT4TcVarGlobal3075808Global_Variables.TIMESERVICE_TIMEZONINFORMATION32UDINT6TcVarGlobal3075840Global_Variables.ADSLOG_MSGTYPE_HINT32DWORD1TcVarGlobal3075872Global_Variables.ADSLOG_MSGTYPE_WARN32DWORD2TcVarGlobal3075904Global_Variables.ADSLOG_MSGTYPE_ERROR32DWORD4TcVarGlobal3075936Global_Variables.ADSLOG_MSGTYPE_LOG32DWORD16TcVarGlobal3075968Global_Variables.ADSLOG_MSGTYPE_MSGBOX32DWORD32TcVarGlobal3076000Global_Variables.ADSLOG_MSGTYPE_RESOURCE32DWORD64TcVarGlobal3076032Global_Variables.ADSLOG_MSGTYPE_STRING32DWORD128TcVarGlobal3076064Global_Variables.BOOTDATAFLAGS_PERSISTENT_LOADED8BYTE16TcVarGlobal3076096Global_Variables.BOOTDATAFLAGS_PERSISTENT_INVALID8BYTE32TcVarGlobal3076104Global_Variables.SYSTEMSTATEFLAGS_BSOD8BYTE1TcVarGlobal3076112Global_Variables.SYSTEMSTATEFLAGS_RTVIOLATION8BYTE2TcVarGlobal3076120Global_Variables.FOPEN_MODEREAD32DWORD1TcVarGlobal3076128Global_Variables.FOPEN_MODEWRITE32DWORD2TcVarGlobal3076160Global_Variables.FOPEN_MODEAPPEND32DWORD4TcVarGlobal3076192Global_Variables.FOPEN_MODEPLUS32DWORD8TcVarGlobal3076224Global_Variables.FOPEN_MODEBINARY32DWORD16TcVarGlobal3076256Global_Variables.FOPEN_MODETEXT32DWORD32TcVarGlobal3076288Global_Variables.TCEVENTFLAG_PRIOCLASS16WORD16TcVarGlobal3076544Global_Variables.TCEVENTFLAG_FMTSELF16WORD32TcVarGlobal3076560Global_Variables.TCEVENTFLAG_LOG16WORD64TcVarGlobal3076576Global_Variables.TCEVENTFLAG_MSGBOX16WORD128TcVarGlobal3076592Global_Variables.TCEVENTFLAG_SRCID16WORD256TcVarGlobal3076608Global_Variables.TCEVENTFLAG_AUTOFMTALL16WORD4096TcVarGlobal3076624Global_Variables.TCEVENTSTATE_INVALID16WORD0TcVarGlobal3076640Global_Variables.TCEVENTSTATE_SIGNALED16WORD1TcVarGlobal3076656Global_Variables.TCEVENTSTATE_RESET16WORD2TcVarGlobal3076672Global_Variables.TCEVENTSTATE_CONFIRMED16WORD16TcVarGlobal3076688Global_Variables.TCEVENTSTATE_RESETCON16WORD18TcVarGlobal3076704Global_Variables.TCEVENT_SRCNAMESIZE16INT15TcVarGlobal3076720Global_Variables.TCEVENT_FMTPRGSIZE16INT31TcVarGlobal3076736Global_Variables.eWatchdogConfig16E_WATCHDOG_TIME_CONFIGE_WATCHDOG_TIME_CONFIG.eWATCHDOG_TIME_DISABLEDTcVarGlobal3076752Global_Variables.DEFAULT_ADS_TIMEOUT32TIME5000TcVarGlobal3076768Global_Variables.PI64LREAL3.14159265358979TcVarGlobal3076800Global_Variables.MAX_STRING_LENGTH32UDINT255TcVarGlobal3076864Global_Variables.nWatchdogTime8BYTETcVarGlobal3077440Global_Variables.GLOBAL_DCF77_SEQUENCE_CHECK8BOOLfalseTcVarGlobal3077448Global_Variables.MAX_AVERAGE_MEASURES16INT (2..100)10TcVarGlobal3077456Global_Version.stLibVersion_Tc3_Module288ST_LibVersion.iMajor3.iMinor4.iBuild5.iRevision0.nFlags1.sVersion3.4.5.0const_non_replacedTcVarGlobal3077472Global_Variables.GLOBAL_FORMAT_HASH_PREFIX_TYPE16E_HashPrefixTypesE_HashPrefixTypes.HASHPREFIX_IECTcVarGlobal3078048Global_Variables.GLOBAL_SBCS_TABLE16E_SBCSTypeE_SBCSType.eSBCS_WesternEuropeanTcVarGlobal3078064Global_Version.stLibVersion_Tc2_Utilities288ST_LibVersion.iMajor3.iMinor10.iBuild1.iRevision0.nFlags1.sVersion3.10.1.0const_non_replacedTcVarGlobal3078144Global_Variables.GLOBAL_DCF77_PULSE_SPLIT pulse < 140ms, Bit == 1 => pulse >= 140ms ]]>32TIME140TcVarGlobal3078432Global_Variables.DEFAULT_CSV_FIELD_SEP german field separator, comma (,) := 16#2C => US field separator ]]>8BYTE59TcVarGlobal3078464Global_Variables.MAX_ROUTE_NAME_LEN8BYTE31TcVarGlobal3078472Global_Variables.MAX_REMOTE_PCS16INT99TcVarGlobal3078480Global_Variables.MAX_ADAPTER_NAME_LENGTH32UDINT259TcVarGlobal3139968Global_Variables.MAX_ADAPTER_DESCRIPTION_LENGTH32UDINT131TcVarGlobal3140000Global_Variables.MAX_ADAPTER_ADDRESS_LENGTH32UDINT7TcVarGlobal3140032Global_Variables.SYSTEMSERVICE_IPHELPERAPI32UDINT701TcVarGlobal3140064Global_Variables.SYSTEMSERVICE_IPHOSTNAME32UDINT702TcVarGlobal3140096Global_Variables.IPHELPERAPI_ADAPTERSINFO32UDINT1TcVarGlobal3140128Global_Variables.IPHELPERAPI_IPADDRBYHOSTNAME32UDINT4TcVarGlobal3140160Global_Variables.MAX_LOCAL_ADAPTERS32UDINT5TcVarGlobal3140192Global_Variables.SYSTEMSERVICE_ADDREMOTE32UDINT801TcVarGlobal3140224Global_Variables.SYSTEMSERVICE_DELREMOTE32UDINT802TcVarGlobal3140256Global_Variables.SYSTEMSERVICE_ENUMREMOTE32UDINT803TcVarGlobal3140288Global_Variables.ROUTE_FLAG_TEMPORARY32DWORD1TcVarGlobal3140320Global_Variables.ROUTE_FLAG_DYNAMIC32DWORD2TcVarGlobal3140352Global_Variables.ROUTE_FLAG_NOOVERRIDE32DWORD4TcVarGlobal3140384Global_Variables.MAX_ROUTE_ADDR_LEN8BYTE79TcVarGlobal3140416Global_Variables.MIN_ROUTE_TRANSPORT8BYTE0TcVarGlobal3140424Global_Variables.MAX_ROUTE_TRANSPORT8BYTE12TcVarGlobal3140432Global_Variables.DEFAULT_CSV_FIELD_DOUBLE_QUOTE used to enclose special characters like line breaks, double-quotes, commas... ]]>8BYTE34TcVarGlobal3140440Global_Variables.EMPTY_ROUTE_ENTRY1184ST_AmsRouteEntry.sName.sNetID.sAddress.tTimeout0.dwFlags0TcVarGlobal3140448Global_Variables.SYSTEMSERVICE_FFILEFIND32UDINT133TcVarGlobal3141632Global_Variables.HKEY_MAX_BINARY_DATA_SIZE32UDINT500TcVarGlobal3141664Global_Variables.AMSLOGGER_IGR_GENERAL32UDINT4096TcVarGlobal3141696Global_Variables.AMSLOGGER_IOF_MODE32UDINT1TcVarGlobal3141728Global_Variables.AMSPORT_AMSLOGGER16UINT10502TcVarGlobal3141760Global_Variables.FORMAT_MAX_ARGS16INT10TcVarGlobal3141776Global_Variables.FLOATREC_EXP_IS_NAN16INT-32768TcVarGlobal3141792Global_Variables.FLOATREC_EXP_IS_INF16INT32767TcVarGlobal3141808Global_Variables.FLOATREC_MAX_DIGITS16INT20TcVarGlobal3141824Global_Variables.FLOATREC_MAX_PRECISION16INT307TcVarGlobal3141840Global_Variables.FLOATREC_MIN_PRECISION16INT0TcVarGlobal3141856Global_Variables.FMTERR_NOERROR32DWORD0TcVarGlobal3141888Global_Variables.FMTERR_PERCENTSIGNPOSITION32DWORD16TcVarGlobal3141920Global_Variables.FMTERR_ASTERISKPOSITION32DWORD32TcVarGlobal3141952Global_Variables.FMTERR_WIDTHVALUE32DWORD64TcVarGlobal3141984Global_Variables.FMTERR_PRECISIONVALUE32DWORD128TcVarGlobal3142016Global_Variables.FMTERR_FLAGPOSITION32DWORD256TcVarGlobal3142048Global_Variables.FMTERR_WIDTHPRECISIONVALPOS32DWORD512TcVarGlobal3142080Global_Variables.FMTERR_PRECISIONDOTPOSITION32DWORD1024TcVarGlobal3142112Global_Variables.FMTERR_TYPEFIELDVALUE32DWORD2048TcVarGlobal3142144Global_Variables.FMTERR_ARGTYPEINVALID32DWORD4096TcVarGlobal3142176Global_Variables.FMTERR_UNACCEPTEDPARAMETER32DWORD8192TcVarGlobal3142208Global_Variables.FMTERR_INSUFFICIENTARGS32DWORD16384TcVarGlobal3142240Global_Variables.FMTERR_DESTBUFFOVERFLOW32DWORD32768TcVarGlobal3142272Global_Variables.FMTERR_INVALIDPOINTERINPUT32DWORD65536TcVarGlobal3142304Global_Variables.EMPTY_ARG_VALUE128T_Arg.eTypeE_ArgType.ARGTYPE_UNKNOWN.cbLen0.pData0TcVarGlobal3142336Global_Variables.FORMAT_HEXASC_CODES256BYTE02016[0,0]48[0,1]49[0,2]50[0,3]51[0,4]52[0,5]53[0,6]54[0,7]55[0,8]56[0,9]57[0,10]97[0,11]98[0,12]99[0,13]100[0,14]101[0,15]102[1,0]48[1,1]49[1,2]50[1,3]51[1,4]52[1,5]53[1,6]54[1,7]55[1,8]56[1,9]57[1,10]65[1,11]66[1,12]67[1,13]68[1,14]69[1,15]70TcVarGlobal3142464Global_Variables.FORMAT_DECASC_CODES80BYTE010[0]48[1]49[2]50[3]51[4]52[5]53[6]54[7]55[8]56[9]57TcVarGlobal3142720Global_Variables.SYSTEMTIME_MAX_MONTHDAYS384WORD02112[0,1]31[0,2]28[0,3]31[0,4]30[0,5]31[0,6]30[0,7]31[0,8]31[0,9]30[0,10]31[0,11]30[0,12]31[1,1]31[1,2]29[1,3]31[1,4]30[1,5]31[1,6]30[1,7]31[1,8]31[1,9]30[1,10]31[1,11]30[1,12]31TcVarGlobal3148208Global_Variables.SYSTEMTIME_MAX_YEARSDAY448WORD02014[0,0]0[0,1]31[0,2]59[0,3]90[0,4]120[0,5]151[0,6]181[0,7]212[0,8]243[0,9]273[0,10]304[0,11]334[0,12]365[0,13]396[1,0]0[1,1]31[1,2]60[1,3]91[1,4]121[1,5]152[1,6]182[1,7]213[1,8]244[1,9]274[1,10]305[1,11]335[1,12]366[1,13]397TcVarGlobal3148592Global_Variables.SYSTEMTIME_DATEDELTA_OFFSET32DWORD584389TcVarGlobal3149056Global_Variables.SYSTEMTIME_TICKSPERMSEC64T_ULARGE_INTEGER.dwHighPart0.dwLowPart10000TcVarGlobal3149088Global_Variables.SYSTEMTIME_TICKSPERSEC64T_ULARGE_INTEGER.dwHighPart0.dwLowPart10000000TcVarGlobal3149152Global_Variables.SYSTEMTIME_TICKSPERDAY64T_ULARGE_INTEGER.dwHighPart201.dwLowPart711573504TcVarGlobal3149216Global_Variables.SYSTEMTIME_DATE_AND_TIME_MIN64T_ULARGE_INTEGER.dwHighPart27111902.dwLowPart3577643008TcVarGlobal3149280Global_Variables.SYSTEMTIME_DATE_AND_TIME_MAX64T_ULARGE_INTEGER.dwHighPart37111701.dwLowPart2856069504TcVarGlobal3149344Global_Variables.DATE_AND_TIME_SECPERDAY32DWORD86400TcVarGlobal3149408Global_Variables.SYSTEMTIME_TICKSPERMSEC6464ULINT10000TcVarGlobal3149440Global_Variables.SYSTEMTIME_TICKSPERSEC6464ULINT10000000TcVarGlobal3149504Global_Variables.SYSTEMTIME_TICKSPERDAY6464ULINT864000000000TcVarGlobal3149568Global_Variables.SYSTEMTIME_DATE_AND_TIME_MIN6464ULINT116444736000000000TcVarGlobal3149632Global_Variables.SYSTEMTIME_DATE_AND_TIME_MAX6464ULINT159393544950000000TcVarGlobal3149696Global_Variables.WEST_EUROPE_TZI864ST_TimeZoneInformation.bias-60.standardNameW. Europe Standard Time.standardDate.wYear0.standardDate.wMonth10.standardDate.wDayOfWeek0.standardDate.wDay5.standardDate.wHour3.standardBias0.daylightNameW. Europe Daylight Time.daylightDate.wYear0.daylightDate.wMonth3.daylightDate.wDayOfWeek0.daylightDate.wDay5.daylightDate.wHour2.daylightBias-60TcVarGlobal3149760Global_Variables.DATE_AND_TIME_SECPERWEEK32DWORD604800TcVarGlobal3154720Global_Variables.DBG_OUTPUT_NONE32DWORD0TcVarGlobal3165024Global_Variables.DBG_OUTPUT_LOG32DWORD1TcVarGlobal3165056Global_Variables.DBG_OUTPUT_FILE32DWORD2TcVarGlobal3165088Global_Variables.DBG_OUTPUT_VISU32DWORD4TcVarGlobal3165120Global_Variables.DEFAULT_CSV_RECORD_SEP_CR record separator (first character) ]]>8BYTE13TcVarGlobal3165168Global_Variables.DEFAULT_CSV_RECORD_SEP_LF record separator (second character) ]]>8BYTE10TcVarGlobal3165176Global_Variables.EMPTY_GUID_STRUCT128GUID.Data10.Data20.Data30.Data4[0]0.Data4[1]0.Data4[2]0.Data4[3]0.Data4[4]0.Data4[5]0.Data4[6]0.Data4[7]0TcVarGlobal3286656Global_Variables.EMPTY_GUID_STRING296STRING(36)00000000-0000-0000-0000-000000000000TcVarGlobal3286784Global_Variables.EMPTY_GUID_REGSTRING312STRING(38){00000000-0000-0000-0000-000000000000}TcVarGlobal3287080Global_Constants.EMPTY_SEVERITY16TcEventSeverityTcEventSeverity.VerboseTcVarGlobal3287472Global_Constants.EMPTY_EVENT_CLASS128GUID.Data10.Data20.Data30.Data4[0]0.Data4[1]0.Data4[2]0.Data4[3]0.Data4[4]0.Data4[5]0.Data4[6]0.Data4[7]0TcVarGlobal3287488Global_Constants.EMPTY_EVENT_ID32UDINT0TcVarGlobal3287616Global_Constants.SUCCESS_EVENT192TcEventEntry.uuidEventClass.Data10.uuidEventClass.Data20.uuidEventClass.Data30.uuidEventClass.Data4[0]0.uuidEventClass.Data4[1]0.uuidEventClass.Data4[2]0.uuidEventClass.Data4[3]0.uuidEventClass.Data4[4]0.uuidEventClass.Data4[5]0.uuidEventClass.Data4[6]0.uuidEventClass.Data4[7]0.nEventID0.eSeverityGlobal_Constants.EMPTY_SEVERITYTcVarGlobal3287648GVL.nLangId_OnlineMonitoring32DINT1033TcVarGlobal3287840ParameterList.cSourceNameSize32UDINT (81..10000)256TcVarGlobal3287872Global_Version.stLibVersion_Tc3_EventLogger288ST_LibVersion.iMajor3.iMinor3.iBuild13.iRevision0.nFlags1.sVersion3.3.13.0const_non_replacedTcVarGlobal3287904GVL_INTERNAL.UNINITIALIZED_CLASS_GUID128GUID.Data13886330336.Data262671.Data318227.Data4[0]149.Data4[1]213.Data4[2]115.Data4[3]223.Data4[4]8.Data4[5]75.Data4[6]96.Data4[7]248TcVarGlobal3288192Global_Version.stLibVersion_Tc3_IotBase288ST_LibVersion.iMajor3.iMinor5.iBuild3.iRevision0.nFlags1.sVersion3.5.3.0const_non_replacedTcVarGlobal3289984GVL_Param_TcUnit.MaxNumberOfTestSuites16UINT1000TcVarGlobal3290736Global_Version.stLibVersion_Tc3_DynamicMemory288ST_LibVersion.iMajor1.iMinor1.iBuild4.iRevision0.nFlags1.sVersion1.1.4.0const_non_replacedTcVarGlobal3291360Global_Version.stLibVersion_Tc3_JsonXml288ST_LibVersion.iMajor3.iMinor4.iBuild7.iRevision0.nFlags1.sVersion3.4.7.0const_non_replacedTcVarGlobal3291648GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite16UINT100TcVarGlobal3291936GVL_Param_TcUnit.MaxNumberOfAssertsForEachTestSuite16UINT1000TcVarGlobal3291952GVL_Param_TcUnit.LogExtendedResults8BOOLtrueTcVarGlobal3291968GVL_Param_TcUnit.xUnitEnablePublish8BOOLfalseTcVarGlobal3291976GVL_Param_TcUnit.AdsLogMessageFifoRingBufferSize16UINT2000TcVarGlobal3291984GVL_Param_TcUnit.xUnitBufferSize32UDINT65535TcVarGlobal3292000GVL_Param_TcUnit.xUnitFilePath2048T_MaxStringC:\tcunit_xunit_testresults.xmlTcVarGlobal3292032GVL_Param_TcUnit.TimeBetweenTestSuitesExecution32TIMET#0MSTcVarGlobal3294080GVL_TcUnit.TestSuiteIsRegistered8BOOLTcVarGlobal3294112GVL_TcUnit.CurrentTestIsFinished8BOOLTcVarGlobal3294120GVL_TcUnit.IgnoreCurrentTest8BOOLTcVarGlobal3294128PRG_Main._xConfirmAlarms8BOOL3294136GVL_TcUnit.TcUnitRunner621828480FB_TcUnitRunnerTcVarGlobal3294144GVL_TcUnit.CurrentTestSuiteBeingCalled64FB_TestSuiteTcVarGlobal625122624GVL_TcUnit.CurrentTestNameBeingCalled2048T_MaxStringTcVarGlobal625122688GVL_TcUnit.NumberOfInitializedTestSuites16UINT0TcVarGlobal625124736FB_DynMem_Manager.nInstanceCreations16UINTTcVarStatic625124752.TCPADS_MAXUDP_BUFFSIZE32UDINT8192TcVarGlobal625124768GVL_TcUnit.TestSuiteAddresses64000FB_TestSuite11000TcVarGlobal625124800GVL_TcUnit.CurrentlyRunningOrderedTestInTestSuite16000UINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)11000TcVarGlobal625188800GVL_TcUnit.AdsMessageQueue8321152FB_AdsLogStringMessageFifoQueueTcVarGlobal625204800Global_Version.stLibVersion_TcUnit288ST_LibVersion.iMajor1.iMinor2.iBuild0.iRevision0.sVersion1.2.0.0const_non_replacedTcVarGlobal633525952.TCPADS_TLS_HOSTNAME_SIZE32UDINT255TcVarGlobal633526240.TCPADS_TLS_CERTIFICATE_PATH_SIZE32UDINT255TcVarGlobal633526272.TCPADS_TLS_KEY_PASSWORD_SIZE32UDINT255TcVarGlobal633526304.TCPADS_TLS_PSK_IDENTITY_SIZE32UDINT255TcVarGlobal633526336.TCPADS_TLS_MAX_PSK_KEY_SIZE32UDINT128TcVarGlobal633526368Global_Version.stLibVersion_Tc2_TcpIp288ST_LibVersion.iMajor3.iMinor4.iBuild2.iRevision0.nFlags1.sVersion3.4.2.0const_non_replacedTcVarGlobal633526400TC_EVENTS.KukaRobot960ST_KukaRobottc_no_symbolunusedconst_non_replacedsuppress_warning_0C0228init_on_onlchangeTcVarGlobal633544800PRG_Main._xClear8BOOL633592416PRG_Main._xReset8BOOL633592424PRG_Main._xFirstCycle8BOOLtrue633592432PRG_Safety.xConfirmAlarms8BOOL633592440PRG_Main._fbHVTester192FB_HVTester634178048PRG_Main._fbEtcher1128FB_Etcher634178240PRG_Main._fbEtcher2128FB_Etcher634178368PRG_Main._stRobotCmd419456ST_PMLc634178496PRG_Main._stRobotStatus128ST_PMLs634597952PRG_Main._stRobotAdmin672ST_PMLa634598080PRG_Safety._rtrigDoorUnlock128R_TRIG634598784TwinCAT_PreventOnlineChangeGvl.WriteLineIDs8BOOLtrueTcVarGlobal634598920TwinCAT_PreventOnlineChangeGvl.PlcProfilerActive8BOOLfalseTcVarGlobal634598928GVL_SCADA.xErrAck8BOOLTcVarGlobal634598936GVL_SCADA.xOpenAllChambers8BOOLTcVarGlobal634598960PRG_Safety._tofErrorAck256TOF.PTT#500MS634598976TwinCAT_PreventOnlineChangeGvl.PlcProfilerConfigChecksum520STRING(64)TcVarGlobal634599232GVL_PackML_Conf.MAX_PARAMS16UINT10TcVarGlobal634599760GVL_PackML_Conf.MAX_PRODUCT_DATA16UINT10TcVarGlobal634599776GVL_PackML_Conf.MAX_RECIPES_PER_UNIT16UINT5TcVarGlobal634599792TwinCAT_SystemInfoVarList._AppInfo2048PlcAppSystemInfono_initTcVarGlobal634600128TwinCAT_SystemInfoVarList._TaskInfo1024PlcTaskSystemInfo11no_initTcVarGlobal634602176TwinCAT_SystemInfoVarList._TaskPouOid_PlcTask32OTCIDno_initTcVarGlobal634603200TwinCAT_SystemInfoVarList._TaskOid_PlcTask32OTCIDno_initTcVarGlobal634603232TwinCAT_SystemInfoVarList.__PlcTask896_Implicit_Task_Info.dwVersion2TcContextNamePlcTaskTcVarGlobal634603264PRG_Main._xStart8BOOL634630688PRG_Main._stRecipeGripperChange76288ST_PackMLRecipe.diID0.sNameChange gripper634802176PRG_Main._fbRobot539968FB_KukaRobot634878464KukaRobotApplicationNamePort_851ChangeDate2026-01-29T19:18:55GeneratedCodeSize401408GlobalDataSize78970880UTF8EncodedStringsfalse
\ No newline at end of file
diff --git a/PLC/PlcTask.TcTTO b/PLC/PlcTask.TcTTO
index 2866370..85ca8d4 100644
--- a/PLC/PlcTask.TcTTO
+++ b/PLC/PlcTask.TcTTO
@@ -5,7 +5,7 @@
10000
20
- PRG_Test
+ PRG_Main
{40eb18ee-d47c-458f-bba5-88b899fc1567}
{6e3535be-c313-4e44-9f98-4268a560c4bf}
diff --git a/PLC/Visu/Visualization.TcVIS b/PLC/Visu/Visualization.TcVIS
deleted file mode 100644
index ac5bfa5..0000000
--- a/PLC/Visu/Visualization.TcVIS
+++ /dev/null
@@ -1,397 +0,0 @@
-
-
-
-
-
-
-
- "12"
-
-
-
-
-
-
-
-
-
- 571893170L
- "Rest"
-
-
- 1931512087L
- "TOGGLE"
-
-
- 300685745L
- false
-
-
- 2812299069L
- 4294967295U
-
-
- 494569607L
- 4278190080U
-
-
- 3719097617L
- 0
-
-
- 1649127785L
- 134
-
-
- 357335551L
- 150
-
-
- 2422045748L
- 229
-
-
- 2134141914L
- 177
-
-
- 4062784938L
- "Element-Switch-PushSwitch-Gray"
-
-
- 550940142L
- 248
-
-
- 1473355128L
- 238
-
-
- 493260384L
- 4294967295U
-
-
- 135947015L
- 4278190080U
-
-
- 2678395525L
- 1U
-
-
- 2340015797L
- "HCENTER"
-
-
- 2565699834L
- "VCENTER"
-
-
- 296037572L
- ""
-
-
- 390574330L
- ""
-
-
- 2597686782L
- false
-
-
- 743958181L
- "GVL_SCADA.xErrAck"
-
-
- 3438453433L
- "134"
-
-
-
- "PushSwitch"
- "VisuFbElemPushSwitch"
- true
- "GenElemInst_1"
-
-
-
- {a9fe58e2-2923-486b-83ae-c30f51fc53bc}
- {c7f813ad-d496-46cf-913b-a7293dcf426c}
-
-
- 0
-
- "0"
- ""
- 1
-
-
-
- ""
- 16777215
-
-
-
- ""
- false
- false
- 16777215
- false
-
- false
-
-
-
-
- AreAllElementsHidden
- a725eb54-6600-588a-9f13-869630ee3e7e
- ContainsPoint
- ab15b219-793c-4da0-bd07-15f4b9559413
- Destruct
- 3ba10444-2f83-4df5-aa26-6b77c6d0abf6
- ElementInfo
- 4fc818ce-9e66-4929-a86a-b286e246a68d
- FB_Exit
- 77528b4c-c8c4-4f11-a991-6b9fe9e1a3d3
- FB_Reinit
- 1d8a778c-cc51-47a7-a51d-3d9eb8125008
- GetCallerNamespace
- 43a88302-5fea-54cf-b14f-4c85099970ea
- GetClientData
- cadc6a04-3260-4217-ae88-86a7d1978d67
- GetDialogInterface
- 061c17d4-c1fd-4666-8fbf-29cb1f99ec8e
- GetDialogInterfaceSize
- e770c9e8-0fe5-4727-bbf9-e82c4cdde02f
- GetElementArray
- 3453a92d-9e41-45ae-b333-a6fd05ecc05f
- GetElementIdArray
- 01969ee2-370e-4639-8b9e-fcc1b5861ed4
- GetElementName
- 5549a8ef-993d-5c8c-a19e-92b606693b43
- GetInitializeVersion
- 87415d8b-3769-4476-ba47-778b9c7d9830
- GetInstance
- cb71613d-a9c0-4c65-af5b-0bf0cc1cc4a2
- GetLocalUsergroup
- a16842f4-6e61-487d-a546-e447ff985552
- GetName
- d299c55d-4dc9-4b9e-b9d7-81bcb628be24
- GetNamespace
- a00a8d02-710d-4837-b03e-8ac7f3cea203
- GetResult
- dd0c5ce2-d1c3-42c0-9d55-94b7f2ebfe7f
- GetSize
- aa96c3a1-2662-437e-b163-bed0cd701cbc
- GetSurroundingRect
- 8a93fd36-40b4-408c-a8fa-f2094bc31dc1
- GetTabOrderIdArray
- 22aa349f-aa1a-5a1e-b8d1-fa8b274978fc
- GetText
- 26faf652-11c0-4434-b399-bdd6c186874b
- GetTextProperties
- 76184248-eb5e-40ac-82e0-1b69e783afd2
- GetTooltip
- a0e4cc76-8d43-462d-b328-fda892a64d2d
- GetTranslator
- 409c1071-0ab9-46d9-9cb0-f29de52cf28e
- GetUpdateRects
- df55534a-e997-42c4-9622-83f8a02d6684
- HandleInput
- 0612a83a-5c13-462f-b5b0-94227cd1d4b4
- HasInputAccess
- 27cfb0a9-611b-41e2-a755-37c98bd69211
- HasInputAccessIntern
- 63cc92a5-408f-57e0-87e9-b2033b2b12ef
- HasVisibilityAccess
- f11fc703-d33e-412b-9764-588a000bede4
- HasVisibilityAccessIntern
- 12b8a5d1-0920-5c63-846f-df1f593d4075
- Initialize
- 28e2b0d4-7ee2-4256-bcf3-9b3d048989d7
- IsAntialiasingInactive
- 2a637b19-2d31-4c64-a5a2-a50b98a54f46
- Paint
- 359a8f28-6be2-40a9-b444-a14b59912a36
- SetClientData
- 84598ba9-869d-4d41-af71-685b89f2e17f
- SetContainerSize
- d54f5458-6e96-5c6d-9516-413a21c534b5
- SetDialogInterface
- f991bc46-9bfd-4b50-87ce-4a160df90f4e
- SetResult
- 31cc2a76-5ca2-40be-9c81-4ce91ffc8ceb
- SetStaticState
- a71f3a37-1f69-40b3-8810-7fbb9613ce2e
- SetVisuFlagsInternal
- c86bc3f1-839c-44f7-a86e-8c31b378e47d
- Update
- 86c23628-283c-4cd6-9a8e-4fe213a72b01
-
-
- __getContainer
- acc951a7-0e09-4639-b624-f1acf9de535a
- __getVisu
- 699a8058-a362-4d94-b2bf-8d83cc15d117
-
- "NotImportant"
- {c7f813ad-d496-46cf-913b-a7293dcf426c}
-
- {c3710736-16ea-4749-a94b-9a7cef0d94d9}
- {848dba92-ad40-4262-a0e6-c897149b4673}
- {4542b91b-c173-423b-a2e4-55fe1dcd4438}
-
-
-
- FB_Exit
- d076fe0e-7df0-431f-b3a9-736edf093162
- FB_Init
- 28fb6bb3-47cc-457f-82ec-a2ee72ded81b
- FB_Reinit
- ee89efe4-78d3-4256-a7b0-564fc198a1d2
-
-
- "NotImportant"
- {cb986f24-4b1d-4e53-8e13-066c36701683}
-
- {833946e1-5ee1-443a-a77a-490182229e46}
-
-
-
-
- abstrGetDefaultCursor
- f71cf66f-d4e9-4025-b35a-6cbbe1d389fb
- ExecuteDialogClosed
- e1501d0a-e558-483c-a9a5-a357640775bf
- ExecuteKeyDown
- 4950c656-5a4e-4a24-a04d-c68e5fa80bc4
- ExecuteKeyUp
- cf6a31c1-32e2-4079-9359-06f71f51ac03
- ExecuteLooseCapture
- 81003bd8-702b-46c6-8576-55b4cb3d6508
- ExecuteMouseClick
- 38ba0b28-4b12-4493-9592-7295d83cee3f
- ExecuteMouseDblClick
- d096b23e-54a3-422f-b2ad-5cab7f415d68
- ExecuteMouseDown
- fd2a0ed4-cfa0-4c81-ac3a-154c476085bf
- ExecuteMouseEnter
- 3eb196da-dbad-4a33-b599-c92ac619c961
- ExecuteMouseLeave
- 4d127b58-1b2d-4421-a7a2-590f2ab04eb8
- ExecuteMouseMove
- ecfc61c4-6132-4304-b084-52c22b62b091
- ExecuteMouseUp
- 97842947-afb6-4377-a1e0-497a4fad1b3a
- ExecuteValueChanged
- 5134f3a0-6cfd-4802-91ba-4bc2ef3ec14f
- GetElementInfo
- 18b304d4-0e71-4837-a644-83684312ccc5
- Initialize
- 8f927b74-8f36-4a18-b313-e9657129d589
-
-
- "NotImportant"
- {c5c7227b-e260-46ca-81aa-66e288af04d0}
-
- {f68c5176-54d2-4538-b87e-5801589c0396}
-
- 3
-
- "VAR_IN_OUT
-
-END_VAR"
-
-
- false
-
- 4140216668L
- 0
- 1
-
- 481037385728L
- 549755813887L
- 481037385728L
- 549754765312L
- 1048576L
-
-
-
-
- 0
-
- 363
- 327
-
- 1
-
- 363
- 327
-
- 2
-
- 363
- 327
-
-
- 2
-
-
-
-
-
- System.Collections.ArrayList
- {1038f12c-dd4b-4f96-87a3-a350fe8f3552}
- System.Boolean
- System.Byte
- {7df88604-7ac5-4e36-91c4-55e4fdad3e68}
- {1de566f6-72a7-494c-9353-9a418172c96e}
- {703465dc-4679-4ff2-bcc3-c57d0a204da3}
- {40d6dd8d-dfd0-493a-8e29-c9a35e1e6539}
- {f86c2928-8614-4cca-824b-e819ac4d58c4}
- System.Guid
- System.Collections.Hashtable
- {6b108d46-58af-4e41-a3f4-174d8f160cc4}
- System.Int32
- System.Int64
- System.String
- {f3878285-8e4f-490b-bb1b-9acbb7eb04db}
- System.UInt32
- {ef9d0b20-c96e-48db-b361-2ded4063150e}
- {f285c9a3-7019-446b-b98c-ccec3a0af8fa}
- {c694e3a2-5c0b-4177-ab35-cb06bd5a6a02}
- {a4b83bea-3742-489c-9fe8-d96d68dba7ab}
- {17e26cd1-bb9b-47fe-a3d5-18fcd63b9c96}
- {f18bec89-9fef-401d-9953-2f11739a6808}
- {6ad3e88f-aee2-4766-a7ea-a8790037ef51}
- {5f612b0e-b404-455f-8177-27864e9f5332}
-
-
-
-
-
-
- 0
- 1024
- 768
- false
- AutoDetect
- false
- false
- false
- true
-
-
- false
-
-
-
- System.Boolean
- System.Int32
- {477d844b-9b2a-407e-90a4-d36fd6dde2fc}
- {34718b76-91f6-43de-8c65-b77e0b1ee621}
-
-
-
-
-
\ No newline at end of file
diff --git a/PLC/Visualization Manager.TcVMO b/PLC/Visualization Manager.TcVMO
deleted file mode 100644
index 298b4f0..0000000
--- a/PLC/Visualization Manager.TcVMO
+++ /dev/null
@@ -1,593 +0,0 @@
-
-
-
-
-
-
- Undefined
- Undefined
-
-
- "Visualization"
- false
- false
- AutoDetect
- 2000
- 2000
- false
- 50000
- 400000
- false
- false
- true
- "Default, 3.1.9.0 (Beckhoff Automation GmbH)"
- 100
-
- "VisuDialogs.Numpad"
- "VisuDialogs.Keypad"
- "VisuDialogs.TextinputWithLimits"
- false
- false
- false
- true
- true
- false
- "VisuUserManagement.VUM_Login"
- "VisuUserManagement.VUM_ChangePassword"
- "VisuUserManagement.VUM_UserManagementWide"
- {00000000-0000-0000-0000-000000000000}
- {00000000-0000-0000-0000-000000000000}
- true
- true
-
- OpenCentered
-
-
-
- true
- 200
- false
- ""
- ""
- 0
- 0
- 0
- 0
- true
- true
- true
-
-
-
- FB_Exit
- 3b10f3d4-3918-46ea-8c63-adbf43a8a336
- FB_Init
- 9df8d017-b198-465e-8e55-f69841ae986f
- FB_Reinit
- 359af835-44f2-492f-a13c-f66f07fb0cd2
-
-
- "NotImportant"
- {f71ed0ce-2435-440b-9610-dc8f551135be}
-
-
-
- 7
- 4096
- "1002 0004"
- "1.0.0.8"
- {cb73a13e-6ccc-4bc6-8859-f5aa98bb116b}
-
-
- true
- 48
- "0"
-
-
- true
- 49
- "1"
-
-
- true
- 50
- "2"
-
-
- true
- 51
- "3"
-
-
- true
- 52
- "4"
-
-
- true
- 53
- "5"
-
-
- true
- 54
- "6"
-
-
- true
- 55
- "7"
-
-
- true
- 56
- "8"
-
-
- true
- 57
- "9"
-
-
- true
- 65
- "A"
-
-
- true
- 107
- "ADDITION"
-
-
- true
- 66
- "B"
-
-
- true
- 8
- "BACKSPACE"
-
-
- true
- 67
- "C"
-
-
- true
- 110
- "COMMA"
-
-
- true
- 68
- "D"
-
-
- true
- 46
- "DELETE"
-
-
- true
- 111
- "DIVIDE"
-
-
- true
- 40
- "DOWN"
-
-
- true
- 69
- "E"
-
-
- true
- 35
- "END"
-
-
- true
- 27
- "ESCAPE"
-
-
- true
- 70
- "F"
-
-
- true
- 112
- "F1"
-
-
- true
- 121
- "F10"
-
-
- true
- 122
- "F11"
-
-
- true
- 123
- "F12"
-
-
- true
- 113
- "F2"
-
-
- true
- 114
- "F3"
-
-
- true
- 115
- "F4"
-
-
- true
- 116
- "F5"
-
-
- true
- 117
- "F6"
-
-
- true
- 118
- "F7"
-
-
- true
- 119
- "F8"
-
-
- true
- 120
- "F9"
-
-
- true
- 71
- "G"
-
-
- true
- 72
- "H"
-
-
- true
- 36
- "HOME"
-
-
- true
- 73
- "I"
-
-
- true
- 45
- "INSERT"
-
-
- true
- 74
- "J"
-
-
- true
- 75
- "K"
-
-
- true
- 76
- "L"
-
-
- true
- 37
- "LEFT"
-
-
- true
- 77
- "M"
-
-
- true
- 106
- "MULTIPLY"
-
-
- true
- 78
- "N"
-
-
- true
- 96
- "NUM0"
-
-
- true
- 97
- "NUM1"
-
-
- true
- 98
- "NUM2"
-
-
- true
- 99
- "NUM3"
-
-
- true
- 100
- "NUM4"
-
-
- true
- 101
- "NUM5"
-
-
- true
- 102
- "NUM6"
-
-
- true
- 103
- "NUM7"
-
-
- true
- 104
- "NUM8"
-
-
- true
- 105
- "NUM9"
-
-
- true
- 79
- "O"
-
-
- true
- 80
- "P"
-
-
- true
- 19
- "PAUSE"
-
-
- true
- 42
- "PRINT"
-
-
- true
- 81
- "Q"
-
-
- true
- 82
- "R"
-
-
- true
- 13
- "RETURN_KEY"
-
-
- true
- 39
- "RIGHT"
-
-
- true
- 83
- "S"
-
-
- true
- 32
- "SPACE"
-
-
- true
- 109
- "SUBTRACT"
-
-
- true
- 84
- "T"
-
-
- true
- 9
- "TAB"
-
-
- true
- 85
- "U"
-
-
- true
- 38
- "UP"
-
-
- true
- 86
- "V"
-
-
- true
- 87
- "W"
-
-
- true
- 88
- "X"
-
-
- true
- 89
- "Y"
-
-
- true
- 90
- "Z"
-
-
-
-
-
- 481037385728L
- 549755813887L
- 481037385728L
- 549754765312L
- 1048576L
-
-
-
-
- abstrGetDefaultCursor
- cc321d7f-2f37-4b53-bce2-a9bd974a8681
- ExecuteDialogClosed
- 3bcbc0ce-81cd-4911-8914-44188c177411
- ExecuteKeyDown
- fc479f4f-e138-4aaa-b6d6-697590969705
- ExecuteKeyUp
- 156daac4-6443-4540-9838-4cc30c6e8821
- ExecuteLooseCapture
- 0626945c-155a-452e-99e1-bc92ccdce784
- ExecuteMouseClick
- 1b7b169c-830d-4535-a164-ba6f8d1bf165
- ExecuteMouseDblClick
- b1f03962-2989-414f-a5bb-812a75d56c3b
- ExecuteMouseDown
- 028a586e-2455-441f-8a8d-00d127345483
- ExecuteMouseEnter
- e2b598c7-7a39-486e-9017-323dac257c30
- ExecuteMouseLeave
- 4718b2dc-1651-40fd-9361-ef7d890a938b
- ExecuteMouseMove
- 03e1fd3f-3a59-4354-a91c-81e5a0428954
- ExecuteMouseUp
- 047888b5-4c63-4490-9a8c-d7184e3c26ce
- ExecuteValueChanged
- d7dc51a1-595c-4e58-86b1-6d8e24a5fb22
- FB_Exit
- e93ac5c5-9b6e-4ca7-8d80-5d9bcb7edb63
- FB_Init
- fbbfef41-6677-40ae-8e1d-435b00930c8d
- FB_Reinit
- 341a7933-16e7-4fa3-a7a8-6e3d2f3c148c
- GetElementInfo
- 0ca14ef6-3126-4c73-9f23-beb3d2c12e33
- Init
- ebbdcf07-6ef1-440f-91b4-94e62b85242c
- Initialize
- d51c9946-c924-4a41-9a42-6e79c7023378
-
-
- "NotImportant"
- {5b10dcd0-a6a2-4394-8d7e-fc1a897d49c8}
-
-
-
- true
- true
-
-
-
-
-
- {7b398c37-b8f2-44fa-92e6-cd0ac4432e05}
- {b7af0301-7d32-4dec-821a-a12a7de2afe2}
- {b114b7fc-7845-4db6-b717-6ef08132d0b3}
- {f6e93e7a-f026-47f1-9ad6-9ad85a537957}
- {05d2daea-b06a-4275-855d-b7edf1e9a29d}
- {699620e8-1df5-45c4-8a2d-7f8ef1544fd5}
- {db37476f-f0fb-4fa9-8a33-33f55c6ee3e6}
- {37f8aba3-8d02-4b60-b71d-909d434464e0}
- {db09399b-72ff-43d1-8c3a-e078e68c9297}
- {6864ac69-a0df-43f7-bcd5-4b9c7dc64b57}
- {406a9ed5-2529-4fd5-9ad9-3ae887dda070}
- {a4b8d7f7-933b-40f3-9d72-9fe1ba44d7ed}
- {129b0553-f73f-4a63-a791-589dde777670}
- {9003aa7f-2db3-4a80-9478-ff56da7ce674}
- {c5aeb04a-4e37-466e-adb7-6e1defc764ae}
- {94a93fd8-eed7-425b-b4e7-d49ab50e79cc}
- {bdccb31c-de80-4c34-8469-8d8f1b48172b}
- {b8e3eef6-1f94-489e-bb87-7da6cde40255}
- {ac528ee4-49b0-4bb2-8b8d-0881d5ce92e3}
- {cb123efe-50d6-4c66-b719-5a9abc7b78be}
- {925e8f6d-a925-4ccb-9007-f4aa925f657b}
- {0e5d2904-0f49-4ca0-873b-e30003524293}
- {469f8113-0911-47c3-8ac7-302e738f100d}
- {c8fed093-737d-41c7-b196-fe237ae7ae11}
- {be83b5db-04d7-49b4-95f4-135b529cdb8c}
- {63abefd0-8bc2-4603-9bff-e90b8c47d6fe}
- {c256e1fd-f3b9-4401-8b5a-a0bb6db81a94}
- {14dbfc96-fd74-4e8a-afb4-01575aa81bde}
- {e291df9c-0ae4-40f9-aaf6-c7479d74a4b2}
- {d9548cb4-7280-404a-a145-5a8f38a9e691}
- {d5955983-4cbf-4785-9324-6a3ae3b62362}
- {b155374e-21a8-4e99-83be-933da117fdc3}
-
-
-
- System.Collections.ArrayList
- System.Boolean
- {7df88604-7ac5-4e36-91c4-55e4fdad3e68}
- {11a86981-4b02-4f98-b432-96e385cb41b7}
- {c91fc5aa-1e38-43b2-9a05-c52cc5d7f5b6}
- {40d6dd8d-dfd0-493a-8e29-c9a35e1e6539}
- {550f8ee0-c42e-42f0-b253-4fadf0c12bdf}
- System.Guid
- {6b108d46-58af-4e41-a3f4-174d8f160cc4}
- System.Int32
- System.Int64
- {05125339-dc8c-4673-b403-e21bec548370}
- System.String
- {19611221-ebd3-4607-86d2-9822fbe84c30}
- {c37fe731-4f69-4d98-82fe-4f9aefbe200d}
- {997fedbb-1888-4256-b61c-2933d8056bfd}
- {422ed780-41e9-4352-8132-b322b16154c1}
- {4d3fdb8f-ab50-4c35-9d3a-d4bb9bb9a628}
- {ec9b2ec6-92a2-4856-be72-7866fb274c64}
-
-
-
-
\ No newline at end of file
diff --git a/TwinSAFE/GVLs/GVL1.sgvl b/TwinSAFE/GVLs/GVL1.sgvl
index 956ca97..cc867f2 100644
--- a/TwinSAFE/GVLs/GVL1.sgvl
+++ b/TwinSAFE/GVLs/GVL1.sgvl
@@ -1,5 +1,5 @@
-
+
Com_Err
@@ -45,21 +45,6 @@
-
- RunStop
-
-
- 9
- 1
- 1131179973
-
-
-
-
- 08fab2e8-8d41-4915-ba0f-0c17dc36ad64
-
-
-
ComStartUp
diff --git a/TwinSAFE/TargetSystemConfig.xml b/TwinSAFE/TargetSystemConfig.xml
index 7f10f81..f95763b 100644
--- a/TwinSAFE/TargetSystemConfig.xml
+++ b/TwinSAFE/TargetSystemConfig.xml
@@ -1,5 +1,5 @@
-
+
HSafetyPLC
EL1918
false
@@ -7,7 +7,7 @@
PC_K01_KL02 (EL1918)
02 (V01.08)
3885647
- 12630
+ 32969
false
false
1
diff --git a/TwinSAFE/TwinSafeGroup1/TwinSafeGroup1.sal b/TwinSAFE/TwinSafeGroup1/TwinSafeGroup1.sal
index 2448bdf..404055a 100644
--- a/TwinSAFE/TwinSafeGroup1/TwinSafeGroup1.sal
+++ b/TwinSAFE/TwinSafeGroup1/TwinSafeGroup1.sal
@@ -1,5 +1,5 @@
-
+
@@ -1409,13 +1409,7 @@
-
-
-
-
-
-
-
+
diff --git a/_Config/IO/Device 1 (EtherCAT).xti b/_Config/IO/Device 1 (EtherCAT).xti
index d759226..046ef84 100644
--- a/_Config/IO/Device 1 (EtherCAT).xti
+++ b/_Config/IO/Device 1 (EtherCAT).xti
@@ -544,7 +544,7 @@
424de6000000000000007600000028000000100000000e000000010004000000000070000000000000000000000010000000000000001c120800244aa500203262002462ee001c273f00245ad500243a7c001c222b001c1a1e002472fc00244fb7001c2a4d00243a7100246afc0024428d001c1a1300d5bbbbbbedddddddddb8777fcdd9dd9dd580ffffcddddddd9e7780f47b5dd9ddd3d35cb700e9ddd9ddd9d9de88a9ddddd9dddd9abb3dddddddddd99e04d9dd9dddddddd20adddddd9dd9d958b9ddd9ddddddd18cddddddd9dd5554e99d999d1dd9b07b2ee111e1add5bb777774bb6add
424de6000000000000007600000028000000100000000e000000010004000000000070000000000000000000000000000000000000000000000000008000008000000080800080000000800080008080000080808000c0c0c0000000ff0000ff000000ffff00ff000000ff00ff00ffff0000ffffff00bb1111113bbbbbbbbb1000001bbbbbbbbb0000001bbbbbbbb300000001bbbbbbbbbbb110003bbbbbbbbbbbb3003bbbbbbbbbbbb311bbbbbbbbbbbbb300bbbbbbbbbbbbb103bbbbbbbbbbbbb01bbbbbbbbbbbb301bbbbbbbbbbbbb03bbbbbbb3bbb1001133333333bb3110000001113bb
-
+
__FILENAME__
@@ -556,6 +556,9 @@
Image
+
+ Prozessabbild-2
+
Etcher1ChuckPresent (EP1018-0001)
1000
@@ -35037,19 +35040,19 @@ Bit 8 - 15 : reserved]]>
HEAD
ECAT_HEAD
- 12416
+ 1184
DATA
ARRAY [0..511] OF BYTE
- 12496
+ 1264
CNT
UINT
- 16592
+ 5360
@@ -35057,19 +35060,19 @@ After receiving]]>
HEAD
ECAT_HEAD
- 12416
+ 1184
DATA
ARRAY [0..511] OF BYTE
- 12496
+ 1264
CNT
UINT
- 16592
+ 5360
diff --git a/_Config/NC/NC.xti b/_Config/NC/NC.xti
index cc9a4e5..634d173 100644
--- a/_Config/NC/NC.xti
+++ b/_Config/NC/NC.xti
@@ -1440,7 +1440,7 @@ External Setpoint Generation:
NC-Task 1 SVB
-
+
Etcher1Chuck
@@ -1585,7 +1585,7 @@ External Setpoint Generation:
-
+
Etcher1BSR
@@ -1729,7 +1729,7 @@ External Setpoint Generation:
-
+
Etcher2Chuck
@@ -1874,7 +1874,7 @@ External Setpoint Generation:
-
+
Etcher2BSR
@@ -2018,7 +2018,7 @@ External Setpoint Generation:
-
+
AlignerXAxis
@@ -2177,7 +2177,7 @@ External Setpoint Generation:
-
+
AlignerYAxis
diff --git a/_Config/PLC/PLC Instance.xti b/_Config/PLC/PLC Instance.xti
index 4235036..95fa8e4 100644
--- a/_Config/PLC/PLC Instance.xti
+++ b/_Config/PLC/PLC Instance.xti
@@ -18,4 +18,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/_Config/SPLC/TwinSAFE.xti b/_Config/SPLC/TwinSAFE.xti
index efc6731..75d9825 100644
--- a/_Config/SPLC/TwinSAFE.xti
+++ b/_Config/SPLC/TwinSAFE.xti
@@ -1,6 +1,6 @@
-
+
diff --git a/doc/.vscode/settings.json b/doc/.vscode/settings.json
new file mode 100644
index 0000000..5eaeb49
--- /dev/null
+++ b/doc/.vscode/settings.json
@@ -0,0 +1,10 @@
+{
+ "json.schemas": [
+ {
+ "fileMatch": [
+ "./recipe_data.json"
+ ],
+ "url": "./recipe_data_schema.json"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/doc/StateMachines.drawio b/doc/StateMachines.drawio
new file mode 100644
index 0000000..3b9c1df
--- /dev/null
+++ b/doc/StateMachines.drawio
@@ -0,0 +1,285 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/recipe_data.json b/doc/recipe_data.json
new file mode 100644
index 0000000..3c9acbe
--- /dev/null
+++ b/doc/recipe_data.json
@@ -0,0 +1,63 @@
+{
+ "metadata": {
+ "version": "1.0",
+ "description": "Beschreibung der Rezeptparameter",
+ "maxParams": 5
+ },
+ "processVariables": {
+ "real": [
+ {
+ "index": 0,
+ "id": 1,
+ "name": "Temperatur",
+ "unit": "degC",
+ "min": 0.0,
+ "max": 60.5
+ },
+ {
+ "index": 1,
+ "id": 2,
+ "name": "Dummy 1",
+ "unit": "mm",
+ "min": 0.0,
+ "max": 100.0
+ }
+ ],
+ "string": [
+ {
+ "index": "0",
+ "id": 4,
+ "name": "Dummy string",
+ "unit": ""
+ }
+ ],
+ "lreal": [
+ {
+ "index": 0,
+ "id": 5,
+ "name": "Test lreal",
+ "unit": "um",
+ "min": -123000.3,
+ "max": 450000.264
+ }
+ ],
+ "dint": [
+ {
+ "index": 0,
+ "id": 6,
+ "name": "Greifer Nummer",
+ "unit": "",
+ "min": 1,
+ "max": 3
+ },
+ {
+ "index": 1,
+ "id": 7,
+ "name": "Teller nummer",
+ "unit": "",
+ "min": 1,
+ "max": 3
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/doc/recipe_data_schema.json b/doc/recipe_data_schema.json
new file mode 100644
index 0000000..ea8934c
--- /dev/null
+++ b/doc/recipe_data_schema.json
@@ -0,0 +1,87 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "PackTagV3ProcessVariablesSSOT",
+ "type": "object",
+ "required": ["metadata", "processVariables"],
+ "properties": {
+ "metadata": {
+ "type": "object",
+ "required": ["version", "description", "maxParams"],
+ "properties": {
+ "version": { "type": "string" },
+ "description": { "type": "string" },
+ "maxParams": { "type": "integer", "minimum": 1 }
+ },
+ "additionalProperties": false
+ },
+ "processVariables": {
+ "type": "object",
+ "properties": {
+ "real": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["index", "id", "name", "unit", "min", "max"],
+ "properties": {
+ "index": { "type": "integer", "minimum": 0 },
+ "id": { "type": "integer", "minimum": 0 },
+ "name": { "type": "string", "maxLength": 80 },
+ "unit": { "type": "string", "maxLength": 6 },
+ "min": { "type": "number" },
+ "max": { "type": "number" }
+ },
+ "additionalProperties": false
+ }
+ },
+ "lreal": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["index", "id", "name", "unit", "min", "max"],
+ "properties": {
+ "index": { "type": "integer", "minimum": 0 },
+ "id": { "type": "integer", "minimum": 0 },
+ "name": { "type": "string", "maxLength": 80 },
+ "unit": { "type": "string", "maxLength": 6 },
+ "min": { "type": "number" },
+ "max": { "type": "number" }
+ },
+ "additionalProperties": false
+ }
+ },
+ "dint": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["index", "id", "name", "unit", "min", "max"],
+ "properties": {
+ "index": { "type": "integer", "minimum": 0 },
+ "id": { "type": "integer", "minimum": 0 },
+ "name": { "type": "string", "maxLength": 80 },
+ "unit": { "type": "string", "maxLength": 6 },
+ "min": { "type": "integer" },
+ "max": { "type": "integer" }
+ },
+ "additionalProperties": false
+ }
+ },
+ "string": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["index", "id", "name", "unit"],
+ "properties": {
+ "index": { "type": [ "integer", "string" ] },
+ "id": { "type": "integer", "minimum": 0 },
+ "name": { "type": "string", "maxLength": 80 },
+ "unit": { "type": "string", "maxLength": 6 }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+}