Advice on solution to problem

looking for some advice on the best way to implement a solution to a problem.

I need an alarm to generate when a pump status is ''running'' on the following conditions;

- if the pump starts twice in an hour

or

- the pump has been running for longer than 10 minutes.

Just after a bit of advice on the best function blocks to use. any help much appreciated.  

2 Replies

  • You'll need 2 Retentive timers.  1 to keep track of the pump having run for more than 10 minutes (set point of 600 seconds), the other to keep track of how long it has been since the last time the pump turned on (set point of 3600 seconds).  The retentive timer gives you the advatage of storing the time to non-volatile memory, meaning a controller or module download will not result in the reset of the timers.

    The First timer should be set when the pump runs.  The first stops and resets when the pump stops using a set of condition blocks.  The timer also triggers the alarm parameter when it has reached its setpoint of 600 seconds.

    The second timer should be set by a set/reset block that will latch the motor run status to keep the hour timer running even after the motor stopped.  A condition block can monitor if the timer value is between 0 and 3600 AND the motor run status is true. This will trigger the the alarm.

    The second timer stops and resets when the motor starts and the timed value is greater than 0 (but make sure to sequence the reset logic after the alarm monitor logic).    

    The big question is when should the alarm become inactive?  Should it become inactive the next time the pump runs < 10 minutes AND less than twice in one hour?  Should it become inactive immediately after becoming active (leaving it unacknowledged), or should it become inactive after it has been acknowledged (which means a subsequent occurrence can be missed).  I would suggest #1, but that is definitely the trickiest to implement.

  • Ascii line art block diagram (need to view in fixed font like Courier New):

                               +------+          +------+                                                  
                               |      |          |      |     +-----+       +------+      
    PUMP RUNNING ------+------>+ PDE  +-----+--->+ OFFD +---->+     +------>+      |                                                
                       |       |      |     |    |      |     | AND |       |  OR  +---> ALARM
                       |       +------+     |    +------+  +->+     |    +->+      |      
                       |                    |              |  +-----+    |  +------+
                       |       +------+     +--------------+             |              
                       |       |      |                                  |
                       +------>+ OND  +----------------------------------+
                               |      |
                               +------+

    OFFD Time duration: 3600 sec
    OND Time duration: 600 sec
    Block ordering: PDE->AND->OFFD->OND->OR (Note that the AND executes BEFORE the OFFD)

    "Pump Starts Twice in an hour" condition is momentary. It can be made "maintained as long as pump running" by ANDing "PUMP RUNNING" and "Output of OR" as a third input into OR gate



    From:        "systrade" <bounce-systrade@community.emerson.com>
    To:        <DeltaV@community.emerson.com>,
    Date:        04/02/2014 06:28 PM
    Subject:        [EE365 DeltaV Track] Advice on solution to problem




    looking for some advice on the best way to implement a solution to a problem.

    I need an alarm to generate when a pump status is ''running'' on the following conditions;

    - if the pump starts twice in an hour

    or

    - the pump has been running for longer than 10 minutes.

    Just after a bit of advice on the best function blocks to use. any help much appreciated.