Creating virtual Modbus RTU element

Related articles

Connecting Modbus devices

Connecting "VT85 / Modbus extension board"

Connecting Modbus sensors using "RS485 to USB adapter"

Introduction

A virtual "Modbus RTU" sensor is used to read and write data from external equipment via Modbus RTU protocol (RS-485 line). Such equipment can be sensors/meters or devices/systems/units.

Some Vutlan devices have a Modbus RTU port. Some require an additional extension to be bought separately.

Some older Vutlan units use an external converter to the USB bus is used to provide RS-485 communication.

https://vutlan.atlassian.net/wiki/spaces/DEN/pages/678887425/Creating+virtual+Modbus+RTU+element

Activating Modbus

After connecting the RS485 bus, according to the "Slave" hardware documentation, you can now activate the Modbus.

The Modbus operates in "Master" mode. To enable Modbus, go inside the web interface of the Vutlan monitoring unit and go to the Preferences menu >> Modbus RTU. Set up the bus according to the documentation for the "Slave" equipment. Please note that the "VT85 / Modbus extension board"  only supports 1 stop bit.

Adding the Modbus reading virtual element

To create a "Modbus RTU (reading)" element, press add button "  " inside the "Group tree" or "System tree" menu. Then choose "Modbus RTU (reading)". A modal window will appear:

Click on the "Modbus RTU (reading)". Modbus element form will be opened:

Fields in the form available for change:

#

Name

Description

#

Name

Description

1

Name

Created element name

2

User-defined type

Defines the icon to be displayed in the "System tree"

3

Units of measurement

The unit of measure in which the value is displayed in the "System tree"

4

Minimum value

Determines the minimum measurement range, when the value is out of range, the sensor goes into the "Not connected" state

5

Maximum value

Determines the maximum measurement range, when the value is out of range, the sensor goes into a "Not connected" state

6

Alarm and warning levels

Defines the alarm and warning thresholds, as for other sensors, see Sensor configuration

7

Hysteresis

Option of setting the hysteresis state, see Sensor configuration

8

Expression

Function of the form f (x). The default value for the sensor is equal to the measured value: "x", ie corresponds to the expression "x". To calculate the indirect value of the sensor is possible to use an arbitrary expression, which is permissible "(", ")", as well as:

  •  

    • operators: "+", "-", "*", "/", "%" (remainder of the division), "^" (exponentiation);

    • functions: "abs","sqrt","exp","ln","log","sin","cos","tan","asin","acos","atan";

    • constants: "pi" (3.1415926...), "e" (2.7182818...);

    • point is used as a decimal separator (3.14).

        For example: "0.1*x+0.5"


The Modbus RTU bus configuration is available in the "Additional" tab:

 

Fields in the form available for change:

#

Name

Description

#

Name

Description

1

Slave address

Modbus RTU slave address of external equipment

2

Register index

Modbus protocol register start address in hexadecimal view, like 0F4A

3

Function code

The following functions are supported:

  • 0x01 - Read Coil Status

  • 0x02 - Read Input Status

  • 0x03 - Read Holding Register

  • 0x04 - Read Input Register

4

Data type

Determines how to present the data:

  • 16 bits signed int

  • 16 bits unsigned int

  • 32 bits signed int

  • 32 bits unsigned int

  • 32 bits IEEE floating point

5

Data ordering

Determines byte order in Modbus protocol response message:

  • low byte first, low word first

  • low byte first, high word first

  • high byte first, low word first

  • high byte first, high word first

6

Polling period

Defines the time of polling the sensor value. From 10 seconds to 5 minutes. 

The Test button allows you to make a test connection with a Modbus device. In additional fields, the bytes sequence of connection, data is displayed, in hexadecimal form. Modbus request - data of the sent request, without a checksum. Modbus raw answer - data of the received answer, without a checksum. Modbus value - contains the data value interpreted under the selected Data type.

Adding the Modbus writing virtual element

To create a "Modbus RTU (writing)" element, press add button "  " inside the "Group tree" or "System tree" menu. Then choose "Modbus RTU (writing)". Modbus element form will be opened:

Fields in the form available for change:

#

Name

Description

#

Name

Description

1

Name

Created element name

2

Slave address

Modbus RTU slave address of external equipment

3

Register index

Modbus protocol register start address in hexadecimal view, like 0F4A

4

Function code

The following functions are supported:

  • 0x05 - Write Single Coil

  • 0x06 - Write Single Register

5

Writing value

Decimal integer value that will be written in the specified register

The Test button allows you to make a value entry immediately into the Modbus register. Now the Modbus RTU writing can be inserted as a THEN task in logic schemes:

Modbus configurations for tested sensors

See the article Modbus configuration for tested sensors