Every process / batch vendor names the same measurement differently. Forge maps 3 of them into one canonical field set so your agent reads one shape.
| OEM | Vertical | Protocols | Coverage | Mapped |
|---|---|---|---|---|
| Chemical process | process / batch | OPC UA Modbus TCP MQTT Sparkplug B BACnet/IP | 96% | 10 fields |
| Food & beverage process | process / batch | OPC UA Modbus TCP MQTT Sparkplug B BACnet/IP | 96% | 10 fields |
| Pharma process (GMP) | process / batch | OPC UA Modbus TCP MQTT Sparkplug B BACnet/IP | 96% | 10 fields |
One real example per vendor — the clearest illustration of why a per-vendor parser does not scale.
| Raw tag in | Canonical field out | Source | |
|---|---|---|---|
| RX_PRESS: 3.4 | → | process.reactor.pressure_bar: 3.4 | Chemical process |
| CIP_STATE: "RINSE" | → | process.cip_state: "RINSE" | Food & beverage process |
| BATCH_ID: "LOT-2291" | → | process.batch_id: "LOT-2291" | Pharma process (GMP) |
OPC UA (3) Modbus TCP (3) MQTT Sparkplug B (3) BACnet/IP (3)
process.agitator_rpmprocess.batch_idprocess.cip_stateprocess.flow_rateprocess.jacket.temp_cprocess.level_pctprocess.phprocess.phase_stateprocess.reactor.pressure_barprocess.reactor.temp_c
Full schema: FoundryNet/canonical-schema (MIT, 366 fields).