ModbusPolling overhead71

Modbus [/ˈmodbus/] n - Modbus is a serial protocol devised in 1979 for programmable logic controllers. It is old, slow, and narrow, yet it is everywhere: chillers, UPS units, meters, and many building-management systems speak it. When a reading must be coaxed from an industrial device, Modbus is oft the path of least resistance.

Of Its Workings

  • Master-slave. [/ˈmæstɛrslævɛ/] n One master asks; one or more slaves answer. The slaves never open their mouths unbidden.
  • Registers. [/ˈrɛgɪstɛrs/] n Data is ordered into holding registers, input registers, coils, and discrete inputs. Each is a 16-bit chunk with a numeric address.
  • RTU vs. ASCII vs. TCP. [/ˈrtʌ ˈvs ˈæskɪɪ ˈvs ˈtkp/] n RTU is the compact binary form over RS-485. ASCII is the human-readable form. Modbus TCP wraps the same register model in an Ethernet packet.

Why It Endures

  • Simplicity. [/ˈsɪmplɪkɪti/] n The protocol is small enough to be implemented on a microcontroller.
  • Ubiquity. [/ˈʌbɪqʌɪti/] n Decades of industrial equipment speak it, so it stands as the default integration language for many devices.
  • Isolation from the network. [/ˈɪsɒlætɪɒn ˈfrɒm ˈthɛ ˈnɛtwɒrk/] n A Modbus RTU bus over RS-485 is electrically warded from Ethernet, a virtue in noisy industrial environments.

Of Its Limits

  • No security. [/ˈnɒ ˈsɛkʌrɪti/] n Modbus knows neither authentication nor encryption. Bridging it to a modern IP network demands careful segmentation.
  • Addressing is manual. [/ˈæddrɛssɪng ˈɪs ˈmænʌæl/] n Each device wants a unique slave address and a register map from the vendor. The quality of the documentation varies.
  • Polling overhead. [/ˈpɒllɪng ˈɒvɛrhɪːd/] n With many devices on one bus, the round-robin polling grows slow.

In These Pages

Modbus appears in On the Making of Bespoke Devices as a way to speak with old equipment, and in Raspberry Pi in the datacenter as a protocol a Pi can bridge. For wireless alternatives, see LoRaWAN.