umati showcase specification


This provides the specification to connect to the umati showcase

View the Project on GitHub umati/Showcase

umati showcase information model for Plastics and Rubber machines OPC 40077

1. General

The namespace for the instances is manufacturer specific, e.g.

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

OPC 40077 Overview

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

Table 1 – Namespaces used in this document

NamespaceURI Namespace Index Example 0 0:NodeVersion 1 Default namespace of OPC 40077 –> _no prefix used, e.g._IMM_MES_InterfaceType 2 2:DeviceClass 3 3:MachineInformationType 4 4:MachineIdentificationType

Table 2 – Sample instance of IMM_MES_InterfaceType

BrowseName Type Example Value Remarks
  IMM_<Manufacturer>_<SerialNumber> IMM_MES_InterfaceType    
   2:Identification 4:MachineIdentificationType   1)
    2:ProductInstanceUri 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
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: “”</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: “”</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 for rules for filling the location. 5) Container object is mandatory in the model, but no instances inside (besides Variable NodeVersion) needed.