PLCopen blocks are defined to support client UA communication within an IEC1131-3 program. UA_Connect creates a transport connection for an OPC UA session. UA_Connect is to be executed once for each connection. The UA_NamespaceGetIndexList is executed once for each namespace. The NodeHdl for a specific node is retrieved once. UA_ReadList and UA_WriteList can be executed as often as necessary in the application and permitted by the system (given the global response time of the OPC UA server) . After the communication is finished, the node handle is no longer required and is released via the use of UA_NodeReleaseHandleList for all relevant handles. The connection handle is released using UA_Disconnect.

A list is handled as an array of the related base type (e.g. UANodeID or UANodeAdditionalInfo). Additionally, a specified length holds the number of elements in the array. Although several arrays can be connected to the function block (for example. node handles and variables in the case of UA_ReadList) there is only one length because all arrays have the same number of elements to be processed.
The UA_NodeGetHandleList returns a UANodeHdl array. This call does not verify that the given UANodeID is valid.
The UANodeID is checked only to determine if it is structurally correct (e.g. it’s not one of the UAIdentifierType mentioned values). If it is not correct, an error is detected and the corresponding error element (NodeErrorIDs) is returned. The output array of UA_NodeGetHandleList can be used unchanged for subsequent calls to function blocks UA_ReadList, UA_WriteList, but the control implementation checks the corresponding error element (NodeErrorIDs). If a general error is detected, no outputs will be changed from the underlying implementation.