Modbus is a communications protocol developed by Modicon systems in 1979 for use with its programmable logic controllers. It is a method used for transmitting information over serial lines between electronic devices. Modbus has become a de facto standard communication protocol and is now a commonly available means of connecting industrial electronic devices.
The device requesting the information is called the Modbus Master, and the devices supplying information are Modbus Slaves. In a standard Modbus network, there is one Master and up to 247 Slaves, each with a unique Slave Address from 1 to 247. The Master can also write information to the Slaves.
Why use a Telegraf plugin for Modbus?
Modbus is an open protocol that is free for manufacturers to build into their equipment and has become a very common protocol used widely by many manufacturers throughout many industries. It is typically used to transmit signals from instrumentation and control devices back to a main controller or data gathering system. The Modbus Telegraf Plugin can ingest this type of data into InfluxDB for developers to include in their Data Historian Solutions. These solutions include a time series database to collect and store process data from a SCADA or automation system. The stored data can then be used to display trends of process data on charts, create reports, or perform data analysis.
In addition to using the ModBus Telegraf Plugin, developers can include a whole host of other datasets with the use of the 200+ Telegraf plugins, giving their users a comprehensive look into their process and automation systems.
How to monitor Modbus using the Telegraf plugin
The Modbus plugin collects Discrete Inputs, Coils, Input Registers and Holding Registers via Modbus TCP or Modbus RTU/ASCII. In the configuration setting, you can identify the addresses of the Modbus device on the bus, the range, timeouts, retries, etc. to collect the measurements directly from the equipment, from the SCADA, or from the automation systems.
Key Modbus Metrics to use for monitoring
There are a number of metrics like power, voltage, energy current, etc. that you can collect to gain insights from your equipment.
- Metrics are custom and configured using the
- The field
data_typedefines the representation of the data value on input from the modbus registers. The input values are then converted from the given
data_typeto a type that is appropriate when sending the value to the output plugin. These output types are usually one of string, integer or floating-point-number. The size of the output type is assumed to be large enough for all supported input types. The mapping from the input type to the output type is fixed and cannot be configured.
- These types are used for integer input values. Select the one that matches your Modbus data source.
- Floating Point:
- Use these types if your Modbus registers contain a value that is encoded in this format. These types always include the sign and therefore there exists no variant.
- Fixed Point:
- These types are handled as an integer type on input, but are converted to floating point representation for further processing (e.g. scaling). Use one of these types when the input value is a decimal fixed point representation of a non-integer value.
- Select the type
UFIXEDwhen the input type is declared to hold unsigned integer values, which cannot be negative. The documentation of your Modbus device should indicate this by a term like 'uint16 containing fixed-point representation with N decimal places'.
- Select the type
FIXEDwhen the input type is declared to hold signed integer values. Your documentation of the Modbus device should indicate this with a term like 'int32 containing fixed-point representation with N decimal places'.
FLOAT32is deprecated and should not be used anymore.
UFIXEDprovides the same conversion from unsigned values.