• Not Answered

DeltaV Live - Disable evaluation of GEMs online

Hi, 

I want to try and find a way to enable / disable evaluation of GEMs on a DeltaV Live online graphics when certain input conditions are met. 

The physical setup I have is a distribution drop which can have mobile filling units brought a parking spot, plugged in and filled automatically. When no unit is connected I want to not have GEM errors being generated.

I have considered Dummy modules and binding GEM tags to these when no unit is connected and disabling visibility, however I'm not a big fan of dummy modules and am hoping there is a method to disable evaluation of the GEM or group itself.

Thanks,

Hugh 

3 Replies

  • You can use "DLSYS.CondRead(Path,Value to use if bad read)" which will remove any errors when nothing selected/hooked up or you could change the Gem to use graphic expression for value(s) and do inline if condition (condition ? value when true : value when false).

    Pretty broad stroke of information for the GEM so not sure best method without knowing details of the GEM configuration(s). You probably want to have a variable that does the condition evaluation and then use that variable for Visibility of GEM(s), CondRead's or inline reads so you only have to make a single animation change if needed.
  • In reply to Matt Stoner:

    Why do you see errors when there is no physical unit in a specific position? Is it because the control module ends up with a Bad Status because there is no IO connected for that postion?

    DeltaV modules don't appear and disappear in the controllers, so your GEMs would still be bound to something. Would be good for you to explain this in more detail.

    The DeltaV LIve health check on open displays does flag references that have a Bad Status. If the module/parameter exists but its Status is now BAD, I'm thinking the Conditional Read may still return the bad status as the parameter does exist. I'm thinking that is a communication layer status error based on .CST. I'd have to do some testing to confirm.

    If the module/parameter exists but can be BAD but you don't care, perhaps adding the .NUM or .STR qualifiers to the path will allow Live to ignore the status.

    You would need to use a visibility expression to hide the "unused" location.

    Another approach might be to modify the parameter paths based on what location is currently available using a script, maybe a time script that can update periodically based on changing conditions. The GEM would then be modified to bind to the appropriate module or unit. so that it is adjusting the runtime references as needed. One Gem to rule them all. You could position the GEM on the display and indicate which unit it is bound to, but all its references would be made valid through the script.

    Hard to say what the best solution would be given sparse details on where the error is generated. You're only telling us where the error is appearing...

    Andre Dicaire

  • In reply to Matt Stoner:

    Thanks Matt,

    This did achieve what I needed albeit it was a bit cumbersome to configure GEM overrides individually for all the components that would have bad status when no module tag is configured.

    For GEMs I am using the PCSD Gem package.