Hello,
I am creating a new version of an AI class with some added functionality and would like to use the same faceplate and detail plate for both classes. The new class will feature parameters that can be adjusted via in-place data entry on some datalinks added to the detail plate. Obviously, those datalinks won't resolve when the detail plate is loaded on an instance of the original AI class. Is there "best" method for handling the errors this creates?
The only idea I have right now is to check the read status of each parameter via an FRSREADVALUE while the detail plate is first loaded, and if the status is bad, set the source to "0" or a dummy parameter. This isn't ideal because it means that I'll have to configure the datalinks to use such a dummy parameter to begin with, and only correct the parameter path when the parameters exist. So if the datalink is viewed in configure mode, you'll see the dummy assignment on the datalink custom page. It would take digging through the graphic script to see what the actual datalink parameters would be. I've been in situations where graphic components are altered through scripting and it is not an easy thing to troubleshoot if you don't know what's going on.
Thanks in advance for any input you can provide.
DeltaV Operate provides a set of data qualifiers that may do what you want.
On the Data Link edit dialog select Help on Display parameters
The section on Datalink Modifiers details some options. The [_NOT_CONFIG_OK_] modifier looks like it can prevent unwanted error messages when the faceplate is called on a module that does not have the parameters.
Andre Dicaire
In reply to Andre Dicaire:
[_NOT_CONFIG_OK_] seems like exactly what I need, but I am running into a problem while using it. It's the same problem user TreyB pointed out here. Sometimes, my datalinks show "*****" and I get no error message. Other times, it's as if I hadn't used [_NOT_CONFIG_OK_] at all. I think it may have something to do with the "@MOD@" replacement not retaining the modifier.
I pasted the datalinks onto an empty test graphic and the modifier works every time, presumably because there is no modification to the datalink string like is done when a faceplate is first loaded. Furthermore, I copied my detail plate to the main pic directory and created a button to open the copy with frsOpenUserPicture, and the modifier works there too! In both of those test cases, the datalink strings are still unaltered (something like "DVSYS.@MOD@/PARAM1.F_CV[_NOT_CONF_OK_]"), and I get no error dialogs. It's only after the "@MOD@" is replaced that I have trouble.