DeltaV Live Datalink Conditional Write

Hello all.  Just curious if in DeltaV Live there is an elegant way to control whether a datalink's write is enabled, say based on mode.  Or is the old two datalinks, one that can write, one that can't with visibility controls still the way to go?

Thanks!

-Daniel

  • with the same datalink you can write value and motitor its status, that shouldnt be a problem.
  • In reply to KoBriZo:

    Thanks for the reply KoBriZo, but maybe I wasn't clear enough in my question. I'm wanting the write to be conditional on some other expression, like the block's mode being in the desired state as an example. In the past, that's been two datalinks (one that can write, one that can't) with visibility on them using the expression in question. I was just curious if Live had some magical way I wasn't aware of to accomplish that with a single datalink. If not, I'll be modding all the CD_LABEL_VALUE esque gems to add a datalink and controls around visibility handling... -Daniel

  • In reply to Daniel Parrish:

    A datalink has a "Writes" option that can be linked to Gem Properties use NotAllowed, NormalWrite, NormalWriteWithConfirmation and SISWrite. So there might be a way you could it (not sure but would be difficult) but seems like using two datalinks and use visibility on the appropriate one with write enabled or not would be easier.

    I would recommend NOT modifying Out of the box Gems to suit your needs. If they ever hot fix the GEM for an issue you will lose any changes you have done. Better to copy and create your own and then move the ones you want this feature to your custom GEM.

    You can also use a custom script interaction but just remember that people will have to support this later that may not be you or have the skills to easily change the custom scripting. In your case I would recommend just use the two links and the visibility option set to show when you can change and when you can't.

    If the product later changes that allows you to actually animate the Writes option and not just use GEM properties that is when I would move to a single datalink.
  • In reply to Daniel Parrish:

    The Datalink cannot be modified dynamically on line to enable or disable writes.

    Instead of a second data link, you can mask a single data link with a box that you animate with visibility. The BOX color can be set to non, or with some transparency so indicate to the user that there is no point in trying to select the link at this time. When the box is visible the user cannot select the link. This is similar to the popup entry GEM.

    It is effectively the same as using two datalinks, except it is one data link and one Box. You could create a GEM that you use instead of a straight Data Link, with the two expressions defined in the Properties, one for the value and the second for the Visibility condition. If you set the expression to false, then the box is always hidden.

    I'd say the class based GEM feature of Live is not quite "magical", but it gives you some options we didn't have in Operate.

    Andre Dicaire

  • In reply to Matt Stoner:

    Thanks Matt. And you're right, I know better than to modify OOB elements, I was just being convenient in my language there. I'll try Matt's suggestion about the box, and do the double datalink thing if that doesn't work like I want.
  • In reply to Andre Dicaire:

    Thanks Andre, I'll give that a try. With the box idea, how does that work with in-line (non-popup) data entry? I'll try it myself to see, but I didn't even try a box first since I want whatever Gem I do create to accommodate this need to support both in-line and popup data entry modes. Thanks!