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
Status
Meaning
Action
🟢 Production
Driver shipped + conformance-tested + deployed in ≥1 pilot
Use as-is
🟡 In flight
OSS lib forked; in development; not yet production-grade
OK if pilot timeline allows ≥6 weeks
🟠 Planned
OSS lib exists; we haven’t started; effort sized
Need 2–4 week sprint to ship
🔴 Gap
No usable OSS; would need custom work or vendor SDK
Pilot blocker until resolved
⚫ Refuse
Vendor-locked, license-incompatible, or strategically bad
Decline 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.
Process 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 family
Vendor
Native protocol
OSS support
Our path
DigiTPME status
S7-300 / S7-400
Siemens
S7 (ISO-on-TCP)
✅ gos7
Native S7
🟡 P1
S7-1200 / S7-1500
Siemens
S7 + OPC UA built-in
✅ gos7 / gopcua
Either; prefer OPC UA when available
🟡 P1
LOGO!
Siemens
Modbus TCP
✅ goburrow/modbus
Modbus
🟡 P1
M340 / M580
Schneider
Modbus TCP + UMAS + OPC UA
Partial — UMAS = gap
OPC UA preferred; Modbus fallback
🟡 partial via OPC UA
Premium / Quantum (legacy)
Schneider
Modbus + Unitelway
Modbus only
Modbus
🟡 P1
CompactLogix / ControlLogix
Allen-Bradley
EtherNet/IP (CIP)
✅ libplctag
EIP via libplctag
🟠 P1 of Phase 2
MicroLogix / SLC-500 (legacy)
Allen-Bradley
DF1 / EtherNet/IP
Older OSS, weak
EIP via libplctag works for newer firmware
🟠 P1 of Phase 2
CJ / CP / NJ / NX
Omron
FINS + EtherNet/IP
✅ maestrohub-labs/fins
FINS native
🟠 P1
CS1 (legacy)
Omron
FINS
✅ FINS
FINS
🟠 P1
MELSEC Q / iQ-R / FX
Mitsubishi
SLMP / MC
Partial OSS
SLMP planned
🟠 P4
TwinCAT runtime (CX / IPC)
Beckhoff
ADS / OPC UA
OPC UA preferred
OPC UA when available; ADS as fallback
🟠 P3
X20 / X90 / Compact
B&R
OPC UA / PVI
OPC UA on new firmware
OPC UA
🟠 P6
WAGO 750 series
WAGO
Modbus + EtherNet/IP
✅ both via existing libs
Modbus
🟡 P1
Axioline / RFC 4072
Phoenix Contact
Modbus + Profinet + REST API
✅ Modbus + custom REST
Modbus + REST when needed
🟡 P1
DVP / AS / AH series
Delta
Modbus
✅ Modbus
Modbus
🟡 P1
XGB / XGI / XGR
LS Electric (Korea)
XGT FENet + Modbus
Modbus only via OSS
Modbus fallback
🟡 partial
Hitachi EHV / HX
Hitachi
Modbus
✅ Modbus
Modbus
🟡 P1
VIPA SLIO
YASKAWA
S7-compatible
✅ gos7
gos7
🟡 P1
B. DCS (Distributed Control Systems — for chemicals, refineries, large utilities)
DCS
Vendor
Native protocol
OSS support
Our path
DigiTPME status
Experion PKS
Honeywell
Proprietary EWS
❌ Nothing usable
OPC UA gateway (Matrikon, Kepware) — adds cost
🔴 P5 — SNEP blocker
Centum VP / CS3000
Yokogawa
Vnet/IP (proprietary)
❌ Nothing usable
OPC UA via Exaopc (Yokogawa’s own gateway)
🔴 Gap — sugar / refining concern
DeltaV
Emerson
Proprietary + OPC UA option
OPC UA on newer
OPC UA — needs DeltaV OPC server
🔴 Gap
800xA
ABB
Proprietary + OPC UA
OPC UA on newer
OPC UA via ABB OPC server
🔴 Gap — possibly relevant for Managem mining
PCS 7
Siemens
S7 + WinCC OPC UA
✅ gos7 + gopcua
S7 for tags, OPC UA for batch
🟡 partial — uses Phase 1 libs
AVEVA System Platform / Wonderware
AVEVA
OPC UA + MQTT (newer)
✅ gopcua
OPC UA
🟡 partial
C. SCADA / HMI / Historian platforms (often sit above DCS)
Platform
Vendor
Read-out protocol
Our path
Ignition
Inductive Automation
OPC UA + MQTT/Sparkplug B native
✅ Sparkplug B native — peer to us, not a barrier
Wonderware Historian
AVEVA
SQL + OPC HDA
OPC UA (newer) or SQL extracts
OSIsoft PI System
AVEVA
PI Web API + OPC HDA
PI Web API REST
iFix
GE
OPC UA
OPC UA
WinCC OA
Siemens
OPC UA
OPC UA
ZenOn
Copa-Data
OPC UA
OPC UA
TopServer
Software Toolbox
OPC UA / Sparkplug B
We talk Sparkplug B; bypass entirely
D. Drives / motor controllers (often Modbus-readable)
Family
Vendor
Protocol
Our path
Sinamics
Siemens
Profinet + S7
gos7 / gopcua
PowerFlex
Allen-Bradley
EtherNet/IP
libplctag (Phase 2)
Altivar
Schneider
Modbus
goburrow/modbus 🟡
ACS series
ABB
Modbus + EtherNet/IP
Modbus 🟡
MR-J / FR series
Mitsubishi
MELSEC + CC-Link
Phase 4
E. Energy meters & analyzers (mission-critical for CBAM)
Family
Vendor
Protocol
Our path
CBAM relevance
UMG 96
Janitza
Modbus TCP
🟡 P1
⭐⭐⭐⭐⭐ direct
PowerLogic PM5350
Schneider
Modbus
🟡 P1
⭐⭐⭐⭐⭐ direct
EM340 / EM530
Carlo Gavazzi
Modbus
🟡 P1
⭐⭐⭐⭐⭐ direct
Diris A / B
Socomec
Modbus
🟡 P1
⭐⭐⭐⭐ direct
GMP252 (CO₂ probe)
Vaisala
Modbus + 4–20mA
🟡 P1
⭐⭐⭐⭐ Scope 1 process gas
HART instrumentation
Various
HART (over 4–20mA)
🔴 P7
⭐⭐⭐ via gateway
F. Fieldbus / industrial Ethernet (transport, not read-out)
Bus
Where you find it
Direct Edge access?
Our path
Profinet
Siemens-heavy plants
❌ No (real-time bus); read via PLC
gos7 / gopcua on the controller
Profibus DP
Older Siemens
❌ No; read via PLC or Profibus-Ethernet gateway
gos7
EtherNet/IP
Allen-Bradley
✅ libplctag (Phase 2)
Yes
EtherCAT
Beckhoff
❌ Specialized; read via TwinCAT
ADS or OPC UA
Modbus RTU (RS-485)
Older drives, old PLCs
✅ via Modbus-TCP gateway (Moxa, etc.)
goburrow/modbus
CC-Link
Mitsubishi
❌ No; via PLC
MELSEC (Phase 4)
DeviceNet
Older AB
❌ Legacy; via gateway
Replace or live with it
IO-Link
Newer sensors
✅ via IO-Link master (Modbus / OPC UA)
Modbus or OPC UA
G. Building / HVAC / utility (sometimes relevant for energy)
Protocol
Where
Our path
BACnet/IP
HVAC, building energy
Use [vellotis/go-bacnet] when needed; Phase 3
KNX
Smart-building stuff
Out of scope for industrial pilots
M-Bus
Energy meters at building level
Modbus 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 ()orKepware() — 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.
Don’t take a Honeywell-only pilot in Phase 1 — refuse politely.
By Phase 2, scope a paid Matrikon gateway integration as a differentiator from pure-OSS options.
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.
Account
Likely PLC stack
Driver coverage
Pilot-readiness
YNNA Steel
Siemens S7-1500 (EAF + drives) + Modbus power meters
🟢 Phase 1 covers it
✅ Ready
Super Cerame
Siemens or Schneider on kiln + likely AB on legacy presses
🟡 Phase 1 (Siemens/Schneider) ✅; AB legacy 🟠 P2
🟡 Mostly ready; AB-press a stretch
Lesieur Cristal
Mixed Siemens + Schneider + Modbus PV inverters
🟢 Phase 1 covers it
✅ Ready
Sonasid (VIP)
Siemens S7 mostly + Modbus meters
🟢 Phase 1 covers it
✅ Ready
Dimatit
Likely Siemens + Schneider
🟢 Phase 1
✅ Ready
SNEP
Honeywell DCS + SAP
🔴 Honeywell gap
❌ Blocker — refuse Phase 1; revisit Y2
Cosumar
Mixed; possibly Yokogawa on refinery
🟡 If Siemens/Schneider ✅; if Yokogawa 🔴
Needs survey
Centrale Danone
Likely Siemens + B&R on packing
🟡 Siemens ✅; B&R 🟠 newer = OPC UA
🟡 Mostly ready
Renault Tanger Tier-2
Mixed — newer plants OPC UA standard
🟡 OPC UA covered; AB pockets 🟠
🟡 Mostly ready
Stellantis Kénitra Tier-2
Mixed — varies per supplier
🟡 OPC UA covered
🟡 Mostly ready
LafargeHolcim Agadir-Souss
Siemens PCS 7 likely
🟢 gos7 + gopcua
✅ Ready
Pharma 5
B&R + Siemens likely
🟡 B&R newer = OPC UA ✅; older 🟠
Site survey first
Tanger Med
Mixed: Siemens + custom + lots of energy meters
🟢 Phase 1
✅ Ready
Managem Tizert
Already runs Sparkplug B (Epiroc); ABB possibly elsewhere
🟢 Sparkplug B native
✅ Ready (Tizert)
OCP Group
Mixed + 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:
Condition
Decision
OSS lib exists + maintained + Apache/MIT license
Fork-and-improve. Standard Phase-2 path.
OSS lib exists but unmaintained >12 months
Adopt + maintain ourselves or migrate to alternative.