To An Introduction Modbus and Data Acquisition Technologies

Modbus is an industrial protocol, which was developed almost three decades ago with an objective of enabling communication possible between various automated devices. When it was first introduced, Modbus was originally an application-level protocol, which was aimed at transferring data over a serial layer, and over time the protocol had expanded to include implementations over serial network, user datagram protocol (UDP), and TCP/IP.

Today, Modbus is a very common protocol running in countless number of devices for perfect data acquisition and effective communication in industrial environment ranging from the most simplest to high-end devices and networks.

Modbus and SCADA

Modbus is now typically used for SCADA-style networks for effective communication between various devices. Say for example, there will be a large server which can be used to control the programmable logic controller (PLC), and the PLC will in turn master a valve, sensor, motor, or other such embedded devices. To serve this functionality, Modbus has a very simple request-response protocol which has a customisable functional model.

 Request-Response cycle

In simpler terms, we can say that Modbus protocol blindly follows a master-and-slave type of architecture in which the master transmits a particular request to the slave and waits for the response. Here, the master enjoys a full control over the data flow, which has a considerable advantage over the previous multi-drop serial networks.

Such requests are in the form of a layered data sent in Modbus. In this, the first layer is the ADU (application data unit), which is usually considered as the Modbus type used. There are basically three ADUs as ASCII, RTU (remote terminal unit), and TCP/IP.

Modbus is more streamlined now by also taking care of the chances for errors too. Now, Modbus also defines a specific PDU to take care of exceptions, which will let the master module know what happened. Most of the drivers can convert this to a form, which makes sense to the application language used.

 Modbus data model

Modbus now manages the data acquisition much flexibly and simply. Modbus natively supports two types of data as;

1. Boolean value, and
2. 16-bit integer.

In typical SCADA systems, it is common for the embedded devices to have specific values as inputs, which may be proportional integral derivative (PID) whereas the outputs are like the valve position or current temperature. The sensors and other devices do generate data in various other types too than Boolean and unsigned integers. Modbus exposes the values in a conceptual way, which may not exist in the actual memory.

 Modbus function codes

The functional codes in turn determine how the data acquisition needs to be done and how it should be modified by the master. Unlike the conceptual data ranges, the functional codes have a defined behaviour. While a slave is asked for a function code, it typically uses the set parameters of that function and execute the defined behaviour.

The common function codes are ideally named after the conceptual data range, which they access or modify. Say for example, command to “read the registers” pulls the data out of the memory, which is defined as holding registers and return the data to the maser.

All in all, Modbus is a very simple application, which you can customise in various ways to implement in many powerful systems.

 

Hey myself Archer Finch. Even though I took extra care about my systems, but still it was more prone to hacking. With the introduction of the data acquisition, my system is now very much safe from all sorts of threats, as most of the Modbus are connected to web based portals or products.
 

Category: