Skip to main content

Specification of Edge Device

Hardware

The standard HumanOS Edge Device is a fully industrialized solution and comes with a controller and a digital IO module.

In a short:

  • Power Supply: 12-24 V DC -15 %/+20 %, maximal 10 Watt
  • Environmental temperature: -25 °C bis +55 °C
  • ESD Protection: 4 kV/8 kV according to EN 61131-2 und IEC 61000-6-2
  • Surge/Burst Tests: according to EN 61131-2 und IEC 61000-6-2
  • EMI Tests: according to EN 61131-2 und IEC 61000-6-2
  • IP20
  • Conformity: CE, RoHS
  • UL certificated (UL-File-Nr. E494534)

The edge device is mountable on a cap rail.

Interfaces

The standard edition provides following interfaces:

  • 1x Ethernet
  • 2x USB-A Ports (only for service purposes)
  • 1x Micro USB (only for service purposes)
  • 1 x Micro HDMI (only for service purposes)
  • Digital IOs
    • 14 digital inputs
    • 14 digital outputs
    • Galvanically separated with own power supply of 24 V (X2)

Software

  • Linux ARM based operation system
  • DotNet runtime 8.0.1
  • HumanOS IoT Runtime Version 2.6.0

Connectivity

The edge devices provides one ethernet interface eth0. Default address is 192.168.0.10 and can be used for initial setup the edge device.

The edge device supports:

  • static IP address configuration, including gateway address settings
  • dynamic IP address configuration using a DHCP server in your OT network
IMPORTANT

The gateway address is needed if the target platform, data base, MQTT broker or NTP server is not in the same OT network.

Wiring DIO Module

The digital IOs are pre-configured for OEE correlations:

Inputs:

  • I_1: Power on signal
  • I_2: Production on
  • I_3: Device is in setup mode
  • I_4: Device is in warmup mode
  • I_5: Device is in maintenance mode
  • I_6: Stopped because if missing material (logistical stop)
  • I_7: Stopped because of missing personal
  • I_8: Stopped because of missing tool
  • I_9: reserved
  • I_10: general disturbance
  • I_11: disturbance of material or logistics
  • I_12: disturbance of tool, e.g. broken tool
  • Counter_13: Part counter
  • Counter_14: Customizable Counter

Further the gateway provides several outputs for signalization directly on the machine

Outputs:

  • O_1: white light
  • O_2: green light for production
  • O_3: blue light for setup or warmup states
  • O_4: yellow light for maintenance and other stopped states
  • O_5: red light for disturbance
  • O_6: Alarm or acoustic signals
  • O_7 to O_14: reserved

Configuration

The HumanOS Edge Device and be configured directly over the Ethernet port eth0.

Following services are available:

NameDescriptionStandard
OPC-UA StandardStandard OPC-UA with HumanOS Default ModelX
OPC-UA UmatiOPC-UA with Umati modelX
MtConnectMtConnect Agent with model from spec. 1.3.1X
InfluxDB DataLoggerDataLogger for Influx DatabaseX
MQTT DataLoggerDataLogger using the MQTT protocolX

The services can be activated on the edge device configuration site:

https://192.168.0.10/index.html

Time Synchronization

The edge device supports two possibilities to synchronize the time settings

  • manually
  • dynamic using NTP server
IMPORTANT

The edge device might loose the time settings after 24h without external power supply. Best practice is to

  • either setup NTP server for your OT network
  • or a permanent power supply for edge device
CAUTION

Invalid time settings lead to invalid time stamps on message submissions on platforms using MQTT or influx DB.

OEE Correlation

The OEE correlation follows the OEE Model of CyberTech

The HumanOS correlation process OEE machine states out of the inputs. And it generates the outputs for signal lamps on the machine.

Following table shows the mapping of the inputs to OEE states:

InputOEE StateOEE StateName
0Undefined
Disturbance1Disturbance
DisturbanceMaterial10Disturbance Material
DisturbanceTool30Disturbance Tools
Setup100Setup
WarmUp110Warmup
ProductionOn200Production
PowerOn300Production Stopped
MissingMaterial310Stopped: Missing Material
MissingPersonal320Stopped: Missing Personal
MissingTool330Stopped: Missing Tools
Maintenance400Maintenance
<none>900Power Off

OPC-UA Server

The OPC-UA server offers following data access nodes.

NOTE

The denotation <DeviceName> is a setting of the device configuration and can be manually changed.

Machine Information

NameNodeIdDescriptionData Type
Manufacturerns=2;s=<DeviceName>/MachineInformation/ManufacturerManufacturer of the device or machineSystem.String
SerialNumberns=2;s=<DeviceName>/MachineInformation/SerialNumberSerial number of the machineSystem.String
ProductionLinens=2;s=<DeviceName>/MachineInformation/ProductionLineName of the production lineSystem.String
ProductionPlantns=2;s=<DeviceName>/MachineInformation/ProductionPlantName of the production plantSystem.String

Status Information

NameNodeIdDescriptionData Type
Availablens=2;s=<DeviceName>/Status/AvailableDevice available state: 1 = connected, 0 = disconnectedSystem.Boolean
SignOfLifens=2;s=<DeviceName>/Status/SignOfLifeIf the device is available, the signal toggles with 1HzSystem.Int32
OEEMachineStatens=2;s=<DeviceName>/Status/OEEMachineStateOEE state of the machine.System.Int32
OEEMachineStateNamens=2;s=<DeviceName>/Status/OEEMachineStateNameOEE state of the machine in clear text.System.String
PartCounterns=2;s=<DeviceName>/Status/PartCounterPart or workpiece Counter.System.Int32
CustomCounterns=2;s=<DeviceName>/Status/CustomCounterCustom Counter.System.Int32

Timers

NameNodeIdDescriptionData Type
OperationTimens=2;s=<DeviceName>/Timers/OperationTimeTimer in [min]. Counts if the ProductionOn is set to true.System.Double
PowerOnTimens=2;s=<DeviceName>/Timers/PowerOnTimeTimer in [min]. Counts if the PowerOn is set to true.System.Double
CycleTimens=2;s=<DeviceName>/Timers/CycleTimeTimer in [min]. Current time to produce one part.System.Double
LastCycleTimens=2;s=<DeviceName>/Timers/LastCycleTimeTimer in [min]. Time to produce one part.System.Double

Inputs

NameNodeIdDescriptionData Type
PowerOnns=2;s=<DeviceName>/Inputs/PowerOnPowerOn input of DIO moduleSystem.Boolean
ProductionOnns=2;s=<DeviceName>/Inputs/ProductionOnProductionOn input of DIO moduleSystem.Boolean
Setupns=2;s=<DeviceName>/Inputs/SetupSetup input of DIO moduleSystem.Boolean
WarmUpns=2;s=<DeviceName>/Inputs/WarmUpWarmUp input of DIO moduleSystem.Boolean
Maintenancens=2;s=<DeviceName>/Inputs/MaintenanceMaintenance input of DIO moduleSystem.Boolean
MissingMaterialns=2;s=<DeviceName>/Inputs/MissingMaterialMissingMaterial input of DIO moduleSystem.Boolean
MissingPersonalns=2;s=<DeviceName>/Inputs/MissingPersonalMissingPersonal input of DIO moduleSystem.Boolean
MissingToolns=2;s=<DeviceName>/Inputs/MissingToolMissingTool input of DIO moduleSystem.Boolean
Disturbancens=2;s=<DeviceName>/Inputs/DisturbanceGeneral Disturbance input of DIO moduleSystem.Boolean
DisturbanceMaterialns=2;s=<DeviceName>/Inputs/DisturbanceMaterialDisturbanceMaterial input of DIO moduleSystem.Boolean
DisturbanceToolns=2;s=<DeviceName>/Inputs/DisturbanceToolDisturbanceTool input of DIO moduleSystem.Boolean

Outputs

NameNodeIdDescriptionData Type
WhiteLightns=2;s=<DeviceName>/Outputs/WhiteLightWhiteLight output of DIO moduleSystem.Boolean
GreenLightns=2;s=<DeviceName>/Outputs/GreenLightGreenLight output of DIO moduleSystem.Boolean
BlueLightns=2;s=<DeviceName>/Outputs/BlueLightBlueLight output of DIO moduleSystem.Boolean
YellowLightns=2;s=<DeviceName>/Outputs/YellowLightYellowLight output of DIO moduleSystem.Boolean
RedLightns=2;s=<DeviceName>/Outputs/RedLightRedLight output of DIO moduleSystem.Boolean
AlarmSignalns=2;s=<DeviceName>/Outputs/AlarmSignalAlarmSignal output of DIO moduleSystem.Boolean

Job Information (Not Supported in v1)

NOT SUPPORTED

The job information is not yet supported in version 1.x.

NameNodeIdDescriptionData Type
OEEProductNamens=2;s=<DeviceName>/Job/OEEProductNameCurrent product that is produced on the machineSystem.String
OEEProductionStepns=2;s=<DeviceName>/Job/OEEProductionStepCurrent production stepSystem.String

UMATI

The OPC-UA server supports following UMATI classes:

Identification

NameNode PathDescriptionData Type
ManufacturerIdentification/ManufacturerManufacturer of the device or machineLocalizedText
SerialNumberIdentification/SerialNumberSerial number of the machineSystem.String
ProductionLineIdentification/ProductionLineName of the production lineSystem.String
ProductionPlantIdentification/ProductionPlantName of the production plantSystem.String

Monitoring OperationMode

NameNode PathDescriptionData Type
OperationModeMonitoring/MachineTool/OperationModeOperation mode of the machineSystem.Int32
IsWarmUpMonitoring/MachineTool/IsWarmUpFlag if the machine is in warm-up mode.System.Boolean

Following operation modes are supported (depending on the OEE machine state):

  • 0 (Manual): Power off state
  • 1 (Automatic): ProductionOn state
  • 2 (Setup) : Setup state
  • 3 (AutoWithManualIntervention): PowerOn, Missing Material, Missing Personal, Missing Tool or any disturbance states
  • 4 (Service): Maintenance state
  • 5 (Other): WarmUp state

Monitoring PowerOnTime

NameNode PathDescriptionData Type
PowerOnDurationMonitoring/MachineTool/PowerOnDurationPower On duration in hours.System.Int32

Monitoring Stacklight

There are five stacklights in following colors:

  • Lamp1: Red
  • Lamp2: Yellow
  • Lamp3: Green
  • Lamp4: Blue
  • Lamp5: White
NameNode PathDescriptionData Type
Signal ColorMonitoring/Stacklight/Lamp{n}/SignalColorColor of the lampSystem.Int32
Signal ModeMonitoring/Stacklight/Lamp{n}/SignalModeMode (0 = steady light)System.Int32
Signal OnMonitoring/Stacklight/Lamp{n}/SignalOnFlag if lamp is onSystem.Boolean

Production Statistics

NameNode PathDescriptionData Type
PartsProducedInLifetimeProduction/Statistics/PartsProducedInLifetimeTotal part counter.System.Int32

Production State

The production state is represented as a state machine. States are:

  • 0: Initializing
  • 1: Running
  • 2: Ended
  • 3: Interrupted
  • 4: Aborted

NameNode PathDescriptionData Type
CurrentState NameProduction/ActiveProgram/State/CurrentStateName of the current state.System.String
CurrentState IdProduction/ActiveProgram/State/CurrentState/IdNode Id of the state.System.String
CurrentState NumberProduction/ActiveProgram/State/CurrentState/NumberNumber of the enumSystem.Int32

MT Connect Agent

The MT Connect agent provides following dataItems:

Machine Information

NameNodeIdDescriptionData Type
ManufacturerMachineInformation.ManufacturerManufacturer of the device or machineSystem.String
SerialNumberMachineInformation.SerialNumberSerial number of the machineSystem.String
ProductionLineMachineInformation.ProductionLineName of the production lineSystem.String
ProductionPlantMachineInformation.ProductionPlantName of the production plantSystem.String

Status Information

NameNodeIdDescriptionData Type
AvailableStatus.AvailableDevice available state: 1 = connected, 0 = disconnectedSystem.Boolean
SignOfLifeStatus.SignOfLifeIf the device is available, the signal toggles with 1HzSystem.Int32
OEEMachineStateStatus.OEEMachineStateOEE state of the machine.System.Int32
OEEMachineStateNameStatus.OEEMachineStateNameOEE state of the machine in clear text.System.String
PartCounterStatus.PartCounterPart or workpiece Counter.System.Int32
CustomCounterStatus.CustomCounterCustom Counter.System.Int32

Timers

NameNodeIdDescriptionData Type
OperationTimeTimers.OperationTimeTimer in [min]. Counts if the ProductionOn is set to true.System.Double
PowerOnTimeTimers.PowerOnTimeTimer in [min]. Counts if the PowerOn is set to true.System.Double
CycleTimeTimers.CycleTimeTimer in [min]. Current time to produce one part.System.Double
LastCycleTimeTimers.LastCycleTimeTimer in [min]. Time to produce one part.System.Double

Job Information (Not Supported in v1)

NOT SUPPORTED

The job information is not yet supported in version 1.x.

NameDataItem IdDescriptionData Type
OEEProductNameJob.OEEProductNameCurrent product that is produced on the machineSystem.String
OEEProductionStepJob.OEEProductionStepCurrent production stepSystem.String

MQTT Topic Specification

The MQTT specification handles two parts: the topics and the payload.

The payload has following fields:

  • value: value of the topic (data node).
  • state: data state (Good, BadNotActive, ...)
  • timeStamp: UTC timestamp from the device

Example:

{
"state": "Good",
"timeStamp": "2019-02-14T11:11:39.7475927Z",
"value": false
}
NOTE

The denotation of <BaseTopic> corresponds to the base topic setting of the MQTT configuration. The denotation of <DeviceName> is the name of the device. Both can be changed in the configuration section of the edge device.

Machine Information

NameTopic NameDescriptionData Type
Manufacturer<BaseTopic>/<DeviceName>/MachineInformation/ManufacturerManufacturer of the device or machineSystem.String
SerialNumber<BaseTopic>/<DeviceName>/MachineInformation/SerialNumberSerial number of the machineSystem.String
ProductionLine<BaseTopic>/<DeviceName>/MachineInformation/ProductionLineName of the production lineSystem.String
ProductionPlant<BaseTopic>/<DeviceName>/MachineInformation/ProductionPlantName of the production plantSystem.String

Status Information

NameNodeIdDescriptionData Type
Available<BaseTopic>/<DeviceName>/Status/AvailableDevice available state: 1 = connected, 0 = disconnectedSystem.Boolean
SignOfLife<BaseTopic>/<DeviceName>/Status/SignOfLifeIf the device is available, the signal toggles with 1HzSystem.Int32
OEEMachineState<BaseTopic>/<DeviceName>/Status/OEEMachineStateOEE state of the machine.System.Int32
OEEMachineStateName<BaseTopic>/<DeviceName>/Status/OEEMachineStateNameOEE state of the machine in clear text.System.String
PartCounter<BaseTopic>/<DeviceName>/Status/PartCounterPart or workpiece Counter.System.Int32
CustomCounter<BaseTopic>/<DeviceName>/Status/CustomCounterCustom Counter.System.Int32

Timers

NameNodeIdDescriptionData Type
OperationTime<BaseTopic>/<DeviceName>/Timers/OperationTimeTimer in [min]. Counts if the ProductionOn is set to true.System.Double
PowerOnTime<BaseTopic>/<DeviceName>/Timers/PowerOnTimeTimer in [min]. Counts if the PowerOn is set to true.System.Double
CycleTime<BaseTopic>/<DeviceName>/Timers/CycleTimeTimer in [min]. Current time to produce one part.System.Double
LastCycleTime<BaseTopic>/<DeviceName>/Timers/LastCycleTimeTimer in [min]. Time to produce one part.System.Double

Inputs

NameNodeIdDescriptionData Type
PowerOn<BaseTopic>/<DeviceName>/Inputs/PowerOnPowerOn input of DIO moduleSystem.Boolean
ProductionOn<BaseTopic>/<DeviceName>/Inputs/ProductionOnProductionOn input of DIO moduleSystem.Boolean
Setup<BaseTopic>/<DeviceName>/Inputs/SetupSetup input of DIO moduleSystem.Boolean
WarmUp<BaseTopic>/<DeviceName>/Inputs/WarmUpWarmUp input of DIO moduleSystem.Boolean
Maintenance<BaseTopic>/<DeviceName>/Inputs/MaintenanceMaintenance input of DIO moduleSystem.Boolean
MissingMaterial<BaseTopic>/<DeviceName>/Inputs/MissingMaterialMissingMaterial input of DIO moduleSystem.Boolean
MissingPersonal<BaseTopic>/<DeviceName>/Inputs/MissingPersonalMissingPersonal input of DIO moduleSystem.Boolean
MissingTool<BaseTopic>/<DeviceName>/Inputs/MissingToolMissingTool input of DIO moduleSystem.Boolean
Disturbance<BaseTopic>/<DeviceName>/Inputs/DisturbanceGeneral Disturbance input of DIO moduleSystem.Boolean
DisturbanceMaterial<BaseTopic>/<DeviceName>/Inputs/DisturbanceMaterialDisturbanceMaterial input of DIO moduleSystem.Boolean
DisturbanceTool<BaseTopic>/<DeviceName>/Inputs/DisturbanceToolDisturbanceTool input of DIO moduleSystem.Boolean

Outputs

NameNodeIdDescriptionData Type
WhiteLight<BaseTopic>/<DeviceName>/Outputs/WhiteLightWhiteLight output of DIO moduleSystem.Boolean
GreenLight<BaseTopic>/<DeviceName>/Outputs/GreenLightGreenLight output of DIO moduleSystem.Boolean
BlueLight<BaseTopic>/<DeviceName>/Outputs/BlueLightBlueLight output of DIO moduleSystem.Boolean
YellowLight<BaseTopic>/<DeviceName>/Outputs/YellowLightYellowLight output of DIO moduleSystem.Boolean
RedLight<BaseTopic>/<DeviceName>/Outputs/RedLightRedLight output of DIO moduleSystem.Boolean
AlarmSignal<BaseTopic>/<DeviceName>/Outputs/AlarmSignalAlarmSignal output of DIO moduleSystem.Boolean

Job Information (Not Supported in v1)

NOT SUPPORTED

The job information is not yet supported in version 1.x.

NameNodeIdDescriptionData Type
OEEProductName<BaseTopic>/<DeviceName>/Job/OEEProductNameCurrent product that is produced on the machineSystem.String
OEEProductionStep<BaseTopic>/<DeviceName>/Job/OEEProductionStepCurrent production stepSystem.String