PLC Driver Coverage Matrix

What we can read today, what we can read in 12 months, what we cannot read at all (yet). The single source of truth for driver scoping before any pilot. Updated quarterly + after every site survey.

Rule. Before we accept a pilot, the PLCs at the customer site must be green or yellow in this table. Red ones are deal-breakers unless we know exactly how to bridge them.


Part 1 — Coverage at a glance

StatusMeaningAction
🟢 ProductionDriver shipped + conformance-tested + deployed in ≥1 pilotUse as-is
🟡 In flightOSS lib forked; in development; not yet production-gradeOK if pilot timeline allows ≥6 weeks
🟠 PlannedOSS lib exists; we haven’t started; effort sizedNeed 2–4 week sprint to ship
🔴 GapNo usable OSS; would need custom work or vendor SDKPilot blocker until resolved
RefuseVendor-locked, license-incompatible, or strategically badDecline pilots requiring these unless we wrap with a gateway

Part 2 — Phase 1 (locked, must-have for production)

Per PRD — IA-3 Industrial Protocols & Drivers §Deliverable #1. These 4 cover roughly 85% of the PLCs we’ll see in Moroccan industrials.

ProtocolOSS lib (we fork)StatusCoverage in Moroccan pipelineMaturity rating
Siemens S7-300/400/1200/1500robinson/gos7 (Go, 392★)🟡 In flightYNNA Steel EAF, Super Cerame kiln, most rebar mills, ceramic, agro⭐⭐⭐⭐⭐ very mature
Modbus TCP / RTUgoburrow/modbus (Go)🟡 In flightPower meters everywhere, Lesieur Cristal PV inverters, drives, weigh systems⭐⭐⭐⭐⭐ very mature
OPC UA clientgopcua/opcua (Go)🟡 In flightSchneider M580, Beckhoff, newer Siemens, Renault Tanger / Stellantis Kénitra Tier-2 lines⭐⭐⭐⭐ mature
Omron FINSmaestrohub-labs/fins (Go, v0.1.0-mh.1)🟠 PlannedAgro-food packing lines, some chemical⭐⭐⭐ emerging — aligns us with MaestroHub

Combined Phase-1 coverage estimate.

  • ✅ ~85% of named pipeline accounts readable.
  • ❌ ~15% blocked: Honeywell DCS (notably SNEP), Allen-Bradley legacy, possibly Yokogawa.

Part 3 — Phase 2 backlog (12-month, by deal-driving priority)

PriorityProtocolBest OSS optionStatusWhy this priority
P1Allen-Bradley / Rockwell EtherNet/IPlibplctag (C with Go bindings)🟠 PlannedCommon in Super Cerame legacy presses, some Cosumar lines, automotive Tier-2
P2Schneider UMAS (M340/M580 advanced)py3comm — partial🔴 GapModbus covers basic reads; advanced symbolic access needs UMAS
P3Beckhoff ADS (TwinCAT)stansfield/go-ads — incomplete🟠 PlannedCommon in newer Tier-2 automotive + pharma; usually accessible via OPC UA on new versions
P4Mitsubishi MELSEC (SLMP / MC)paulgriffiths/melsec — partial🟠 PlannedPockets in textile, electronics, some Mitsubishi-spec automotive Tier-2
P5Honeywell Experion DCS adapterNone viable🔴 GapCritical for SNEP — DCS, not PLC. Needs custom work or Honeywell SDK license
P6B&R Automation PVINone mature🔴 GapCommon at Pharma 5 — usually OPC UA-accessible on newer X20/X90 controllers
P7HART over Modbus gatewaypyhart (lab-grade)🔴 GapProcess instrumentation in chemicals, refineries; usually via vendor gateway anyway

Part 4 — The full driver universe (every PLC family we might encounter)

A. Discrete PLCs (the bulk of the market)

PLC familyVendorNative protocolOSS supportOur pathDigiTPME status
S7-300 / S7-400SiemensS7 (ISO-on-TCP)✅ gos7Native S7🟡 P1
S7-1200 / S7-1500SiemensS7 + OPC UA built-in✅ gos7 / gopcuaEither; prefer OPC UA when available🟡 P1
LOGO!SiemensModbus TCP✅ goburrow/modbusModbus🟡 P1
M340 / M580SchneiderModbus TCP + UMAS + OPC UAPartial — UMAS = gapOPC UA preferred; Modbus fallback🟡 partial via OPC UA
Premium / Quantum (legacy)SchneiderModbus + UnitelwayModbus onlyModbus🟡 P1
CompactLogix / ControlLogixAllen-BradleyEtherNet/IP (CIP)✅ libplctagEIP via libplctag🟠 P1 of Phase 2
MicroLogix / SLC-500 (legacy)Allen-BradleyDF1 / EtherNet/IPOlder OSS, weakEIP via libplctag works for newer firmware🟠 P1 of Phase 2
CJ / CP / NJ / NXOmronFINS + EtherNet/IP✅ maestrohub-labs/finsFINS native🟠 P1
CS1 (legacy)OmronFINS✅ FINSFINS🟠 P1
MELSEC Q / iQ-R / FXMitsubishiSLMP / MCPartial OSSSLMP planned🟠 P4
TwinCAT runtime (CX / IPC)BeckhoffADS / OPC UAOPC UA preferredOPC UA when available; ADS as fallback🟠 P3
X20 / X90 / CompactB&ROPC UA / PVIOPC UA on new firmwareOPC UA🟠 P6
WAGO 750 seriesWAGOModbus + EtherNet/IP✅ both via existing libsModbus🟡 P1
Axioline / RFC 4072Phoenix ContactModbus + Profinet + REST API✅ Modbus + custom RESTModbus + REST when needed🟡 P1
DVP / AS / AH seriesDeltaModbus✅ ModbusModbus🟡 P1
XGB / XGI / XGRLS Electric (Korea)XGT FENet + ModbusModbus only via OSSModbus fallback🟡 partial
Hitachi EHV / HXHitachiModbus✅ ModbusModbus🟡 P1
VIPA SLIOYASKAWAS7-compatible✅ gos7gos7🟡 P1

B. DCS (Distributed Control Systems — for chemicals, refineries, large utilities)

DCSVendorNative protocolOSS supportOur pathDigiTPME status
Experion PKSHoneywellProprietary EWS❌ Nothing usableOPC UA gateway (Matrikon, Kepware) — adds cost🔴 P5 — SNEP blocker
Centum VP / CS3000YokogawaVnet/IP (proprietary)❌ Nothing usableOPC UA via Exaopc (Yokogawa’s own gateway)🔴 Gap — sugar / refining concern
DeltaVEmersonProprietary + OPC UA optionOPC UA on newerOPC UA — needs DeltaV OPC server🔴 Gap
800xAABBProprietary + OPC UAOPC UA on newerOPC UA via ABB OPC server🔴 Gap — possibly relevant for Managem mining
PCS 7SiemensS7 + WinCC OPC UA✅ gos7 + gopcuaS7 for tags, OPC UA for batch🟡 partial — uses Phase 1 libs
AVEVA System Platform / WonderwareAVEVAOPC UA + MQTT (newer)✅ gopcuaOPC UA🟡 partial

C. SCADA / HMI / Historian platforms (often sit above DCS)

PlatformVendorRead-out protocolOur path
IgnitionInductive AutomationOPC UA + MQTT/Sparkplug B native✅ Sparkplug B native — peer to us, not a barrier
Wonderware HistorianAVEVASQL + OPC HDAOPC UA (newer) or SQL extracts
OSIsoft PI SystemAVEVAPI Web API + OPC HDAPI Web API REST
iFixGEOPC UAOPC UA
WinCC OASiemensOPC UAOPC UA
ZenOnCopa-DataOPC UAOPC UA
TopServerSoftware ToolboxOPC UA / Sparkplug BWe talk Sparkplug B; bypass entirely

D. Drives / motor controllers (often Modbus-readable)

FamilyVendorProtocolOur path
SinamicsSiemensProfinet + S7gos7 / gopcua
PowerFlexAllen-BradleyEtherNet/IPlibplctag (Phase 2)
AltivarSchneiderModbusgoburrow/modbus 🟡
ACS seriesABBModbus + EtherNet/IPModbus 🟡
MR-J / FR seriesMitsubishiMELSEC + CC-LinkPhase 4

E. Energy meters & analyzers (mission-critical for CBAM)

FamilyVendorProtocolOur pathCBAM relevance
UMG 96JanitzaModbus TCP🟡 P1⭐⭐⭐⭐⭐ direct
PowerLogic PM5350SchneiderModbus🟡 P1⭐⭐⭐⭐⭐ direct
EM340 / EM530Carlo GavazziModbus🟡 P1⭐⭐⭐⭐⭐ direct
Diris A / BSocomecModbus🟡 P1⭐⭐⭐⭐ direct
GMP252 (CO₂ probe)VaisalaModbus + 4–20mA🟡 P1⭐⭐⭐⭐ Scope 1 process gas
HART instrumentationVariousHART (over 4–20mA)🔴 P7⭐⭐⭐ via gateway

F. Fieldbus / industrial Ethernet (transport, not read-out)

BusWhere you find itDirect Edge access?Our path
ProfinetSiemens-heavy plants❌ No (real-time bus); read via PLCgos7 / gopcua on the controller
Profibus DPOlder Siemens❌ No; read via PLC or Profibus-Ethernet gatewaygos7
EtherNet/IPAllen-Bradley✅ libplctag (Phase 2)Yes
EtherCATBeckhoff❌ Specialized; read via TwinCATADS or OPC UA
Modbus RTU (RS-485)Older drives, old PLCs✅ via Modbus-TCP gateway (Moxa, etc.)goburrow/modbus
CC-LinkMitsubishi❌ No; via PLCMELSEC (Phase 4)
DeviceNetOlder AB❌ Legacy; via gatewayReplace or live with it
IO-LinkNewer sensors✅ via IO-Link master (Modbus / OPC UA)Modbus or OPC UA

G. Building / HVAC / utility (sometimes relevant for energy)

ProtocolWhereOur path
BACnet/IPHVAC, building energyUse [vellotis/go-bacnet] when needed; Phase 3
KNXSmart-building stuffOut of scope for industrial pilots
M-BusEnergy meters at building levelModbus gateway available

Part 5 — The strategic gaps (red zones)

These are the deal-blockers as of today. Each one needs a decision: invest now, defer, or refuse the pilot.

Gap #1 — Honeywell Experion (DCS)

  • Where it bites. SNEP (the most-mature YNNA subsidiary; Honeywell DCS + SAP integrated). Likely also at OCP downstream + some refineries.
  • Why no OSS. Honeywell’s EWS protocol is proprietary; no community has reverse-engineered it cleanly.
  • Workarounds today:
    • OPC UA gateway via Matrikon () — adds ~$5–10k per site, breaks our open-architecture story.
    • PHD (Process History Database) export via SQL/CSV — slow, after-the-fact, not real-time.
  • Recommended path.
    1. Don’t take a Honeywell-only pilot in Phase 1 — refuse politely.
    2. By Phase 2, scope a paid Matrikon gateway integration as a differentiator from pure-OSS options.
    3. By Y2, evaluate writing our own minimal Experion adapter if 3+ named accounts depend on it.

Gap #2 — Yokogawa Centum (DCS)

  • Where it bites. Sugar refining (potentially Cosumar), some chemicals.
  • Why no OSS. Vnet/IP is proprietary; Yokogawa controls everything via Exaopc.
  • Recommended path. Same as Honeywell — bridge via Yokogawa’s own OPC UA gateway, charge accordingly.

Gap #3 — Schneider UMAS (advanced symbolic access on M340/M580)

  • Where it bites. Anywhere we want to read symbolic tags rather than raw Modbus addresses on Schneider M-series.
  • Workaround. Modbus TCP works for ~80% of needs (raw addresses). UMAS is a quality-of-life upgrade, not a blocker.
  • Recommended path. Defer to Y2 unless a customer explicitly demands symbolic access.

Gap #4 — HART instrumentation

  • Where it bites. Process plants with smart instruments (flow, pressure, pH).
  • Workaround. HART-to-Modbus gateways are cheap and widely available (~$200–500). Use them.
  • Recommended path. Skip writing a HART driver. Specify HART gateway in the BOM if site has HART devices.

Gap #5 — B&R PVI (legacy)

  • Where it bites. Pharma 5 — possibly. B&R is common in pharma.
  • Workaround. Newer B&R (X20/X90 with mapp Technology) speaks OPC UA out of the box → use gopcua.
  • Recommended path. Site survey check: B&R version. If new = covered. If old = scope out, possibly refuse.

Gap #6 — ABB 800xA

  • Where it bites. Possibly Managem mining, ABB-spec refineries.
  • Workaround. ABB AbilityTM Edgenius / 800xA Connectivity Server speaks OPC UA. Use that.
  • Recommended path. Treat as OPC UA target; cost adds the ABB connectivity server license to BOM.

Part 6 — Coverage mapped to the named pipeline

Crossing the named accounts with the driver matrix. This tells us which deals we can engineer today vs need driver investment first.

AccountLikely PLC stackDriver coveragePilot-readiness
YNNA SteelSiemens S7-1500 (EAF + drives) + Modbus power meters🟢 Phase 1 covers it✅ Ready
Super CerameSiemens or Schneider on kiln + likely AB on legacy presses🟡 Phase 1 (Siemens/Schneider) ✅; AB legacy 🟠 P2🟡 Mostly ready; AB-press a stretch
Lesieur CristalMixed Siemens + Schneider + Modbus PV inverters🟢 Phase 1 covers it✅ Ready
Sonasid (VIP)Siemens S7 mostly + Modbus meters🟢 Phase 1 covers it✅ Ready
DimatitLikely Siemens + Schneider🟢 Phase 1✅ Ready
SNEPHoneywell DCS + SAP🔴 Honeywell gap❌ Blocker — refuse Phase 1; revisit Y2
CosumarMixed; possibly Yokogawa on refinery🟡 If Siemens/Schneider ✅; if Yokogawa 🔴Needs survey
Centrale DanoneLikely Siemens + B&R on packing🟡 Siemens ✅; B&R 🟠 newer = OPC UA🟡 Mostly ready
Renault Tanger Tier-2Mixed — newer plants OPC UA standard🟡 OPC UA covered; AB pockets 🟠🟡 Mostly ready
Stellantis Kénitra Tier-2Mixed — varies per supplier🟡 OPC UA covered🟡 Mostly ready
LafargeHolcim Agadir-SoussSiemens PCS 7 likely🟢 gos7 + gopcua✅ Ready
Pharma 5B&R + Siemens likely🟡 B&R newer = OPC UA ✅; older 🟠Site survey first
Tanger MedMixed: Siemens + custom + lots of energy meters🟢 Phase 1✅ Ready
Managem TizertAlready runs Sparkplug B (Epiroc); ABB possibly elsewhere🟢 Sparkplug B native✅ Ready (Tizert)
OCP GroupMixed + IROC ecosystem🟢 Mostly Phase 1 + OPC UA✅ Reachable when relevant

Pipeline-level read. 9 of 15 named accounts are 🟢 ready today with our Phase-1 driver list. 3 are 🟡 (need site survey to confirm). 1 is a 🔴 blocker (SNEP — Honeywell).


Part 7 — Decision matrix (build vs buy vs refuse)

When a new pilot brings a protocol we don’t cover, decide using this:

ConditionDecision
OSS lib exists + maintained + Apache/MIT licenseFork-and-improve. Standard Phase-2 path.
OSS lib exists but unmaintained >12 monthsAdopt + maintain ourselves or migrate to alternative.
Closed-source vendor SDK exists, license OK, $1–5k costPay it once if 3+ accounts depend; document migration path.
Closed-source vendor SDK, license bad / $10k+Refuse the pilot. Not strategic.
No OSS, no SDK, customer needs itRefuse politely + reference to a SI partner.
Could write our own driver in <2 weeks (e.g. via documented protocol)Write it — adds to the moat.
Could write our own in >2 weeksDefer — not worth it for one customer.
Customer refuses to allow OSS on their networkRefuse. Wrong philosophical fit.

Rule of thumb. Driver investment > 4 person-weeks per protocol = needs founder approval. Per ADR process.


Part 8 — Roadmap & investment sizing

QuarterDriver workPerson-weeksPilots unblocked
Q1 (now → Jul)Phase 1: gos7 + Modbus + OPC UA + FINS production-grade~12 (= IA #3 full-time)YNNA Steel, Super Cerame, Lesieur, Sonasid, Tanger Med
Q2 (Jul → Oct)Phase 2 P1: libplctag (Allen-Bradley)~3Super Cerame legacy lines, Cosumar, automotive
Q3 (Oct → Jan)Phase 2 P3 + P4: Beckhoff ADS + Mitsubishi MELSEC~5Pharma, electronics, Mitsubishi-spec automotive
Q4 (Jan → Apr)Phase 2 P2: Schneider UMAS (if customer demands)~4Schneider-symbolic-needing customers
Y2Honeywell Experion (P5) — major investment OR partner~12 OR partnershipSNEP + future DCS accounts

Investment ratio. Driver work is ~25–30% of IA #3’s time; the rest is SDK + tag config schema + conformance harness.


Part 9 — Conformance & testing posture

Per PRD — IA-3 Industrial Protocols & Drivers §Driver SDK, every driver passes the same conformance harness before being marked 🟢.

The harness checks:

  1. Connect / disconnect — clean session lifecycle.
  2. Read 100 tags concurrently @ 1 Hz for 1 hour — load test.
  3. Behaviour on PLC restart — auto-reconnect.
  4. Behaviour on bad address — clear error, no crash.
  5. Behaviour on network blip — store-and-forward picks up.
  6. Tag-list reload-on-config-change — no driver restart needed.

Free simulators we use:

  • Siemens TIA Portal PLCSIM (free for read).
  • ModRSsim2 (Modbus simulator, free).
  • open62541 reference server (OPC UA simulator, free).
  • FINS simulator (limited; bench equipment helps).
  • libplctag’s built-in simulator for AB EtherNet/IP.

Part 10 — How to use this matrix

When founder is scoping a new pilot (in 04 — Pipeline Tracker)

  1. Find out the customer’s PLC stack (use Diagnostic Question Bank §Dim 9).
  2. Cross-reference here.
  3. All 🟢 → green light to discovery call.
  4. Any 🟡 → site survey first to confirm.
  5. Any 🔴 → either bridge (gateway), defer, or refuse.

When IA #3 plans the next driver

  1. Look at the named-pipeline column in Part 6.
  2. Build the driver that unblocks the next 2 named accounts.
  3. Write the ADR (per 08 — Decision Log).
  4. Ship behind the SDK + conformance harness.

When GMSI #1 does a site survey

  1. List every PLC found (brand, model, firmware) per PRD — OT-IT Integration & Field Phase 1 §Site Survey runbook.
  2. Cross-reference here for each.
  3. Flag any 🔴 immediately to founder before scoping commitment.

Part 11 — What this matrix is not

  • ❌ Not a static list — update quarterly + after every site survey.
  • ❌ Not exhaustive — exotic Eastern European or Korean PLCs may show up; treat them as 🔴 until proven.
  • ❌ Not a substitute for actually testing on real hardware. A site visit overrides this matrix.

Part 12 — Open questions to resolve

QuestionOwnerResolve by
Is SNEP’s Honeywell DCS pilot worth a paid Matrikon gateway integration?Founder + IA #3Q3 2026
Does Phase-2 P3 (Beckhoff ADS) actually matter or is OPC UA always available on TwinCAT 3+?IA #3After 1 Beckhoff site survey
Should we contribute upstream to MaestroHub FINS lib? Open-source goodwill vs internal velocity.Founder + IA #3Q2 2026 OKR session
Can we get a free Janitza UMG 96 dev unit for BOM bench? (Vendor relations)IA #2 + founderQ1 2026