Where to place the HMI in my sensor array?

Hi,
I have a pressure sensor, which communicates to an RTU via MODBUS. The RTU schedules power to the sensor every 5 minutes for data collection. The data is logged on the RTU and uploaded to the cloud every 2 hours.

I want to be able to visualise the sensor data, so thought I could put in an HMI, though I guess in this case it would be in slave mode? The HMI doesn't really need any other functions (no sensor control required)

Is this a normal use for a HMI, or is there a better alternative?

If it can be done, whereabouts within the array does the HMI sit? Can an RTU output the data to a HMI? Or does the HMI typically sit between the sensor and RTU?

Newbie here, so any assistance much appreciated.
Thanks
 
Modbus RTU is the formal name for serial Modbus over RS-485, not to be confused with an RTU device.

One Modbus rule is that a Modbus slave cannot initiate a Modbus message exchange; only a Modbus master can initiate a message exchange.

HMI's are typically Modbus RTU masters because a change made on the HMI needs to be executed immediately and a Modbus master can initiate a message exchange if needed.

Another Modbus rule is that Modbus RTU can have one and only one master on the network.

Since the pressure sensor is a Modbus slave and the RTU is needed to periodically power up the sensor and take a reading, the HMI would need to be a Modbus RTU slave, since the RTU is the master.

Where the devices reside on the daisy chain RS-485 network bus makes no difference. Since they're all in parallel, they all see the active driver's voltage changes simultaneously.

To eliminate electrical reflections (noise), RS-485 recommends terminating resistors on the devices at each end of the daisy chain, although for short cable distances and slow baud rates, termination is sometimes not necessary.
 
Modbus RTU is the formal name for serial Modbus over RS-485, not to be confused with an RTU device.

One Modbus rule is that a Modbus slave cannot initiate a Modbus message exchange; only a Modbus master can initiate a message exchange.

HMI's are typically Modbus RTU masters because a change made on the HMI needs to be executed immediately and a Modbus master can initiate a message exchange if needed.

Another Modbus rule is that Modbus RTU can have one and only one master on the network.

Since the pressure sensor is a Modbus slave and the RTU is needed to periodically power up the sensor and take a reading, the HMI would need to be a Modbus RTU slave, since the RTU is the master.

Where the devices reside on the daisy chain RS-485 network bus makes no difference. Since they're all in parallel, they all see the active driver's voltage changes simultaneously.

To eliminate electrical reflections (noise), RS-485 recommends terminating resistors on the devices at each end of the daisy chain, although for short cable distances and slow baud rates, termination is sometimes not necessary.
Awesome, thanks so much for the explanation
 
You can use an HMI (Human-Machine Interface) to visualize the pressure sensor data, and in this case, it would indeed function as a Modbus RTU slave or Modbus RTU master, depending on your setup. If your RTU (Remote Terminal Unit) supports multiple Modbus slaves, you can configure the HMI as another slave device. The RTU would act as the Modbus master and periodically write the latest pressure sensor values into specific Modbus registers. The HMI would read these registers to display the data. The following links may help you.

https://www.wevolver.com/article/mo...o-understanding-and-implementing-the-protocol
https://maplesystems.com/tutorial/h...e-hmi-using-modbus-rtu-and-tcp-communications
 
You can use an HMI (Human-Machine Interface) to visualize the pressure sensor data, and in this case, it would indeed function as a Modbus RTU slave or Modbus RTU master, depending on your setup. If your RTU (Remote Terminal Unit) supports multiple Modbus slaves, you can configure the HMI as another slave device. The RTU would act as the Modbus master and periodically write the latest pressure sensor values into specific Modbus registers. The HMI would read these registers to display the data. The following links may help you.

https://www.wevolver.com/article/mo...o-understanding-and-implementing-the-protocol
https://maplesystems.com/tutorial/h...e-hmi-using-modbus-rtu-and-tcp-communications
Thanks so much!
 
Hi,
I have a pressure sensor, which communicates to an RTU via MODBUS. The RTU schedules power to the sensor every 5 minutes for data collection. The data is logged on the RTU and uploaded to the cloud every 2 hours.

I want to be able to visualise the sensor data, so thought I could put in an HMI, though I guess in this case it would be in slave mode? The HMI doesn't really need any other functions (no sensor control required)

Is this a normal use for a HMI, or is there a better alternative?

If it can be done, whereabouts within the array does the HMI sit? Can an RTU output the data to a HMI? Or does the HMI typically sit between the sensor and RTU?

Newbie here, so any assistance much appreciated.
Thanks
Its all trade off between Cost vs Features vs Cyber security.
Since you mentioned there is no Control from the display, then I would prefer use any Old Mobile phone with WiFi, with Magnetic holders which you can place / attach that to any metallic surface.

On the Data, for visualisation you may use Thingsboard kind of IoT platform to display that, which you can access it over Web.
 
Hi all, thanks again for your assistance thus far. I have managed to connect sensor, RTU and HMI, however struggling for reliability, namely I'm generating CRC errors. However I think this is due to my fundamental misunderstanding of MODBUS RTU which I'm hoping you can help me with
Setup
  • RTU setup as master, sensor and HMI are slaves
  • sensor is MODBUS ID 128
  • HMI is also set as MODBUS ID 128-read the rest of the post before commenting! :)
  • I've checked baud rates etc, they all match
  • the sensor and HMI are connected to separate RS485 ports on the RTU
The issue I have, is that when I make HMI MODBUS ID 128, it can see the data coming from the sensor. However, the RTU detects a CRC error, and refuses to upload the data (MQTT)
If I change the HMI MODBUS ID to 129, I still get CRC errors, but no data visible on the HMI
If I disconnect the HMI, I get no CRC errors


So with this setup, can someone please explain the process of getting data on the HMI? I assume having the HMI and sensor as the same IDs is incorrect. So if I make the HMI MODBUS 129, is the idea that the HMI is setup on the RTU as a slave? And therefore I need to program on the RTU which registers etc to write to on the HMI?
What if the registers on the HMI are read only?
Essentially I just want a passive display to show the data, but as I'm finding it's a lot more complicated!!

Any help much appreciated.

Cheers
 
Top