Industrial Automation / OT Protocol DSLs Family Index
type: language-family-index family: industrial-automation languages_catalogued: 26 tags: [language-reference, family-index, industrial-automation, ot, opc-ua, modbus, mqtt-sparkplug, iec-61850, fieldbus, digital-twin, aas]
Industrial Automation / OT Protocol DSLs — Family Index
Family overview
Operational Technology (OT) is the half of computing that runs the physical world — power substations, refineries, water plants, packaging lines, building HVAC, and the millions of valves, drives, sensors, PLCs and IEDs behind them. Its protocol stack is fragmented, old, and full of acronyms because it accreted vendor-by-vendor and decade-by-decade: Modicon’s Modbus (1979) predates the personal computer; Fieldbus Foundation, PROFIBUS, DeviceNet, ControlNet, Interbus and CC-Link spent the 1990s in the “fieldbus wars”; the Industrial Ethernet wave (PROFINET, EtherNet/IP, EtherCAT, Powerlink, Sercos III) re-fought the same wars in the 2000s on TCP/UDP. The textual / structured DSLs catalogued here are the artifacts of that history — the device-description files, address-space models, topic-namespace specifications, and configuration languages that make these protocols implementable and interoperable.
The OPC Foundation’s two-decade bet has been to abandon binary OPC Classic / DCOM and push OPC UA (IEC 62541) — a transport-agnostic information-modelling framework with NodeSet2.xml as its address-space DSL — as the single layer above all the legacy fieldbuses. The bet is succeeding: as of 1.05.07 (released 2026-04-21, see citations) OPC UA is mandated in most new industrial projects, certification 1.03 sunsets at end of 2026, and Companion Specifications (overlays for plastics, robotics, machine vision, weighing, etc.) are the actual interoperability units that vendors target. Crucially, OPC UA Part 14 PubSub (2018) layered MQTT and AMQP transports onto OPC UA, addressing the broker-vs-client-server scalability gap that was its biggest weakness.
Meanwhile, Sparkplug B took the inverse path — start from MQTT (a lightweight pub/sub protocol that the OT world had already adopted at the edge) and add the missing pieces: a deterministic Protobuf payload schema, a standard topic namespace (spBv1.0/<group>/<message>/<edge>/<device>), birth/death certificates, and metric-level state synchronisation. Sparkplug 3.0 (released October 2022, ratified by EFSP) became ISO/IEC 20237:2023 in October 2023 and is the de facto IIoT-MQTT standard; Sparkplug 4.0 is in development under the Eclipse Foundation Specification Process. The Eclipse Tahu project provides reference implementations across Java, C, .NET, Python and JavaScript.
In power utilities, IEC 61850 is the category-defining standard. Its SCL (Substation Configuration Language, Part 6) is an XML DSL describing IED capabilities, substation topology, datasets, and the GOOSE/Sampled-Values mappings that move ms-precision protection signals across the substation LAN. Edition 2.1 with revisions A/B/C is current; only Revision C is the valid edition for new deployments. Adjacent telecontrol standards (IEC 60870-5-101/-104) and the IEEE 1815 DNP3 family handle utility WAN telemetry. And atop all of this, the EU-led Asset Administration Shell (AAS, IDTA-01001-3-0-2 metamodel, March 2025) is positioning itself as Industry 4.0’s canonical digital-twin metamodel — capturing asset metadata, lifecycle events, and submodels in the AASX serialisation format.
Most of these DSLs started life as XML between 1998 and 2010, and most are slowly acquiring JSON-LD, Protobuf, or REST/OpenAPI companion bindings (AAS already publishes a REST API spec, OPC UA has a JSON encoding alongside its binary one, EDDL/FDI now expose OPC UA information models). The XML-to-JSON-LD migration is the single most reliable trend across the family.
In our deep library
None of these are in the Languages deep library — they are protocol DSLs rather than general-purpose programming languages. Cross-reference:
- robotics-control — sibling family covering control-logic DSLs (IEC 61131-3 ST/LD/FBD/SFC, IEC 61499, KUKA KRL, ABB RAPID, URScript, etc.) and simulation/description DSLs (URDF, SDF, OpenSCENARIO). The boundary: robotics-control covers languages that execute on a controller; this family covers languages that describe a protocol’s contents on the wire and on the device.
- api-description — modern overlays via REST + OpenAPI / AsyncAPI / Protobuf, increasingly bridged to OT via OPC UA’s REST companion and AAS APIs.
- notation-spec — formal-spec adjacent (TLA+, Alloy); some IEC 61499 verification work uses these.
- embedded-firmware — where these protocols are actually implemented (C/Rust stacks for Modbus, OPC UA, EtherCAT, IEC 61850 GOOSE).
- build-devops — industrial CI/CD / GitOps for PLC code (TwinCAT, Codesys) is adjacent.
- stream-processing — once OT data leaves the plant via Sparkplug or OPC UA PubSub, it typically lands in Kafka and is consumed by Flink/RisingWave; the “OT-to-IT bridge” is a stream-processing problem.
Tier 3 family table — OPC UA & address-space modelling
| Format | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| OPC UA NodeSet2.xml | 2008 (UA 1.0) | OPC Foundation (IEC 62541) | XML schema for OPC UA address-space (nodes, references, types, instances) | Very active; 1.05.07 released 2026-04-21; 1.03 certification sunsets end-2026 | https://reference.opcfoundation.org/ |
| OPC UA PubSub config | 2018 (Part 14, v1.04) | OPC Foundation | XML/JSON config DSL for publish-subscribe groups, datasets, transports | Active; v1.05 added MQTT transport profiles + JSON dataset encoding | https://reference.opcfoundation.org/Core/Part14/v105/docs/ |
| OPC UA over MQTT mapping | 2018 (Part 14) | OPC Foundation | Maps OPC UA PubSub onto MQTT 5 brokers; topic-tree convention + ConnectionTransport profile | Active; the canonical OPC-UA-meets-IIoT path | https://reference.opcfoundation.org/Core/Part14/v105/docs/7.3.5 |
| OPC UA Companion Specifications | 2010+ (rolling) | OPC Foundation + domain consortia (Euromap, VDMA, ODVA, AIM, etc.) | Domain-specific NodeSet overlays (plastics, robotics, machine-vision, weighing, packaging, etc.) | Very active; ~80+ companion specs published, growing yearly | https://opcfoundation.org/about/opc-technologies/opc-ua/companion-specifications/ |
Tier 3 family table — MQTT-based industrial
| Format | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| MQTT topic-path grammar | 1999 (MQTT 3.1) | IBM (Andy Stanford-Clark, Arlen Nipper) → OASIS | Topic-tree DSL: /-delimited levels, + single-level wildcard, # multi-level, $SYS/ reserved namespace | Active; MQTT 5.0 ratified as OASIS Standard 2019-03-07; MQTT 3.1.1 still dominant in deployed base | https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html |
| Sparkplug B (Sparkplug 3.0) | 2016 (Cirrus Link) → Eclipse Tahu 2018 → 3.0 in Oct 2022 | Cirrus Link / Arlen Nipper → Eclipse Foundation | Topic-namespace + Protobuf payload spec for industrial MQTT; birth/death certs, state sync | Very active; ratified as ISO/IEC 20237:2023 (Oct 2023); Sparkplug 4.0 in EFSP draft | https://sparkplug.eclipse.org/specification/version/3.0/ |
| Eclipse Tahu reference impls | 2018 | Eclipse Foundation | Reference Sparkplug implementations in Java, C, .NET, Python, JS | Active; v1.0.0 paired with Sparkplug 3.0 TCK | https://github.com/eclipse-sparkplug/sparkplug |
Tier 3 family table — Fieldbus device descriptions
| Format | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| Modbus register-map / ADU framing | 1979 (Modicon) → Modbus.org 2004 | Modicon (Schneider) → Modbus Organization | Addressing convention (4xxxx holding, 3xxxx input, 0xxxx coils, 1xxxx discrete) + TCP/RTU framing | Very active despite 47-year age; the universal lowest-common-denominator industrial protocol | https://modbus.org/specs.php |
| PROFINET GSDML | 2003 (GSDML 1.0) | PROFIBUS & PROFINET International (PI) / Siemens-led | XML-based “Generic Station Description Markup Language” describing PROFINET device modules, slots, parameters | Active; GSDML v2.43 current; the device-description DSL of the largest industrial-Ethernet ecosystem | https://www.profibus.com/technology/profinet/gsdml |
| EtherCAT ESI XML (ETG.2000) | 2003 | EtherCAT Technology Group / Beckhoff | XML schema for EtherCAT SubDevice Information — PDOs, SDOs, mailbox, distributed-clock config | Active; ETG.2000 governs schema; SCI extension adds pre-configured device snapshots | https://www.ethercat.org/en/downloads/downloads_48EF1F220AF54F77AF58921401342864.htm |
| EtherCAT PDO mapping | 2003 | EtherCAT Technology Group | Process-Data-Object mapping inside ESI; defines cyclic on-the-wire layout per slave | Active; covered by ESI/SCI specs | https://www.ethercat.org/ |
| CIP / EtherNet/IP EDS | 1994 (DeviceNet, then CIP/EtherNet-IP 2001) | ODVA (Rockwell-led) | Electronic Data Sheet — INI-style key/value file describing CIP object model + parameters | Active; the device-description DSL for the Allen-Bradley world | https://www.odva.org/technology-standards/ |
| EDDL (IEC 61804) | 2002 (IEC 61804-2) | IEC TC65 / FieldComm Group / FDT Group | Electronic Device Description Language — describes HART, Foundation Fieldbus, PROFIBUS PA device parameters and methods | Mature; complemented (not replaced) by FDI; basis for FDI Device Packages | https://www.fieldcommgroup.org/eddl |
| FDI Device Packages (IEC 62769) | 2014 (FDI 1.0) | FDI Cooperation (FieldComm + Profibus + OPC) | Successor architecture: bundles EDDL device description + UI plugins + business logic into a Device Package; uses OPC UA for client/server | Active; IEC 62769-5 = FDI-2025 edition; converging with OPC UA Field eXchange (UAFX) | https://www.fieldcommgroup.org/fdi-specifications |
| Sercos III XML (SDDML) | 2007 | Sercos International | XML device description for Sercos III motion bus | Niche-active; strong in machine tooling | https://www.sercos.org/ |
| Powerlink XDD | 2001 | EPSG (B&R-led) | XML Device Description for EtherNET POWERLINK | Niche; declining outside B&R installed base | https://www.ethernet-powerlink.org/ |
| HART Command Set | 1986 → HART 7 (2007) | Rosemount → FieldComm Group | Master/slave command vocabulary over 4-20 mA + FSK; ~250 commands (Universal/Common-Practice/Device-Specific) | Very active; HART 7 + WirelessHART; embedded in EDDL for tools | https://www.fieldcommgroup.org/hart |
Tier 3 family table — Telecontrol / SCADA / utility
| Format | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| DNP3 object library (IEEE 1815) | 1990 (DNP3) → IEEE 1815-2012 → SAv6 (2020) | GE Harris → DNP Users Group → IEEE | Object/variation library + SCADA outstation/master protocol; DNP3-SA adds challenge-response auth | Very active; IEEE 1815-2012 with Sec Auth v5 is the deployed baseline; SAv6 (2020) adds optional encryption | https://standards.ieee.org/ieee/1815/5414/ |
| IEC 61850 SCL (Part 6) | 2003 → Edition 2 (2013) → Edition 2.1 Rev C (current) | IEC TC57 | XML “Substation Configuration Language” — IED capability description (ICD), system spec (SSD), configured IED (CID), substation config (SCD) | Very active; the dominant power-utility automation language; openSCD editor is the OSS reference tool | https://webstore.iec.ch/publication/63319 |
| IEC 61850 GOOSE / Sampled Values | 2003 | IEC TC57 | Wire-level multicast Ethernet protocols for ms-precision protection signals; configured via SCL datasets | Very active; mandatory in modern substation protection schemes | https://webstore.iec.ch/publication/6033 |
| IEC 60870-5-101 / -104 | 1995 (-101) / 2000 (-104) | IEC TC57 | Telecontrol protocols for RTU↔master in utilities; -104 is TCP/IP variant of -101 | Active; widely deployed in European + Asian grid SCADA, often alongside DNP3 | https://webstore.iec.ch/publication/3760 |
Tier 3 family table — Building automation
| Format | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| BACnet object/property model | 1995 (ANSI/ASHRAE 135) → ISO 16484-5 | ASHRAE SSPC 135 | Object-and-property addressing vocabulary (Analog Input, Binary Output, Schedule, etc.); BACnet/IP, BACnet/SC (Secure Connect, 2020) | Very active; the dominant building-automation protocol globally | https://bacnet.org/ |
| KNX ETS project XML | 1990 (EIB) → 2003 (KNX) | KNX Association | XML project files inside ETS (Engineering Tool Software) describing bus topology, group addresses, device parameters | Active in EU residential/commercial; ETS 6 is current tooling | https://www.knx.org/ |
| LonWorks LonTalk XIF | 1990 (Echelon) | Echelon → ISO/IEC 14908 | ”External Interface File” device description for LonTalk neurons | Legacy; declining since Echelon’s 2018 dissolution | https://www.lonmark.org/ |
Tier 3 family table — Digital Twin / Industry 4.0
| Format | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| AAS Metamodel (IDTA-01001) | 2018 (Plattform I4.0) → IDTA 2020 → 3.0.2 (Mar 2025) | Plattform Industrie 4.0 → IDTA (Industrial Digital Twin Association) | Asset Administration Shell metamodel — submodels, asset references, lifecycle events; defined in UML + RDF + JSON Schema | Very active; v3.0.2 metamodel + v3.1.2 API are current; EU-led digital-twin canonical model | https://industrialdigitaltwin.org/en/content-hub/aasspecifications |
| AASX package serialisation | 2019 | IDTA | OPC UA Foundation’s Open Packaging Conventions (OPC, of file-format fame) container holding XML/JSON AAS instances + supporting documents | Active; the on-disk + on-wire format for AAS exchange | https://industrialdigitaltwin.org/ |
Notable threads
-
The OPC UA bet: one information model to rule them all. After two decades, OPC UA is genuinely succeeding — but as an overlay on top of the legacy fieldbuses rather than a replacement. The pattern: the field-level bus stays whatever it was (Modbus, PROFINET, EtherCAT, EtherNet/IP), and an edge gateway exposes that data via an OPC UA server whose NodeSet conforms to a Companion Specification (e.g. Euromap 77 for plastics, VDMA 40010 for machine vision). The Companion Specs are arguably more important than the core OPC UA spec at this point — they’re the unit of vendor interop.
-
Sparkplug B’s bet: MQTT + Protobuf + standardised topics. Eclipse Tahu’s reference implementation became the de facto standard. Sparkplug 3.0 (Oct 2022) was ratified as ISO/IEC 20237:2023 in October 2023 — a remarkably fast trip from spec to international standard, helped by the simplicity of the spec relative to OPC UA’s hundreds of pages. Sparkplug 4.0 is in EFSP draft. The bet is “OPC UA is too heavy for fleet-of-thousands edge devices; let MQTT do what it’s good at and add the missing payload schema.”
-
OPC UA over MQTT (Part 14): solving OPC UA’s broker problem. Classic OPC UA was client/server only — every consumer of a tag opened a TCP session to the server, which capped scalability around a few hundred clients per server. Part 14 (2018) added PubSub with UDP, AMQP, and MQTT transports; the 1.05 series filled in JSON dataset encoding and ECC SecurityPolicies. The “OPC UA published into an MQTT broker” pattern is now in active competition with Sparkplug for the same architectural slot.
-
IEC 61850 as a category-defining standard. SCL XML describes substation topology + IED capabilities + datasets + GOOSE/SV mappings in one consistent model — and unlike most fieldbus device descriptions, the system-level topology (SSD/SCD files) is also in scope. Deployed in essentially every modern grid substation, and increasingly used outside utilities (wind farms, large industrial sites with private MV grids). The bridge to DNP3 (the North American utility WAN protocol) is a perennial integration concern; gateways translating SCL datasets into DNP3 object library entries are a routine part of utility SCADA architecture.
-
The EDDL → FDI succession that wasn’t. EDDL (IEC 61804, ~2002) was supposed to be replaced by FDI Device Packages (IEC 62769, 2014) but in practice FDI embeds EDDL — the Device Package contains EDDL files, plus optional UI plugins (FDI Communication Server / FDI Device Packages) and OPC UA bindings. So FDI is a superset architecture rather than a replacement language. The convergence target now is OPC UA Field eXchange (UAFX), which positions OPC UA companion specs as the long-term replacement for both EDDL and FDI device packages.
-
OT/IT convergence as a translator-DSL problem. Companies bridging shop-floor data (OPC UA, Sparkplug, Modbus polling, IEC 61850 GOOSE) to cloud platforms (Azure IoT Hub, AWS IoT Greengrass, Google Cloud IoT Core’s successor patterns) need DSL translators because the type systems don’t align: OPC UA has a rich variant/structured/array type system, Sparkplug uses Protobuf, MQTT cloud brokers expect JSON, and InfluxDB / Snowflake / BigQuery sinks want flat columnar. Tools like HiveMQ Edge, Cirrus Link MQTT modules, and FluxIO sit in this gap and are essentially DSL-translation engines.
-
Asset Administration Shell as the EU-led digital-twin standard. AASX captures asset metadata, technical data, lifecycle events, and submodels — the IDTA’s bet is that AAS becomes the canonical cross-vendor digital-twin metamodel, the way OPC UA is the canonical cross-vendor live-data model. v3.0.2 metamodel (March 2025) + v3.1.2 API are current. Gartner, ARC, and the EU’s Digital Product Passport regulation are pushing AAS adoption hard; whether US/Asian vendors fully embrace it (vs Microsoft Digital Twins or AWS TwinMaker) is still an open question in 2026.
-
The XML-to-JSON-LD migration. Almost every DSL in this family started as XML (1998-2010 era) and most are slowly acquiring JSON, JSON-LD, or Protobuf companions for cloud integration: OPC UA has a JSON encoding alongside its binary one, AAS publishes both XML and JSON serialisations of the metamodel, Sparkplug bypassed XML entirely with Protobuf, GSDML and ESI are still XML-only but tooling generates JSON exports for cloud ingestion. The XML-first generation is durable for on-device tooling (PLC engineering, IED configuration) but the cloud-side has standardised on JSON/Protobuf.
Citations
- OPC UA Online Reference (Part 14 PubSub v1.05): https://reference.opcfoundation.org/Core/Part14/v105/docs/7.3.5
- OPC Foundation Specifications: https://opcfoundation.org/developer-tools/specifications-unified-architecture
- OPC UA 1.05.07 release (2026-04-21): https://opcfoundation.org/about/opc-technologies/opc-ua/opcua-roadmap/
- Sparkplug 3.0 specification (Eclipse Foundation): https://sparkplug.eclipse.org/specification/version/3.0/
- Eclipse Tahu reference implementations: https://github.com/eclipse-sparkplug/sparkplug
- ISO/IEC 20237:2023 (Sparkplug 3.0): https://www.iso.org/standard/86204.html
- MQTT Version 5.0 OASIS Standard (2019-03-07): https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html
- Modbus.org specifications: https://modbus.org/specs.php
- PROFINET GSDML: https://www.profibus.com/technology/profinet/gsdml
- EtherCAT ETG.2000 ESI specification: https://www.ethercat.org/en/downloads/downloads_48EF1F220AF54F77AF58921401342864.htm
- ODVA (CIP / EtherNet-IP / EDS): https://www.odva.org/technology-standards/
- FieldComm Group EDDL: https://www.fieldcommgroup.org/eddl
- FieldComm Group FDI specifications: https://www.fieldcommgroup.org/fdi-specifications
- IEEE 1815-2012 (DNP3): https://standards.ieee.org/ieee/1815/5414/
- IEC 61850 SCL (Edition 2.1): https://webstore.iec.ch/publication/63319
- BACnet (ANSI/ASHRAE 135 / ISO 16484-5): https://bacnet.org/
- KNX Association: https://www.knx.org/
- IDTA Asset Administration Shell specifications: https://industrialdigitaltwin.org/en/content-hub/aasspecifications
- AAS Metamodel IDTA-01001-3-0-2 (March 2025): https://industrialdigitaltwin.org/wp-content/uploads/2025/03/IDTA-01001-3-0-2_SpecificationAssetAdministrationShell_Part1_Metamodel.pdf
- OPC UA Companion Specifications: https://opcfoundation.org/about/opc-technologies/opc-ua/companion-specifications/
- openSCD (IEC 61850 SCL editor): https://github.com/openscd/open-scd