Skip to main content

Modbus Point List Requirements

The purpose of this document is to identify the information needed to integrate a Modbus device into Mango. Having a complete and accurate point list before starting configuration saves significant time during commissioning.

Data Source Communication Parameters

Before configuring data points, you need the following communication parameters for each Modbus device.

For Modbus TCP/IP:

  • IP address of the device
  • TCP port (usually 502, but may differ)
  • Polling rate (how frequently to read the device)

For Modbus Serial / RTU:

  • Baud rate
  • Parity setting
  • Stop bits
  • COM port or serial device path
  • Polling rate

Data Point Attributes

Each data point in a Modbus data source requires the following attributes.

Slave ID (1-254)

Every Modbus device on a network has a unique slave ID. Devices typically default to ID 1, but the installer usually assigns specific IDs during commissioning. Request a list of desired slave IDs from the installer and verify them during commissioning.

Offset (Register Address)

The offset identifies which register to read on the device. Important considerations:

  • Offsets can start at 0 or 1 depending on the device. Mango uses 0-based offsets, so registers documented as starting at 1 may need to be adjusted by subtracting 1.
  • Offsets may be shown in decimal or hexadecimal in device documentation.
  • Some documentation includes the register type prefix in the offset. For example, an offset listed as 411001 in the Holding Register range should be entered as 11001 in Mango.

Register Range (Function Code)

There are four types of Modbus registers:

Register TypeRead/WriteData TypeFunction Code
Holding RegisterRead/WriteNumeric (16-bit)FC 03 (read), FC 06/16 (write)
Coil StatusRead/WriteBinary (single bit)FC 01 (read), FC 05/15 (write)
Input RegisterRead-onlyNumeric (16-bit)FC 04
Input StatusRead-onlyBinary (single bit)FC 02

Holding Registers are the most common type, used for all numeric values. Coil Status registers are used for binary on/off values.

Modbus Data Type

A standard Modbus register is 16 bits (2 bytes). For values that require more precision, multiple consecutive registers are combined. Common data types include:

Data TypeSizeDescription
2 Byte Signed Integer1 register-32,768 to 32,767
2 Byte Unsigned Integer1 register0 to 65,535
4 Byte Signed Integer2 registers-2,147,483,648 to 2,147,483,647
4 Byte Unsigned Integer2 registers0 to 4,294,967,295
4 Byte Float2 registersIEEE 754 floating point
8 Byte Signed Integer4 registersLarge integer values
8 Byte Float (Double)4 registersDouble-precision floating point

For binary values (from Holding or Input Registers), you also need to know which bit of the register to read. A single 16-bit register can represent up to 16 individual binary data points.

Some device documentation specifies the number of registers rather than the data type. For example, "2 registers" typically means a 4-byte value (either integer or float).

Multiplier / Scale Factor

Modbus registers store only whole numbers (except for float types). A scale factor often needs to be applied:

  • Example: A temperature register reads 723. With a multiplier of 0.1, the actual value is 72.3.
  • If the data type is a Float or Double, no multiplier is needed because the decimal is already encoded in the value.

Read/Write Type

Determine whether each register is read-only or read/write. This affects whether Mango can send set-point commands to the device.

Formatting

  • Binary values: Define how 0 and 1 are displayed (e.g., Off/On, Normal/Error, Open/Closed).
  • Numeric values: Specify the number of decimal places and the engineering units (Amps, Volts, Degrees F, %, PSI, etc.).

Logging and Purge Settings

Proper logging and purge configuration is critical for database size management and system performance.

Logging Types

Logging TypeBest ForNotes
All DataRarely neededLogs every poll result. Generates large volumes of data quickly.
On ChangeSetpoints, binary valuesLogs only when the value changes. Optional tolerance for numeric points.
IntervalAnalog values (temperature, voltage)Logs at a fixed interval regardless of poll rate. Supports Average, Maximum, Minimum, and Instant value types.
Do Not LogTransient valuesNo historical data is stored. Chart renderers will not work.

Purge Settings

Configure how long to retain historical data. Options range from days to years. Shorter retention periods save disk space and improve query performance. Set purge periods at the system, data source, or individual data point level.

Creating a Modbus Point List Spreadsheet

Prepare two spreadsheets before commissioning.

Sheet 1 -- Devices:

ColumnDescription
Data Source NameName for the Mango data source
IP AddressDevice IP address
PortTCP port (usually 502)
Device NameHuman-readable device name
Slave IDModbus slave ID

Sheet 2 -- Points:

ColumnDescription
Data Source NameLinks to Sheet 1
Device NameLinks to Sheet 1
Point NameHuman-readable name (e.g., "Supply Temperature")
Slave IDDevice slave ID
OffsetRegister address
Register RangeHolding, Coil, Input Register, or Input Status
Data Type2-byte int, 4-byte float, etc.
MultiplierScale factor (if applicable)
Write StatusRead-only or Read/Write
FormattingDecimal places or binary labels
UnitsEngineering units
LoggingLogging type and interval
PurgeRetention period
Expected ValueFor validation

If multiple devices share identical point configurations, list the points for one device and provide a separate sheet listing all devices with their IP addresses and slave IDs.

Validation Procedures

After configuring the data points, validate them against known values:

  1. Known exact values: Read registers with exact known values, such as serial numbers or firmware versions, to confirm the offset and data type are correct.

  2. Known approximate values: Read registers where you know the approximate expected value, such as voltage, frequency, or temperature. If the reading is close to the expected value, the configuration is likely correct.

  3. Consecutive register test: Read several consecutive registers (e.g., three-phase voltage readings). If most read correctly but one does not, the offsets may be shifted by 1. Adjust and re-test.

  4. Byte order test: If a 4-byte float register returns an unrealistic value, try changing between normal and swapped byte order. Some devices use big-endian (default) while others use little-endian byte ordering. The device documentation may not specify this clearly.

  5. Scale factor verification: If a numeric value is off by a factor of 10, 100, or 1000, the multiplier is likely incorrect. Adjust and verify against the known value.