What is Modbus

Modbus is an industrial control communication protocol that allows for quick, efficient data transfer between automation devices. It's primarily used by devices like PLCs (Programmable Logic Controllers), BMS devices (Building Management System), SCADA systems (Supervisory Control And Data Acquisition), and other machine-like applications that offer monitoring or control.

The protocol was originally published in 1979 by Modicon and was first implemented using serial communications and is known as Modbus RTU (Remote Terminal Unit). The standard is open-source allowing anyone to develop products that use Modbus which has made it extremely popular. Today, there are a few variants of Modbus with different implementations. The same implementation of the serial protocol on standard IP networks is referred to as Modbus RTU/IP or Modbus over TCP. A more common implementation, though, is more straightforwardly called Modbus TCP.

The Programation Modbus Server and Modbus Client Q-SYS Plugins utilize the Modbus TCP protocol to support most industrial devices that also use this version of the protocol.

As it is an industrial protocol, Modbus exchanges primarily two types of data, Booleans (true or false), and Integers (numbers) corresponding to digital and analog sensor and control information. In industrial terminology, the digital I/O is referred to as “bits” and the analog data is referred to as “registers”, taken from the memory registers where the information is stored. Further, Modbus uses certain terms to refer to inputs or outputs of a device depending on the type, as shown in the table below.

Data TypeInput NameOutput Name
BitDiscrete InputCoil
RegisterInput RegisterHolding Register

Clearly the names are a little confusing if you’re not used to working with low-level automation devices. To make things a little clearer, the Programation Modbus Server and Modbus Client Q-SYS Plugins simply refer to each control type as either an Input or Output Bit or Register.

Who controls who?

It’s important to understand that Modbus is a “one-way” communication protocol and it works in a server-client, polling, method. The server device listens for incoming connections from a client to access information or make a request to modify information. Older Modbus terminology would refer to the Server as the Slave and the Client as the Master. The Client must periodically request data from the server in order to know up-to-date information. The Server cannot spontaneously send updates to a client without first receiving a request. Because of this relationship, it may first appear odd that the devices that do the monitoring or centralized control is termed the Client and the device doing the work is the Server. It helps to keep these terms straight when thinking about who really controls who.

Programation offers two Modbus related plugins; a Server and a Client. It is often confused which one should be used for a project. The Modbus Client plugin allows a Q-SYS core to connect to some automation device, like a PLC, which is a Server Device. This is the best way to expand the Q-SYS system to incorporate control devices and allows the Core to act as the centralized point of control, making all logical decisions.

On the other hand, if the Q-SYS installation needs to be monitored by a Building Management System (BMS), then the Modbus Server plugin fits the bill.

For more information on each of Programation’s Modbus Q-SYS Plugins, refer to the links below:

Modbus Client Product Page
Modbus Client Plugin Guide


Modbus Server Product Page
Modbus Server Plugin Guide