Skip to main content
Skip table of contents

Inputs Setup - MODBUS Serial Communications

Modbus is a serial communication protocol developed by Modicon in 1979 for use with its programmable logic controllers (PLCs). It enables a method to transmit information over serial lines between electronic devices.

In standard Modbus network, there is a Master and a up-to 247 slaves, each with a unique Slave address from 1 to 247.

To configure a Modbus input for a supported Wildeye logger, do the following:

  1. Click Config Sensor for the relevant site.

  2. Click Add Input and select MODBUS

There are two different versions of Modbus input. Modbus V1 and Modbus V2.

Modbus V1 is a legacy input type. Most of the Loggers are using Modbus V2 by default. Modbus V2 is supported by all WILD-M 4G devices, and 3G devices with PIC Firmware Version 6.2.0 and above only. The differences are as following:

  • Modbus V1 (legacy)

    • Baud rate supported - 9600

    • Parity supported - None

    • Stop bits supported - 1

    • Maximum of 8 bytes read

    • RTU mode only.

    • Functions 3 (Read Holding Registers) and 4 (Read Input Registers) supported

  • Modbus V2

    • Baud rate supported - 2400, 4800, 9600, 19200

    • Parity - None, Odd or Even

    • Stop bits supported - 1 or 2

    • Maximum 10 bytes read

    • Functions 1 (Read Coils), 2 (Discrete Inputs), 3 (Read Holding Registers) and 4 (Read Input Registers) supported

Parent Input Configuration

image-20240520-044629.png
  • Mode - Only RTU mode is supported. ASCII mode is not supported.

  • Slave Address - Address of the Modbus slave. Valid address are 1 - 247 as per specification. 0 is for broadcast request to multiple slaves if present.

  • Function - Modbus Function code.

  • Data Address Offset - This field indicates the Modbus register address. Valid range: 0 - 65535.

  • Write Value - This indicates the 16-bit value (Valid range: 0 - 65535) to be written at given address. This field will be visible only if Function is 6. 

  • Baud Rate - UART baud rate. 

  • Parity - Parity for UART comms.

  • Stabilization Time - The time required for the sensor to stabilize after power-up and comms can start. The time is in 50ms resolution. Valid range: 0 - 12.75 seconds. 

  • Post Delay - The time delay before sending the next command to the same device. The time is in 50ms resolution. Valid range: 0 - 12.75 seconds.

  • Hardware Interface (Deprecated) - This field is editable only from PIC FW 6.4.3. For logger with older FW or logger without the new expansion board, logger will ignore this field. This is required only for logger with the new expansion board which can support Modbus over multiple HW interfaces:

    • TTL3

    • TTL5

    • RS232

    • RS485

  • Based on the child input configuration, only a maximum of 10 bytes can be read per input.

Child Input Configuration

  • On the Inputs page, Select "Child Inputs" for the respective parent Modbus input

image-20240520-044653.png
  • You will get a pop-up page and Select "Add Child Input"

image-20240521-004407.png
  • Click on the new Child Input link and another pop-up page will appear as below:

image-20240521-004432.png

Data Offset - Bit index to the data received

Important

For Modbus Function 3, 4, 6 and 16 each address corresponds to a 16-bit data.

For Modbus Function 1, 2 and 5, each address corresponds to 1-bit of data.

Data Configuration

  • Data Width: Width of the data. Supported range: 8-bit, 16-bit, 32-bit, and 64-bit.

  • Data Type: Data interpretation. Supported Range: Signed Integer, Unsigned Integer, IEEE Floating Point, and Mask.

    • Only 32-bit IEEE float is supported.

  • Mask: It will apply the "Mask Value" on the defined "Data Width". This method avoids using Calculated Input on the data.

    • It is used to retrieve the desired bits (implicit right shift by leftmost zeros in the "Mask Value").

    • Examples:

      • If Mask Value is FF and Data Width is 8, it will return the whole 8-bit value.

      • If Mask Value is F0 and Data Width is 8, it will return upper 4 bit value (value will right-shifted by 4 bits after masking with F0).

  • Data Ordering:

    • BYTE Order: This will swap the bytes within a 16-bit data. Disabled if "Data Width" is 8-bit.

    • WORD Order: This will swap the words (16-bit) within a 32-bit data. Disabled if "Data Width" is less than 32-bit.

    • DWORD Order: This will swap the dwords (32-bit) within a 64-bit data. Disabled if "Data Width" is less than 64-bit.

Logging Configuration

  • Log as Rate:

    • If disabled, raw Modbus values will be inserted into the database.

    • If enabled, the difference of the Modbus values will be inserted into the database.

  • Maximize data read by combining values:

    • Wildeye loggers can support a total of 13 user inputs.

    • To maximize Modbus read values, loggers can be configured to read combined values from consecutive addresses.

  • Logger Input Limitations:

    • Logger has a restriction of maximum 13 inputs.

    • PIC Modbus: a read maximum of 104 bytes with the bytes to be read per input from consecutive addresses.

    • PIC Modbus V2: a read maximum of 130 bytes with the bytes to be read per input from consecutive addresses.

Typical Setup

  • Typical setup would be for customers to read from each consecutive address as an input each. This can be set up so we read both addresses with 1 input. For example:

    • Modbus input reads 2 bytes, and customer needs to extract 1 byte each.

    • The higher byte depicts Flow and lower byte depicts Temperature.

    • Use "Calculated Input" to process each byte via a VB script. VB knowledge is required.

      • Create a "Calculated Input" named Flow. Add VB script to extract only the Higher byte.

      • Create a "Calculated Input" named Temperature. Add VB script to extract only the Lower byte.

    • See VB example for more details.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.