|
ProtoCore v0.0.2
Deterministic, zero-heap network stack for embedded targets
|
EUROMAP 77 / OPC 40077 - OPC UA for injection moulding machines (IMM <-> MES), the IMM_MES_Interface information model (PC_ENABLE_EUROMAP77). More...
#include "protocore_config.h"Go to the source code of this file.
EUROMAP 77 / OPC 40077 - OPC UA for injection moulding machines (IMM <-> MES), the IMM_MES_Interface information model (PC_ENABLE_EUROMAP77).
EUROMAP 77 (published as OPC 40077, namespace http://www.euromap.org/euromap77/) standardizes how an injection molding machine (IMM) reports its identity, status, and the active job's live production counters to a MES, so any OPC UA client reads the same structure across machine vendors. It builds on EUROMAP 83 (OPC 40083, http://www.euromap.org/euromap83/), the shared plastics/rubber type + enum library (MachineModeEnumeration, JobStatusEnumeration, ...).
This module builds the IMM_MES_Interface address space on top of the OPC UA Binary server (services/opcua, PC_ENABLE_OPCUA): it registers a Browse + Read resolver that answers for the IMM_MES_Interface node hierarchy and serves live values out of a caller-owned EmImm struct you refresh in your loop. Same pattern as services/umati / services/robotics; no heap, no stdlib - the model is a fixed node table, the values are pointers/scalars in your struct.
Model exposed (BrowseNames per the EUROMAP 77 NodeSet), under the Objects folder:
IMM_MES_Interface MachineInformation Manufacturer, Model, SerialNumber, ProductCode, HardwareRevision, SoftwareRevision, DeviceRevision, ManufacturerUri MachineStatus IsPresent, MachineMode Jobs ActiveJob JobName, JobDescription, Material, ProductName, MouldId, ExpectedCycleTime, NumCavities, NominalParts ActiveJobValues JobCycleCounter, MachineCycleCounter, LastCycleTime, AverageCycleTime, JobPartsCounter, JobGoodPartsCounter, JobBadPartsCounter, JobStatus
The production counters are faithful UInt64 (EUROMAP 77 defines them 64-bit), served through the OPC UA Variant's UInt64 encoding. The model is read-only (a monitoring model - the machine reports, the MES observes). Scope note: one IMM with its active job is exposed (the common single-machine MES feed); the companion-spec TypeDefinitions, methods, file/dataset transfer, and the multi-cardinality arrays (InjectionUnits, Moulds, MachineConfiguration detail) are a documented follow-on - a generic OPC UA client still browses the structure and reads every value by BrowseName today.
Like umati / robotics, this installs the single OPC UA read + browse handler, so one companion model is active per server build (EUROMAP 77, umati, and robotics are mutually exclusive per OPC UA endpoint).
Definition in file euromap77.h.