Hello,
I am working on DeltaV Operate to Live migration project and kind of stuck at setting alarm thresholds. Operator stations and Pro Stations have different alarm threshold values, it was way easier in DV Operate to set those values in USERSETTINGS by comparing the station name. But in Live i found there is no help available to get the same result. The default code i found in live default layout (Interaction tab) is look like passing the global variable values to some external application (SAT.exe) to set the threshold for the station. I don't understand what they are doing and there is no help available in Books Online. I have tried to write directly to the global alarm threshold variable defined in the standard->Emerson->Common->Alarm Priority folder but it looks like we can not modify those variables in the script.
So if anyone has faced the similar kind of issue, please share your experience or if someone knows how to deal with alarm threshold variables in Live (when you have different values for different stations), please share.
Thanks
Syed
You are pretty much there. The code uses the Standards to create the "tthresholds" string and that is passed as an option string to the SAT program. GL.Library.S_SAT_path holds the name of the program that sets the thresholds.
You would modify this script to use whatever Threshold values you want and define Thresholds variable as desired.
So if I create a set of Threshold variables in the Layout, and use something like this instead, I can set each layout to use different Threshold values and thus set each station as needed.
let thresholds = Lyt.ProcAlmThresh + "," + Lyt.DevAlmThresh + "," + Lyt.HWAlmThresh + "," + Lyt.SISProcAlmThresh + "," + Lyt.SISDevAlmThresh + "," + Lyt.SISHWAlmThresh;await ENV.RunAsync(GL.Library.S_SAT_path, thresholds);
But what you really want is a function that will look at the current workstation name and select the desired thresholds. As you add new consoles, you'd have to update the assigned layout with the console name, or have a default for unspecified consoles. Not sure if the workstation name is available. If it is, you could use it and make your selection dynamic.
You could also create some standards like S_ProThresholds, S_OpThreshholds and in each of these defined the string 4,6,5,4,6,7, or whatever threshold values you want for each station type. Then create your IF or case statement to define thresholds:
If Workstation == BOB then
let thresholds = GL.Library.S_ProThresholds
await ENV.RunAsync(GL.Library.S_SAT_path, thresholds);
The Standards in the database are not writeable. They are system wide named objects that allow us to "tune" the final look and feel of Live. Writeable Global variables would be LYT variables, which are available to all levels. Unlike Operate, where it would use a User.FXG variable if named the same as the FRSglobals, Live lets you modify any OOB standards or functions, and you can rename them globally.
I'm not sure using Lyt variables is the way to go. Have to think about that. But setting the thresholds is done running that commnad and passing the desired values as a string.
Andre Dicaire
In reply to Andre Dicaire:
In reply to Syed Zaidi: