• Not Answered

How do I change the Alarm Properties Limit Parameter reference in DeltaV control module?

I've been trying to use the System Alarm Management utility and I'm finding that the "Limit Value" field is empty for roughly 95% of the alarms.  When I compare alarms that have a limit value versus ones that don't I can see the Alarm Properties field for the Limit Parameter has a reference shown.  How do I configure the reference for the Limit Parameter for the alarms that don't have a reference?  I can't seem to change this field for existing alarms or configure it when I'm adding new alarms in Control Studio.  What am I missing?  Why is this field not modifiable?

 

Kathy

Kathy Pate

Toray Carbon Fibers America

Decatur, AL 35601

kathy.pate@toraycma.com

4 Replies

  • Instead of adding/modifying the alarm, try right clicking on the associated block and then select Assign Alarm (you will probably have to delete the existing alarm that doesn't have the limit filled out first out so you can name it the same). This will give you a selection block for the possible alarms, name it, enable/disable, set priority, etc. Adding the alarms this way will fill out the limit field for you.

    Note that if you are doing this for class based modules this might be a significant effort to unsure that you don't lose any of the existing configuration. You may want to do a test on a new module and instances to make sure the process will work for you if modifying a module class.
  • Kathy, as Matt mentions, there are two ways to create an alarm. A Custom Alarm (created directly in the Alarm Window with Add...) links to a Boolean variable and can be triggered by any user logic. When you create the alarms from the Function blocks, like an AI, using the Assign Alarm, the alarm is created and linked to the FB alarm parameters, XX_ACT, XX_LIMIT, etc. The alarms created with Assign Alarm will show the LIMIT parameter path. When you change the Alarm limit in the alarm properties, you are actually changing the AI1/LO_LIMIT parameter value.

    There is no supported way to configure the limit parameter path in a custom alarm. So as Matt suggest, changing your alarms from custom alarms to those in the function blocks is the best way to have all these things work properly. As you Assign Alarms from a block, you can delete the existing one and rename the new one to be the same. When you download the module, all your alarm history will remain consistent, and from that point forward, the limit parameter will be linked and show up as expected.

    There is an unsupported way to add a path to the limit parameter. Being that it is unsupported, I wouldn't do this, unless it is truly a custom alarm and you want to like a parameter for the limit. Use Assign Alarm where ever it will do the trick.

    Try this out in a test module. Create a Boolean Condition block with an expression that compares one parameter to another to create a high limit, no deadband for this example. Module has Parameter "IN", "IN_LIMIT", and expressin is '^/IN.CV' > '^/IN_LIMIT.CV';
    Now create a custom alarm pointing to CND1/OUT_D. Confirm alarm works fine.

    Now add an AI block and enable the HI alarm in Assign Alarm. This will have the Limit parameter linked.

    Now export this module and open in notepad. Compare the two alarm definitions and you'll find that the AI1/HI_ALM has a line defining the path to the AI1/HI_LIMIT parameter. This line does not exist for a custom alarm. If you copy that line and place it appropriately in the definition of your custom alarm, and change the path to point to your IN_LIMIT, you can then import and your custom alarm will have a limit parameter. before you import, edit your test module and move the CND1 block slightly. save and close. this will allow the import of the module to replace the version in the database.

    Interesting. The engineering tools do not allow you to do this programmatically. If you are using classes, you will have to proceed cautiously.

    Andre Dicaire

  • In reply to Andre Dicaire:

    Thank you both:) Matt's solution worked, and I'm sure the import will also. The alarms I have are majority function block based (ALM1), but must have been added using the "ADD" in the alarms area of control studio. That is how I've always added them. We have very few class based alarms, so the modifications will be tedious, but not complicated. Thank you again!!

    Kathy

    Kathy Pate

    Toray Carbon Fibers America

    Decatur, AL 35601

    kathy.pate@toraycma.com

  • In reply to kathrynpate:

    I had a chance to look at this further. The export for the custom alarms looks like this:

    ATTRIBUTE_INSTANCE NAME="ALARM1"
    {
    VALUE
    {
    PRIORITY_NAME="ADVISORY"
    ENAB=T
    INV=F
    ATYP="Any Alarm"
    MONATTR=""
    ALMATTR="CND1/OUT_D"
    LIMATTR=""
    PARAM1="IN"
    PARAM2="IN_LIMIT"
    SUPPTIMEOUT=480
    MASK=65535
    ISDEFAULTMASK=T
    ALARM_FUNCTIONAL_CLASSIFICATION=0
    ALARM_DESCRIPTION=""
    }
    }

    By entering the path to the limit parameter for LIMATTR = "", the custom alarm now shows the limit parameter value and in properties shows the path.

    From this, I expect that you could use a Bulk Edit to set the path of the LIMATTR of an alarm and resolve this via bulk edit. Maybe someday I'll try this. But the best approach is to use the Assign alarm from the function block. Also, the function Block alarm parameters come with Conditional Alarming that you can turn on later. Custom alarms do not have conditional alarm filters and the enable parameters.

    Anyway, glad you were able to resolve your issue.

    Andre Dicaire