Thanks for your response. I'm actually exhibiting some other odd behaviors related to alarms.
I've got several test alarms in my dev environment and none appear to be populating the alarm status table. This is after dragging and dropping a fresh alarm status table on to a window.
Is there something else I am missing? Or some diagnostics I could check to see the status of alarms on the gateway webpage?
Edited to add:
The following script ran in the script console is also not seeing any alarms:
# Query Ignition alarms
unacked_alarms = system.alarm.queryStatus(state=["ActiveUnacked","ClearUnacked"])
print("Found '{}' unacknowledged alarms...".format(len(unacked_alarms)))
# For each alarm returned by the query function, pull the ID as a string
for alarm in unacked_alarms:
event_ID = "%s" % (alarm.getId())
# Acknowledge the alarm events by their ID
system.alarm.acknowledge([event_ID],None)
Okay, it appears to be a potential problem with my UDT.
I just created an alarm on a regular memory tag and saw that in my table. I can also find that alarm when I run my script posted above.
I've used this UDT for months in a production environment and had no issues with it. The actual alarm configuration is not that complicated either. The alarm is configured on a boolean tag (currently memory) and is active when that boolean value is equal to 1.
Okay, it appears to be a potential problem with my UDT.
I just created an alarm on a regular memory tag and saw that in my table. I can also find that alarm when I run my script posted above.
I've used this UDT for months in a production environment and had no issues with it. The actual alarm configuration is not that complicated either. The alarm is configured on a boolean tag (currently memory) and is active when that boolean value is equal to 1.
EDIT:
Just edited my parent UDT type in the tag browser and saw all of my alarms populate. Not sure what happened. I did remove my ack pipeline but that was the only thing I had changed.
See logs below:
EDIT 2:
This issue can be replicated. I had two different UDT's that handle alarms. One is for digital alarms that just look at one OPC tag and the other is for analog alarms that look at 4 OPC tags for the HH, H, L, LL.
When I make an edit to the alarm configuration in the PARENT definition of the UDT and save it, I see all of my alarms populate.
Can you please send me an export of your UDT via DM so that I can attempt to replicate it? I am not hitting the issue yet, and want to try and narrow down the issue.
@Zachary_Ray we have been able to replicate and have opened a ticket for this. We don't know the root cause yet, but I appreciate your help in the replication steps.
Garth
Edit:
The issue looks to be a displayPath on the alarm that cannot be compiled (and this looks to be the only property where this issue applies). In 8.3, it is being handled in a manner that is causing the alarm creation to error. As a workaround, changing the definition of the expression binding from: {parameter}{TagName}
to: concat({parameter},{TagName})
would be a solution. It should be noted that even in 8.1 your displayPath would evaluate to null but it still allowed the alarm to be created.
We are still evaluating when this will be targeted for a fix.