Skip to content

Instantly share code, notes, and snippets.

@glumb
Last active July 3, 2017 19:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save glumb/f2ad6cf74ac41a5a3dc658ffb0e2696e to your computer and use it in GitHub Desktop.
Save glumb/f2ad6cf74ac41a5a3dc658ffb0e2696e to your computer and use it in GitHub Desktop.
<UANodeSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uax="http://opcfoundation.org/UA/2008/02/Types.xsd" xmlns="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd" xmlns:s1="http://yourorganisation.org/ISA95_IMAK-UCM/Types.xsd" xmlns:s2="http://www.OPCFoundation.org/UA/2013/01/ISA95/Types.xsd" xmlns:ua="http://unifiedautomation.com/Configuration/NodeSet.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<NamespaceUris>
<Uri>http://yourorganisation.org/ISA95_IMAK-UCM/</Uri>
<Uri>http://www.OPCFoundation.org/UA/2013/01/ISA95</Uri>
</NamespaceUris>
<Aliases>
<Alias Alias="Double">i=11</Alias>
<Alias Alias="String">i=12</Alias>
<Alias Alias="Organizes">i=35</Alias>
<Alias Alias="HasModellingRule">i=37</Alias>
<Alias Alias="HasTypeDefinition">i=40</Alias>
<Alias Alias="HasSubtype">i=45</Alias>
<Alias Alias="HasISA95Property">ns=2;i=2009</Alias>
<Alias Alias="HasISA95Attribute">ns=2;i=4713</Alias>
<Alias Alias="HasISA95ClassProperty">ns=2;i=4910</Alias>
<Alias Alias="DefinedByEquipmentClass">ns=2;i=4919</Alias>
</Aliases>
<Extensions>
<Extension>
<ua:ModelInfo Tool="UaModeler" Hash="E1kqafi/4k2C/zsXzFeaHw==" Version="1.5.0"/>
</Extension>
</Extensions>
<UAObjectType NodeId="ns=1;i=1005" BrowseName="1:MachineClassType">
<DisplayName>MachineClassType</DisplayName>
<References>
<Reference ReferenceType="HasSubtype" IsForward="false">ns=2;i=5034</Reference>
<Reference ReferenceType="HasISA95Attribute">ns=1;i=6005</Reference>
<Reference ReferenceType="HasISA95Attribute">ns=1;i=6006</Reference>
<Reference ReferenceType="DefinedByEquipmentClass" IsForward="false">ns=1;i=5002</Reference>
</References>
</UAObjectType>
<UAVariable DataType="String" ParentNodeId="ns=1;i=1005" NodeId="ns=1;i=6005" BrowseName="1:Manufacturer" UserAccessLevel="3" AccessLevel="3">
<DisplayName>Manufacturer</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=5049</Reference>
<Reference ReferenceType="HasModellingRule">i=78</Reference>
<Reference ReferenceType="HasISA95Attribute" IsForward="false">ns=1;i=1005</Reference>
</References>
<Value>
<uax:String></uax:String>
</Value>
</UAVariable>
<UAVariable DataType="String" ParentNodeId="ns=1;i=1005" NodeId="ns=1;i=6006" BrowseName="1:ModelNumber" UserAccessLevel="3" AccessLevel="3">
<DisplayName>ModelNumber</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
<Reference ReferenceType="HasModellingRule">i=78</Reference>
<Reference ReferenceType="HasISA95Attribute" IsForward="false">ns=1;i=1005</Reference>
</References>
<Value>
<uax:String></uax:String>
</Value>
</UAVariable>
<UAObjectType NodeId="ns=1;i=1006" BrowseName="1:ConveyorClassType">
<DisplayName>ConveyorClassType</DisplayName>
<References>
<Reference ReferenceType="HasSubtype" IsForward="false">ns=1;i=1005</Reference>
<Reference ReferenceType="DefinedByEquipmentClass" IsForward="false">ns=1;i=5003</Reference>
<Reference ReferenceType="DefinedByEquipmentClass" IsForward="false">ns=1;i=5004</Reference>
</References>
</UAObjectType>
<UAObjectType NodeId="ns=1;i=1011" BrowseName="1:HandlingClassType">
<DisplayName>HandlingClassType</DisplayName>
<References>
<Reference ReferenceType="HasSubtype" IsForward="false">ns=1;i=1005</Reference>
<Reference ReferenceType="DefinedByEquipmentClass" IsForward="false">ns=1;i=5008</Reference>
</References>
</UAObjectType>
<UAObjectType NodeId="ns=1;i=1007" BrowseName="1:TempererClassType">
<DisplayName>TempererClassType</DisplayName>
<References>
<Reference ReferenceType="HasSubtype" IsForward="false">ns=1;i=1005</Reference>
<Reference ReferenceType="DefinedByEquipmentClass" IsForward="false">ns=1;i=5005</Reference>
</References>
</UAObjectType>
<UAObjectType NodeId="ns=1;i=1008" BrowseName="1:TestClassType">
<DisplayName>TestClassType</DisplayName>
<References>
<Reference ReferenceType="HasSubtype" IsForward="false">ns=1;i=1005</Reference>
</References>
</UAObjectType>
<UAObjectType NodeId="ns=1;i=1009" BrowseName="1:InCircuitTestType">
<DisplayName>InCircuitTestType</DisplayName>
<References>
<Reference ReferenceType="HasSubtype" IsForward="false">ns=1;i=1008</Reference>
<Reference ReferenceType="DefinedByEquipmentClass" IsForward="false">ns=1;i=5006</Reference>
</References>
</UAObjectType>
<UAObjectType NodeId="ns=1;i=1010" BrowseName="1:UniversalContactingModulClassType">
<DisplayName>UniversalContactingModulClassType</DisplayName>
<References>
<Reference ReferenceType="HasSubtype" IsForward="false">ns=1;i=1008</Reference>
<Reference ReferenceType="DefinedByEquipmentClass" IsForward="false">ns=1;i=5007</Reference>
</References>
</UAObjectType>
<UAObjectType NodeId="ns=1;i=1002" BrowseName="1:MeasurementDeviceClassType">
<DisplayName>MeasurementDeviceClassType</DisplayName>
<References>
<Reference ReferenceType="HasISA95Attribute">ns=1;i=6001</Reference>
<Reference ReferenceType="HasSubtype" IsForward="false">ns=2;i=5034</Reference>
<Reference ReferenceType="HasISA95Attribute">ns=1;i=6002</Reference>
</References>
</UAObjectType>
<UAVariable DataType="String" ParentNodeId="ns=1;i=1002" NodeId="ns=1;i=6001" BrowseName="1:Manufacturer" UserAccessLevel="3" AccessLevel="3">
<DisplayName>Manufacturer</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=5049</Reference>
<Reference ReferenceType="HasModellingRule">i=78</Reference>
<Reference ReferenceType="HasISA95Attribute" IsForward="false">ns=1;i=1002</Reference>
</References>
<Value>
<uax:String></uax:String>
</Value>
</UAVariable>
<UAVariable DataType="String" ParentNodeId="ns=1;i=1002" NodeId="ns=1;i=6002" BrowseName="1:ModelNumber" UserAccessLevel="3" AccessLevel="3">
<DisplayName>ModelNumber</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
<Reference ReferenceType="HasModellingRule">i=78</Reference>
<Reference ReferenceType="HasISA95Attribute" IsForward="false">ns=1;i=1002</Reference>
</References>
<Value>
<uax:String></uax:String>
</Value>
</UAVariable>
<UAObjectType NodeId="ns=1;i=1004" BrowseName="1:EnergyMeasuringDeviceClassType">
<DisplayName>EnergyMeasuringDeviceClassType</DisplayName>
<References>
<Reference ReferenceType="HasISA95ClassProperty">ns=1;i=6004</Reference>
<Reference ReferenceType="HasSubtype" IsForward="false">ns=1;i=1002</Reference>
<Reference ReferenceType="DefinedByEquipmentClass" IsForward="false">ns=1;i=5009</Reference>
</References>
</UAObjectType>
<UAVariable DataType="Double" ParentNodeId="ns=1;i=1004" NodeId="ns=1;i=6004" BrowseName="1:ActivePower" UserAccessLevel="5" AccessLevel="5">
<DisplayName>ActivePower</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=5017</Reference>
<Reference ReferenceType="HasModellingRule">i=78</Reference>
<Reference ReferenceType="HasISA95ClassProperty" IsForward="false">ns=1;i=1004</Reference>
</References>
<Value>
<uax:Double>0</uax:Double>
</Value>
</UAVariable>
<UAObjectType NodeId="ns=1;i=1003" BrowseName="1:FlowMeasuringDeviceClassType">
<DisplayName>FlowMeasuringDeviceClassType</DisplayName>
<References>
<Reference ReferenceType="HasISA95ClassProperty">ns=1;i=6003</Reference>
<Reference ReferenceType="HasSubtype" IsForward="false">ns=1;i=1002</Reference>
<Reference ReferenceType="DefinedByEquipmentClass" IsForward="false">ns=1;i=5010</Reference>
</References>
</UAObjectType>
<UAVariable DataType="Double" ParentNodeId="ns=1;i=1003" NodeId="ns=1;i=6003" BrowseName="1:Flow" UserAccessLevel="5" AccessLevel="5">
<DisplayName>Flow</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=5017</Reference>
<Reference ReferenceType="HasModellingRule">i=78</Reference>
<Reference ReferenceType="HasISA95ClassProperty" IsForward="false">ns=1;i=1003</Reference>
</References>
<Value>
<uax:Double>0</uax:Double>
</Value>
</UAVariable>
<UAObject SymbolicName="IMAK_UCM" NodeId="ns=1;i=5002" BrowseName="1:IMAK-UCM">
<DisplayName>IMAK-UCM</DisplayName>
<References>
<Reference ReferenceType="HasISA95Property">ns=1;i=5003</Reference>
<Reference ReferenceType="HasISA95Property">ns=1;i=5004</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=5040</Reference>
<Reference ReferenceType="HasISA95Property">ns=1;i=5008</Reference>
<Reference ReferenceType="Organizes" IsForward="false">i=85</Reference>
<Reference ReferenceType="DefinedByEquipmentClass">ns=1;i=1005</Reference>
<Reference ReferenceType="HasISA95Attribute">ns=1;i=6007</Reference>
<Reference ReferenceType="HasISA95Property">ns=1;i=5005</Reference>
<Reference ReferenceType="HasISA95Property">ns=1;i=5006</Reference>
<Reference ReferenceType="HasISA95Property">ns=1;i=5007</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=1;i=5003" BrowseName="1:Conveyor1">
<DisplayName>Conveyor1</DisplayName>
<References>
<Reference ReferenceType="DefinedByEquipmentClass">ns=1;i=1006</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=5040</Reference>
<Reference ReferenceType="HasISA95Property" IsForward="false">ns=1;i=5002</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=1;i=5004" BrowseName="1:Conveyor2">
<DisplayName>Conveyor2</DisplayName>
<References>
<Reference ReferenceType="DefinedByEquipmentClass">ns=1;i=1006</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=5040</Reference>
<Reference ReferenceType="HasISA95Property" IsForward="false">ns=1;i=5002</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=1;i=5008" BrowseName="1:HandlingUnit">
<DisplayName>HandlingUnit</DisplayName>
<References>
<Reference ReferenceType="Organizes">ns=1;i=5009</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=5040</Reference>
<Reference ReferenceType="HasISA95Property">ns=1;i=5010</Reference>
<Reference ReferenceType="DefinedByEquipmentClass">ns=1;i=1011</Reference>
<Reference ReferenceType="HasISA95Property" IsForward="false">ns=1;i=5002</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=1;i=5009" BrowseName="1:EnergyMeasuringSystem">
<DisplayName>EnergyMeasuringSystem</DisplayName>
<References>
<Reference ReferenceType="HasISA95Property">ns=1;i=6010</Reference>
<Reference ReferenceType="DefinedByEquipmentClass">ns=1;i=1004</Reference>
<Reference ReferenceType="Organizes" IsForward="false">ns=1;i=5008</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=5040</Reference>
<Reference ReferenceType="HasISA95Attribute">ns=1;i=6008</Reference>
<Reference ReferenceType="HasISA95Attribute">ns=1;i=6009</Reference>
</References>
</UAObject>
<UAVariable DataType="Double" NodeId="ns=1;i=6010" BrowseName="1:ActivePower" UserAccessLevel="3" AccessLevel="3">
<DisplayName>ActivePower</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=954</Reference>
<Reference ReferenceType="HasISA95Property" IsForward="false">ns=1;i=5009</Reference>
</References>
<Value>
<uax:Double>0</uax:Double>
</Value>
</UAVariable>
<UAVariable DataType="String" NodeId="ns=1;i=6008" BrowseName="1:Manufacturer" UserAccessLevel="3" AccessLevel="3">
<DisplayName>Manufacturer</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=5049</Reference>
<Reference ReferenceType="HasISA95Attribute" IsForward="false">ns=1;i=5009</Reference>
</References>
<Value>
<uax:String>SENTRON</uax:String>
</Value>
</UAVariable>
<UAVariable DataType="String" NodeId="ns=1;i=6009" BrowseName="1:ModelNumber" UserAccessLevel="3" AccessLevel="3">
<DisplayName>ModelNumber</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
<Reference ReferenceType="HasISA95Attribute" IsForward="false">ns=1;i=5009</Reference>
</References>
<Value>
<uax:String>PAC4200</uax:String>
</Value>
</UAVariable>
<UAObject NodeId="ns=1;i=5010" BrowseName="1:FlowMeasuringSystem">
<DisplayName>FlowMeasuringSystem</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=5040</Reference>
<Reference ReferenceType="HasISA95Property">ns=1;i=6013</Reference>
<Reference ReferenceType="DefinedByEquipmentClass">ns=1;i=1003</Reference>
<Reference ReferenceType="HasISA95Property" IsForward="false">ns=1;i=5008</Reference>
<Reference ReferenceType="HasISA95Attribute">ns=1;i=6011</Reference>
<Reference ReferenceType="HasISA95Attribute">ns=1;i=6012</Reference>
</References>
</UAObject>
<UAVariable DataType="Double" NodeId="ns=1;i=6013" BrowseName="1:Flow" UserAccessLevel="5" AccessLevel="5">
<DisplayName>Flow</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=954</Reference>
<Reference ReferenceType="HasISA95Property" IsForward="false">ns=1;i=5010</Reference>
</References>
<Value>
<uax:Double>0</uax:Double>
</Value>
</UAVariable>
<UAVariable DataType="String" NodeId="ns=1;i=6011" BrowseName="1:Manufacturer" UserAccessLevel="5" AccessLevel="5">
<DisplayName>Manufacturer</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=5049</Reference>
<Reference ReferenceType="HasISA95Attribute" IsForward="false">ns=1;i=5010</Reference>
</References>
<Value>
<uax:String>FESTO</uax:String>
</Value>
</UAVariable>
<UAVariable DataType="String" NodeId="ns=1;i=6012" BrowseName="1:ModelNumber" UserAccessLevel="5" AccessLevel="5">
<DisplayName>ModelNumber</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
<Reference ReferenceType="HasISA95Attribute" IsForward="false">ns=1;i=5010</Reference>
</References>
<Value>
<uax:String>SFAB</uax:String>
</Value>
</UAVariable>
<UAVariable DataType="String" NodeId="ns=1;i=6007" BrowseName="1:Manufacturer" UserAccessLevel="5" AccessLevel="5">
<DisplayName>Manufacturer</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=5049</Reference>
<Reference ReferenceType="HasISA95Attribute" IsForward="false">ns=1;i=5002</Reference>
</References>
<Value>
<uax:String>IMAK</uax:String>
</Value>
</UAVariable>
<UAObject NodeId="ns=1;i=5005" BrowseName="1:Temperer">
<DisplayName>Temperer</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=5040</Reference>
<Reference ReferenceType="DefinedByEquipmentClass">ns=1;i=1007</Reference>
<Reference ReferenceType="HasISA95Property" IsForward="false">ns=1;i=5002</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=1;i=5006" BrowseName="1:UCM1">
<DisplayName>UCM1</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=5040</Reference>
<Reference ReferenceType="DefinedByEquipmentClass">ns=1;i=1009</Reference>
<Reference ReferenceType="HasISA95Property" IsForward="false">ns=1;i=5002</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=1;i=5007" BrowseName="1:UCM2">
<DisplayName>UCM2</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=5040</Reference>
<Reference ReferenceType="DefinedByEquipmentClass">ns=1;i=1010</Reference>
<Reference ReferenceType="HasISA95Property" IsForward="false">ns=1;i=5002</Reference>
</References>
</UAObject>
</UANodeSet>
/**************************************************************************************************
* Import required node-modules
**************************************************************************************************/
var color = require("colors");
var fs = require('fs');
var opcua = require("node-opcua");
var path = require("path");
/**************************************************************************************************
* Configure & initialize server
**************************************************************************************************/
var defaultPort = 5555;
var server_options = {
port: cliParameters.port,
//xx (not used: causes UAExpert to get confused) resourcePath: "UA/Server",
nodeset_filename: [
opcua.standard_nodeset_file,
//ISA95-nodes
path.join(__dirname,"./nodesets/isa95_imak-ucm.xml")
]
};
var server = new opcua.OPCUAServer(server_options);
server.buildInfo.productName = "MySampleServer1";
server.initialize(function () {
console.log("OPCUA server initialized".green);
onServerInitialized(server);
});
function onServerInitialized(server) {
var addressSpace = server.engine.addressSpace;
/**********************************************************************************************
* Run server
**********************************************************************************************/
server.start(function () {
console.log("OPCUA server running".green);
console.log("Endpoint url is ".green + (server.endpoints[0].endpointDescriptions()[0].endpointUrl).grey);
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment