node-red-contrib-opcua
Version:
A Node-RED node to communicate via OPC UA based on node-opcua library.
994 lines (941 loc) • 60.5 kB
text/xml
<?xml version="1.0" encoding="utf-8" ?>
<!--
* Copyright (c) 2005-2021 The OPC Foundation, Inc. All rights reserved.
*
* OPC Foundation MIT License 1.00
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*
* The complete license agreement can be found here:
* http://opcfoundation.org/License/MIT/1.00/
-->
<ModelDesign
xmlns:uax="http://opcfoundation.org/UA/2008/02/Types.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:OpcUa="http://opcfoundation.org/UA/"
xmlns:DI="http://opcfoundation.org/UA/DI/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
TargetNamespace="http://opcfoundation.org/UA/DI/"
TargetXmlNamespace="http://opcfoundation.org/UA/DI/"
TargetVersion="1.03.0"
TargetPublicationDate="2021-03-09T00:00:00Z"
xmlns="http://opcfoundation.org/UA/ModelDesign.xsd">
<Namespaces>
<Namespace Name="OpcUaDi" Prefix="Opc.Ua.Di" XmlNamespace="http://opcfoundation.org/UA/DI/Types.xsd" XmlPrefix="DI">http://opcfoundation.org/UA/DI/</Namespace>
<Namespace Name="OpcUa" Version="1.04.4" PublicationDate="2020-01-08T00:00:00Z" Prefix="Opc.Ua" InternalPrefix="Opc.Ua.Server" XmlNamespace="http://opcfoundation.org/UA/2008/02/Types.xsd" XmlPrefix="OpcUa">http://opcfoundation.org/UA/</Namespace>
</Namespaces>
<Object SymbolicName="DI:OPCUADINamespaceMetadata" TypeDefinition="OpcUa:NamespaceMetadataType">
<BrowseName>http://opcfoundation.org/UA/DI/</BrowseName>
<Children>
<Property SymbolicName="OpcUa:NamespaceUri" DataType="OpcUa:String">
<DefaultValue>
<uax:String>http://opcfoundation.org/UA/DI/</uax:String>
</DefaultValue>
</Property>
<Property SymbolicName="OpcUa:NamespaceVersion" DataType="OpcUa:String">
<DefaultValue>
<uax:String>1.03.0</uax:String>
</DefaultValue>
</Property>
<Property SymbolicName="OpcUa:NamespacePublicationDate" DataType="OpcUa:DateTime">
<DefaultValue>
<uax:DateTime>2021-03-09</uax:DateTime>
</DefaultValue>
</Property>
<Property SymbolicName="OpcUa:IsNamespaceSubset" DataType="OpcUa:Boolean">
<DefaultValue>
<uax:Boolean>false</uax:Boolean>
</DefaultValue>
</Property>
<Property SymbolicName="OpcUa:StaticNodeIdTypes" DataType="OpcUa:IdType" ValueRank="Array">
<DefaultValue>
<uax:ListOfInt32>
<uax:Int32>0</uax:Int32>
</uax:ListOfInt32>
</DefaultValue>
</Property>
<Property SymbolicName="OpcUa:StaticNumericNodeIdRange" DataType="OpcUa:NumericRange" ValueRank="Array"/>
<Property SymbolicName="OpcUa:StaticStringNodeIdPattern" DataType="OpcUa:String">
<DefaultValue>
<uax:String></uax:String>
</DefaultValue>
</Property>
<Property SymbolicName="OpcUa:DefaultRolePermissions" ModellingRule="Mandatory" />
<Property SymbolicName="OpcUa:DefaultUserRolePermissions" ModellingRule="Mandatory" />
<Property SymbolicName="OpcUa:DefaultAccessRestrictions" ModellingRule="Mandatory" />
</Children>
<References>
<Reference IsInverse="true">
<ReferenceType>OpcUa:HasComponent</ReferenceType>
<TargetId>OpcUa:Server_Namespaces</TargetId>
</Reference>
</References>
</Object>
<ReferenceType SymbolicName="DI:ConnectsTo" BaseType="OpcUa:HierarchicalReferences" Symmetric="true">
<Description>Used to indicate that source and target Node have a topological connection.</Description>
</ReferenceType>
<ReferenceType SymbolicName="DI:ConnectsToParent" BaseType="DI:ConnectsTo" Symmetric="true">
<Description>Defines the parent (i.e. the communication Device) of a Network.</Description>
</ReferenceType>
<ReferenceType SymbolicName="DI:IsOnline" BaseType="OpcUa:Aggregates">
<Description>Used to bind the offline representation of a Device to the online representation.</Description>
<InverseName>OnlineOf</InverseName>
</ReferenceType>
<Object SymbolicName="DI:DeviceSet" TypeDefinition="OpcUa:BaseObjectType">
<Description>Contains all instances of devices</Description>
<References>
<Reference IsInverse="true">
<ReferenceType>OpcUa:Organizes</ReferenceType>
<TargetId>OpcUa:ObjectsFolder</TargetId>
</Reference>
</References>
</Object>
<Object SymbolicName="DI:DeviceFeatures" TypeDefinition="OpcUa:BaseObjectType">
<References>
<Reference IsInverse="true">
<ReferenceType>OpcUa:Organizes</ReferenceType>
<TargetId>DI:DeviceSet</TargetId>
</Reference>
</References>
</Object>
<Object SymbolicName="DI:NetworkSet" TypeDefinition="OpcUa:BaseObjectType">
<Description>Contains all instances of communication networks</Description>
<References>
<Reference IsInverse="true">
<ReferenceType>OpcUa:Organizes</ReferenceType>
<TargetId>OpcUa:ObjectsFolder</TargetId>
</Reference>
</References>
</Object>
<Object SymbolicName="DI:DeviceTopology" TypeDefinition="OpcUa:BaseObjectType">
<Description>Starting point of the configured device topology.</Description>
<Children>
<Property SymbolicName="DI:OnlineAccess" DataType="OpcUa:Boolean">
<Description>Hint of whether the Server is currently able to communicate to Devices in the topology.</Description>
</Property>
</Children>
<References>
<Reference IsInverse="true">
<ReferenceType>OpcUa:Organizes</ReferenceType>
<TargetId>OpcUa:ObjectsFolder</TargetId>
</Reference>
</References>
</Object>
<ObjectType SymbolicName="DI:TopologyElementType" BaseType="OpcUa:BaseObjectType" IsAbstract="true">
<Description>Defines the basic information components for all configurable elements in a device topology</Description>
<Children>
<Object SymbolicName="DI:ParameterSet" TypeDefinition="OpcUa:BaseObjectType" ModellingRule="Optional">
<Description>Flat list of Parameters</Description>
<Children>
<Variable SymbolicName="DI:ParameterIdentifier" TypeDefinition="OpcUa:BaseDataVariableType" ModellingRule="MandatoryPlaceholder">
<BrowseName><ParameterIdentifier></BrowseName>
<Description>A parameter which belongs to the topology element.</Description>
</Variable>
</Children>
</Object>
<Object SymbolicName="DI:MethodSet" TypeDefinition="OpcUa:BaseObjectType" ModellingRule="Optional">
<Description>Flat list of Methods</Description>
</Object>
<Object SymbolicName="DI:GroupIdentifier" TypeDefinition="DI:FunctionalGroupType" ModellingRule="OptionalPlaceholder">
<BrowseName><GroupIdentifier></BrowseName>
<Description>An application specific functional group used to organize parameters and methods.</Description>
</Object>
<Object SymbolicName="DI:Identification" TypeDefinition="DI:FunctionalGroupType" ModellingRule="Optional">
<Description>Used to organize parameters for identification of this TopologyElement</Description>
</Object>
<Object SymbolicName="DI:Lock" TypeDefinition="DI:LockingServicesType" ModellingRule="Optional">
<Description>Used to lock the topology element.</Description>
</Object>
</Children>
</ObjectType>
<ObjectType SymbolicName="DI:IVendorNameplateType" BaseType="OpcUa:BaseInterfaceType" IsAbstract="true">
<Children>
<Property SymbolicName="DI:Manufacturer" DataType="OpcUa:LocalizedText" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:ManufacturerUri" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:Model" DataType="OpcUa:LocalizedText" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:HardwareRevision" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:SoftwareRevision" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:DeviceRevision" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:ProductCode" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:DeviceManual" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:DeviceClass" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:SerialNumber" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:ProductInstanceUri" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:RevisionCounter" DataType="OpcUa:Int32" ValueRank="Scalar" ModellingRule="Optional" />
</Children>
</ObjectType>
<ObjectType SymbolicName="DI:ITagNameplateType" BaseType="OpcUa:BaseInterfaceType" IsAbstract="true">
<Children>
<Property SymbolicName="DI:AssetId" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:ComponentName" DataType="OpcUa:LocalizedText" ValueRank="Scalar" ModellingRule="Optional" />
</Children>
</ObjectType>
<ObjectType SymbolicName="DI:IDeviceHealthType" BaseType="OpcUa:BaseInterfaceType" IsAbstract="true">
<Children>
<Variable SymbolicName="DI:DeviceHealth" DataType="DI:DeviceHealthEnumeration" ValueRank="Scalar" ModellingRule="Optional" />
<Object SymbolicName="DI:DeviceHealthAlarms" TypeDefinition="OpcUa:FolderType" ModellingRule="Optional" />
</Children>
</ObjectType>
<ObjectType SymbolicName="DI:ISupportInfoType" BaseType="OpcUa:BaseInterfaceType" IsAbstract="true">
<Children>
<Object SymbolicName="DI:DeviceTypeImage" TypeDefinition="OpcUa:FolderType" ModellingRule="Optional">
<Children>
<Variable SymbolicName="DI:ImageIdentifier" DataType="OpcUa:Image" ModellingRule="MandatoryPlaceholder">
<BrowseName><ImageIdentifier></BrowseName>
</Variable>
</Children>
</Object>
<Object SymbolicName="DI:Documentation" TypeDefinition="OpcUa:FolderType" ModellingRule="Optional">
<Children>
<Variable SymbolicName="DI:DocumentIdentifier" DataType="OpcUa:ByteString" ModellingRule="MandatoryPlaceholder">
<BrowseName><DocumentIdentifier></BrowseName>
</Variable>
</Children>
</Object>
<Object SymbolicName="DI:ProtocolSupport" TypeDefinition="OpcUa:FolderType" ModellingRule="Optional">
<Children>
<Variable SymbolicName="DI:ProtocolSupportIdentifier" DataType="OpcUa:ByteString" ModellingRule="MandatoryPlaceholder">
<BrowseName><ProtocolSupportIdentifier></BrowseName>
</Variable>
</Children>
</Object>
<Object SymbolicName="DI:ImageSet" TypeDefinition="OpcUa:FolderType" ModellingRule="Optional">
<Children>
<Variable SymbolicName="DI:ImageIdentifier" DataType="OpcUa:Image" ModellingRule="MandatoryPlaceholder">
<BrowseName><ImageIdentifier></BrowseName>
</Variable>
</Children>
</Object>
</Children>
</ObjectType>
<ObjectType SymbolicName="DI:ComponentType" BaseType="DI:TopologyElementType" IsAbstract="true">
<Children>
<Property SymbolicName="DI:Manufacturer" DataType="OpcUa:LocalizedText" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:ManufacturerUri" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:Model" DataType="OpcUa:LocalizedText" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:HardwareRevision" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:SoftwareRevision" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:DeviceRevision" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:ProductCode" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:DeviceManual" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:DeviceClass" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:SerialNumber" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:ProductInstanceUri" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:RevisionCounter" DataType="OpcUa:Int32" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:AssetId" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:ComponentName" DataType="OpcUa:LocalizedText" ValueRank="Scalar" ModellingRule="Optional" />
</Children>
<References>
<Reference IsInverse="false">
<ReferenceType>OpcUa:HasInterface</ReferenceType>
<TargetId>DI:IVendorNameplateType</TargetId>
</Reference>
<Reference IsInverse="false">
<ReferenceType>OpcUa:HasInterface</ReferenceType>
<TargetId>DI:ITagNameplateType</TargetId>
</Reference>
</References>
</ObjectType>
<ObjectType SymbolicName="DI:DeviceType" BaseType="DI:ComponentType" IsAbstract="true">
<Description>Defines the basic information components for all configurable elements in a device topology</Description>
<Children>
<Object SymbolicName="DI:CPIdentifier" TypeDefinition="DI:ConnectionPointType" ModellingRule="OptionalPlaceholder">
<BrowseName><CPIdentifier></BrowseName>
</Object>
<Property SymbolicName="DI:SerialNumber" DataType="OpcUa:String" ModellingRule="Mandatory" >
<Description>Identifier that uniquely identifies, within a manufacturer, a device instance</Description>
</Property>
<Property SymbolicName="DI:RevisionCounter" DataType="OpcUa:Int32" ModellingRule="Mandatory">
<Description>An incremental counter indicating the number of times the static data within the Device has been modified</Description>
</Property>
<Property SymbolicName="DI:Manufacturer" DataType="OpcUa:LocalizedText" ModellingRule="Mandatory">
<Description>Name of the company that manufactured the device</Description>
</Property>
<Property SymbolicName="DI:Model" DataType="OpcUa:LocalizedText" ModellingRule="Mandatory">
<Description>Model name of the device</Description>
</Property>
<Property SymbolicName="DI:DeviceManual" DataType="OpcUa:String" ModellingRule="Mandatory">
<Description>Address (pathname in the file system or a URL | Web address) of user manual for the device</Description>
</Property>
<Property SymbolicName="DI:DeviceRevision" DataType="OpcUa:String" ModellingRule="Mandatory">
<Description>Overall revision level of the device</Description>
</Property>
<Property SymbolicName="DI:SoftwareRevision" DataType="OpcUa:String" ModellingRule="Mandatory">
<Description>Revision level of the software/firmware of the device</Description>
</Property>
<Property SymbolicName="DI:HardwareRevision" DataType="OpcUa:String" ModellingRule="Mandatory">
<Description>Revision level of the hardware of the device</Description>
</Property>
<Property SymbolicName="DI:DeviceClass" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:ManufacturerUri" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:ProductCode" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Property SymbolicName="DI:ProductInstanceUri" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Optional" />
<Variable SymbolicName="DI:DeviceHealth" DataType="DI:DeviceHealthEnumeration" ValueRank="Scalar" ModellingRule="Optional" />
<Object SymbolicName="DI:DeviceHealthAlarms" TypeDefinition="OpcUa:FolderType" ModellingRule="Optional" />
<Object SymbolicName="DI:DeviceTypeImage" TypeDefinition="OpcUa:FolderType" ModellingRule="Optional">
<Description>Organizes pictures of the device.</Description>
<Children>
<Variable SymbolicName="DI:ImageIdentifier" DataType="OpcUa:Image" ModellingRule="MandatoryPlaceholder">
<BrowseName><ImageIdentifier></BrowseName>
<Description>An image of the device.</Description>
</Variable>
</Children>
</Object>
<Object SymbolicName="DI:Documentation" TypeDefinition="OpcUa:FolderType" ModellingRule="Optional">
<Description>Organizes documents for the device.</Description>
<Children>
<Variable SymbolicName="DI:DocumentIdentifier" DataType="OpcUa:ByteString" ModellingRule="MandatoryPlaceholder">
<BrowseName><DocumentIdentifier></BrowseName>
<Description>A document for the device.</Description>
</Variable>
</Children>
</Object>
<Object SymbolicName="DI:ProtocolSupport" TypeDefinition="OpcUa:FolderType" ModellingRule="Optional">
<Description>Protocol-specific files for the device.</Description>
<Children>
<Variable SymbolicName="DI:ProtocolSupportIdentifier" DataType="OpcUa:ByteString" ModellingRule="MandatoryPlaceholder">
<BrowseName><ProtocolSupportIdentifier></BrowseName>
<Description>A protocol-specific file for the device.</Description>
</Variable>
</Children>
</Object>
<Object SymbolicName="DI:ImageSet" TypeDefinition="OpcUa:FolderType" ModellingRule="Optional">
<Description>Organizes images that are used within UIElements.</Description>
<Children>
<Variable SymbolicName="DI:ImageIdentifier" DataType="OpcUa:Image" ModellingRule="MandatoryPlaceholder">
<BrowseName><ImageIdentifier></BrowseName>
<Description>An image for a UIElement.</Description>
</Variable>
</Children>
</Object>
</Children>
<References>
<Reference IsInverse="false">
<ReferenceType>OpcUa:HasInterface</ReferenceType>
<TargetId>DI:ISupportInfoType</TargetId>
</Reference>
<Reference IsInverse="false">
<ReferenceType>OpcUa:HasInterface</ReferenceType>
<TargetId>DI:IDeviceHealthType</TargetId>
</Reference>
</References>
</ObjectType>
<ObjectType SymbolicName="DI:SoftwareType" BaseType="DI:ComponentType">
<Children>
<Property SymbolicName="DI:Manufacturer" DataType="OpcUa:LocalizedText" ValueRank="Scalar" ModellingRule="Mandatory" />
<Property SymbolicName="DI:Model" DataType="OpcUa:LocalizedText" ValueRank="Scalar" ModellingRule="Mandatory" />
<Property SymbolicName="DI:SoftwareRevision" DataType="OpcUa:String" ValueRank="Scalar" ModellingRule="Mandatory" />
</Children>
</ObjectType>
<ObjectType SymbolicName="DI:BlockType" BaseType="DI:TopologyElementType" IsAbstract="true">
<Description>Adds the concept of Blocks needed for block-oriented FieldDevices</Description>
<Children>
<Property SymbolicName="DI:RevisionCounter" ModellingRule="Optional" DataType="OpcUa:Int32">
<Description>Incremental counter indicating the number of times the static data within the Block has been modified</Description>
</Property>
<Property SymbolicName="DI:ActualMode" ModellingRule="Optional" DataType="OpcUa:LocalizedText">
<Description>Current mode of operation the Block is able to achieve</Description>
</Property>
<Property SymbolicName="DI:PermittedMode" ModellingRule="Optional" DataType="OpcUa:LocalizedText" ValueRank="Array">
<Description>Modes of operation that are allowed for the Block based on application requirements</Description>
</Property>
<Property SymbolicName="DI:NormalMode" ModellingRule="Optional" DataType="OpcUa:LocalizedText" ValueRank="Array">
<Description>Mode the Block should be set to during normal operating conditions</Description>
</Property>
<Property SymbolicName="DI:TargetMode" ModellingRule="Optional" DataType="OpcUa:LocalizedText" ValueRank="Array">
<Description>Mode of operation that is desired for the Block</Description>
</Property>
</Children>
</ObjectType>
<ObjectType SymbolicName="DI:DeviceHealthDiagnosticAlarmType" BaseType="OpcUa:InstrumentDiagnosticAlarmType" IsAbstract="true" />
<ObjectType SymbolicName="DI:FailureAlarmType" BaseType="DI:DeviceHealthDiagnosticAlarmType" IsAbstract="false" />
<ObjectType SymbolicName="DI:CheckFunctionAlarmType" BaseType="DI:DeviceHealthDiagnosticAlarmType" IsAbstract="false" />
<ObjectType SymbolicName="DI:OffSpecAlarmType" BaseType="DI:DeviceHealthDiagnosticAlarmType" IsAbstract="false" />
<ObjectType SymbolicName="DI:MaintenanceRequiredAlarmType" BaseType="DI:DeviceHealthDiagnosticAlarmType" IsAbstract="false" />
<ObjectType SymbolicName="DI:ConfigurableObjectType" BaseType="OpcUa:BaseObjectType">
<Description>Defines a general pattern to expose and configure modular components</Description>
<Children>
<Object SymbolicName="DI:SupportedTypes" TypeDefinition="OpcUa:FolderType">
<Description>Folder maintaining the set of (sub-types of) BaseObjectTypes that can be instantiated in the ConfigurableComponent</Description>
</Object>
<Object SymbolicName="DI:ObjectIdentifier" TypeDefinition="OpcUa:BaseObjectType" ModellingRule="OptionalPlaceholder">
<BrowseName><ObjectIdentifier></BrowseName>
</Object>
</Children>
</ObjectType>
<ObjectType SymbolicName="DI:FunctionalGroupType" BaseType="OpcUa:FolderType">
<Description>FolderType is used to organize the Parameters and Methods from the complete set (ParameterSet, MethodSet) with regard to their application</Description>
<Children>
<Object SymbolicName="DI:GroupIdentifier" TypeDefinition="DI:FunctionalGroupType" ModellingRule="OptionalPlaceholder">
<BrowseName><GroupIdentifier></BrowseName>
<Description>An application specific functional group used to organize parameters and methods.</Description>
</Object>
<Variable SymbolicName="DI:UIElement" TypeDefinition="DI:UIElementType" ModellingRule="Optional">
<Description>A user interface element assigned to this group.</Description>
</Variable>
</Children>
</ObjectType>
<ObjectType SymbolicName="DI:ProtocolType" BaseType="OpcUa:BaseObjectType" IsAbstract="false">
<Description>General structure of a Protocol ObjectType</Description>
</ObjectType>
<DataType SymbolicName="DI:DeviceHealthEnumeration" BaseType="OpcUa:Enumeration">
<Fields>
<Field Name="NORMAL" Identifier="0">
<Description>This device functions normally.</Description>
</Field>
<Field Name="FAILURE" Identifier="1">
<Description>Malfunction of the device or any of its peripherals.</Description>
</Field>
<Field Name="CHECK_FUNCTION" Identifier="2">
<Description>Functional checks are currently performed.</Description>
</Field>
<Field Name="OFF_SPEC" Identifier="3">
<Description>The device is currently working outside of its specified range or that internal diagnoses indicate deviations from measured or set values.</Description>
</Field>
<Field Name="MAINTENANCE_REQUIRED" Identifier="4">
<Description>This element is working, but a maintenance operation is required.</Description>
</Field>
</Fields>
</DataType>
<VariableType SymbolicName="DI:UIElementType" BaseType="OpcUa:BaseDataVariableType" DataType="OpcUa:BaseDataType" ValueRank="Scalar" IsAbstract="true">
<Description>The base type for all UI Element Types.</Description>
</VariableType>
<ObjectType SymbolicName="DI:NetworkType" BaseType="OpcUa:BaseObjectType" IsAbstract="false">
<Description>Represents the communication means for Devices that are connected to it.</Description>
<Children>
<Object SymbolicName="DI:ProfileIdentifier" TypeDefinition="DI:ProtocolType" ModellingRule="MandatoryPlaceholder">
<BrowseName><ProfileIdentifier></BrowseName>
</Object>
<Object SymbolicName="DI:CPIdentifier" TypeDefinition="DI:ConnectionPointType" ModellingRule="OptionalPlaceholder">
<BrowseName><CPIdentifier></BrowseName>
<Description>The ConnectionPoint(s) that have been configured for this Network.</Description>
<ReferenceType>DI:ConnectsTo</ReferenceType>
</Object>
<Object SymbolicName="DI:Lock" TypeDefinition="DI:LockingServicesType" ModellingRule="Optional">
<Description>Used to lock the Network.</Description>
</Object>
</Children>
</ObjectType>
<ObjectType SymbolicName="DI:ConnectionPointType" BaseType="DI:TopologyElementType" IsAbstract="true">
<Description>Represents the interface (interface card) of a Device to a Network.</Description>
<Children>
<Object SymbolicName="DI:NetworkAddress" TypeDefinition="DI:FunctionalGroupType" ModellingRule="Mandatory">
<Description>The address of the device on this network.</Description>
</Object>
<Object SymbolicName="DI:ProfileIdentifier" TypeDefinition="DI:ProtocolType" ModellingRule="MandatoryPlaceholder">
<BrowseName><ProfileIdentifier></BrowseName>
</Object>
<Object SymbolicName="DI:NetworkIdentifier" TypeDefinition="DI:NetworkType" ModellingRule="OptionalPlaceholder">
<BrowseName><NetworkIdentifier></BrowseName>
<ReferenceType>DI:ConnectsTo</ReferenceType>
</Object>
</Children>
</ObjectType>
<Method SymbolicName="DI:TransferToDeviceMethodType">
<OutputArguments>
<Argument Name="TransferID" DataType="OpcUa:Int32" />
<Argument Name="InitTransferStatus" DataType="OpcUa:Int32" />
</OutputArguments>
</Method>
<Method SymbolicName="DI:TransferFromDeviceMethodType">
<OutputArguments>
<Argument Name="TransferID" DataType="OpcUa:Int32" />
<Argument Name="InitTransferStatus" DataType="OpcUa:Int32" />
</OutputArguments>
</Method>
<Method SymbolicName="DI:FetchTransferResultDataMethodType">
<InputArguments>
<Argument Name="TransferID" DataType="OpcUa:Int32" />
<Argument Name="SequenceNumber" DataType="OpcUa:Int32" />
<Argument Name="MaxParameterResultsToReturn" DataType="OpcUa:Int32" />
<Argument Name="OmitGoodResults" DataType="OpcUa:Boolean" />
</InputArguments>
<OutputArguments>
<Argument Name="FetchResultData" DataType="OpcUa:Structure" />
</OutputArguments>
</Method>
<DataType SymbolicName="DI:FetchResultDataType" BaseType="OpcUa:Structure" IsAbstract="true">
</DataType>
<DataType SymbolicName="DI:TransferResultErrorDataType" BaseType="DI:FetchResultDataType">
<Fields>
<Field Name="Status" DataType="OpcUa:Int32" />
<Field Name="Diagnostics" DataType="OpcUa:DiagnosticInfo" />
</Fields>
</DataType>
<DataType SymbolicName="DI:TransferResultDataDataType" BaseType="DI:FetchResultDataType">
<Fields>
<Field Name="SequenceNumber" DataType="OpcUa:Int32" />
<Field Name="EndOfResults" DataType="OpcUa:Boolean" />
<Field Name="ParameterDefs" DataType="DI:ParameterResultDataType" ValueRank="Array" />
</Fields>
</DataType>
<DataType SymbolicName="DI:ParameterResultDataType" BaseType="OpcUa:Structure">
<Fields>
<Field Name="NodePath" DataType="OpcUa:QualifiedName" ValueRank="Array" />
<Field Name="StatusCode" DataType="OpcUa:StatusCode" />
<Field Name="Diagnostics" DataType="OpcUa:DiagnosticInfo" />
</Fields>
</DataType>
<ObjectType SymbolicName="DI:TransferServicesType" BaseType="OpcUa:BaseObjectType" IsAbstract="false">
<Children>
<Method SymbolicName="DI:TransferToDevice" TypeDefinition="DI:TransferToDeviceMethodType" />
<Method SymbolicName="DI:TransferFromDevice" TypeDefinition="DI:TransferFromDeviceMethodType" />
<Method SymbolicName="DI:FetchTransferResultData" TypeDefinition="DI:FetchTransferResultDataMethodType" />
</Children>
</ObjectType>
<Property SymbolicName="DI:MaxInactiveLockTime" DataType="OpcUa:Duration" ValueRank="Scalar">
<Description>Server-specific period of time in milliseconds until the Server will revoke a lock.</Description>
<References>
<Reference IsInverse="true">
<ReferenceType>OpcUa:HasProperty</ReferenceType>
<TargetId>OpcUa:Server_ServerCapabilities</TargetId>
</Reference>
</References>
</Property>
<Method SymbolicName="DI:InitLockMethodType">
<InputArguments>
<Argument Name="Context" DataType="OpcUa:String" />
</InputArguments>
<OutputArguments>
<Argument Name="InitLockStatus" DataType="OpcUa:Int32" />
</OutputArguments>
</Method>
<Method SymbolicName="DI:RenewLockMethodType">
<OutputArguments>
<Argument Name="RenewLockStatus" DataType="OpcUa:Int32" />
</OutputArguments>
</Method>
<Method SymbolicName="DI:ExitLockMethodType">
<OutputArguments>
<Argument Name="ExitLockStatus" DataType="OpcUa:Int32" />
</OutputArguments>
</Method>
<Method SymbolicName="DI:BreakLockMethodType">
<OutputArguments>
<Argument Name="BreakLockStatus" DataType="OpcUa:Int32" />
</OutputArguments>
</Method>
<ObjectType SymbolicName="DI:LockingServicesType" BaseType="OpcUa:BaseObjectType" IsAbstract="false">
<Description>An interface for Locking.</Description>
<Children>
<Property SymbolicName="OpcUa:DefaultInstanceBrowseName" DataType="OpcUa:QualifiedName" ModellingRule="None">
<DefaultValue>
<uax:QualifiedName>
<uax:NamespaceIndex>1</uax:NamespaceIndex>
<uax:Name>Lock</uax:Name>
</uax:QualifiedName>
</DefaultValue>
</Property>
<Property SymbolicName="DI:Locked" DataType="OpcUa:Boolean" />
<Property SymbolicName="DI:LockingClient" DataType="OpcUa:String" />
<Property SymbolicName="DI:LockingUser" DataType="OpcUa:String" />
<Property SymbolicName="DI:RemainingLockTime" DataType="OpcUa:Duration" />
<Method SymbolicName="DI:InitLock" TypeDefinition="DI:InitLockMethodType"></Method>
<Method SymbolicName="DI:RenewLock" TypeDefinition="DI:RenewLockMethodType"></Method>
<Method SymbolicName="DI:ExitLock" TypeDefinition="DI:ExitLockMethodType"></Method>
<Method SymbolicName="DI:BreakLock" TypeDefinition="DI:BreakLockMethodType"></Method>
</Children>
</ObjectType>
<!--BEGIN SoftwareUpdate Model-->
<!--SoftwareUpdateType-->
<ObjectType SymbolicName="DI:SoftwareUpdateType" BaseType="OpcUa:BaseObjectType" IsAbstract="false">
<Description></Description>
<Children>
<Object SymbolicName="DI:Loading" TypeDefinition="DI:SoftwareLoadingType" ModellingRule="Optional">
</Object>
<Object SymbolicName="DI:PrepareForUpdate" TypeDefinition="DI:PrepareForUpdateStateMachineType" ModellingRule="Optional">
</Object>
<Object SymbolicName="DI:Installation" TypeDefinition="DI:InstallationStateMachineType" ModellingRule="Optional">
</Object>
<Object SymbolicName="DI:PowerCycle" TypeDefinition="DI:PowerCycleStateMachineType" ModellingRule="Optional">
</Object>
<Object SymbolicName="DI:Confirmation" TypeDefinition="DI:ConfirmationStateMachineType" ModellingRule="Optional">
</Object>
<Object SymbolicName="DI:Parameters" TypeDefinition="OpcUa:TemporaryFileTransferType" ModellingRule="Optional">
</Object>
<Variable SymbolicName="DI:UpdateStatus" DataType="OpcUa:LocalizedText" ModellingRule="Optional">
</Variable>
<Variable SymbolicName="DI:VendorErrorCode" DataType="OpcUa:Int32" ModellingRule="Optional">
</Variable>
<Property SymbolicName="OpcUa:DefaultInstanceBrowseName" DataType="OpcUa:QualifiedName" ModellingRule="None">
<DefaultValue>
<uax:QualifiedName>
<uax:NamespaceIndex>1</uax:NamespaceIndex>
<uax:Name>SoftwareUpdate</uax:Name>
</uax:QualifiedName>
</DefaultValue>
</Property>
</Children>
</ObjectType>
<!--SoftwareLoadingType-->
<ObjectType SymbolicName="DI:SoftwareLoadingType" BaseType="OpcUa:BaseObjectType" IsAbstract="true">
<Description></Description>
<Children>
<Variable SymbolicName="DI:UpdateKey" DataType="OpcUa:String" ModellingRule="Optional">
</Variable>
</Children>
</ObjectType>
<!--PackageLoadingType-->
<ObjectType SymbolicName="DI:PackageLoadingType" BaseType="DI:SoftwareLoadingType" IsAbstract="true">
<Description></Description>
<Children>
<Object SymbolicName="DI:CurrentVersion" TypeDefinition="DI:SoftwareVersionType" ModellingRule="Mandatory">
</Object>
<Object SymbolicName="DI:FileTransfer" TypeDefinition="OpcUa:TemporaryFileTransferType" ModellingRule="Mandatory">
</Object>
<Variable SymbolicName="DI:ErrorMessage" DataType="OpcUa:LocalizedText" ModellingRule="Mandatory">
</Variable>
<Property SymbolicName="DI:WriteBlockSize" DataType="OpcUa:UInt32" ModellingRule="Optional"/>
</Children>
</ObjectType>
<!--DirectLoadingType-->
<ObjectType SymbolicName="DI:DirectLoadingType" BaseType="DI:PackageLoadingType" IsAbstract="false">
<Description></Description>
<Children>
<Variable SymbolicName="DI:UpdateBehavior" DataType="DI:UpdateBehavior" ModellingRule="Mandatory">
</Variable>
<Property SymbolicName="DI:WriteTimeout" DataType="OpcUa:Duration" ModellingRule="Optional"/>
</Children>
</ObjectType>
<!--CachedLoadingType-->
<ObjectType SymbolicName="DI:CachedLoadingType" BaseType="DI:PackageLoadingType" IsAbstract="false">
<Description></Description>
<Children>
<Object SymbolicName="DI:PendingVersion" TypeDefinition="DI:SoftwareVersionType" ModellingRule="Mandatory">
<Description></Description>
</Object>
<Object SymbolicName="DI:FallbackVersion" TypeDefinition="DI:SoftwareVersionType" ModellingRule="Optional">
<Description></Description>
</Object>
<Method SymbolicName="DI:GetUpdateBehavior" TypeDefinition="DI:GetUpdateBehaviorCachedLoadingMethodType" ModellingRule="Mandatory"/>
</Children>
</ObjectType>
<!--FileSystemLoadingType-->
<ObjectType SymbolicName="DI:FileSystemLoadingType" BaseType="DI:SoftwareLoadingType" IsAbstract="false">
<Description></Description>
<Children>
<Object SymbolicName="OpcUa:FileSystem" TypeDefinition="OpcUa:FileDirectoryType" ModellingRule="Mandatory">
<Description></Description>
</Object>
<Method SymbolicName="DI:GetUpdateBehavior" TypeDefinition="DI:GetUpdateBehaviorFileSystemMethodType" ModellingRule="Mandatory"/>
<Method SymbolicName="DI:ValidateFiles" TypeDefinition="DI:ValidateFilesMethodType" ModellingRule="Optional"/>
</Children>
</ObjectType>
<!--SoftwareVersionType-->
<ObjectType SymbolicName="DI:SoftwareVersionType" TypeDefinition="OpcUa:BaseObjectType" IsAbstract="false">
<Description></Description>
<Children>
<Property SymbolicName="DI:Manufacturer" DataType="OpcUa:LocalizedText" ModellingRule="Mandatory"/>
<Property SymbolicName="DI:ManufacturerUri" DataType="OpcUa:String" ModellingRule="Mandatory"/>
<Property SymbolicName="DI:SoftwareRevision" DataType="OpcUa:String" ModellingRule="Mandatory"/>
<Property SymbolicName="DI:PatchIdentifiers" DataType="OpcUa:String" ModellingRule="Optional" ValueRank="Array"/>
<Property SymbolicName="DI:ReleaseDate" DataType="OpcUa:DateTime" ModellingRule="Optional"/>
<Property SymbolicName="DI:ChangeLogReference" DataType="OpcUa:String" ModellingRule="Optional"/>
<Property SymbolicName="DI:Hash" DataType="OpcUa:ByteString" ModellingRule="Optional"/>
</Children>
</ObjectType>
<!--PrepareStatemachine-->
<ObjectType SymbolicName="DI:PrepareForUpdateStateMachineType" BaseType="OpcUa:FiniteStateMachineType" IsAbstract="false">
<Description></Description>
<Children>
<Variable SymbolicName="DI:PercentComplete" DataType="OpcUa:Byte" ModellingRule="Optional">
</Variable>
<Method SymbolicName="DI:Prepare" ModellingRule="Mandatory">
</Method>
<Method SymbolicName="DI:Abort" ModellingRule="Mandatory">
</Method>
<Method SymbolicName="DI:Resume" ModellingRule="Optional">
</Method>
<Object SymbolicName="DI:Idle" TypeDefinition="OpcUa:InitialStateType" ModellingRule="None">
<Children>
<Property SymbolicName="OpcUa:StateNumber">
<DefaultValue>
<uax:UInt32>1</uax:UInt32>
</DefaultValue>
</Property>
</Children>
</Object>
<Object SymbolicName="DI:Preparing" TypeDefinition="OpcUa:StateType" ModellingRule="None">
<Children>
<Property SymbolicName="OpcUa:StateNumber">
<DefaultValue>
<uax:UInt32>2</uax:UInt32>
</DefaultValue>
</Property>
</Children>
</Object>
<Object SymbolicName="DI:PreparedForUpdate" TypeDefinition="OpcUa:StateType" ModellingRule="None">
<Children>
<Property SymbolicName="OpcUa:StateNumber">
<DefaultValue>
<uax:UInt32>3</uax:UInt32>
</DefaultValue>
</Property>
</Children>
</Object>
<Object SymbolicName="DI:Resuming" TypeDefinition="OpcUa:StateType" ModellingRule="None">
<Children>
<Property SymbolicName="OpcUa:StateNumber">
<DefaultValue>
<uax:UInt32>4</uax:UInt32>
</DefaultValue>
</Property>
</Children>
</Object>
<Object SymbolicName="DI:IdleToPreparing" TypeDefinition="OpcUa:TransitionType" ModellingRule="None">
<Children>
<Property SymbolicName="OpcUa:TransitionNumber">
<DefaultValue>
<uax:UInt32>12</uax:UInt32>
</DefaultValue>
</Property>
</Children>
<References>
<Reference>
<ReferenceType>OpcUa:FromState</ReferenceType>
<TargetId>DI:PrepareForUpdateStateMachineType_Idle</TargetId>
</Reference>
<Reference>
<ReferenceType>OpcUa:ToState</ReferenceType>
<TargetId>DI:PrepareForUpdateStateMachineType_Preparing</TargetId>
</Reference>
<Reference IsOneWay="true">
<ReferenceType>OpcUa:HasEffect</ReferenceType>
<TargetId>OpcUa:TransitionEventType</TargetId>
</Reference>
</References>
</Object>
<Object SymbolicName="DI:PreparingToIdle" TypeDefinition="OpcUa:TransitionType" ModellingRule="None">
<Children>
<Property SymbolicName="OpcUa:TransitionNumber">
<DefaultValue>
<uax:UInt32>21</uax:UInt32>
</DefaultValue>
</Property>
</Children>
<References>
<Reference>
<ReferenceType>OpcUa:FromState</ReferenceType>
<TargetId>DI:PrepareForUpdateStateMachineType_Preparing</TargetId>
</Reference>
<Reference>
<ReferenceType>OpcUa:ToState</ReferenceType>
<TargetId>DI:PrepareForUpdateStateMachineType_Idle</TargetId>
</Reference>
<Reference IsOneWay="true">
<ReferenceType>OpcUa:HasEffect</ReferenceType>
<TargetId>OpcUa:TransitionEventType</TargetId>
</Reference>
</References>
</Object>
<Object SymbolicName="DI:PreparingToPreparedForUpdate" TypeDefinition="OpcUa:TransitionType" ModellingRule="None">
<Children>
<Property SymbolicName="OpcUa:TransitionNumber">
<DefaultValue>
<uax:UInt32>23</uax:UInt32>
</DefaultValue>
</Property>
</Children>
<References>
<Reference>
<ReferenceType>OpcUa:FromState</ReferenceType>
<TargetId>DI:PrepareForUpdateStateMachineType_Preparing</TargetId>
</Reference>
<Reference>
<ReferenceType>OpcUa:ToState</ReferenceType>
<TargetId>DI:PrepareForUpdateStateMachineType_PreparedForUpdate</TargetId>
</Reference>
<Reference IsOneWay="true">
<ReferenceType>OpcUa:HasEffect</ReferenceType>
<TargetId>OpcUa:TransitionEventType</TargetId>
</Reference>
</References>
</Object>
<Object SymbolicName="DI:PreparedForUpdateToResuming" TypeDefinition="OpcUa:TransitionType" ModellingRule="None">
<Children>
<Property SymbolicName="OpcUa:TransitionNumber">
<DefaultValue>
<uax:UInt32>34</uax:UInt32>
</DefaultValue>
</Property>
</Children>
<References>
<Reference>
<ReferenceType>OpcUa:FromState</ReferenceType>
<TargetId>DI:PrepareForUpdateStateMachineType_PreparedForUpdate</TargetId>
</Reference>
<Reference>
<ReferenceType>OpcUa:ToState</ReferenceType>
<TargetId>DI:PrepareForUpdateStateMachineType_Resuming</TargetId>
</Reference>
<Reference IsOneWay="true">
<ReferenceType>OpcUa:HasEffect</ReferenceType>
<TargetId>OpcUa:TransitionEventType</TargetId>
</Reference>
</References>
</Object>
<Object SymbolicName="DI:ResumingToIdle" TypeDefinition="OpcUa:TransitionType" ModellingRule="None">
<Children>
<Property SymbolicName="OpcUa:TransitionNumber">
<DefaultValue>
<uax:UInt32>41</uax:UInt32>
</DefaultValue>
</Property>
</Children>
<References>
<Reference>
<ReferenceType>OpcUa:FromState</ReferenceType>
<TargetId>DI:PrepareForUpdateStateMachineType_Resuming</TargetId>
</Reference>
<Reference>
<ReferenceType>OpcUa:ToState</ReferenceType>
<TargetId>DI:PrepareForUpdateStateMachineType_Idle</TargetId>
</Reference>
<Reference IsOneWay="true">
<ReferenceType>OpcUa:HasEffect</ReferenceType>
<TargetId>OpcUa:TransitionEventType</TargetId>
</Reference>
</References>
</Object>
</Children>
</ObjectType>
<!--InstallStatemachine-->
<ObjectType SymbolicName="DI:InstallationStateMachineType" BaseType="OpcUa:FiniteStateMachineType" IsAbstract="false">
<Description></Description>
<Children>
<Variable SymbolicName="DI:PercentComplete" DataType="OpcUa:Byte" ModellingRule="Optional">
</Variable>
<Variable SymbolicName="DI:InstallationDelay" DataType="OpcUa:Duration" ModellingRule="Optional">
</Variable>
<Method SymbolicName="DI:InstallSoftwarePackage" TypeDefinition="DI:InstallSoftwarePackageMethodType" ModellingRule="Optional"/>
<Method SymbolicName="DI:InstallFiles" TypeDefinition="DI:InstallFilesMethodType" ModellingRule="Optional"/>
<Method SymbolicName="DI:Resume" ModellingRule="Mandatory"/>
<Object SymbolicName="DI:Idle" TypeDefinition="OpcUa:InitialStateType" ModellingRule="None">
<Children>
<Property SymbolicName="OpcUa:StateNumber">
<DefaultValue>
<uax:UInt32>1</uax:UInt32>
</DefaultValue>
</Property>
</Children>
</Object>
<Object SymbolicName="DI:Installing" TypeDefinition="OpcUa:StateType" ModellingRule="None">
<Children>
<Property SymbolicName="OpcUa:StateNumber">
<DefaultValue>
<uax:UInt32>2</uax:UInt32>
</DefaultValue>
</Property>
</Children>
</Object>
<Object SymbolicName="DI:Error" TypeDefinition="OpcUa:StateType" ModellingRule="None">
<Children>
<Property SymbolicName="OpcUa:StateNumber">
<DefaultValue>
<uax:UInt32>3</uax:UInt32>
</DefaultValue>
</Property>
</Children>
</Object>
<Object SymbolicName="DI:IdleToInstalling" TypeDefinition="OpcUa:TransitionType" ModellingRule="None">
<Children>
<Property SymbolicName="OpcUa:TransitionNumber">
<DefaultValue>
<uax:UInt32>12</uax:UInt32>
</DefaultValue>
</Property>
</Children>
<References>
<Reference>
<ReferenceType>OpcUa:FromState</ReferenceType>
<TargetId>DI:InstallationStateMachineType_Idle</TargetId>
</Reference>
<Reference>
<ReferenceType>OpcUa:ToState</ReferenceType>
<TargetId>DI:InstallationStateMachineType_Installing</TargetId>
</Reference>
<Reference IsOneWay="true">
<ReferenceType>OpcUa:HasEffect</ReferenceType>
<TargetId>OpcUa:TransitionEventType</TargetId>
</Reference>
</References>
</Object>
<Object SymbolicName="DI:InstallingToIdle" TypeDefinition="OpcUa:TransitionType" ModellingRule="None">
<Children>
<Property SymbolicName="OpcUa:TransitionNumber">
<DefaultValue>
<uax:UInt32>21</uax:UInt32>
</DefaultValue>
</Property>
</Children>
<References>
<Reference>
<ReferenceType>OpcUa:FromState</ReferenceType>
<TargetId>DI:InstallationStateMachineType_Installing</TargetId>
</Reference>
<Reference>
<ReferenceType>OpcUa:ToState</ReferenceType>
<TargetId>DI:InstallationStateMachineType_Idle</TargetId>
</Reference>
<Reference IsOneWay="true">
<ReferenceType>OpcUa:HasEffect</ReferenceType>
<TargetId>OpcUa:TransitionEventType</TargetId>
</Reference>
</References>
</Object>
<Object SymbolicName="DI:InstallingToError" TypeDefinition="OpcUa:TransitionType" ModellingRule="None">
<Children>
<Property SymbolicName="OpcUa:TransitionNumber">
<DefaultValue>
<uax:UInt32>23</uax:UInt32>
</DefaultValue>
</Property>
</Children>
<References>
<Reference>
<ReferenceType>OpcUa:FromState</ReferenceType>
<TargetId>DI:InstallationStateMachineType_Installing</TargetId>
</Reference>
<Reference>
<ReferenceType>OpcUa:ToState</ReferenceType>
<TargetId>DI:InstallationStateMachineType_Error</TargetId>
</Reference>
<Reference IsOneWay="true">
<ReferenceType>OpcUa:HasEffect</ReferenceType>
<TargetId>OpcUa:TransitionEventType</TargetId>
</Reference>
</References>
</Object>
<Object SymbolicName="DI:ErrorToIdle" TypeDefinition="OpcUa:TransitionType" ModellingRule="None">
<Children>
<Property SymbolicName="OpcUa:TransitionNumber">
<DefaultValue>
<uax:UInt32>31</uax:UInt32>
</DefaultValue>
</Property>
</Children>
<References>
<Reference>
<ReferenceType>OpcUa:FromState</ReferenceType>
<TargetId>DI:InstallationStateMachineType_Error</TargetId>
</Reference>
<Reference>
<ReferenceType>OpcUa