The PipeFill function block verifies the pressure in the pipe of the discharge side.
After start or restart of the pumping application, it verifies the discharge pressure value. If the pressure is not within the working range (user-defined pressure setpoint i_rSp ± the setpoint tolerance range iq_stFillInit.rTnce), it starts the adequate procedure to reach the working range of the pressure by using a systematic process.
During normal operation, the PipeFill function block constantly monitors whether the pressure level is within the working range. If the pressure level is higher or lower than the working range for a certain delay time, the function block indicates the detected alarm.
Actions After Start / Restart of the Pumping Application
After a start / restart of the pumping application, the PipeFill function block verifies whether the pressure in the discharge pipe is within the working range.
Depending on the discharge pressure value, the function block reacts differently:
If... |
Then the PipeFill function block |
---|---|
the discharge pressure is within the working range |
oindicates that the pressure is OK by setting the input/output value iq_stOpMode.xFillOk to TRUE. ocontinues to verify the pressure value as described in the paragraph Actions during Normal Operation. |
the discharge pressure is below the working range |
osets the input/output value iq_stOpMode.xFill to TRUE to indicate that the pipe fill function is in progress. ostarts the adequate sequence (sequence 1 or sequence 2) of the pipe fill procedure to reach the working range of the pressure as quickly as possible. |
The procedure to reach the working range of the pressure is divided in 2 different sequences. It depends on the discharge pressure value which sequence is started.
The diagram shows the pressure setpoint values for the 2 sequences and their influences on the pressure in the pumping application:
1 user-defined pressure setpoint value (i_rSp)
2 pressure working range (that is the allowed deviation (iq_stFillInit.rTnce) from the user-defined pressure setpoint value (i_rSp)
3 minimal startup discharge pressure limit (stFillInit.rFillPres)
4 present discharge pressure of this pressure zone
5 minimal startup discharge pressure limit (iq_stFillInit.rFillPres). If the pressure is below this limit, sequence 1 is started. If the pressure is above this limit and not in the working range (2), then sequence 2 of the pipe fill procedure is started.
6 The setpoint is constantly incremented and provided to the PID control unit. After the working range has been reached, the user-defined pressure setpoint value (1) is used by the PID control unit.
Sequence 1 of the Start / Restart Procedure
Sequence 1 of the pipe fill procedure is started, if the pressure value is between 0 and the pipe fill pressure (iq_stFillInit.rFillPres, item 5 in the diagram).
Step |
Description |
---|---|
1 |
The operating mode is set to pipe fill mode (iq_stOpMode.xFill) to TRUE to indicate the mode to the other function blocks of the pumping application. |
2 |
A timer (defined with the parameter iq_stFillInit.tSequ1) is started with the start of sequence 1. |
3 |
The output value iq_stOpMode.xFill is set to TRUE to indicate that the pipe fill function is in progress. |
4 |
The output value q_stFillStat.xSequ1 is set to TRUE to indicate that the pipe fill function is running in sequence 1. Result: The 2 outputs iq_stOpMode.xFill and iq_stFillInit.xSequ1 are read by the PumpPidStag function block. If they are both set to TRUE, then the PumpPidStag function block detects that sequence 1 of the pipe fill function is running. |
5 |
The PumpPidStag function block initiates the start of a fixed number of pumps with a fixed speed (configured for this sequence 1 of the pipe fill case with the parameter iq_stFillDevInit.siNoPump). |
6 |
The PumpPidStag function block stops PID control by setting q_stPidSta.xStopActv to TRUE because it is not used in sequence 1. |
7 |
If the discharge pressure reaches the pipe fill pressure limit (item 5 in the previous diagram) within the time allowed for sequence 1 (iq_stFillInit.tSequ1), then sequence 2 starts. If the timer expires and the pipe fill pressure is not reached, the PipeFill function block executes the following actions: oIt indicates a detected alarm (by setting the output q_stFillAlrm.xSequ1TimeOut to TRUE). oIt sets the outputs to the default values (0 and FALSE). oIt sets the operating mode to manual mode. |
Sequence 2 of the Start / Restart Procedure
Sequence 2 of the pipe fill procedure is started if the discharge pressure value is higher than the pipe fill pressure limit (item 5 in the previous diagram) but lower than the working pressure range (item 2 in the diagram).
Step |
Description |
---|---|
1 |
The operating mode is set to pipe fill mode (iq_stOpMode.xFill) to indicate the mode to the other function blocks of the pumping application. |
2 |
A timer (defined with the parameter iq_stFillInit.tSequ2) is started with the start of sequence 2. |
3 |
The PipeFill function block uses the pressure as the start up value for the setpoint value at the output q_stRef_FillRef.rVal. |
4 |
The output value q_stFillStat.xSequ2 is set to TRUE to indicate that the pipe fill function is running in sequence 2. Result: iq_stOpMode.xFill and iq_stFillInit.xSequ2 are read by the PumpPidStag function block. If they are both set to TRUE, then the PumpPidStag function block detects that sequence 2 of the pipe fill function is running. |
5 |
The PumpPidStag function block starts PID control by setting q_stPidSta.xStopActv to FALSE. |
6 |
The PipeFill function block automatically increases the pressure setpoint in a ramp until the pressure reaches the working pressure range. |
7 |
If the working pressure range (item 2 in the previous diagram) is reached within the time allowed for sequence 2 (iq_stFillInit.tSequ2), the PipeFill function block indicates that the pressure is OK by setting the input/ output value iq_stOpMode.xFillOk to TRUE. It continues to verify the pressure value as described in the paragraph Actions during Normal Operation. If the pressure working range is not reached within the defined time, the PipeFill function block executes the following actions: oIt indicates a detected alarm (by setting the output q_stFillAlrm.xSequ2TimeOut to TRUE). oIt sets the outputs to the default values (0 and FALSE). oIt sets the operating mode to manual mode (iq_stOpMode.xMan). |
Actions during Normal Operation
During normal operation, the PipeFill function block constantly monitors whether the discharge pressure value is within the working pressure range (setpoint influenced by other functions during operation i_rSpAct ± the setpoint tolerance range iq_stFillInit.rTnce).
If... |
Then the PipeFill function block |
---|---|
the pressure level is higher than the working range for a certain delay time (iq_stFillInit.tPresAlrmDel) |
indicates a detected alarm by setting the output q_stFillAlrm.xHighPres to TRUE |
the pressure level is lower than the working range for a certain delay time (iq_stFillInit.tPresAlrmDel) |
indicates a detected alarm by setting the output q_stFillAlrm.xLowPres to TRUE |
If an alarm is detected, the PipeFill function block executes the following actions:
oIt sets the outputs to the default values (0 and FALSE).
oIt sets the operating mode to manual mode.