10 Phased out Functionblocks

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.

10.1 UA_NamespaceGetIndex

FB-Name UA_NamespaceGetIndex
This Function Block is used to get the namespace-index of a namespace-URI
VAR_INPUT
BExecuteBOOLFB performs its task on rising edge on this input.
BConnectionHdlDWORDConnection handle.
BNamespaceUriSTRINGNamespace URI.
BTimeoutTIMEMaximum time to response.
VAR_OUTPUT
BNamespaceIndexUINTNamespace Index.
BDoneBOOLFB has completed its task.
BBusyBOOLThe FB is not finished and new output values are to be expected.
BErrorBOOLSignals that an error has occurred within the FB.
BErrorIDDWORDError code.
Notes: This FB is deprecated and just for backward compatibility – better use UA_NamespaceGetIndexList
UA_NamespaceGetIndex
BOOLExecuteNamespaceIndexUINT
DWORDConnectionHdlDoneBOOL
STRINGNamespaceUriBusyBOOL
TIMETimeoutErrorBOOL
ErrorIDDWORD

10.2 UA_TranslatePath

FB-Name UA_TranslatePath
This Function Block is used to get the node parameters of a node using path of the node.
VAR_INPUT
BExecuteBOOLFB performs its task on rising edge on this input.
BConnectionHdlDWORDConnection handle.
BStartNodeIDSTRUCTSee UANodeID. Structure UANodeID with node parameters for starting node.
BRelativePathSTRINGPath of the Target node; BNF of RelativePath is defined in OPC 10000-4.
BTimeoutTIMETime to response.
VAR_OUTPUT
BTargetNodeIDSTRUCTSee UANodeID. Structure UANodeID with node parameters. For target node mentioned by RelativePath at the input of this FB.
BDoneBOOLFB has completed its task.
BBusyBOOLThe FB is not finished and new output values are to be expected.
BErrorBOOLSignals that an error has occurred within the FB.
BErrorIDDWORDError code.
Notes: This FB is deprecated and just for backward compatibility – better use UA_TranslatePathList
UA_TranslatePath
BOOLExecuteTargetNodeIDSTRUCT
DWORDConnectionHdlDoneBOOL
STRUCTStartNodeIDBusyBOOL
STRINGRelativePathErrorBOOL
TIMETimeoutErrorIDDWORD

10.3 UA_NodeGetHandle

FB-Name UA_NodeGetHandle
This Function Block is used to get the node handle.
VAR_INPUT
BExecuteBOOLFB performs its task on rising edge on this input.
BConnectionHdlDWORDConnection handle.
BNodeIDSTRUCTSee UANodeID
BTimeoutTIMETime to response.
VAR_OUTPUT
BNodeHdlDWORDNode handle.
BDoneBOOLFB has completed its task.
BBusyBOOLThe FB is not finished and new output values are to be expected.
BErrorBOOLSignals that an error has occurred within the FB.
BErrorIDDWORDError 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
BOOLExecuteNodeHdlDWORD
DWORDConnectionHdlDoneBOOL
STRUCTNodeIDBusyBOOL
TIMETimeoutErrorBOOL
ErrorIDDWORD

10.4 UA_NodeReleaseHandle

FB-Name UA_NodeReleaseHandle
This Function Block is used to release the node handle.
VAR_INPUT
BExecuteBOOLFB performs its task on rising edge on this input.
BConnectionHdlDWORDConnection handle.
BNodeHdlDWORDNode handle to be released.
BTimeoutTIMETime to response.
VAR_OUTPUT
BDoneBOOLFB has completed its task.
BBusyBOOLThe FB is not finished and new output values are to be expected.
BErrorBOOLSignals that an error has occurred within the FB.
BErrorIDDWORDError 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
BOOLExecuteDoneBOOL
DWORDConnectionHdlBusyBOOL
DWORDNodeHdlErrorBOOL
TIMETimeoutErrorIDDWORD

10.5 UA_NodeGetInfo

FB-Name UA_NodeGetInfo
This Function Block is used to get the node information.
VAR_INPUT
BExecuteBOOLOn rising edge node information will be read.
BConnectionHdlDWORDConnection handle.
BNodeIDSTRUCTSee UANodeID
BTimeoutTIMETime to response.
VAR_OUTPUT
BNodeInfoSTRUCTSee UANodeInfo (deprecated)
BDoneBOOLFB has completed its task.
BBusyBOOLThe FB is not finished and new output values are to be expected.
BErrorBOOLSignals that an error has occurred within the FB.
BErrorIDDWORDError code.
Notes: This FB is deprecated and just for backward compatibility – better use UA_NodeGetInformation
UA_NodeGetInfo
BOOLExecuteNodeInfoUANodeInfo
DWORDConnectionHdl DoneBOOL
STRUCTNodeID BusyBOOL
TIMETimeout ErrorBOOL
ErrorIDDWORD

10.6 UA_SubscriptionOperate

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
BExecuteBOOLFB operates on rising edge.
BSubscriptionHdlDWORDSubscription handle.
BPublishingEnableBOOLActivates the publishing.
BPriorityBYTEPriority of the Subscription in the server relative to the other Subscriptions created by this client.
BTimeoutTIMETime to response.
VAR_OUTPUT
BPublishedBOOLIndicates, that variables have been published since the previous call.
BDoneBOOLFB has completed its task.
BBusyBOOLThe FB is not finished and new output values are to be expected.
BErrorBOOLSignals that an error has occurred within the FB.
BErrorIDDWORDError code.
VAR_IN_OUT
BPublishingIntervalTIMEPublishing 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
BOOLExecutePublishedBOOL
DWORDSubscriptionHdlDoneBOOL
BOOLPublishingEnableBusyBOOL
BYTEPriorityErrorBOOL
TIMETimeoutErrorIDDWORD
TIMEPublishingIntervalPublishingIntervalTIME

10.7 UA_MonitoredItemAdd

FB-Name UA_MonitoredItemAdd
This Function Block can be used to add handle that values are updated by subscription.
VAR_INPUT
BExecuteBOOLOn rising edge monitored item will be added to a subscription.
BSubscriptionHdlDWORDSubscription handle.
BNodeHdlDWORDNode handle.
BNodeAddInfoDWORDSee UANodeAdditionalInfo. Specifies the attribute and IndexRange.
BTimeoutTIMETime to response.
VAR_OUTPUT
BMonitoredItemHdlDWORDMonitored item handle.
BDoneBOOLFB has completed its task.
BBusyBOOLThe FB is not finished and new output values are to be expected.
BErrorBOOLSignals that an error has occurred within the FB.
BErrorIDDWORDError code.
VAR_IN_OUT
BVariableVendor specificTo be defined by vendor.
BMonitoringSettingsSTRUCTSee 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
BOOLExecuteMonitoredItemHdlDWORD
DWORDSubscriptionHdl DoneBOOL
DWORDNodeHdlBusyBOOL
DWORDNodeAddInfoErrorBOOL
TIMETimeoutErrorIDDWORD
Vendor specificVariableVariableVendor specific
STRUCTMonitoringSettingMonitoringSettingSTRUCT

10.8 UA_MonitoredItemRemove

FB-Name UA_MonitoredItemRemove
This Function Block can be used to remove a handle from a subscription.
VAR_INPUT
BExecuteBOOLOn rising edge node information will be read.
BMonitoredItemHdlDWORDMonitored item handle.
BTimeoutTIMETime to response.
VAR_OUTPUT
BDoneBOOLFB has completed its task.
BBusyBOOLThe FB is not finished and new output values are to be expected.
BErrorBOOLSignals that an error has occurred within the FB.
BErrorIDDWORDError code.
Notes: -
UA_MonitoredItemRemove
BOOLExecuteDoneBOOL
DWORDMonitoredItemHdl BusyBOOL
TIMETimeout ErrorBOOL
ErrorIDDWORD

10.9 UA_MonitoredItemOperate

FB-Name UA_MonitoredItemOperate
This Function Block is designed to be optionally called to check and modify monitored item parameters.
VAR_INPUT
BExecuteBOOLOn rising edge node information will be read.
BMonitoredItemHdlDWORDMonitored item handle.
BTimeoutTIMETime to response.
VAR_OUTPUT
BValueChangedBOOLIndicates that the value of the monitored item has been changed.
BTimeStampDTTimeStamp
BRemainingValueCountUINTNumber of remaining value changes available for processing
This 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.
BDoneBOOLFB has completed its task.
BBusyBOOLThe FB is not finished and new output values are to be expected.
BErrorBOOLSignals that an error has occurred within the FB.
BErrorIDDWORDError code.
VAR_IN_OUT
BMonitoringSettingsSTRUCTSee 9.1 UAMonitoredSettings (phased out structured data types)
Notes: -
UA_MonitoredItemOperate
BOOLExecuteValueChangedBOOL
DWORDMonitoredItemHdl TimeStampDT
TIMETimeout DoneBOOL
BusyBOOL
ErrorBOOL
ErrorIDDWORD
STRUCTMonitoringSettingsMonitoringSettingsSTRUCT

10.10 UA_Read

FB-Name UA_Read
This Function Block is used to read the value of a single node.
VAR_INPUT
BExecuteBOOLOn rising edge node information will be read.
BConnectionHdlDWORDConnection handle.
BNodeHdlDWORDNode handle.
BNodeAddInfo 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.

BTimeoutTIMETime to response.
VAR_OUTPUT
BDoneBOOLFB has completed its task.
BBusyBOOLThe FB is not finished and new output values are to be expected.
BErrorBOOLSignals that an error has occurred within the FB.
BErrorIDDWORDError code.
BTimeStampDT

TimeStamp.

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

VAR_IN_OUT
BVariableVendor specificVendor 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
BOOLExecuteDoneBOOL
DWORDConnectionHdlBusyBOOL
DWORDNodeHdlErrorBOOL
STRUCTNodeAddInfoErrorIDDWORD
TIMETimeoutTimeStampDT
Vendor specificVariableVariableVendor specific

10.11 UA_Write

FB-Name UA_Write
This Function Block is used to write a value to a single node.
VAR_INPUT
BExecuteBOOLOn rising edge node information will be written.
BConnectionHdlDWORDConnection handle.
BNodeHdlDWORDNode handle.
BNodeAddInfoSTRUCTSee UANodeAdditionalInfo. Specifies the attribute and IndexRange. This parameter is optional. If not existing the UAAI_Value (13) will be taken from internal implementation.
BTimeoutTIMETime to response.
VAR_OUTPUT
BDoneBOOLFB has completed its task.
BBusyBOOLThe FB is not finished and new output values are to be expected.
BErrorBOOLSignals that an error has occurred within the FB.
BErrorIDDWORDError code.
VAR_IN_OUT
BVariableVendor specificTo 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
BOOLExecuteDoneBOOL
DWORDConnectionHdlBusyBOOL
DWORDNodeHdlErrorBOOL
STRUCTNodeAddInfoErrorIDDWORD
TIMETimeout
Vendor specificVariableVariableVendor specific

10.12 UA_MethodGetHandle

FB-Name UA_MethodGetHandle
This Function Block is used to get the method handle for a method call.
VAR_INPUT
BExecuteBOOLFB performs its task on rising edge on this input.
BConnectionHdlDWORDConnection handle.
BObjectNodeIDSTRUCTSee UANodeID
BMethodNodeIDSTRUCTSee UANodeID
BTimeoutTIMETime to response.
VAR_OUTPUT
BMethodHdlDWORDMethod handle.
BDoneBOOLFB has completed its task.
BBusyBOOLThe FB is not finished and new output values are to be expected.
BErrorBOOLSignals that an error has occurred within the FB.
BErrorIDDWORDError code.
Notes: This FB is deprecated and just for backward compatibility – better use UA_MethodGetHandleList
UA_MethodGetHandle
BOOLExecuteMethodHdlDWORD
DWORDConnectionHdlDoneBOOL
STRUCTObjectNodeIDBusyBOOL
STRUCTMethodNodeIDErrorBOOL
TIMETimeoutErrorIDDWORD

10.13 UA_MethodReleaseHandle

FB-Name UA_MethodReleaseHandle
This Function Block is used to release the method handle.
VAR_INPUT
BExecuteBOOLFB performs its task on rising edge on this input.
BConnectionHdlDWORDConnection handle.
BMethodHdlDWORDMethod handle to be released.
BTimeoutTIMETime to response.
VAR_OUTPUT
BDoneBOOLFB has completed its task.
BBusyBOOLThe FB is not finished and new output values are to be expected.
BErrorBOOLSignals that an error has occurred within the FB.
BErrorIDDWORDError 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
BOOLExecuteDoneBOOL
DWORDConnectionHdlBusyBOOL
DWORDMethodHdlErrorBOOL
TIMETimeoutErrorIDDWORD