====== Twin Pump Control (v1.4) ====== {{:en:mervis-ide:35-help:twinpump_v1.1.png}} ==== Full Name ==== Lib.Mervis.v1_4.TwinPump ==== Required Project References ==== * Lib.Mervis ===== Description ===== A block used for controlling twin pumps. ===== Usage in ST ===== program test var twinpump: lib.mervis.v1_4.TwinPump; end_var twinpump(); end_program ===== Inputs ===== |Name |Data Type|Allowed Range|Retain|Must Connect |Meaning| |OperatingMode |[[OperatingModeType.htm|OperatingModeType]]| |Yes |No |Requested operating mode | | |PumpSelector |[[SelectorFromTwoType.htm|SelectorFromTwoType]]| |Yes |No |Selection of which pumps are in operation | | |ChangeTime |time | |Yes |No |Interval after which the pumps are alternated | | |Demand |bool | |No |Yes |Demand in automatic mode | | |Feedback1 |bool | |No |No |Feedback for the operation of the first pump | | |Feedback2 |bool | |No |No |Feedback for the operation of the second pump | | |Failure1 |bool | |No |No |Failure input for the first pump | | |Failure2 |bool | |No |No |Failure input for the second pump | | |EmergencyShutdown |bool | |No |No |Emergency shutdown | | |KickFunctionInterval |time | |No |No |Interval for periodic start function (if zero, the function is inactive) | | |KickFunctionDuration |time | |No |No |Run time for periodic start | | |RunDown |time | |No |No |Requested run-down time (if zero, the function is inactive) | | |FailureTimeout |time | |No |No |Interval waiting for active feedback | | |AlarmPriority |[[../../Alarms/AlarmPriorityType.htm|AlarmPriorityType]]| |No |No |Class of the generated alarm | | ===== Outputs ===== |Name |Data Type |Meaning| |Command1 |bool |Command to the first pump | | |Command2 |bool |Command to the second pump | | |ManualMode |bool |Indication of manually selected operating mode (Off or On) | | |ManualOn |bool |Indication of manual on | | |AlarmsStatus |[[AlarmsStatus.htm|Lib.Mervis.v1_0.AlarmsStatus]] |Composite interface for alarm indication | | |CompositeState1 + CompositeState2|uint |Bit field describing the overall state of the first and second pump |\\ |Bit|Meaning |\\ |0 |Command1 resp. Command2 |\\ |1 |Feedback1 resp. Feedback2 |\\ |2 |ManualMode |\\ |3 |ManualOn |\\ |4 |Demand |\\ |5 |Periodic start active |\\ |7 |Failure of the first or second pump |\\ |8-9|OperatingMode || | ===== Blocks ===== |Name |Data Type |Meaning| |Alarms |[[AlarmsExtender4.htm|Lib.Mervis.v1_0.AlarmsExtender4]] |Alarm function of the block |\\ |Alarm Input|[[AlarmsPriorities.htm|Priority]]|Meaning |\\ |Alarm1 |see AlarmPriority |Failure of the first pump|\\ |Alarm2 |see AlarmPriority |Failure of the second pump|\\ |Alarm3 |- |Not used |\\ |Alarm4 |- |Not used || | ===== Detailed Function Description ===== The block is used for controlling twin pumps, with only one being active at any time. Through the operating mode, pumps can be manually turned off, turned on, or left in automatic mode. Using the parameter //PumpSelector//, it is possible to choose which pumps are in operation. If the operating mode is set to on, this parameter directly selects which pump is running. In automatic mode, it determines which pump is operational. The block integrates a failure function, and in case of a failure of one pump, it automatically switches to the other while also ensuring their alternation after the set operating time. Each pump maintains a counter of consecutive alarms, and if the value exceeds a fixed value of 3, the pump is declared inoperable and __excluded from alternation and user selection__ (setting //PumpSelector// to this pump __has__ no effect on the state of generated commands //CommandX//). This counter is reset by resetting alarms or successfully starting the pump (setting //FeedbackX// to true or //FailureX// to false). ____ If both pumps are in an inoperable state, the active pump does not change, and the outputs //CommandX// maintain their state according to the input //Demand// and the last selected pump. ===== Versions ===== {{indexmenu>.025-twinpump#2}}