How to integrate PLC alarm array with Ignition native alarming?

Hi all,

I’m receiving alarms from a PLC as an array of around 580 Json structures over single OPC UA Tag.

Each array element contains fields like:

AlarmCode
Severity
TimestampActive
TimestampReset
Active
Source
Acknowledged
Priority

My requirement is to use Ignition’s native:

  • Alarm Status Table
  • Alarm Journal
  • Acknowledgement
  • Active/Clear history

The challenge is that the alarm array may be dynamic, so an alarm may not always stay at the same array index and might not be fixed number of structure inside the array .

For example:

Array[0] = AlarmCode 1001
Array[1] = AlarmCode 2001

Later, after 1001 clears:

Array[0] = AlarmCode 2001

So I don’t think configuring an Ignition alarm directly on Array[x].Active is safe.

This should be efficient in terms of performance and latency as there are 100+ assets carrying same array

**What would be the recommended design here?
**

Assuming all the alarms are predefined? Build them out in Ignition using a UDT for each. Then write a script that monitors the array tag from the PLC and makes the correct updates to the Alarm UDTs.

But better - fix the PLC so you don't have the problem of them moving.