From b935535e71ee001eaa25c253af3395de26f4b116 Mon Sep 17 00:00:00 2001 From: Kristina Jurisic Date: Wed, 19 May 2021 13:37:57 +0200 Subject: [PATCH] Add actions in FB Pneumatic Axis Added actions for single solenoid state machine. --- .../Applications/FB_PNEUMATIC_AXIS.TcPOU | 186 +++++++++--------- 1 file changed, 92 insertions(+), 94 deletions(-) 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