More Related Content Similar to Practical usage of OPC UA information models (8) More from Eero Laukkanen (6) Practical usage of OPC UA information models10. <UAObjectType NodeId="ns=1;i=1001" BrowseName="1:ValveType">
<DisplayName>ValveType</DisplayName>
<References>
<Reference ReferenceType="HasProperty">ns=1;i=6012</Reference>
<Reference ReferenceType="HasComponent">ns=1;i=6010</Reference>
<Reference ReferenceType="HasComponent">ns=1;i=6011</Reference>
<Reference ReferenceType="HasSubtype" IsForward="false">i=58</Reference>
</References>
</UAObjectType>
<UAVariable DataType="Date" ParentNodeId="ns=1;i=1001" NodeId="ns=1;i=6012" Browse
<DisplayName>BestBefore</DisplayName>
<References>
<Reference ReferenceType="HasModellingRule">i=78</Reference>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
<Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=1001</Refe
</References>
</UAVariable>
<UAVariable DataType="Double" ParentNodeId="ns=1;i=1001" NodeId="ns=1;i=6010" Brow
XML
12. Model XML Types
<UAObjectType NodeId="ns=1;i=1001" BrowseName="1:ValveType">
<DisplayName>ValveType</DisplayName>
<References>
<Reference ReferenceType="HasProperty">ns=1;i=6012</Reference>
<Reference ReferenceType="HasComponent">ns=1;i=6010</Reference>
<Reference ReferenceType="HasComponent">ns=1;i=6011</Reference>
<Reference ReferenceType="HasSubtype" IsForward="false">i=58</Reference>
</References>
</UAObjectType>
<UAVariable DataType="Date" ParentNodeId="ns=1;i=1001" NodeId="ns=1;i=6012"
BrowseName="1:BestBefore" UserAccessLevel="3" AccessLevel="3">
<DisplayName>BestBefore</DisplayName>
<References>
<Reference ReferenceType="HasModellingRule">i=78</Reference>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
<Reference ReferenceType="HasProperty"
IsForward="false">ns=1;i=1001</Reference>
</References>
</UAVariable>
<UAVariable DataType="Double" ParentNodeId="ns=1;i=1001" NodeId="ns=1;i=6010"
BrowseName="1:Flow" UserAccessLevel="3" AccessLevel="3">
<DisplayName>Flow</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
<Reference ReferenceType="HasModellingRule">i=78</Reference>
<Reference ReferenceType="HasComponent"
IsForward="false">ns=1;i=1001</Reference>
</References>
</UAVariable>
<UAVariable DataType="Boolean" ParentNodeId="ns=1;i=1001" NodeId="ns=1;i=6011"
BrowseName="1:IsOpen" UserAccessLevel="3" AccessLevel="3">
<DisplayName>IsOpen</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
<Reference ReferenceType="HasModellingRule">i=78</Reference>
<Reference ReferenceType="HasComponent"
IsForward="false">ns=1;i=1001</Reference>
</References>
</UAVariable>
MANUAL
24. // using "pure" nodes
UaNode valve = …;
double flow = (Double) valve.getComponent("Flow").getValue();
boolean isOpen = (Boolean) valve.getComponent("IsOpen").getValue();
DateTime bestBefore = (DateTime)
valve.getProperty("BestBefore").getValue();
// using generated Java class
ValveType valve = …;
double flow = valve.getFlowValue();
Boolean isOpen = valve.getIsOpenValue();
DateTime bestBefore = valve.getBestBefore();
32. // create valve object
NodeManagerUaNode manager = …;
NodeId valveTypeId = …;
ValveType valve =
manager.createNodeWithTypeAndName(valveTypeId, "Valve1");
// add object to the address space
UaObject objects = manager.getNode(Identifiers.ObjectsFolder);
objects.addComponent(valve);
// use the object
valve.setFlowValue(0.674);
valve.setIsOpenValue(true);
DateTime bestBefore = DateTime.parseDateTime("2024-11-16");
valve.setBestBeforeValue(bestBefore);