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
411001in the Holding Register range should be entered as11001in Mango.
Register Range (Function Code)
There are four types of Modbus registers:
| Register Type | Read/Write | Data Type | Function Code |
|---|---|---|---|
| Holding Register | Read/Write | Numeric (16-bit) | FC 03 (read), FC 06/16 (write) |
| Coil Status | Read/Write | Binary (single bit) | FC 01 (read), FC 05/15 (write) |
| Input Register | Read-only | Numeric (16-bit) | FC 04 |
| Input Status | Read-only | Binary (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 Type | Size | Description |
|---|---|---|
| 2 Byte Signed Integer | 1 register | -32,768 to 32,767 |
| 2 Byte Unsigned Integer | 1 register | 0 to 65,535 |
| 4 Byte Signed Integer | 2 registers | -2,147,483,648 to 2,147,483,647 |
| 4 Byte Unsigned Integer | 2 registers | 0 to 4,294,967,295 |
| 4 Byte Float | 2 registers | IEEE 754 floating point |
| 8 Byte Signed Integer | 4 registers | Large integer values |
| 8 Byte Float (Double) | 4 registers | Double-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 of0.1, the actual value is72.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 Type | Best For | Notes |
|---|---|---|
| All Data | Rarely needed | Logs every poll result. Generates large volumes of data quickly. |
| On Change | Setpoints, binary values | Logs only when the value changes. Optional tolerance for numeric points. |
| Interval | Analog values (temperature, voltage) | Logs at a fixed interval regardless of poll rate. Supports Average, Maximum, Minimum, and Instant value types. |
| Do Not Log | Transient values | No 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:
| Column | Description |
|---|---|
| Data Source Name | Name for the Mango data source |
| IP Address | Device IP address |
| Port | TCP port (usually 502) |
| Device Name | Human-readable device name |
| Slave ID | Modbus slave ID |
Sheet 2 -- Points:
| Column | Description |
|---|---|
| Data Source Name | Links to Sheet 1 |
| Device Name | Links to Sheet 1 |
| Point Name | Human-readable name (e.g., "Supply Temperature") |
| Slave ID | Device slave ID |
| Offset | Register address |
| Register Range | Holding, Coil, Input Register, or Input Status |
| Data Type | 2-byte int, 4-byte float, etc. |
| Multiplier | Scale factor (if applicable) |
| Write Status | Read-only or Read/Write |
| Formatting | Decimal places or binary labels |
| Units | Engineering units |
| Logging | Logging type and interval |
| Purge | Retention period |
| Expected Value | For 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:
-
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.
-
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.
-
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.
-
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.
-
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.
Related Pages
- Modbus Data Source — Complete Modbus data source configuration reference
- Modbus Issues — Troubleshoot common Modbus communication problems
- Point Disappears — Troubleshoot data points that stop updating or disappear
- Data Sources Overview — General data source and data point concepts