Refresh alarm table/row on PLC status

Hi guys,

I have a question about the alarm status table. I have a UDT with a alarm which occurs when a bit state is true. it generate a alarm which is fine.

I used the acknowledge button when i select the alarm, en the button send a acknowledge status to the PLC, where a other UDT acknowledge the real alarm. But i want to know in the table if the alarm is acknowledge, because the Ignition State column is not linked with the PLC, I don’t get this work, maybe someone know a solution.

So what i did, is writing a UDT tag which writes the value to true if the PLC is acknowledged (I used the ack pipeline column).

When the status occur i see the status which is false when i don’t used the acknowledge button, but when i press Acknowledge, the alarm in the PLC changed also the UDT tag to true, but the table row did not, so i still see false.

So is there a way to refresh a alarm row so it changed from false to true, refresh table or refresh alarm idk how to fix this??

If I understand you correctly, your Acknowledge button does a tag write to a PLC tag that sets the alarm in the PLC to acknowledged, but not the AlarmStatusTable. If that’s true, then on that button, in the same script you can use system.alarm.queryStatus() to get the alarm UUID and then system.alarm.acknowledge() to acknowledge the alarm in Ignition’s AlarmStatusTable. Assuming that the alarm tag has only one alarm on it, this piece of code should work:

#To get rid of tagProvider in path and add wildcards on both ends
path = "*" + tagPath[tagPath.find("]") + 1:] + "*"

#Searches all alarms for ones that apply to the specific tag
result = system.alarm.queryStatus(source=path)

#Gets the alarm ID of the alarm
alarmId = result[0].getId().toString()

#Acknowledge the alarm
system.alarm.acknowledge([alarmId], "Alarm acknowledged in PLC")