Description - DevSwcPumpCtrl

Overview

The DevSwcPumpCtrl function block switches the variable speed drives (VSD), variable speed (VS) pumps and fixed speed (FS) pumps according to different criteria in order to maintain a constant pressure in a water distribution network.

It executes the following main tasks:

oSwitching a maximum of 4 VSDs into run or stop state in flexible operational mode.

oSwitching a maximum of 8 VSDs into run or stop state in fixed link operational mode (with or without bypass).

oEstablishing a permanent or flexible link between VSDs and VS pumps.

oStarting or stopping a maximum of 8 VS pumps and having them bypass the VSD, in case the VSD is unavailable and no FS pump is available as an alternative.

oStarting or stopping a maximum of 7 FS pumps.

oVerifying the availability of VSDs and VS pumps. In case there are not enough VSD/VS pumps for the flow staging method; it initiates the PumpPidStag function block to stop using the flow value as a basis for stage value calculation and to use only the pressure value.

The DevSwcPumpCtrl function block considers the following criteria for switching the VSDs, VS pumps, and FS pumps:

oavailability of the devices (VSD, VS pumps, FS pumps)

odemand of the stage value

opriority of the devices (VSD, VS pumps, FS pumps)

Prerequisite

The DevSwcPumpCtrl function block executes its tasks only if the following conditions apply:

oThe pumping application is running in automatic mode.

The automatic mode is established by the structure data type stOpMode being set to xAuto (for more information refer to the chapter Common Structure Data Type Definitions).

With another setting of this variable, the DevSwcPumpCtrl function block is disabled and the function block outputs are set to the default value (0 and FALSE).

oThe alarm release bit xAlrmRele of the structure data type stAlrmCtrl is set to TRUE, indicating that no alarm has been detected in the pump group.

If the alarm release bit xAlrmRele is set to FALSE, the DevSwcPumpCtrl function block is disabled and the function block outputs are set to the default value (0 and FALSE).

Error Detection

According to the type of error the DevSwcPumpCtrl function block detects, it either issues an alarm or an alert. The actions that are executed differ for detected alarms and alerts.

Actions when an alarm has been detected in the pump group:

If

Then

an alarm has been detected in the pump group

the DevSwcPumpCtrl function block sets the corresponding alarm bit (q_stSwcErr) to TRUE indicating which type of alarm has been detected.

the variable stOpMode is set to manual mode (xMan).

the DevSwcPumpCtrl function block stops processing variables.

the outputs of the DevSwcPumpCtrl function block are set to the default value (0 and FALSE).

the alarm release bit iq_stAlrmCtrl.xAlrmRele is set to FALSE to indicate the detected alarm state to the other function blocks.

Actions when an alert has been detected in the pump group:

If

Then

an alert has been detected in the pump group

the DevSwcPumpCtrl function block sets the corresponding alert bit (q_stSwcErr.stSwcAlrt.xNoVsPlusFs) to TRUE indicating that the stage value is greater than the number of usable pumps.

the function block continues operation.

Switching VSDs or Pumps According to the Availability of the Devices

If the pumping application is running in automatic mode, the DevSwcPumpCtrl function block verifies the state of the running VSDs, VS pumps, and FS pumps.

If one of these devices becomes unavailable, the DevSwcPumpCtrl function block starts another device of the same type, if available, or of a different type according to the following general rules:

If

Then

a VSD becomes unavailable and there is no other VSD available for replacement

an FS pump is used alternatively.

If no FS pump is available, the VS pump that had been linked to the VSD can bypass the VSD (if the bypass option is enabled). If more than 1 VS pump is available, the function runs the VS pump contingent on priority conditions. The link between the VSD and the VS pump is maintained as long as the VSD and the VS pump are operational.

a VS pump becomes unavailable and there is no other VS pump for replacement

an FS pump is used alternatively and the VSD that had been linked to the VS pump is switched into stop state.

Switching VSDs or Pumps According to the Stage Value

If the pumping application is running in automatic mode, the DevSwcPumpCtrl function block continuously receives input from the PumpPidStag function block via the i_stStagVal input value. This input can initiate a switching procedure. Depending on the stage value from the PumpPidStag function block, it may be required to switch VSDs, VS pumps or FS pumps on or off considering the general rule (switching on VSDs and VS pumps first, then FS pumps) as shown in the following flowcharts.

Actions when the stage value increases and the xFlexStart flag is set to FALSE:

G-SE-0047019.1.gif-high.gif

 

 

NOTE: The processes to start a VSD, a VS pump, or an FS pump, consider also the priority defined with the OpPrty function block.

Actions when the stage value increases and the xFlexStart flag is set to TRUE:

G-SE-0047007.1.gif-high.gif

 

 

NOTE: The processes to start a VSD or a VS pump, consider also the priority defined with the OpPrty function block.

Actions when the stage value decreases:

G-SE-0047005.1.gif-high.gif

 

 

G-SE-0047004.1.gif-high.gif

 

 

NOTE: The processes to stop a VSD, a VS pump, or an FS pump, consider also the priority defined with the OpPrty function block.

NOTE: The stage value can only change sequentially (maximal one step up or down). However, if a VSD, a VS pump or an FS pump simultaneously is no longer available, more than one device can be switched at a time.

Switching VSDs or Pumps According to the Priority

In general, FS pumps are the last devices to be switched on and the first devices to be switched off. This means VSDs and the corresponding VS pumps are the last devices to be switched-off and the first devices to be switched-on. The priority is given to VS pumps over FS pumps. The priority in a device group (VSD, VS pump, FS pump) is flexible and generated by the OpPrty function block. This function block generates, with the help of the operating hours of the devices, a priority table for the DevSwcPumpCtrl function block. The priority table helps to keep the number of operating hours at an identical level for the different pumps.

The priority function of this library allows you to use another procedure of selecting the priority of the devices by using a user-specific defined priority table. If the xFlexStart (element of initialization structure stSwcPumpInit) is set to TRUE, the VS pumps are started with a VSD. If the VSDs are in use, an active VS pump linked to a VSD bypasses the VSD (direct online) and the now available VSD is used to start the needed VS pump.

The DevSwcPumpCtrl function block considers this dynamically changing priority via the outputs from the OpPrty function blocks for each device (VSD, VS pumps and FS pumps). This means that the devices are switched according to their priority defined in the priority table. If a device of the same type is not available, an alternative device is switched on, if possible.