The following Functionblocks have been released with specification v1. For future use it’s recommended to work with the new “List” version of these Functionblocks.

Example: Instead of multiple times calling UA_NamespaceGetIndex or UA_Read to handle one node it makes sense to reduce effort and complexity by using once only UA_NamespaceGetIndexList and UA_ReadList.

Customers who implemented their applications based on this set of Functionblocks of v1.0 can continue using this standard – but should think about using the newly specified Functionblocks in the future.

FB-Name

UA_NamespaceGetIndex

This Function Block is used to get the namespace-index of a namespace-URI

VAR_INPUT

B

Execute

BOOL

FB performs its task on rising edge on this input.

B

ConnectionHdl

DWORD

Connection handle.

B

NamespaceUri

STRING

Namespace URI.

B

Timeout

TIME

Maximum time to response.

VAR_OUTPUT

B

NamespaceIndex

UINT

Namespace Index.

B

Done

BOOL

FB has completed its task.

B

Busy

BOOL

The FB is not finished and new output values are to be expected.

B

Error

BOOL

Signals that an error has occurred within the FB.

B

ErrorID

DWORD

Error code.

Notes: This FB is deprecated and just for backward compatibility – better use UA_NamespaceGetIndexList

UA_NamespaceGetIndex

BOOL

Execute

NamespaceIndex

UINT

DWORD

ConnectionHdl

Done

BOOL

STRING

NamespaceUri

Busy

BOOL

TIME

Timeout

Error

BOOL

ErrorID

DWORD

FB-Name

UA_TranslatePath

This Function Block is used to get the node parameters of a node using path of the node.

VAR_INPUT

B

Execute

BOOL

FB performs its task on rising edge on this input.

B

ConnectionHdl

DWORD

Connection handle.

B

StartNodeID

STRUCT

See UANodeID. Structure UANodeID with node parameters for starting node.

B

RelativePath

STRING

Path of the Target node; BNF of RelativePath is defined in OPC 10000-4.

B

Timeout

TIME

Time to response.

VAR_OUTPUT

B

TargetNodeID

STRUCT

See UANodeID. Structure UANodeID with node parameters. For target node mentioned by RelativePath at the input of this FB.

B

Done

BOOL

FB has completed its task.

B

Busy

BOOL

The FB is not finished and new output values are to be expected.

B

Error

BOOL

Signals that an error has occurred within the FB.

B

ErrorID

DWORD

Error code.

Notes: This FB is deprecated and just for backward compatibility – better use UA_TranslatePathList

UA_TranslatePath

BOOL

Execute

TargetNodeID

STRUCT

DWORD

ConnectionHdl

Done

BOOL

STRUCT

StartNodeID

Busy

BOOL

STRING

RelativePath

Error

BOOL

TIME

Timeout

ErrorID

DWORD

FB-Name

UA_NodeGetHandle

This Function Block is used to get the node handle.

VAR_INPUT

B

Execute

BOOL

FB performs its task on rising edge on this input.

B

ConnectionHdl

DWORD

Connection handle.

B

NodeID

STRUCT

See UANodeID

B

Timeout

TIME

Time to response.

VAR_OUTPUT

B

NodeHdl

DWORD

Node handle.

B

Done

BOOL

FB has completed its task.

B

Busy

BOOL

The FB is not finished and new output values are to be expected.

B

Error

BOOL

Signals that an error has occurred within the FB.

B

ErrorID

DWORD

Error code.

Notes: The NodeHdl is a reference to the internal management object for the node in the client. But the client shall also register the node at the server (“RegisterNode”). This enables the OPC UA Server to optimize the communication.

The scope of the NodeHdl is the connection. So a NodeHdl is unique for a connection but could be equal to a NodeHdl of another connection. This FB is deprecated and just for backward compatibility – better use UA_NodeGetHandleList

UA_NodeGetHandle

BOOL

Execute

NodeHdl

DWORD

DWORD

ConnectionHdl

Done

BOOL

STRUCT

NodeID

Busy

BOOL

TIME

Timeout

Error

BOOL

ErrorID

DWORD

FB-Name

UA_NodeReleaseHandle

This Function Block is used to release the node handle.

VAR_INPUT

B

Execute

BOOL

FB performs its task on rising edge on this input.

B

ConnectionHdl

DWORD

Connection handle.

B

NodeHdl

DWORD

Node handle to be released.

B

Timeout

TIME

Time to response.

VAR_OUTPUT

B

Done

BOOL

FB has completed its task.

B

Busy

BOOL

The FB is not finished and new output values are to be expected.

B

Error

BOOL

Signals that an error has occurred within the FB.

B

ErrorID

DWORD

Error code.

Notes: After calling UA_NodeReleaseHandle the NodeHdl will be invalid.

This FB is deprecated and just for backward compatibility – better use UA_NodeReleaseHandleList

UA_NodeReleaseHandle

BOOL

Execute

Done

BOOL

DWORD

ConnectionHdl

Busy

BOOL

DWORD

NodeHdl

Error

BOOL

TIME

Timeout

ErrorID

DWORD

FB-Name

UA_NodeGetInfo

This Function Block is used to get the node information.

VAR_INPUT

B

Execute

BOOL

On rising edge node information will be read.

B

ConnectionHdl

DWORD

Connection handle.

B

NodeID

STRUCT

See UANodeID

B

Timeout

TIME

Time to response.

VAR_OUTPUT

B

NodeInfo

STRUCT

See UANodeInfo (deprecated)

B

Done

BOOL

FB has completed its task.

B

Busy

BOOL

The FB is not finished and new output values are to be expected.

B

Error

BOOL

Signals that an error has occurred within the FB.

B

ErrorID

DWORD

Error code.

Notes: This FB is deprecated and just for backward compatibility – better use UA_NodeGetInformation

UA_NodeGetInfo

BOOL

Execute

NodeInfo

UANodeInfo

DWORD

ConnectionHdl

Done

BOOL

STRUCT

NodeID

Busy

BOOL

TIME

Timeout

Error

BOOL

ErrorID

DWORD

FB-Name

UA_SubscriptionOperate

This Function Block is designed to be optionally called -even cyclically- to check if the variables have been published and to check and modify publishing parameters (enable / interval).

VAR_INPUT

B

Execute

BOOL

FB operates on rising edge.

B

SubscriptionHdl

DWORD

Subscription handle.

B

PublishingEnable

BOOL

Activates the publishing.

B

Priority

BYTE

Priority of the Subscription in the server relative to the other Subscriptions created by this client.

B

Timeout

TIME

Time to response.

VAR_OUTPUT

B

Published

BOOL

Indicates, that variables have been published since the previous call.

B

Done

BOOL

FB has completed its task.

B

Busy

BOOL

The FB is not finished and new output values are to be expected.

B

Error

BOOL

Signals that an error has occurred within the FB.

B

ErrorID

DWORD

Error code.

VAR_IN_OUT

B

PublishingInterval

TIME

Publishing interval (can be changed by the Server revised publishing interval).

Notes: This FB is deprecated and just for backward compatibility – better use UA_NodeGetInformation

UA_SubscriptionOperate

BOOL

Execute

Published

BOOL

DWORD

SubscriptionHdl

Done

BOOL

BOOL

PublishingEnable

Busy

BOOL

BYTE

Priority

Error

BOOL

TIME

Timeout

ErrorID

DWORD

TIME

PublishingInterval

PublishingInterval

TIME

FB-Name

UA_MonitoredItemAdd

This Function Block can be used to add handle that values are updated by subscription.

VAR_INPUT

B

Execute

BOOL

On rising edge monitored item will be added to a subscription.

B

SubscriptionHdl

DWORD

Subscription handle.

B

NodeHdl

DWORD

Node handle.

B

NodeAddInfo

DWORD

See UANodeAdditionalInfo. Specifies the attribute and IndexRange.

B

Timeout

TIME

Time to response.

VAR_OUTPUT

B

MonitoredItemHdl

DWORD

Monitored item handle.

B

Done

BOOL

FB has completed its task.

B

Busy

BOOL

The FB is not finished and new output values are to be expected.

B

Error

BOOL

Signals that an error has occurred within the FB.

B

ErrorID

DWORD

Error code.

VAR_IN_OUT

B

Variable

Vendor specific

To be defined by vendor.

B

MonitoringSettings

STRUCT

See 9.1 UAMonitoredSettings (phased out structured data types)

Notes: VAR_IN_OUT: „Variable” as would provide best type save solution for users: The client firmware is able to map the UA memory layout to the controller layout. The firmware client can receive the type definition from the OPC UA Server.Workaround would be to provide a byte array as “Variables” and the firmware client just provide the blob (UA memory layout – so called “raw data”) into that byte array.

A “Variable” could be the name of the variable so the internal firmware can get address, length, data type of variable.

UA_MonitoredItemAdd

BOOL

Execute

MonitoredItemHdl

DWORD

DWORD

SubscriptionHdl

Done

BOOL

DWORD

NodeHdl

Busy

BOOL

DWORD

NodeAddInfo

Error

BOOL

TIME

Timeout

ErrorID

DWORD

Vendor specific

Variable

Variable

Vendor specific

STRUCT

MonitoringSetting

MonitoringSetting

STRUCT

FB-Name

UA_MonitoredItemRemove

This Function Block can be used to remove a handle from a subscription.

VAR_INPUT

B

Execute

BOOL

On rising edge node information will be read.

B

MonitoredItemHdl

DWORD

Monitored item handle.

B

Timeout

TIME

Time to response.

VAR_OUTPUT

B

Done

BOOL

FB has completed its task.

B

Busy

BOOL

The FB is not finished and new output values are to be expected.

B

Error

BOOL

Signals that an error has occurred within the FB.

B

ErrorID

DWORD

Error code.

Notes: -

UA_MonitoredItemRemove

BOOL

Execute

Done

BOOL

DWORD

MonitoredItemHdl

Busy

BOOL

TIME

Timeout

Error

BOOL

ErrorID

DWORD

FB-Name

UA_MonitoredItemOperate

This Function Block is designed to be optionally called to check and modify monitored item parameters.

VAR_INPUT

B

Execute

BOOL

On rising edge node information will be read.

B

MonitoredItemHdl

DWORD

Monitored item handle.

B

Timeout

TIME

Time to response.

VAR_OUTPUT

B

ValueChanged

BOOL

Indicates that the value of the monitored item has been changed.

B

TimeStamp

DT

TimeStamp

B

RemainingValueCount

UINT

Number of remaining value changes available for processingThis parameter is for diagnostic purpose and relates to the que size: High numbers indicate that the system is overloaded and should result in reducing the sample rate to faster process incoming MonitoredItems.

B

Done

BOOL

FB has completed its task.

B

Busy

BOOL

The FB is not finished and new output values are to be expected.

B

Error

BOOL

Signals that an error has occurred within the FB.

B

ErrorID

DWORD

Error code.

VAR_IN_OUT

B

MonitoringSettings

STRUCT

See 9.1 UAMonitoredSettings (phased out structured data types)

Notes: -

UA_MonitoredItemOperate

BOOL

Execute

ValueChanged

BOOL

DWORD

MonitoredItemHdl

TimeStamp

DT

TIME

Timeout

Done

BOOL

Busy

BOOL

Error

BOOL

ErrorID

DWORD

STRUCT

MonitoringSettings

MonitoringSettings

STRUCT

FB-Name

UA_Read

This Function Block is used to read the value of a single node.

VAR_INPUT

B

Execute

BOOL

On rising edge node information will be read.

B

ConnectionHdl

DWORD

Connection handle.

B

NodeHdl

DWORD

Node handle.

B

NodeAddInfo

UANodeAdditionalInfo

See UANodeAdditionalInfo. Specifies the attribute and IndexRange.

This parameter is optional. If not existing the UAAI_Value (13) will be taken from internal implementation.

B

Timeout

TIME

Time to response.

VAR_OUTPUT

B

Done

BOOL

FB has completed its task.

B

Busy

BOOL

The FB is not finished and new output values are to be expected.

B

Error

BOOL

Signals that an error has occurred within the FB.

B

ErrorID

DWORD

Error code.

B

TimeStamp

DT

TimeStamp.

This parameter is optional. If not existing the internal client implementation shall not ask for any timestamp from server side.

VAR_IN_OUT

B

Variable

Vendor specific

Vendor specific

Notes: Vendors can handle “Variable” in a vendor specific way. Independent of the vendor specific solution the mapping of the controller data type and OPC UA data type shall be handled in the function block.

VAR_IN_OUT: “Variable” as would provide best type save solution for users: The client firmware is able to map the UA memory layout to the controller layout. The firmware client can receive the type definition from the OPC UA Server.Workaround would be to provide a byte array as “Variable” and the firmware client just provide the blob (UA memory layout – so called “raw data”) into that byte array.

“Variable” could be the name of the variable so the internal firmware can get address, length, data type of variable.

This FB is deprecated and just for backward compatibility – better use UA_ReadList

UA_Read

BOOL

Execute

Done

BOOL

DWORD

ConnectionHdl

Busy

BOOL

DWORD

NodeHdl

Error

BOOL

STRUCT

NodeAddInfo

ErrorID

DWORD

TIME

Timeout

TimeStamp

DT

Vendor specific

Variable

Variable

Vendor specific

FB-Name

UA_Write

This Function Block is used to write a value to a single node.

VAR_INPUT

B

Execute

BOOL

On rising edge node information will be written.

B

ConnectionHdl

DWORD

Connection handle.

B

NodeHdl

DWORD

Node handle.

B

NodeAddInfo

STRUCT

See UANodeAdditionalInfo. Specifies the attribute and IndexRange. This parameter is optional. If not existing the UAAI_Value (13) will be taken from internal implementation.

B

Timeout

TIME

Time to response.

VAR_OUTPUT

B

Done

BOOL

FB has completed its task.

B

Busy

BOOL

The FB is not finished and new output values are to be expected.

B

Error

BOOL

Signals that an error has occurred within the FB.

B

ErrorID

DWORD

Error code.

VAR_IN_OUT

B

Variable

Vendor specific

To be defined by vendor.

Notes: Vendors can handle “Variable” in a vendor specific way. Independent of the vendor specific solution the mapping of the controller data type and OPC UA data type shall be handled in the function block.

VAR_IN_OUT: “Variable” as would provide best type save solution for users: The client firmware is able to map the UA memory layout to the controller layout. The firmware client can receive the type definition from the OPC UA Server.Workaround would be to provide a byte array as “Variable” and the firmware client just provide the blob (UA memory layout – so called “raw data”) into that byte array.

“Variable” could be the name of the variable so the internal firmware can get address, length, data type of variable.

This FB is deprecated and just for backward compatibility – better use UA_WriteList

UA_Write

BOOL

Execute

Done

BOOL

DWORD

ConnectionHdl

Busy

BOOL

DWORD

NodeHdl

Error

BOOL

STRUCT

NodeAddInfo

ErrorID

DWORD

TIME

Timeout

Vendor specific

Variable

Variable

Vendor specific

FB-Name

UA_MethodGetHandle

This Function Block is used to get the method handle for a method call.

VAR_INPUT

B

Execute

BOOL

FB performs its task on rising edge on this input.

B

ConnectionHdl

DWORD

Connection handle.

B

ObjectNodeID

STRUCT

See UANodeID

B

MethodNodeID

STRUCT

See UANodeID

B

Timeout

TIME

Time to response.

VAR_OUTPUT

B

MethodHdl

DWORD

Method handle.

B

Done

BOOL

FB has completed its task.

B

Busy

BOOL

The FB is not finished and new output values are to be expected.

B

Error

BOOL

Signals that an error has occurred within the FB.

B

ErrorID

DWORD

Error code.

Notes: This FB is deprecated and just for backward compatibility – better use UA_MethodGetHandleList

UA_MethodGetHandle

BOOL

Execute

MethodHdl

DWORD

DWORD

ConnectionHdl

Done

BOOL

STRUCT

ObjectNodeID

Busy

BOOL

STRUCT

MethodNodeID

Error

BOOL

TIME

Timeout

ErrorID

DWORD

FB-Name

UA_MethodReleaseHandle

This Function Block is used to release the method handle.

VAR_INPUT

B

Execute

BOOL

FB performs its task on rising edge on this input.

B

ConnectionHdl

DWORD

Connection handle.

B

MethodHdl

DWORD

Method handle to be released.

B

Timeout

TIME

Time to response.

VAR_OUTPUT

B

Done

BOOL

FB has completed its task.

B

Busy

BOOL

The FB is not finished and new output values are to be expected.

B

Error

BOOL

Signals that an error has occurred within the FB.

B

ErrorID

DWORD

Error code.

Notes: After calling UA_MethodReleaseHandle the MethodHdl will be invalid.

This FB is deprecated and just for backward compatibility – better use UA_MethodReleaseHandleList

UA_MethodReleaseHandle

BOOL

Execute

Done

BOOL

DWORD

ConnectionHdl

Busy

BOOL

DWORD

MethodHdl

Error

BOOL

TIME

Timeout

ErrorID

DWORD