Delta V SIS - Logic Problem

I am looking for ideas to solve a potential problem.

Basically at the moment in one of the SIS Modules we have a standard Cause and Effect Block with numerous causes and numerous effects.  

One of the effects is wired to a Digital Output block which fires off a annunciator panel.

The problem is, if another trip condition was to come in whilst a trip is already activated/standing there would be no alert to the operators via the annunciator panel.

I have been playing around trying to think of ways to reset the standing trip for a couple of seconds when another trip (cause) condition activates using timed pulses/logic etc but just cant seem to solve it. any ideas? Thanks.

9 Replies

  • Off the top of my head (i.e. has not been tested)

    1. Wire the output of the CEM to an AND block

    2. Wire the output of the AND block to the DO

    3. Define a CALC block as follows  (psuedo code - have not looked at correct syntax)

    a. If (prev_causes = active_causes_n )     // look at the active causes for effect n of the CEM

    b.       OUT1:=1

    c   Else  

    d.        OUT1:=0

    e. Endif

    f.  prev_causes := active_causes_n

    4. Wire OUT1 of the CALC block to a On DElay Block

    5. Wire the On Delay Blockj to the AND block in step 1.

    This will detect a change in the active causes for the desired effect and if changed set the OUT1 OFF for 1 scan

    This will then turn OFF the On Delay

    This will turn off the AND block output till after the On Delay time

    i.e. Will Pulse the Annunciator OFF for DElay  Time then re-arm it

  • I have used logic similar to what Gary has outlined and it has worked well.
     
     
    From: Gary Law [mailto:bounce-Gary_Law@community.emerson.com]
    Sent: Wednesday, October 17, 2012 9:34 AM
    To: DeltaV@community.emerson.com
    Subject: RE: [EE365 DeltaV Track] Delta V SIS - Logic Problem
     

    Off the top of my head (i.e. has not been tested)

    1. Wire the output of the CEM to an AND block

    2. Wire the output of the AND block to the DO

    3. Define a CALC block as follows  (psuedo code - have not looked at correct syntax)

    a. If (prev_causes = active_causes_n )     // look at the active causes for effect n of the CEM

    b.       OUT1:=1

    c   Else  

    d.        OUT1:=0

    e. Endif

    f.  prev_causes := active_causes_n

    4. Wire OUT1 of the CALC block to a On DElay Block

    5. Wire the On Delay Blockj to the AND block in step 1.

    This will detect a change in the active causes for the desired effect and if changed set the OUT1 OFF for 1 scan

    This will then turn OFF the On Delay

    This will turn off the AND block output till after the On Delay time

    i.e. Will Pulse the Annunciator OFF for DElay  Time then re-arm it

  • In reply to Gary Law:

    Forgot to mention - Needs a NOT between the CEM and the AND block

    Assuming you want to turn the DO on upon a trip so th eannunciator lights

  • In reply to Gary Law:

    Gary,

    Is (prev_causes) a parameter within the CEM block?

    Thank you for your help.

  • In reply to Mambo:

    prev_causes = active_causes_n     // look at the active causes for effect n of the CEM

  • In reply to Roman Kostuniak:

    apologies can anyone explain in laymans terms.

  • In reply to Mambo:

    For example your DO was wired do LSCEM1/EFFECT1.

    In LSCALC use internal reference to LSCEM1/ACTIVE_CAUSES1.

    Write code as Mr Gary

    If (prev_causes = active_causes_n )

    --->"prev_causes" means previous causes

    --->"active_causes_n" means current causes in your EFFECT1;

    for example CAUSE1=false; CAUSE2=false; these 2 are for EFFECT1

    then "active_causes_n"=3

    logic

    prev_causes = active_causes_n=3

    OUT1:=1

    something change

    CAUSE1=true; CAUSE2=false; these 2 are for EFFECT1

    then "active_causes_n"=2

    logic

    "prev_causes=3" not equal "active_causes_n"=2

    OUT1:=0

  • In reply to Roman Kostuniak:

    Roman - Thanks for your help.

    Little problem though;

    If the values for (previous_cause) and (active_cause_n)  are being compared,  when the initial causes clear or go healthy this will bring in the alarm again (have the reverse effect) as it will see a difference, would it not?

    Thanks

  • In reply to Mambo:

    Problem solved.

    Thanks for all the help.