Industrial IoT Software
an independent guide for industrial IoT software buyers
Subscribe
Guide

Protocol Compatibility: What Your Vendor Won't Tell You

Every IIoT platform vendor claims broad protocol support. What the marketing materials do not show is the gap between supporting a protocol family and actually connecting to the specific device, firmware version, and tag type running on your floor.

Before you start — what you need
  • The make, model, and firmware version of every PLC and controller you intend to connect
  • Your network topology including VLANs and subnets separating OT devices from the proposed gateway location
  • The vendor's driver documentation — firmware version matrices, not marketing pages
  • Access to one representative device of each type for a pre-purchase connectivity test

The problem

Protocol support is not binary. A platform that supports Allen-Bradley EtherNet/IP can connect to a CompactLogix L33ER running firmware 30.011. It may not read all tag types from a CompactLogix L32E running firmware 17.003. The driver exists. The device is on the supported list. The specific combination may not work — and you will not find out until the gateway is on your network.

Where support claims break down

Allen-Bradley Firmware version gaps

PLC firmware evolves. A driver written for a specific firmware version may not handle data structures introduced in a later version, or may fail on devices running older firmware that predates a feature the driver assumes is present. Always ask: what is the oldest and newest firmware version your driver has been tested against for this specific device model?

Allen-Bradley Program-scoped tags and UDTs

Most drivers handle standard integer and float tags reliably. String tags, UDT arrays, and program-scoped tags are where coverage gets inconsistent. In Allen-Bradley Logix platforms, controller-scoped tags are generally accessible. Program-scoped tags require driver navigation of the program namespace — not all drivers implement this fully.

If your PLC uses program-scoped tags — and most real-world programs do — verify explicitly that the driver can read them and ask for a production reference who uses them in a comparable environment.

Siemens Optimized Block Access barrier

This is the biggest protocol roadblock in the Siemens world and it is almost never mentioned in vendor documentation. By default, modern Siemens TIA Portal projects configure data blocks with Optimized Block Access enabled. Generic third-party drivers using standard ISO-on-TCP with absolute addressing (e.g., DB1.DBD0) cannot read these blocks.

The Optimized Block Access barrier

An S7-1200 or S7-1500 with Optimized Block Access enabled will accept a connection from a third-party driver and return no data — or return errors with no clear indication of why. The driver will not report a protocol mismatch. You will see a healthy connection and empty tags.

To read optimized data blocks, the driver must support native symbolic browsing via the S7Comm+ protocol, or an engineer must manually disable optimization on every data block intended for polling. Disabling optimization is a PLC program modification that requires change management approval and retesting. Verify which approach your vendor's driver uses before purchase — and if it requires program modifications, factor that into your deployment timeline.

EtherNet/IP Explicit messaging connection limits

IIoT gateways use Explicit Messaging (Class 3/UCMM) to poll PLCs for data collection. Implicit Messaging (Class 1) is reserved for real-time deterministic I/O control between the PLC and remote I/O racks or drives — it is not a data collection mechanism. The constraint to understand is the explicit messaging connection pool.

Legacy and low-end processors — Allen-Bradley MicroLogix, SLC 5/05, older CompactLogix L32E — have strict limits on simultaneous explicit message connections. If an HMI, a programming laptop, and your new IIoT gateway are all polling the PLC simultaneously, the gateway will hit "no available CIP connections" errors. Know the connection pool limit of every target device before configuring polling.

Modbus Register mapping and endianness

Modbus has no native concept of a float or a string — it only understands 16-bit registers. To read a 32-bit floating-point value, a gateway must read two adjacent registers and reconstruct the float. If the gateway interprets byte and word ordering differently from the device — Big-Endian vs. Little-Endian, or word-swapped — a temperature reading of 23.5°C arrives in your analytics platform as NaN or a nonsensical value. There will be no connection error. The pipeline looks healthy. The data is wrong.

Additionally, some Modbus implementations use 0-based register indexing while others use 1-based, causing all addresses to shift by one. Verify byte order, word order, and register offset with the device documentation before configuring tags.

All protocols Network topology dependencies

OT networks are segmented by VLANs, separated by firewalls, and divided into isolated subnets. A gateway that can reach a device on the corporate LAN may not reach the same device on a cell-level OT VLAN behind a managed switch with strict ACLs. Test connectivity from the actual network location the gateway will occupy — not from a laptop on the corporate network.

The vendor compatibility matrix

Vendor claim What it usually means What to actually test
"Full EtherNet/IP support" Controller-scoped tags on current firmware Program-scoped tags and nested UDTs on your specific CPU and firmware version
"Supports S7-1200 and S7-1500" Connects — may not read optimized blocks Does it use S7Comm+ symbolic browsing, or does it require disabling Optimized Block Access?
"Plug-and-play Modbus driver" Reads 16-bit integer registers 32-bit float byte order and word order — verify against a known reference value
"Unlimited tag polling" No gateway-side limit PLC explicit messaging connection pool under concurrent HMI and gateway load
"250+ protocol drivers" Driver exists for the protocol family Native driver or OPC-UA wrapper? Tested against your firmware version specifically?

The pre-purchase compatibility test

Before committing to a platform, run a controlled connectivity test. Most vendors will provide a trial license. If a vendor declines to support a pre-purchase test, treat that as a data point.

Test protocol — what to run and what to look for
Environment
Install the gateway on hardware in your OT network segment — not the corporate LAN. Use the actual firmware version running in production.
Tag coverage
Read at least 50 representative tags including string tags, UDTs, and program-scoped tags. Connectivity is not the test. Reading every tag type your use case requires is the test.
Bulk load
Read at least 500 tags spread across different memory structures — not 500 sequential registers in one block. Smart drivers batch sequential tags into a single network request. A driver that cannot optimize will send one packet per tag, choking the PLC's communication processor. Performance degradation that does not appear at 50 tags often appears clearly at 500.
Duration
Run for at least 24 hours. One hour of successful connectivity is insufficient to identify intermittent errors, CIP connection pool exhaustion under concurrent load, or clock drift effects on timestamped data.
Value verification
Read the same tags simultaneously in RSLogix, TIA Portal, or equivalent and confirm values match. For Modbus, pay particular attention to 32-bit float values — a byte order mismatch will not surface as an error, only as a wrong number.
Reconnection
Restart the gateway mid-test. Verify automatic reconnection within your defined window without manual intervention.

Questions to ask vendors before purchase

What firmware versions has your driver been tested against for this specific device model?
Ask for the version matrix, not a general answer. "We support Allen-Bradley EtherNet/IP" is not an answer to this question.
Does your Allen-Bradley driver support program-scoped tags and nested UDTs?
If yes, ask for a production reference who uses them in a comparable environment — not a demo environment with flat controller-scoped tags.
Does your Siemens driver use S7Comm+ symbolic browsing, or does it require disabling Optimized Block Access?
If it requires disabling optimization, what is the change management process? Who owns the PLC program modification, and how long does it take to approve and test?
How does your Modbus driver handle 32-bit floats — byte order, word order, register offset?
Is byte and word order configurable per device? Some environments have mixed-endian devices from different eras that require per-device configuration.
What is the explicit messaging connection limit for the Rockwell CPUs in my environment, and how does your gateway manage its connection count under concurrent polling?
Ask specifically about your CPU models. The MicroLogix, SLC 5/05, and older CompactLogix processors have significantly lower limits than current-generation hardware.
What happens to buffered data if the gateway loses upstream connectivity?
Does it guarantee delivery or drop data after the buffer fills? For OEE calculation, maintenance records, or regulatory reporting, the answer determines whether the platform is viable for your use case.

Where assumptions break

Assuming the demo worked means production will work
A vendor demo runs on vendor-controlled hardware at firmware versions the vendor knows work. Ask which firmware version the demo device is running. If it does not match your facility, request a test on matching hardware before purchase.
Assuming one device of a type means all devices of that type
A facility with 20 CompactLogix PLCs may have four hardware revisions and three firmware versions across them. Test one device from each distinct revision and firmware version in your environment.
Assuming connectivity means complete data access
The gateway connected. Tags are reading. Three months later the analytics team discovers the production counts used for OEE calculation are program-scoped tags the driver cannot read — so the OEE dashboard has been calculating from a proxy value since day one. Define the complete tag list required for each use case before the connectivity test and verify every tag on the list.
Assuming Modbus values are correct because there are no errors
A byte-order mismatch produces wrong numbers, not errors. The pipeline looks healthy. The data is wrong. Verify 32-bit float values against a known reference before declaring the Modbus integration functional.

Related: the legacy PLC telemetry guide covers the hardware layer for devices without native Ethernet. The pilot structure guide covers how to design a compatibility test into the pilot scope before committing to a platform. The vendor index connectivity section covers Kepware, Litmus, and HighByte with notes on protocol depth.