PLC communication: PLC↔PLC, HMI, SCADA, drives, OPC UA

Which mechanism to choose for each communication path of a controller, and the questions to settle before the first connection: data volume, cycle, consistency, ownership and loss behaviour.

Paths and usual solutions

PathCommon solutions
PLC ↔ PLCCyclic: PROFINET I-device, EtherNet/IP produced/consumed tags, EtherCAT EAP. Acyclic: S7 PUT/GET, TCP/UDP (TSEND/TRCV), OPC UA client/server or PubSub, Modbus TCP
PLC ↔ HMIVendor protocol of the panel (S7, CIP), OPC UA, Modbus TCP for third-party panels
PLC ↔ SCADAOPC UA, vendor drivers, Modbus TCP, IEC 104/DNP3 for telecontrol
PLC ↔ VFDFieldbus telegram (PROFIdrive, CIP drive profile, CiA 402), Modbus RTU/TCP, or hardwired DI/AI
PLC ↔ remote I/OThe fieldbus of the I/O system (PROFINET, EtherNet/IP, EtherCAT, PROFIBUS, Modbus)
PLC ↔ MES / cloudOPC UA, MQTT/Sparkplug via an edge device

Questions to settle first

  1. Who owns which data — every value has exactly one writer.
  2. Cycle and volume — 20 words every 10 ms is a different design from 5000 tags every second.
  3. Consistency — data that belongs together (a recipe, a 32-bit value) must be transferred in one block.
  4. Loss of communication — each receiver detects it (heartbeat/watchdog counter) and goes to a defined state.
  5. Data types and byte order — agree INT/DINT/REAL and word order in an interface list.

Heartbeat pattern

(* Sender: increment every cycle *)
TxHeartbeat := TxHeartbeat + 1;
(* Receiver: alarm if the counter does not change for 2 s *)
tCommLoss(IN := (RxHeartbeat = RxHeartbeatOld), PT := T#2S);
RxHeartbeatOld := RxHeartbeat;
CommOk := NOT tCommLoss.Q;

Document the interface

An interface list (tag, direction, type, unit, range, update rate, behaviour on loss) prevents most integration problems between suppliers.

Loading the map…

Sources

  1. PROFINET with STEP 7 — Function Manual 11/2022 — Siemens AG
  2. EtherNet/IP — technology overview — ODVA
  3. OPC Unified Architecture — overview — OPC Foundation
  4. MODBUS Application Protocol Specification V1.1b3 — Modbus Organization

Updated 2026-10-02