Can't write value to OPC-UA Integer Array

Here is my version information and current settings:

  • Ignition Platform : 8.1.23
  • OPC-UA Module 9.1.23
  • Vision Modle 11.1.23
  • OpcComModule 6.1.23
  • Windows 10 Operating System
  • TwinCat 3 PLC

Ignition OPC Client Gateway Settings

  • Connected to OPC Server as authenticated user
  • Client Connection Enabled
  • Read only disabled

UA Expert
I can read and write to integer arrays from UA Expert without issue. I wrote an 8 to Write_Array[0] as a test and the write was successful.

Similar thread with same issue

My Issue
I want to write to a single bit in an integer array. The array I am using is published on the OPC server as "External Read/Write".

My HMI background is predominantly FactoryTalk, VTScada, DeltaV, etc. In those programs I'll usually setup an integer array that I can write both integer and bits for various functions and parameters such as push buttons, settings, etc.

I've recreated what I would normally do in Ignition, however I can't write any integer value to the specified array index. For example, I have Write_Array[0] and trying to write anything returns the following:

[Bad("Bad_WriteNotSupported: The server not does support writing the combination of value.")]

Attempt 1: Binding numeric text field to tag
I've tried multiple solutions. Binding the tag to the control or value property does not work. See below where I attempt to write a 2 to a numeric text field.

Attempt 2: Writing to tag using scripting
Next I applied the solution from the linked thread above with scripting. I have a template for a pushbutton with a custom property for a bit and word. Binding a property to a tag doesn't work. So I've hardcoded the array and index that I'm writing to.

Here's the result after the clicking the button:

Conclusion
I've tested multiple solutions and I'm not sure what the issue could be. I can write to tags that are single booleans or integers no problem. For whatever reason I can't write to an array. Any help would be appreciated.

This means the server does not support the IndexRange parameter of the OPC UA write service.

When you write with UaExpert what it's actually doing is writing the entire array with any modifications you made to it in the UI.

You'll have to build up the full array and do the same in Ignition, but this must be done from scripting. A write to the element always attempts to use the IndexRange parameter of the OPC UA Write service so that the write can be as atomic as possible when supported by the server.

Worked like a charm. Thank you.

Bit was set and cleared with no problem.