Skip to content

Changing OpcUac subscription - 64 nodes limit #14

@TomTravnicek

Description

@TomTravnicek

If a subscription was made in AS4 using UA_MonitoredItemAdd in a loop for a set of nodes larger than 64 nodes, then in AS6 the set of nodes must be handled differently:

  • Either split the set into multiple subsets (each with <=64 nodes) and execute UA_MonitoredItemAddList FB for each subset or
  • Pass the entire set to a single UA_MonitoredItemAddList FB in parts (per partes).

Example:
Suppose you have a string array containing 65 node names to subscribe to. You can either:

  • Split the array based on functionality—for example, motorArray[64] with 33 nodes and temperatureArray[64] with 32 nodes—and execute UA_MonitoredItemAddList for each array, or
  • Create a temporary array tempArray[64], copy the first 64 nodes into it, and execute UA_MonitoredItemAddList for each block of up to 64 values.

Note that other function blocks, such as UA_NodeGetHandleList, UA_SubscriptionCreate, etc., must also be executed multiple times in this scenario.

This use case is difficult to handle with a migration script, but it may still occur, so it is documented here as well.
If anyone is interested in an example based on the AS6 OPC UA sample project, feel free to leave a comment on this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions