This provides the specification to connect to the umati showcase
The namespace for the instances is manufacturer specific, e.g. http://samplemanufacturer.com/umati_sample_IMM_instance/
Table 2 shows the complete structure of the instance needed for the umati demonstrator. The demonstrator requires, that all mandatory elements of the IMM_MES_InterfaceType are existent, even if there are not displayed in the dashboard. If the value of a variable a not displayed, is can be filled with a static dummy value (e.g. empty string). All displayed values are marked in bold.
Important: In OPC 40077 it is defined, that the instance of the IMM_MES_InterfaceType is located under the Object DeviceSet. For umati it is necessary to add it under the Machines folder defined by OPC UA for machinery. In practice it is not necessary to create a new instance. It is sufficient to have an Organizes Reference from the Machines folder to the instance located under DeviceSet
In addition, OPC 40077 uses the MachineInformationType defined in OPC 40083. For participation in the umati demonstrator it is necessary to create in parallel an instance of the MachineIdentificationType defined in OPC UA for Machinery.
Download: Compleate documentation umati showcase information model Plastics and Rubber
NamespaceURI | Namespace Index | Example |
---|---|---|
http://opcfoundation.org/UA/ | 0 | 0:NodeVersion |
http://opcfoundation.org/UA/PlasticsRubber/IMM2MES/ | 1 | Default namespace of OPC 40077 –> _no prefix used, e.g._IMM_MES_InterfaceType |
http://opcfoundation.org/UA/DI/ | 2 | 2:DeviceClass |
http://opcfoundation.org/UA/PlasticsRubber/GeneralTypes/ | 3 | 3:MachineInformationType |
http://opcfoundation.org/UA/Machinery | 4 | 4:MachineIdentificationType |
BrowseName | Type | Example Value | Remarks |
---|---|---|---|
Objects | |||
Machines | |||
IMM_<Manufacturer>_<SerialNumber> | IMM_MES_InterfaceType | ||
2:Identification | 4:MachineIdentificationType | 1) | |
2:ProductInstanceUri | “http://samplemanufacturer.com/IMM123” | 2) | |
2:Manufacturer | 0:LocalizedText | “Sample Manufacturer” | |
2:Model | 0:LocalizedText | “Machine Model 3000” | 3) |
2:SerialNumber | 0:String | “IMM123” | |
2:DeviceClass | 0:String | “Injection Moulding Machine” | |
4:Location | 0:String | “K 14 F42/N 51.260407 E 6.744588” | 3), 4) |
MachineInformation | 3:MachineInformationType | ||
2:DeviceClass | 0:String | “Injection Moulding Machine” | |
2:Manufacturer | 0:LocalizedText | “Sample Manufacturer” | |
2:Model | 0:LocalizedText | “Machine Model 3000” | |
2:SerialNumber | 0:String | “IMM123” | |
3:ControllerName | 0:String | “My Controller” | 2) |
3:SupportedLogbookEvents | 3:LogbookEventsEnumeration[] | empty array / NULL | 2) |
MachineConfiguration | 3:MachineConfigurationType | 2) | |
3:UserMachineName | 0:String | “My injection moulding machine” | 2) |
3:LocationName | 0:String | “K 14 F42/N 51.260407 E 6.744588” | 2) |
3:TimeZoneOffset | 0:TimeZoneDataType | <p>offset: 0</p><p>daylightSavingInOffset: true</p> | 2) |
MachineMESConfiguration | 3:MachineMESConfigurationType | 2) | |
3:StandstillReasons | 3:StandstillReasonType[] | empty array / NULL | 2) |
3:StandstillReasonsLockedByMES | 0:Boolean | false | 2) |
MachineStatus | 3:MachineStatusType | ||
3:IsPresent | 0:Boolean | true | 2) |
3:MachineMode | 3:MachineModeEnumeration | 1 (=AUTOMATIC) | |
3:Users | 3:UsersType | 2), 5) | |
0:NodeVersion | 0:String | “1” | 2) |
MachineMESStatus | 3:MachineMESStatusType | 2) | |
3:StandstillReasonId | 0:String | “” | 2) |
3:StandstillMessage | 3:StandstillMessageType | 2) | |
3:Id | 0:String | “” | 2) |
0:Message | 0:LocalizedText | “” | 2) |
0:Severity | 0:UInt16 | 0 | 2) |
3:Classification | 0:IMMMessageClassification Enumeration |
0 (= OTHER) | 2) |
3:MESMessage | 3:MESMessageType | 2) | |
3:Id | 0:String | “” | 2) |
0:Message | 0:LocalizedText | “” | 2) |
0:Severity | 0:UInt16 | 0 | 2) |
3:ProductionControl | 3:ProductionControlType | 2) | |
3:ProductionStatus | ProductionStatusEnumeration | 4 (= PRODUCTION) | 2) |
3:ProductionReleasedByMES | 0:Boolean | true | 2) |
3:AutomaticRunEnabled | 0:Boolean | true | 2) |
PowerUnits | 3:PowerUnitsType | 2), 5) | |
0:NodeVersion | 0:String | “1” | 2) |
Moulds | 3:MouldsType | 2), 5) | |
0:NodeVersion | 0:String | “1” | 2) |
InjectionUnits | 3:InjectionUnitsType | ||
0:NodeVersion | 0:String | “1” | 2) |
InjectionUnit_1 | 3:InjectionUnitType | 3) | |
Index | 0:UInt32 | 1 | 2) |
BarrelId | 0:String | “Barrel1” | 2) |
IsPresent | 0:Boolean | true | 2) |
InProduction | 0:Boolean | true | 2) |
TemperatureZones | 3:TemperatureZonesType | ||
0:NodeVersion | 0:String | “1” | 2) |
BarrelTemperatureZone_1 | 3:BarrelTemperatureZoneType | ||
3:Index | 0:UInt32 | 1 | 2) |
3:Name | 0:String | “Temperature Zone 1” | 2) |
3:IsPresent | 0:Boolean | true | 2) |
3:ControlMode | 3:ControlModeEnumeration | 2 (= AUTOMATIC) | 2) |
3:NominalTemperature | 0:AnalogItemType à 0:Double | 120 | 2) |
EURange | 0:Range | <p>Low: 0</p><p>High: 200</p> | 2) |
EngineeringUnits | 0:EUInformation | <p>namespaceUri: “http://www.opcfoundation.org/UA/units/un/cefact”</p><p>unitId: 4408652</p><p>displayName: “°C”</p><p>description: “degree Celsius”</p> | 2) |
3:ActualTemperature | 0:AnalogItemType à 0:Double | 120.5 | |
EURange | 0:Range | <p>Low: 0</p><p>High: 200</p> | 2) |
EngineeringUnits | 0:EUInformation | <p>namespaceUri: “http://www.opcfoundation.org/UA/units/un/cefact”</p><p>unitId: 4408652</p><p>displayName: “°C”</p><p>description: “degree Celsius”</p> | |
3:Position | 0:UInt32 | 1 | 2) |
Jobs | 3:JobsType | 3) | |
ActiveJob | 3:CyclicJobInformationType | ||
JobName | 0:String | “Order 12345” | 2) |
JobDescription | 0:String | “128000 screw caps 38mm” | 2) |
CustomerName | 0:String | “My customer” | 2) |
ProductionDatasetName | 0:String | “Cap Dataset 1” | 2) |
ProductionDatasetDescription | 0:String | “Dataset for the production of screw cap 38mm” | 2) |
Material | 0:String[] | [“PE-HD”] | 2) |
ProductName | 0:String[] | “screw cap 38mm” | |
ProductDescription | 0:String[] | “screw cap for PET bottels with 38mm diameter” | 2) |
ContinueAtJobEnd | 0:Boolean | false | 2) |
NominalParts | 0:UInt64 | 128000 | 2) |
ActiveJobValues | 3:ActiveCyclicJobValuesType | ||
JobStatus | JobStatusEnumeration | 6 (= JOB_IN_PRODUCTION) | |
CurrentLotName | 0:String | “Lot 123” | 2) |
LastCycleTime | 0:Duration | 2400 | 2) |
JobPartsCounter | 0:UInt64 | 6400 | |
JobGoodPartsCounter | 0:UInt64 | 6390 | 2) |
JobBadPartsCounter | 0:UInt64 | 10 | 2) |
JobTestSamplesCounter | 0:UInt64 | 0 | 2) |
1) Not included in OPC 40077 IMM_MES_InterfaceType. To be added in the instance 2) This variable is mandatory in the model but will not be displayed in the demonstrator 3) Not mandatory in OPC UA for Machinery but for this model and will be displayed in the demonstrator 4) See https://showcase.umati.org/Dashboard.html#location-of-fair-machine-and-software-icons-on-the-dashboard for rules for filling the location. 5) Container object is mandatory in the model, but no instances inside (besides Variable NodeVersion) needed.