Named Set property User Selectable versus PLMs

In our PLMs we have messages that are shown on operator consoles that reflect what the PLM is doing.  If the PLM is waiting on something, it tells the operator so that he does not think the PLM is stalled.  For example if we are in a step that is needing a valve to transition from confirmed closed to confirmed open that takes a while to move (large/slow) we display a message like
"Waiting for HSXB1234 to confirm open.  Current state is xxxxxxxx".   We substitute the xxxxxxx with the current value of DC_STATE from the DC1 block in the module HSXB1234.   It is cosmetic only but the operators really appreciate it.

The code was simply '^MSG.CV' := "Waiting for HSXB1234 to confirm open.  Current state is " + '//HSXB1234/DC1/DC_STATE.CVS';  MSG is a parameter in the PLM of the type string.

This worked well in version 8.4. and we thought it did in version 10.3.   However our operators noticed after we upgraded to version 12.3.1 that the string now shows. 

"Waiting for HSXB1234 to confirm open.  Current state is 'states_vlvnc:1'.

Unfortunately we upgraded all our 10.3 systems so I cannot go back and double check.

Doing some digging I found that this only is an issue with name sets that have the property "User Selectable" marked as NO for the states that should be displayed.   Thinking I goofed something on the upgrade, I went back through the FHX exports from version 8.4 and from 10.3 the namesets were the same.   Further surprise was that I am unable to mark the User Selectable property to YES for namesets that came with DeltaV such as states_vlvnc and states_vlvno.   I don't remember being locked out of that on the earlier versions.

DeltaV Help did not shed much light on the User Selectable field but from my testing in earlier versions I came up with the following:

Visible:  Needs to be set to yes to show up in faceplaces and VB code.   In short, you want to see it.

User Selectable:  Needs to be set to Yes to be able to issue it as a command either by the operator or by code in the DeltaV controllers.

My problems are:

1.) I do not want to issue it as a command.  I simply want the module to read the string value.   Why in the module you may ask:  We have many different types of graphics that reference the PLMs that are dynamic.  Much simpler if they only look at a string parameter in the PLM updated is as it sees fit. 

2.) I could make a duplicate of the namesets giving me this issue and modify the respective modules to use the new namesets.  However, our site made extensive use of the 'out of the box' namesets so that future upgrades would be less painless.    This is not with one PLM looking at one module.   Almost all of our valve modules use either states_vlvnc and states_vlvno and the MSG string was a site standard for all PLMs..   That is a large number when you take in to account out site has 5 independent DeltaV DCS systems each with decent I/O counts (3000-5000 DSTs).  That is over 1000 modules that would have to change.   Not FUN on running processes.   Same is true on modifying the PLMs.

Does anyone know when Emerson made this change in the DeltaV controllers and when they locked down the out of the box namesets (note that we do not modify them for we never needed to -- till now)?   Is there a work around?

2 Replies

  • I am using v12.3.1 and did not see the issue. I have tried the same configuration on a demo system with PLM and modules assigned to Pro+.

    Try downloading the setup data of the Pro+ and one of the operator station. See if it resolves the issue. Need setup data download to reconcile named set parameters.

    Make sure Pro+ and operator station Software revision is 12.3.1. Different node versions may be a cause as well.

    Make sure controller Software revision is at 12.3.1. The same explanation as with the previous paragraph.
  • In reply to Neil Castro:

    Once additional thing I would check is to make sure the setup data has been downloaded to the controller. Named sets are also put into the controller and by seeing the named set name vs. the intended value in the string leads me to believe maybe the named set does not exist in the controller.