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
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 signalI_2
: Production onI_3
: Device is in setup modeI_4
: Device is in warmup modeI_5
: Device is in maintenance modeI_6
: Stopped because if missing material (logistical stop)I_7
: Stopped because of missing personalI_8
: Stopped because of missing toolI_9
: reservedI_10
: general disturbanceI_11
: disturbance of material or logisticsI_12
: disturbance of tool, e.g. broken toolCounter_13
: Part counterCounter_14
: Customizable Counter
Further the gateway provides several outputs for signalization directly on the machine
Outputs:
O_1
: white lightO_2
: green light for productionO_3
: blue light for setup or warmup statesO_4
: yellow light for maintenance and other stopped statesO_5
: red light for disturbanceO_6
: Alarm or acoustic signalsO_7
toO_14
: reserved
Configuration
The HumanOS Edge Device and be configured directly over the Ethernet port eth0
.
Following services are available:
Name | Description | Standard |
---|---|---|
OPC-UA Standard | Standard OPC-UA with HumanOS Default Model | X |
OPC-UA Umati | OPC-UA with Umati model | X |
MtConnect | MtConnect Agent with model from spec. 1.3.1 | X |
InfluxDB DataLogger | DataLogger for Influx Database | X |
MQTT DataLogger | DataLogger using the MQTT protocol | X |
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
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
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:
Input | OEE State | OEE StateName |
---|---|---|
0 | Undefined | |
Disturbance | 1 | Disturbance |
DisturbanceMaterial | 10 | Disturbance Material |
DisturbanceTool | 30 | Disturbance Tools |
Setup | 100 | Setup |
WarmUp | 110 | Warmup |
ProductionOn | 200 | Production |
PowerOn | 300 | Production Stopped |
MissingMaterial | 310 | Stopped: Missing Material |
MissingPersonal | 320 | Stopped: Missing Personal |
MissingTool | 330 | Stopped: Missing Tools |
Maintenance | 400 | Maintenance |
<none> | 900 | Power Off |
OPC-UA Server
The OPC-UA server offers following data access nodes.
The denotation
<DeviceName>
is a setting of the device configuration and can be manually changed.
Machine Information
Name | NodeId | Description | Data Type |
---|---|---|---|
Manufacturer | ns=2;s=<DeviceName>/MachineInformation/Manufacturer | Manufacturer of the device or machine | System.String |
SerialNumber | ns=2;s=<DeviceName>/MachineInformation/SerialNumber | Serial number of the machine | System.String |
ProductionLine | ns=2;s=<DeviceName>/MachineInformation/ProductionLine | Name of the production line | System.String |
ProductionPlant | ns=2;s=<DeviceName>/MachineInformation/ProductionPlant | Name of the production plant | System.String |
Status Information
Name | NodeId | Description | Data Type |
---|---|---|---|
Available | ns=2;s=<DeviceName>/Status/Available | Device available state: 1 = connected, 0 = disconnected | System.Boolean |
SignOfLife | ns=2;s=<DeviceName>/Status/SignOfLife | If the device is available, the signal toggles with 1Hz | System.Int32 |
OEEMachineState | ns=2;s=<DeviceName>/Status/OEEMachineState | OEE state of the machine. | System.Int32 |
OEEMachineStateName | ns=2;s=<DeviceName>/Status/OEEMachineStateName | OEE state of the machine in clear text. | System.String |
PartCounter | ns=2;s=<DeviceName>/Status/PartCounter | Part or workpiece Counter. | System.Int32 |
CustomCounter | ns=2;s=<DeviceName>/Status/CustomCounter | Custom Counter. | System.Int32 |
Timers
Name | NodeId | Description | Data Type |
---|---|---|---|
OperationTime | ns=2;s=<DeviceName>/Timers/OperationTime | Timer in [min]. Counts if the ProductionOn is set to true. | System.Double |
PowerOnTime | ns=2;s=<DeviceName>/Timers/PowerOnTime | Timer in [min]. Counts if the PowerOn is set to true. | System.Double |
CycleTime | ns=2;s=<DeviceName>/Timers/CycleTime | Timer in [min]. Current time to produce one part. | System.Double |
LastCycleTime | ns=2;s=<DeviceName>/Timers/LastCycleTime | Timer in [min]. Time to produce one part. | System.Double |
Inputs
Name | NodeId | Description | Data Type |
---|---|---|---|
PowerOn | ns=2;s=<DeviceName>/Inputs/PowerOn | PowerOn input of DIO module | System.Boolean |
ProductionOn | ns=2;s=<DeviceName>/Inputs/ProductionOn | ProductionOn input of DIO module | System.Boolean |
Setup | ns=2;s=<DeviceName>/Inputs/Setup | Setup input of DIO module | System.Boolean |
WarmUp | ns=2;s=<DeviceName>/Inputs/WarmUp | WarmUp input of DIO module | System.Boolean |
Maintenance | ns=2;s=<DeviceName>/Inputs/Maintenance | Maintenance input of DIO module | System.Boolean |
MissingMaterial | ns=2;s=<DeviceName>/Inputs/MissingMaterial | MissingMaterial input of DIO module | System.Boolean |
MissingPersonal | ns=2;s=<DeviceName>/Inputs/MissingPersonal | MissingPersonal input of DIO module | System.Boolean |
MissingTool | ns=2;s=<DeviceName>/Inputs/MissingTool | MissingTool input of DIO module | System.Boolean |
Disturbance | ns=2;s=<DeviceName>/Inputs/Disturbance | General Disturbance input of DIO module | System.Boolean |
DisturbanceMaterial | ns=2;s=<DeviceName>/Inputs/DisturbanceMaterial | DisturbanceMaterial input of DIO module | System.Boolean |
DisturbanceTool | ns=2;s=<DeviceName>/Inputs/DisturbanceTool | DisturbanceTool input of DIO module | System.Boolean |
Outputs
Name | NodeId | Description | Data Type |
---|---|---|---|
WhiteLight | ns=2;s=<DeviceName>/Outputs/WhiteLight | WhiteLight output of DIO module | System.Boolean |
GreenLight | ns=2;s=<DeviceName>/Outputs/GreenLight | GreenLight output of DIO module | System.Boolean |
BlueLight | ns=2;s=<DeviceName>/Outputs/BlueLight | BlueLight output of DIO module | System.Boolean |
YellowLight | ns=2;s=<DeviceName>/Outputs/YellowLight | YellowLight output of DIO module | System.Boolean |
RedLight | ns=2;s=<DeviceName>/Outputs/RedLight | RedLight output of DIO module | System.Boolean |
AlarmSignal | ns=2;s=<DeviceName>/Outputs/AlarmSignal | AlarmSignal output of DIO module | System.Boolean |
Job Information (Not Supported in v1)
The job information is not yet supported in version 1.x.
Name | NodeId | Description | Data Type |
---|---|---|---|
OEEProductName | ns=2;s=<DeviceName>/Job/OEEProductName | Current product that is produced on the machine | System.String |
OEEProductionStep | ns=2;s=<DeviceName>/Job/OEEProductionStep | Current production step | System.String |
UMATI
The OPC-UA server supports following UMATI classes:
Identification
Name | Node Path | Description | Data Type |
---|---|---|---|
Manufacturer | Identification/Manufacturer | Manufacturer of the device or machine | LocalizedText |
SerialNumber | Identification/SerialNumber | Serial number of the machine | System.String |
ProductionLine | Identification/ProductionLine | Name of the production line | System.String |
ProductionPlant | Identification/ProductionPlant | Name of the production plant | System.String |
Monitoring OperationMode
Name | Node Path | Description | Data Type |
---|---|---|---|
OperationMode | Monitoring/MachineTool/OperationMode | Operation mode of the machine | System.Int32 |
IsWarmUp | Monitoring/MachineTool/IsWarmUp | Flag 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 state1 (Automatic)
: ProductionOn state2 (Setup)
: Setup state3 (AutoWithManualIntervention)
: PowerOn, Missing Material, Missing Personal, Missing Tool or any disturbance states4 (Service)
: Maintenance state5 (Other)
: WarmUp state
Monitoring PowerOnTime
Name | Node Path | Description | Data Type |
---|---|---|---|
PowerOnDuration | Monitoring/MachineTool/PowerOnDuration | Power 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
Name | Node Path | Description | Data Type |
---|---|---|---|
Signal Color | Monitoring/Stacklight/Lamp{n}/SignalColor | Color of the lamp | System.Int32 |
Signal Mode | Monitoring/Stacklight/Lamp{n}/SignalMode | Mode (0 = steady light) | System.Int32 |
Signal On | Monitoring/Stacklight/Lamp{n}/SignalOn | Flag if lamp is on | System.Boolean |
Production Statistics
Name | Node Path | Description | Data Type |
---|---|---|---|
PartsProducedInLifetime | Production/Statistics/PartsProducedInLifetime | Total 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
Name | Node Path | Description | Data Type |
---|---|---|---|
CurrentState Name | Production/ActiveProgram/State/CurrentState | Name of the current state. | System.String |
CurrentState Id | Production/ActiveProgram/State/CurrentState/Id | Node Id of the state. | System.String |
CurrentState Number | Production/ActiveProgram/State/CurrentState/Number | Number of the enum | System.Int32 |
MT Connect Agent
The MT Connect agent provides following dataItems:
Machine Information
Name | NodeId | Description | Data Type |
---|---|---|---|
Manufacturer | MachineInformation.Manufacturer | Manufacturer of the device or machine | System.String |
SerialNumber | MachineInformation.SerialNumber | Serial number of the machine | System.String |
ProductionLine | MachineInformation.ProductionLine | Name of the production line | System.String |
ProductionPlant | MachineInformation.ProductionPlant | Name of the production plant | System.String |
Status Information
Name | NodeId | Description | Data Type |
---|---|---|---|
Available | Status.Available | Device available state: 1 = connected, 0 = disconnected | System.Boolean |
SignOfLife | Status.SignOfLife | If the device is available, the signal toggles with 1Hz | System.Int32 |
OEEMachineState | Status.OEEMachineState | OEE state of the machine. | System.Int32 |
OEEMachineStateName | Status.OEEMachineStateName | OEE state of the machine in clear text. | System.String |
PartCounter | Status.PartCounter | Part or workpiece Counter. | System.Int32 |
CustomCounter | Status.CustomCounter | Custom Counter. | System.Int32 |
Timers
Name | NodeId | Description | Data Type |
---|---|---|---|
OperationTime | Timers.OperationTime | Timer in [min]. Counts if the ProductionOn is set to true. | System.Double |
PowerOnTime | Timers.PowerOnTime | Timer in [min]. Counts if the PowerOn is set to true. | System.Double |
CycleTime | Timers.CycleTime | Timer in [min]. Current time to produce one part. | System.Double |
LastCycleTime | Timers.LastCycleTime | Timer in [min]. Time to produce one part. | System.Double |
Job Information (Not Supported in v1)
The job information is not yet supported in version 1.x.
Name | DataItem Id | Description | Data Type |
---|---|---|---|
OEEProductName | Job.OEEProductName | Current product that is produced on the machine | System.String |
OEEProductionStep | Job.OEEProductionStep | Current production step | System.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
}
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
Name | Topic Name | Description | Data Type |
---|---|---|---|
Manufacturer | <BaseTopic>/<DeviceName>/MachineInformation/Manufacturer | Manufacturer of the device or machine | System.String |
SerialNumber | <BaseTopic>/<DeviceName>/MachineInformation/SerialNumber | Serial number of the machine | System.String |
ProductionLine | <BaseTopic>/<DeviceName>/MachineInformation/ProductionLine | Name of the production line | System.String |
ProductionPlant | <BaseTopic>/<DeviceName>/MachineInformation/ProductionPlant | Name of the production plant | System.String |
Status Information
Name | NodeId | Description | Data Type |
---|---|---|---|
Available | <BaseTopic>/<DeviceName>/Status/Available | Device available state: 1 = connected, 0 = disconnected | System.Boolean |
SignOfLife | <BaseTopic>/<DeviceName>/Status/SignOfLife | If the device is available, the signal toggles with 1Hz | System.Int32 |
OEEMachineState | <BaseTopic>/<DeviceName>/Status/OEEMachineState | OEE state of the machine. | System.Int32 |
OEEMachineStateName | <BaseTopic>/<DeviceName>/Status/OEEMachineStateName | OEE state of the machine in clear text. | System.String |
PartCounter | <BaseTopic>/<DeviceName>/Status/PartCounter | Part or workpiece Counter. | System.Int32 |
CustomCounter | <BaseTopic>/<DeviceName>/Status/CustomCounter | Custom Counter. | System.Int32 |
Timers
Name | NodeId | Description | Data Type |
---|---|---|---|
OperationTime | <BaseTopic>/<DeviceName>/Timers/OperationTime | Timer in [min]. Counts if the ProductionOn is set to true. | System.Double |
PowerOnTime | <BaseTopic>/<DeviceName>/Timers/PowerOnTime | Timer in [min]. Counts if the PowerOn is set to true. | System.Double |
CycleTime | <BaseTopic>/<DeviceName>/Timers/CycleTime | Timer in [min]. Current time to produce one part. | System.Double |
LastCycleTime | <BaseTopic>/<DeviceName>/Timers/LastCycleTime | Timer in [min]. Time to produce one part. | System.Double |
Inputs
Name | NodeId | Description | Data Type |
---|---|---|---|
PowerOn | <BaseTopic>/<DeviceName>/Inputs/PowerOn | PowerOn input of DIO module | System.Boolean |
ProductionOn | <BaseTopic>/<DeviceName>/Inputs/ProductionOn | ProductionOn input of DIO module | System.Boolean |
Setup | <BaseTopic>/<DeviceName>/Inputs/Setup | Setup input of DIO module | System.Boolean |
WarmUp | <BaseTopic>/<DeviceName>/Inputs/WarmUp | WarmUp input of DIO module | System.Boolean |
Maintenance | <BaseTopic>/<DeviceName>/Inputs/Maintenance | Maintenance input of DIO module | System.Boolean |
MissingMaterial | <BaseTopic>/<DeviceName>/Inputs/MissingMaterial | MissingMaterial input of DIO module | System.Boolean |
MissingPersonal | <BaseTopic>/<DeviceName>/Inputs/MissingPersonal | MissingPersonal input of DIO module | System.Boolean |
MissingTool | <BaseTopic>/<DeviceName>/Inputs/MissingTool | MissingTool input of DIO module | System.Boolean |
Disturbance | <BaseTopic>/<DeviceName>/Inputs/Disturbance | General Disturbance input of DIO module | System.Boolean |
DisturbanceMaterial | <BaseTopic>/<DeviceName>/Inputs/DisturbanceMaterial | DisturbanceMaterial input of DIO module | System.Boolean |
DisturbanceTool | <BaseTopic>/<DeviceName>/Inputs/DisturbanceTool | DisturbanceTool input of DIO module | System.Boolean |
Outputs
Name | NodeId | Description | Data Type |
---|---|---|---|
WhiteLight | <BaseTopic>/<DeviceName>/Outputs/WhiteLight | WhiteLight output of DIO module | System.Boolean |
GreenLight | <BaseTopic>/<DeviceName>/Outputs/GreenLight | GreenLight output of DIO module | System.Boolean |
BlueLight | <BaseTopic>/<DeviceName>/Outputs/BlueLight | BlueLight output of DIO module | System.Boolean |
YellowLight | <BaseTopic>/<DeviceName>/Outputs/YellowLight | YellowLight output of DIO module | System.Boolean |
RedLight | <BaseTopic>/<DeviceName>/Outputs/RedLight | RedLight output of DIO module | System.Boolean |
AlarmSignal | <BaseTopic>/<DeviceName>/Outputs/AlarmSignal | AlarmSignal output of DIO module | System.Boolean |
Job Information (Not Supported in v1)
The job information is not yet supported in version 1.x.
Name | NodeId | Description | Data Type |
---|---|---|---|
OEEProductName | <BaseTopic>/<DeviceName>/Job/OEEProductName | Current product that is produced on the machine | System.String |
OEEProductionStep | <BaseTopic>/<DeviceName>/Job/OEEProductionStep | Current production step | System.String |