Dynamic Alarm Attributes
Dynamic Alarm Setpoints
Watch the videoDynamic Setpoints​
You can configure alarms with dynamic setpoints inside of a tag definition. It is similar to configuring an alarm, however, configuring an alarm with a dynamic setpoint requires additional tags to serve as these setpoints. A good example of this is when an operator changes a high or low setpoint, it also changes how the alarm is evaluated.
To Configure Dynamic Setpoints on an Alarm​
Suppose you want to alarm a Tank Level if it goes above or below a certain setpoint. Rather than hardcoding a value in the high and low Setpoint properties, you can bind them to either a tag in the system or an Expression to make them dynamic. This example uses an OPC tag called Tank Level, and two Memory tags called High SP and Low SP. The Tank Level will use the values in the Memory tags as the high and low setpoints. Let's alarm the tank level when the setpoint goes above 85 and below 20.
- Create two Memory tags calling one High SP with value of 85, and another one called Low SP with a value of 20.
- Use an OPC tag and rename it to Tank Level. Click on the tag to open the Tag Editor.
- Scroll down to Alarms, and click on the Edit icon next to your alarm to open the Alarm UI.
- If you don't have a configured alarm, you will need to create one. Select the configured alarm that you want associate a high setpoint with. (This examples uses the High SP alarm).
- Under Alarm Mode Settings, set the Mode to Above Setpoint.
- Click on the binding icon for the Setpoint property. You can select a tag or Expression. (This examples binds the Setpoint property to a Memory tag that was created called High SP). Click the Commit to commit your changes.
- Now let's configure the low setpoint. Create another alarm to associate with the low setpoint if you don't have one.
- Under Alarm Mode Settings, set the Mode to Below Setpoint.
- Click on the binding icon for the Setpoint property. You can select a tag or Expression. (This examples binds the Setpoint property to a Memory tag that was created called Low SP). Click the Commit to commit your changes.
- Click OK. Now, the tank alarm will be evaluated based upon the high and low setpoints of each tag.
- To test it, change the value of the Tank Level to 99, and you'll notice it actives the alarm.
Dynamic Enabling and Disabling​
Enabling Based on Machine State​
Allowing a dynamic condition to determine if an alarm is enabled or disabled is possible inside the alarm's properties, like whether or not a machine is on. This example uses two tags: one for the Alarm, and one to determine the running state of the machine. Two conditions must be true for the alarm to become active. The value on the alarm tag must match the setpoint ('true' in the example below), and the Enabled property must evaluate to 'true' driven by the value of the 'Machine On' tag.
Select a tag that has the alarm you want to configure.
To access the alarm properties, click on the Edit icon next to your alarm to open the Alarm UI. Select an alarm or create a alarm if one doesn't exist. The alarm in this example is called Machine 100 Alarm.
Click the binding icon for the Enabled property and bind it to a Boolean tag or an Expression that evaluates a 'true' or 'false' condition. This example uses a tag called Machine On. Enter the Mode to 'Equal' and the Setpoint to '1.' Click Commit.
Click Commit to save your changes. Now, the alarm will only be evaluated based upon the state of the Machine On tag. Set the Machine to On or 'true.'
In the Tag Browser, expand your tag (i.e., Machine 100 Alarm), and you'll notice the 'IsActive' is now active. As you can see, making the Enable property dynamic based on another tag in the system is extremely easy.
Enabling Based on Time of Day​
There are occasions when you only want alarms to be evaluated at certain times of the day. In Ignition, you can automatically enable and disable alarms for specific times of the day. This is typically achieved by binding the alarm's Enabled property to a tag or an Expression. (This example uses an Expression).
From the Tag Browser, select the tag on which you want to configure the alarm.
To access the alarm properties, click on the Edit icon next to your alarm to open the Alarm UI.
Select an alarm you want to place the binding on, or create a alarm if one doesn't exist. The alarm in this example is called Machine 100 Alarm.
Bind the Enabled property to an expression that evaluates a 'true' or 'false' condition based upon the current time. Click the binding button to the right of the Enabled property, and click on Expression tab on the top right of the screen, and enter your expression or copy and paste from the code block below, then click Commit.
In the expression language, there are various functions for dates that can be used. For example, the following expression would return 'true' if the time is between the hours of 5pm and 12pm, and return 'false' if it is not.timeBetween(now(0), "5:00:00 pm", "12:00:00 pm")
Click Commit again to save your edits. The alarm will only be evaluated when the system clock falls between the specified time.