Hi,
Relatively new to DeltaV. I have been tasked with creating a graphic which is to display if there is a simulation active. So, it is to warn all DeltaV users in the event that a simulation is carried out on the live system and the engineer forgets to remove the simulated values. I'm wondering if it is the Simulate_in_D that would be linked to the graphic and if it was possible to group them together for one system as to do this for each individual device etc would not be practical. I may be approaching this the wrong way too. Any help would be appreciated.
Thanks
In reply to Matt Forbis:
Hi, Just verified that our modules are not class based. How does this affect the creation of this alarm?
In reply to Wilson Halligan:
each DeltaV Module contains the M_STATUS and M_ERROR parameters. These are reported in DeltaV Diagnostics Explorer:
The Forced status is set if the module has had a block input forced in Debug Mode. You can sort on these columns. Clicking on the column header toggles the order so you can quickly any modules with a FORCE. No configuration needed.
There is also another status parameter in each module called BLOCK_ERR. This module level parameter is a combination of all the block errors that may occur on individual blocks, like AI, AO, CALC, PID etc. It is an Option Bit String parameter, an integer, where each bit has a specific meaning or option.
At the Block level, there is a BAD_MASK parameter than allows you to select if you want an option to set the Block's BAD_ACT parameter to TRUE. If not set in the mask, and the option becomes true, it sets the ABNORM_ACT parameter true.
The Block level BAD_ACT and ABNORM_ACT are therefore set TRUE based on the blocks BLOCK_ERR status and BAD_MASK. At the module level, the MSTATUS and MERROR have an FB Abnormal Active and FB Bad Active option, respectively. If selected in their corresponding MStatus_Mask and MERROR_MASK, when true, the Module ANORM_ACT or BAD_ACT parameters are set true.
The module level BLOCK_ERR status shows an OR of all the block level BLOCK_ERR.
Wow, that's a lot of status. What can we do with that?
You have choices. Sometimes too many. As Matt pointed out, to view if you have any blocks in Simulate or forced values, your best bet is to configure an Alarm in each module so that you can then use an Alarm Summary filtered on that Alarm Priority. The Module BLOCK_ERR will show you if any block has Simulate Active. The MSTATUS will show you if you have any Forced input on a block (same as what is shown in Diagnostics above).
We typically create a Simulate alarm and a separate Force Alarm. You can reference the Module level BLOCK_ERR parameter, and in the alarm configuration, you have the ability to set a mask for that alarm, so in this case must the Simulate Active option is selected.
Similarly, for Forced value, use the MSTATUS parameter and select "Forced Value" in the Mask for the alarm.
If you only wanted to set the simulate alarm on some blocks but not others, you would need some custom logic, or use the AI1/BLOCK_ERR to only set if the AI1 is has Simulate Active.
The Block level BLOCK_ERR and the module MSTATUS and MERROR have their associated MASK parameters, which allow you to determine if the option condition sets the BAD_ACT parameter, or the option sets the ABNORM_ACT. If not selected in the mask, the option if true, sets ABNORM_ACT. By using the BAD_ACT as an alarm source, you can control what sets the Alarm by what is selected in the mask.
In older versions of DeltaV, the MASK option was not available in the Alarm dialog and these types of conditions were monitored explicitly in a CND block to trigger an alarm. When the alarm mask for Option bitstrings was added, the alarm specific selection option eliminated the need for the CND block, unless you wanted to combine Simulate Active and Forced Value into one alarm. But alarms are free right? But make sure you exclude these alarms from the Operator process alarms. These two alarms could share the same alarm priority and have a dedicated alarm summary for a quick, one stop look at any simulated or forced signals in the system.
One way to use the diagnostic screen to show Forced and Simulated is to only select Simulate Active for the blocks, such that only a Simulate Active condition sets the block BAD_ACT. Then, MERROR FB BAD active would only be true when a block has simulate active. Then, sorting in diagnostics on Forced or FB BAD would show any module with a YES. This still requires setting the BAD_MASK on all the blocks, which can be done on line. But there would be no pro-active messaging.
Without doing anything, you know if a module has Force, FB BAD and FB Abnormal all NO, that module has no simulate active. If FB BAD or FB Abnormal are YES, you have to go check the module to know what is setting the associated Block Err's. The Standard DeltaV Detail displays will be showing these module level option bitstrings so you can view this without having to open each module in Graphic studio online.
One more thing... Block_error also has Out of Service option. A block that is out of service may also be a condition you want to include in monitoring the modules.
Andre Dicaire
In reply to Andre Dicaire: