1. Overview

This article provides a comprehensive approach to troubleshooting Modbus TCP/IP communication issues, specifically for engineers and technicians working with Rheonics Inline Viscometers and Density-Viscosity Meters. Rheonics sensors support out-of-the-box Modbus TCP/IP communication, ensuring seamless integration into customer processes.


2. Network Settings

  • Make sure the Rheonics SME can be pinged. On Windows, open the command prompt and use the ping command to test connectivity between the PC and the Rheonics sensor (as shown in Figure 1).

Command Prompt window showing a successful ping to the SME

Figure 1. Ping command success.

There are two possible outcomes for a ping test:

2.1. There is a response from the IP address

If there is a reply from the IP address, the network settings for both the PC and the Rheonics sensor are configured correctly. Any issues with Modbus communication would not be caused by Ethernet or TCP/IP.

2.2. There is no response from the IP address

If there is no response from the IP address, follow these steps to troubleshoot:

  • Verify network settings on the PC: Ensure the PC's network settings, such as IP address and subnet mask, are correctly configured.
  • Check the Rheonics sensor's network settings: Use the Rheonics Control Panel (RCP) to confirm the sensor's IP address and network configuration.
  • Test with a different Ethernet cable: Replace the existing Ethernet cable with a known working cable, or use a network cable tester (Figure 2), to rule out wiring issues.

Ethernet cable tester

Figure 2. Ethernet cable tester.


3. Modbus Settings

3.1. Verify the Modbus TCP port

  • Ensure that the Modbus server is using the default port (502). Refer to Connecting the Modbus TCP Outputs for details on factory settings.
  • Check that port 502 is open on firewalls between the PC/Modbus TCP client and the Rheonics sensor.

3.2. Check slave address configuration

  • Confirm that the Rheonics sensor's Modbus slave address is set to 255 (default value).

3.3. Validate input register address

  • Check and validate Rheonics input register addresses. Make sure the data types and addresses are correct.
  • Depending on the PLC or tool used to read the input register, ensure the correct indexing method is applied. Some PLCs or tools are zero-indexed, requiring 1 to be subtracted from the register address (e.g., 300137 becomes 136), while others are one-indexed, where the address is used as-is (e.g., 300137).
Register 300137 corresponds to Parameter 12: Viscosity Last Good (Float), as shown in Modbus TCP – Input Registers.

4. CRC Errors

CRC (Cyclic Redundancy Check) errors indicate that the device is detecting bit activity on the network line, but the received bits do not form data that makes sense to the device. When encountering CRC errors, check the following:

  • Ensure that the Pre-Delay is set to at least 50 ms.

5. Modbus Debugging Tools

Modbus Poll is a Modbus master simulator that helps test and verify Modbus communication. It allows real-time monitoring of parameters like viscosity, density, and temperature (Figure 3).

Modbus Poll is particularly useful for:

  • Checking if registers are accessible and correctly configured.
  • Validating data types, such as integers or floats, against expected values.

Modbus Poll can be downloaded from the official Witte Software download page: https://www.modbustools.com/download/ModbusPollSetup64Bit.exe. Instructions on how to use Modbus Poll can be found in Quick Modbus TCP Verification using Modbus Poll Master Software.

Figure 3 shows Rheonics input registers in Modbus Poll, after using Rheonics ModbusPoll pre-configured files.

Modbus Poll interface showing viscosity, density, temperature, and kinematic viscosity parameters

Figure 3. Modbus Poll.

Take a look at ModScan, another useful tool for debugging Modbus-related issues.

6. Correcting Data Types and Endianness

Typically, the error is a discrepancy between the Modbus TCP values and what is displayed on the sensor or in RCP. This is often due to an incorrect data type or improper endianness settings. To illustrate this, Figure 4 compares two tools used for testing Modbus TCP — ModScan and Modbus Poll — highlighting a difference in Register 136 in red.

Comparison of ModScan and Modbus Poll interfaces displaying register data

Figure 4. ModScan and Modbus Poll comparison.

This is a common issue involving both incorrect indexing and data types. When using ModScan, selecting the correct starting address is crucial. For example, choosing Register 0040 as the starting address incorrectly applies the Float (MSRF) format to all registers, resulting in incorrect data being displayed.

This issue can be resolved by changing the starting address to 0041, which corresponds to the first input register. This ensures the Float format is correctly applied to the parameters.

ModScan interface displaying correct viscosity values

Figure 5. ModScan correct viscosity values.