Bit (and bool) Array Alarming

Hello!

I've been playing with the alarming system in perspective, and have been attempting to create an alarm on a byte array (and boolean array) data type. I see that ignition automatically evaluates the alarm for each individual index of the array which is perfect for what i need, however i cant seem to be able to set the labels for each alarm.

Is there a method that allows me to set the alarm label for each individual bit? This bit array is a single tag, 32bits long. it can be read as a boolean array, bit array or integer.

TIA

1 Like

Perhaps you can use expression tags and put each bit and alarm in a separate tag.

The scroll bar in the alarming section defeated me again. Scrolling down, the bit position can be identified in the alarming section and individual alarms per bit can be set up.

Edit for clarification* Importing the Tag as an integer allows the individual indexes to be alarmed. Don't import as an array of bits or bools as you'll end up evaluating 32 alarms per index of the array which for a 32 bit tag ends up with 1024 alarms!

1 Like

i had same issue . PLC tag configured as Boolean Array and when convert it to integer . it showing as error of conversion . Only accept Boolean array and can't define alarm per bit as it work only with integer value ..
is there any advise ?

Hi,

If you are unable to import the tag as an integer, there are two approaches you could take.

  1. Create a tag in the PLC that can be imported as an integer
    if this isn't an option
  2. Create a UDT that allows you to reference individual bits of the Boolean array tag. Attached is the json for an example that should help you get past the current issue. Please note that this is very inefficient but will hopefully help you out.

Copy the below into a txt file, name it whatever you wish with the .json extension at the end of the name. Import into your UDT's into ignition.

{
  "name": "BooleanArrayAlarm",
  "parameters": {
    "Tag": {
      "dataType": "String"
    }
  },
  "tagType": "UdtType",
  "tags": [
    {
      "name": "AlarmEval",
      "tagType": "Folder",
      "tags": [
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "20",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "10",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "24",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "11",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "29",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "8",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "0",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "4",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "22",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "1",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "6",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "7",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "13",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "31",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "27",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "23",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "9",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "18",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "2",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "17",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "26",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "19",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "16",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "12",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "21",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "5",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "15",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "30",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "14",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "3",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "25",
          "tagType": "AtomicTag"
        },
        {
          "sourceTagPath": {
            "bindType": "parameter",
            "binding": "[.]../BooleanArray[{TagName}]"
          },
          "valueSource": "reference",
          "dataType": "Boolean",
          "alarms": [
            {
              "setpointA": 1.0,
              "name": "AlarmName",
              "label": "SystemTest"
            }
          ],
          "name": "28",
          "tagType": "AtomicTag"
        }
      ]
    },
    {
      "opcItemPath": {
        "bindType": "parameter",
        "binding": "{Tag}"
      },
      "valueSource": "opc",
      "dataType": "BooleanArray",
      "name": "BooleanArray",
      "value": [
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        false
      ],
      "tagType": "AtomicTag",
      "opcServer": "Ignition OPC UA Server"
    }
  ]
}
1 Like

Thanks for your solution.