diff --git a/DUTs/Axis_Structures/ST_AxisConfig.TcDUT b/DUTs/Axis_Structures/ST_AxisConfig.TcDUT
index bebc7820..175014bc 100644
--- a/DUTs/Axis_Structures/ST_AxisConfig.TcDUT
+++ b/DUTs/Axis_Structures/ST_AxisConfig.TcDUT
@@ -12,7 +12,7 @@ STRUCT
fHomePosition: LREAL := 0; //Position to set the axis to after completing the homing sequence
fHomeFinishDistance: LREAL := 0; //Distance to move back into the working zone after homing is complete
eHomeSeq: E_HomingRoutines; //Homing sequence routine to execute
- eRestorePosition: E_RestorePosition; //Option to restore incremental axis position after power loss(0 = No, 1 = Yes)
+ bRestorePosition: BOOL := TRUE; //Option to restore the position or not during a shutdown
bEnableStopWithAnyLimitSwitch: BOOL := TRUE; //Option to stop the axis when either the forward or backward limit switch is triggered
//Advanced homing parameters
diff --git a/DUTs/Axis_Structures/ST_AxisPersistent.TcDUT b/DUTs/Axis_Structures/ST_AxisPersistent.TcDUT
index 85b947e7..c2b15cda 100644
--- a/DUTs/Axis_Structures/ST_AxisPersistent.TcDUT
+++ b/DUTs/Axis_Structures/ST_AxisPersistent.TcDUT
@@ -7,6 +7,9 @@ STRUCT
fPositionAtShutdown: LREAL; //Position of the axis when the CPU was powered off
fEncoderBiasAtShutdown: LREAL; //Encoder bias value when the CPU was powered off
bMovingAtShutdown: BOOL; //Indicates if the axis was moving during the shutdown (True if moving, false otherwise)
+ bHomedAtShutdown: BOOL; //Homing status of the axis when the CPU was powered off
+ bInitializedAtShutdown: BOOL; //Initialized status of the axis when the CPU was powered off
+ fPositionDifferenceAtShutdown: LREAL; //Position difference between the sampled position and the position at shutdown
END_STRUCT
END_TYPE
]]>
diff --git a/DUTs/Axis_Structures/ST_AxisStatus.TcDUT b/DUTs/Axis_Structures/ST_AxisStatus.TcDUT
index fe4f65bd..24f616da 100644
--- a/DUTs/Axis_Structures/ST_AxisStatus.TcDUT
+++ b/DUTs/Axis_Structures/ST_AxisStatus.TcDUT
@@ -5,6 +5,7 @@
STRUCT
//Outputs & Status
bAxisInitialized: BOOL := FALSE; //True when all parameters from actReadMcParameters are valid
+ bAxisHasBeenRestored: BOOL := FALSE;
bEnabled: BOOL; //Axis drive enabled
bAxisReadyToMove: BOOL; //Axis enabled and input ok from additional equipment (e.g. airpad, brake).
bCommandAborted: BOOL; //Command aborted output of the eCommand function blocks
diff --git a/DUTs/Axis_Structures/ST_SwitchInfo.TcDUT b/DUTs/Axis_Structures/ST_SwitchInfo.TcDUT
index 3c1b831d..ba547a77 100644
--- a/DUTs/Axis_Structures/ST_SwitchInfo.TcDUT
+++ b/DUTs/Axis_Structures/ST_SwitchInfo.TcDUT
@@ -1,6 +1,6 @@
-
+
-
+
\ No newline at end of file
diff --git a/DUTs/E_EncoderRefSys.TcDUT b/DUTs/E_EncoderRefSys.TcDUT
new file mode 100644
index 00000000..0185f6eb
--- /dev/null
+++ b/DUTs/E_EncoderRefSys.TcDUT
@@ -0,0 +1,19 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DUTs/E_RestorePosition.TcDUT b/DUTs/E_RestorePosition.TcDUT
deleted file mode 100644
index 9f96adfd..00000000
--- a/DUTs/E_RestorePosition.TcDUT
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/GVLs/GVL.TcGVL b/GVLs/GVL.TcGVL
index ba332f53..5bca2652 100644
--- a/GVLs/GVL.TcGVL
+++ b/GVLs/GVL.TcGVL
@@ -25,6 +25,7 @@ END_VAR
VAR_GLOBAL PERSISTENT
astAxesPersistent: ARRAY [1..GVL_APP.nAXIS_NUM] OF ST_AxisPersistent;
+ dtAtShutdownPersistent: DT; //Date and time when the CPU was powered off
END_VAR
]]>