Array distribution for OPC clients
- Last UpdatedOct 29, 2026
- 3 minute read
Array distribution is the method by which the elements of an array item on the OPC server are automatically associated with various types of project tags.
Note: This feature is not supported in projects that are configured to run on the Embedded target platform. For more information, see About target platforms, product types, and target systems.
The OPC clients in this software are capable of reading array items on the OPC server, but they cannot read only certain elements of those array items. Each array item is read in its entirety during every scan of an OPC client worksheet. In other words, it is not possible to associate a single project tag with a single element of an array item.
Instead, when an array item on the OPC server is read, the elements of that array item are automatically distributed to a group of project tags. You need to configure only a single row in the OPC client worksheet that associates the array item with the "first" tag in the group. What qualifies as the "first" tag, however, depends on how you have created and organized your project tags.
The following scenarios describe how array distribution works with different types of project tags.
Elements of an Array Item → Elements of an Array Tag
In this scenario, you can create an array tag in your project by increasing the Array property of a regular project tag, and then you can associate the array tag with the array item on the OPC server. The elements of the array item are distributed one-for-one to the elements of the array tag. If you specify an array index (for example, MyArrayTag[3]), the distribution will begin at that position. If you do not specify an array index, the distribution will begin at position 0 by default.
|
When Tag Name is… |
…the elements of the OPC array item are distributed to: |
|---|---|
|
MyArrayTag |
MyArrayTag[0], MyArrayTag[1], MyArrayTag[2] |
|
MyArrayTag[3] |
MyArrayTag[3], MyArrayTag[4], MyArrayTag[5] |
Make sure the array tag in your project is large enough to accommodate the elements of the array item on the OPC server. If it is not large enough, elements will be lost.
Elements of an Array Item → Sequentially Numbered Project Tags
In this scenario, you can create a series of sequentially numbered project tags, and then you can associate just the first tag in the series with the array item on the OPC server. The elements of the array item are distributed one-for-one to the project tags in the series.
|
When Tag Name is… |
…the elements of the OPC array item are distributed to: |
|---|---|
|
MyTag1 |
MyTag1, MyTag2, MyTag3 |
|
MyTag3 |
MyTag3, MyTag4, MyTag5 |
|
MyTag001 |
MyTag001, MyTag002, MyTag003 |
Make sure you create enough project tags to accommodate the elements of the array item on the OPC server. If there are not enough tags, elements will be lost.
Elements of an Array Item → Sequentially Numbered Members of a Class Tag
This scenario is similar to the previous scenario: you can create a class tag that consists of sequentially numbered members, and then you can associate just the member in the series with the array item on the OPC server. The elements of the array item are distributed one-for-one to the members in the series.
|
When Tag Name is… |
…the elements of the OPC array item are distributed to: |
|---|---|
|
MyClass.Member1 |
MyClass.Member1, MyClass.Member2, MyClass.Member3 |
|
MyClass.Member3 |
MyClass.Member3, MyClass.Member4, MyClass.Member5 |
|
MyClass.Member001 |
MyClass.Member001, MyClass.Member002, MyClass.Member003 |
Make sure you create enough members to accommodate the elements of the array item on the OPC server. If there are not enough members, elements will be lost.
Elements of an Array Item → An Array of Class Tags
This scenario is a combination of the previous scenarios in that you can create an array of class tags, and then the elements of the array item on the OPC server will be distributed amongst all of the members depending on which one you associate with the array item.
|
When Tag Name is… |
…the elements of the OPC array item are distributed to: |
|---|---|
|
MyArrayClass.Member |
MyArrayClass[0].Member, MyArrayClass[1].Member, MyArrayClass[2].Member |
|
MyArrayClass[3].Member |
MyArrayClass[3].Member, MyArrayClass[4].Member, MyArrayClass[5].Member |
|
MyArrayClass[3].Member1 |
MyArrayClass[3].Member1, MyArrayClass[3].Member2, MyArrayClass[3].Member3 |
|
MyArrayClass[3].Member3 |
MyArrayClass[3].Member3, MyArrayClass[3].Member4, MyArrayClass[3].Member5 |
|
MyArrayClass[3].Member001 |
MyArrayClass[3].Member001, MyArrayClass[3].Member002, MyArrayClass[3].Member003 |