Custom Data Types for Adapter for OPC
In Adapter for OPC, when any new custom data types are defined in the OPC server side, then Adapter for OPC is unable to understand these data types as custom data type class definition is not available in Adapter for OPC class path. To avoid this kind of circumstance, additional changes are made so that Adapter for OPC can easily access the custom data types.
To access the custom data type value of the nodes, the custom data type class definition needs to be available in Adapter for OPC class path. You have to generate classes from information model and place into InformationModeler.jar file. The InformationModeler.jar file needs to be available in WmOPCAdapter/Code/jars folder because the custom data types cannot work without the InformationModeler jar file.
To understand the data type, InformationModeler.jar file must have the following information.
InformationModeler XML file
Packages consisting of classes generated from information model file
The server has to map the information into the InformationModeler XML file. For example:
<informationModel>
<modeler namespaceUri="http://ua.prosysopc.com/STypes">
<modelerInfo uaTypeInstance="example.packagename.client.BuildInfoVarTypeTestImpl"
serializer="example.packagename.BuildInfoTypeTestSerializer"/>
<dataTypeDictionary>
<nodeInfo id="i=449" name="BuildInfoTypeTest"
class="example.packagename.BuildInfoTypeTest" />
</dataTypeDictionary>
</modeler>
</informationModel>
The following table explains how the adapter understands based on the information present in the InformationModeler XML file.
Attributes | Description |
namespaceUri | Namespace URI of custom data type node |
uaTypeInstance | Class name of the custom data type that extends com.prosysopc.ua.types.opcua.client.BaseDataVariableTypeImpl and implements com.prosysopc.ua.types.opcua.BaseDataVariableType. |
serializer | Name of the class for encoding and decoding of data |
node Id | Type of Node |
name | Name of the custom data type node |
class | Name of the class that extends org.opcfoundation.ua.utils.AbstractStructure |