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 d08faef..d95df65 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
@@ -28,49 +28,36 @@ END_VAR
CASE ePneumaticAxisState OF
E_PneumaticMode.SINGLE_SOLENOID_PLC:
- IF (stPneumaticAxisControl.bStartExtend AND stPneumaticAxisInputs.bPermit) AND NOT stPneumaticAxisInputs.bLimitFwd THEN
- stPneumaticAxisStatus.bExtendMoving := TRUE;
- stPneumaticAxisStatus.bMoving := TRUE;
- fbTimerExtend (IN := stPneumaticAxisStatus.bExtendMoving, PT := T#20S);
- IF fbTimerExtend.Q THEN
- ePneumaticAxisState := E_PneumaticMode.ERROR;
- END_IF
- END_IF
+ Single_Solenoid_PLC();
-// Extraction of the cylinder finished, reset timer
- IF stPneumaticAxisInputs.bLimitFwd AND NOT stPneumaticAxisInputs.bLimitBwd THEN
- stPneumaticAxisStatus.sStatus := 'EXTRACTED';
- stPneumaticAxisStatus.bExtracted := TRUE;
- bStateChange := TRUE;
- stPneumaticAxisStatus.bExtendMoving := FALSE;
- stPneumaticAxisStatus.bMoving := FALSE;
- fbTimerExtend (IN := stPneumaticAxisStatus.bExtendMoving, PT := T#20S);
- END_IF
+ E_PneumaticMode.SINGLE_SOLENOID_MANUAL:
+ Single_Solenoid_Manual();
-//Starting the retraction movement and retraction timing
- IF NOT stPneumaticAxisControl.bStartExtend AND NOT stPneumaticAxisInputs.bLimitBwd AND bStateChange THEN
- stPneumaticAxisStatus.bRetractMoving := TRUE;
- stPneumaticAxisStatus.bMoving := TRUE;
- stPneumaticAxisStatus.bExtracted := FALSE;
- fbTimerRetract (IN := stPneumaticAxisStatus.bRetractMoving, PT := T#20S);
- IF fbTimerRetract.Q THEN
- ePneumaticAxisState := E_PneumaticMode.ERROR;
- END_IF
- END_IF
+ E_PneumaticMode.ERROR:
+ Single_Solenoid_Error();
-// Retraction of the cylinder finished, reset timer
- IF NOT stPneumaticAxisControl.bStartExtend AND stPneumaticAxisInputs.bLimitBwd THEN
- stPneumaticAxisStatus.sStatus := 'RETRACTED';
- stPneumaticAxisStatus.bRetracted := TRUE;
- bStateChange := FALSE;
- stPneumaticAxisStatus.bRetractMoving := FALSE;
- stPneumaticAxisStatus.bMoving := FALSE;
- fbTimerRetract (IN := stPneumaticAxisStatus.bRetractMoving, PT := T#20S);
- END_IF
-
-
- E_PneumaticMode.SINGLE_SOLENOID_MANUAL:
-//Manual control of single solenoid pneumatic actuator
+ E_PneumaticMode.RESET:
+ Reset();
+END_CASE ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+]]>
+
+
+
-
+
@@ -130,52 +147,33 @@ END_CASE ]]>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file