# Bit (and bool) Array Alarming

**URL:** <https://forum.inductiveautomation.com/t/bit-and-bool-array-alarming/66668>\
**Category:** Ignition\
**Tags:** ignition81, perspective\
**Created:** [November 18, 2022, 4:57am UTC](https://forum.inductiveautomation.com/t/bit-and-bool-array-alarming/66668 "2022-11-18T04:57:56Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![cam\_nicholson](https://avatars.discourse-cdn.com/v4/letter/c/9de053/32.png) [@cam\_nicholson](https://forum.inductiveautomation.com/u/cam_nicholson)\
**Post date:** [November 18, 2022, 4:57am UTC](https://forum.inductiveautomation.com/t/bit-and-bool-array-alarming/66668/1 "2022-11-18T04:57:56Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![nideyijuyidong](https://avatars.discourse-cdn.com/v4/letter/n/7cd45c/32.png) [@nideyijuyidong](https://forum.inductiveautomation.com/u/nideyijuyidong)\
**Post date:** [November 18, 2022, 9:25am UTC](https://forum.inductiveautomation.com/t/bit-and-bool-array-alarming/66668/2 "2022-11-18T09:25:30Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![cam\_nicholson](https://avatars.discourse-cdn.com/v4/letter/c/9de053/32.png) [@cam\_nicholson](https://forum.inductiveautomation.com/u/cam_nicholson)\
**Post date:** [November 20, 2022, 10:39pm UTC](https://forum.inductiveautomation.com/t/bit-and-bool-array-alarming/66668/3 "2022-11-20T22:39:12Z")

</div>

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!

---

<div class="post-metadata">

**Author:** ![Yousef\_Ali](https://avatars.discourse-cdn.com/v4/letter/y/87869e/32.png) [@Yousef\_Ali](https://forum.inductiveautomation.com/u/Yousef_Ali)\
**Post date:** [May 25, 2023, 9:43pm UTC](https://forum.inductiveautomation.com/t/bit-and-bool-array-alarming/66668/4 "2023-05-25T21:43:51Z")

</div>

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 ?

---

<div class="post-metadata">

**Author:** ![cam\_nicholson](https://avatars.discourse-cdn.com/v4/letter/c/9de053/32.png) [@cam\_nicholson](https://forum.inductiveautomation.com/u/cam_nicholson)\
**Post date:** [May 26, 2023, 5:21am UTC](https://forum.inductiveautomation.com/t/bit-and-bool-array-alarming/66668/5 "2023-05-26T05:21:23Z")

</div>

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.

```auto
{
  "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"
    }
  ]
}

```

---

<div class="post-metadata">

**Author:** ![Yousef\_Ali](https://avatars.discourse-cdn.com/v4/letter/y/87869e/32.png) [@Yousef\_Ali](https://forum.inductiveautomation.com/u/Yousef_Ali)\
**Post date:** [May 30, 2023, 10:08am UTC](https://forum.inductiveautomation.com/t/bit-and-bool-array-alarming/66668/6 "2023-05-30T10:08:12Z")

</div>

Thanks for your solution.
