diff --git a/solution/tc_project_app/POUs/Application Specific/Applications/FB_PNEUMATIC_AXIS.TcPOU b/solution/tc_project_app/POUs/Application Specific/Applications/FB_PNEUMATIC_AXIS.TcPOU
index 59bed67..4330621 100644
--- a/solution/tc_project_app/POUs/Application Specific/Applications/FB_PNEUMATIC_AXIS.TcPOU
+++ b/solution/tc_project_app/POUs/Application Specific/Applications/FB_PNEUMATIC_AXIS.TcPOU
@@ -6,6 +6,7 @@ VAR
stPneumaticAxisStruct: ST_PneumaticAxisStruct;
ePneumaticAxisState: E_PneumaticMode;
+ ePneumaticAxisErrors: E_PneumaticAxisErrors;
fbTimerExtend: TON; //Timing the extraction of the cylinder
fbTimerRetract: TON; //Timing the retraction of the cylinder
fbTimerExtendManual: TON; //Timing the extraction of the cylinder
@@ -42,7 +43,6 @@ END_CASE ]]>
stPneumaticAxisStruct.stPneumaticAxisStatus.bExtendMoving := FALSE;
stPneumaticAxisStruct.stPneumaticAxisStatus.bRetractMoving := FALSE;
fbTimerExtend.IN := FALSE;
- fbTimerExtend.Q := FALSE;
fbTimerRetract.IN := FALSE;
fbTimerExtendManual.IN := FALSE;
fbTimerRetractManual.IN := FALSE;
@@ -51,7 +51,29 @@ END_CASE ]]>
-
+
@@ -70,9 +92,11 @@ fbTimerRetractManual.PT := INT_TO_TIME(nTimeToRetract * 1000);
IF fbTimerStartMoving.Q AND stPneumaticAxisStruct.stPneumaticAxisInputs.bLimitBwd THEN
ePneumaticAxisState := E_PneumaticMode.ERROR;
+ ePneumaticAxisErrors := E_PneumaticAxisErrors.NOT_MOVING_EXTRACT;
END_IF
IF fbTimerExtendManual.Q THEN
ePneumaticAxisState := E_PneumaticMode.ERROR;
+ ePneumaticAxisErrors := E_PneumaticAxisErrors.EXTRACT_TIMED_OUT;
END_IF
END_IF
@@ -94,9 +118,11 @@ fbTimerRetractManual.PT := INT_TO_TIME(nTimeToRetract * 1000);
IF fbTimerStartMoving.Q AND stPneumaticAxisStruct.stPneumaticAxisInputs.bLimitFwd THEN
ePneumaticAxisState := E_PneumaticMode.ERROR;
+ ePneumaticAxisErrors := E_PneumaticAxisErrors.NOT_MOVING_RETRACT;
END_IF
IF fbTimerRetractManual.Q THEN
ePneumaticAxisState := E_PneumaticMode.ERROR;
+ ePneumaticAxisErrors := E_PneumaticAxisErrors.RETRACT_TIMED_OUT;
END_IF
END_IF
@@ -128,9 +154,12 @@ IF (stPneumaticAxisStruct.stPneumaticAxisControl.bStartExtend AND stPneumaticAxi
IF fbTimerStartMoving.Q AND stPneumaticAxisStruct.stPneumaticAxisInputs.bLimitBwd THEN
ePneumaticAxisState := E_PneumaticMode.ERROR;
+ ePneumaticAxisErrors := E_PneumaticAxisErrors.NOT_MOVING_EXTRACT;
+
END_IF
IF fbTimerExtend.Q THEN
ePneumaticAxisState := E_PneumaticMode.ERROR;
+ ePneumaticAxisErrors := E_PneumaticAxisErrors.EXTRACT_TIMED_OUT;
END_IF
END_IF
@@ -153,9 +182,11 @@ IF (stPneumaticAxisStruct.stPneumaticAxisControl.bStartExtend AND stPneumaticAxi
IF fbTimerStartMoving.Q AND stPneumaticAxisStruct.stPneumaticAxisInputs.bLimitFwd THEN
ePneumaticAxisState := E_PneumaticMode.ERROR;
+ ePneumaticAxisErrors := E_PneumaticAxisErrors.NOT_MOVING_RETRACT;
END_IF
IF fbTimerRetract.Q THEN
ePneumaticAxisState := E_PneumaticMode.ERROR;
+ ePneumaticAxisErrors := E_PneumaticAxisErrors.RETRACT_TIMED_OUT;
END_IF
END_IF
@@ -191,13 +222,23 @@ IF (stPneumaticAxisStruct.stPneumaticAxisControl.bStartExtend AND stPneumaticAxi
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -209,13 +250,19 @@ IF (stPneumaticAxisStruct.stPneumaticAxisControl.bStartExtend AND stPneumaticAxi
+
-
+
+
+
+
-
+
+
+
@@ -229,8 +276,13 @@ IF (stPneumaticAxisStruct.stPneumaticAxisControl.bStartExtend AND stPneumaticAxi
-
-
+
+
+
+
+
+
+
@@ -239,8 +291,11 @@ IF (stPneumaticAxisStruct.stPneumaticAxisControl.bStartExtend AND stPneumaticAxi
+
-
+
+
+