• Not Answered

Referencing display properties from another display in DeltaV Live

I would like to reference a display property from another display and can't find how to do it in graphics studio help. 

Say I have a text box on a GEM or a display (Call it display A) and I would like it to reference a display property on display B. 

What would the path look like or is there a function that could help me do this? 

8 Replies

  • That display may not be open so then you won't get anything (if it was possible) so this isn't an option but what are you trying to get accomplished by doing this and maybe there is a different way to get what you want.
  • I'm thinking a global variable (layout variable) would be the way to go. That way the "Property" you seek would be available to Display A even if Display B is not open. Display B can set the Variable with on open and On close script so that display A knows the value is actively set by Display B or it is not currently open. The issue with this is that all your Layouts need to have this new variable so the two displays can play nice together on any workstation.

    I would like to see a set of Global variables that are defined once and applied to all Layouts so that when you have to add such a variable to the system, you are not required to edit an publish all your layouts each time. You can't copy past variables so they have to be created manually in each layout. The Layout variables replace the Operate Global variables at run time, giving you a single variable you can manipulate/read from anywhere. The Standards in the library give you global static values you can use anywhere, but it is all or nothing across the systems and can only be changed by publishing the new value. You cannot change Standards via a script at Runtime. A work around is to load Standards into Layout variables at startup, and this allows each console to be able to dynamically adjust the behavior of a single console through the Variable.

    Maybe it would be better if we could flag Standards that need to be runtime dynamic at the consoles. Then we wouldn't need to build Variables in layouts. Though I still think a Global Variable feature would help for managing variables that need to be in every layout.

    Andre Dicaire

  • In reply to Matt Stoner:

    I am trying to build a GEM that displays various status' of a system that is common to multiple units. I have the GEM set up with a click action that will take you to the display of the system it shows the status for. On the bottom of the GEM I have added a text box that tells the operator what graphic the system is displayed on. In the system, we have titled our graphics with a - and a . but the file name won't accept those symbols so it has _'s instead. I want the text box to show the title of the display and not the file name. I was trying to get the place holder in the text to display the title property of the display that is referenced by the GEM.displayref property. Ex.. File name = SSC_36_00, Title = SSC-36.00
  • In reply to Daniel Moyers:

    You are able to get the filename, but want to use a different format as found in the display Title?

    What if you create a function that will convert the file name SSC_36_00 to SSC-36-00? Split the file name on "_" to get SSC, 36 and 00 as three strings in an array and then combine them with the "-" and "." and display this in your text. Pass the Filename string to the function and it returns the file title. Of course your function will need to handle variations, but if all file names are following the same rule/structure, you would display the correct Title, without the title...

    Andre Dicaire

  • In reply to Daniel Moyers:

    You could also have your GEM have a multi-language string "Label" GEM option that you tie your display link text to be "ultimately" flexible and it could be any text. Otherwise you can do some function as Andre described but it would require that all your displays follow the naming convention.

  • In reply to Matt Stoner:

    Thank you both for your answers. for now I am going to give the GEM a configuration property for the display title in the interest of getting it done in the time constraints. I'll play around with making the GEM more autonomous when time allows.
  • In reply to Daniel Moyers:

    The code isn't bad to just replace the first "_" with a "-" and the next "_" with a "." if that is always the format.

    let DispTitle = DisplayName.replace('_' , '-');
    DispTitle = DispTitle.replace('_' , '.');
    return DispTitle;

    Where DisplayName would be String passed to the multi-language function.

    I think that is what is would be anyway :)

  • In reply to Matt Stoner:

    This works because String,Replace() will replace the first instance of the character being searched. Works for me.

    My initial thought was to split into an array and then depending on the number of elements, one could determine how many new characters are needed and use an appropriate new format. but for this example, Matt's approach is more efficient.

    Andre Dicaire