| Modbus/TCP |
PLC to HMI and SCADA across Levels 1–2 |
Function codes, unit IDs, coil and holding-register ranges, slave inventory |
Write to a holding register from a host that has only ever read |
| EtherNet/IP & CIP |
Rockwell control networks, ControlLogix and CompactLogix |
Identity objects, firmware revision, connection paths, class and service codes |
Firmware download or processor mode change outside a change window |
| PROFINET IO / PROFIsafe |
Siemens distributed I/O and drive networks |
Station names, GSDML roles, alarm frames, update cycle times |
A rogue device claiming a station name already held by a live node |
| S7comm & S7comm-plus |
Siemens S7-300, S7-400, S7-1200 and S7-1500 controllers |
Run and stop transitions, block upload and download, CPU diagnostics |
Program block download originating from an unapproved workstation |
| DNP3 |
Large-site SCADA and on-premise substation links |
Object and variation, cold restart, unsolicited response configuration |
Cold restart or time-set issued by an outstation that is not the master |
| OPC UA |
Level 3 aggregation, MES and historian integration |
Endpoint URLs, negotiated security policy, certificate chains, subscription rates |
A session negotiated with security policy None on a signed endpoint |
| BACnet/IP |
Plant HVAC, clean rooms and building management |
Device instance numbers, object lists, priority-array writes |
Priority-array override on a clean-room air handler at 03:00 |
| IEC 61850 MMS & GOOSE |
On-site substations feeding heavy plant |
Logical nodes, dataset references, GOOSE stNum and sqNum |
GOOSE spoofing betrayed by non-monotonic sequence numbers |