Creating Modbus Map for R444A01 Digital display

Primed1

Member
Join Date
Mar 2021
Location
Victoria
Posts
4
Hi All,

I am new to Modbus so please be kind. I have a Modbus temperature sensor (R444A0). Details of the R444A01 Digital display Modbus protocol can be viewed here.https://www.aliexpress.com/item/33054683552.html. I am trying to get this sensor to communicate with an Acculink logger without any success. I believe this is because I am not creating the Modbus template correctly.

In setting up the template the Acculink logger requires the following:Capture11.JPG.
It then asks for the following:
Capture12.JPG
I have tried filling in the addresses based on the info in the link above but seem to be running into trouble. Could somebody take a look and help me out
 
There are no external settings, like DIP switches for the baud rate and slave node address, (vendor refers to it as RS-485 Station Address).

So you need to set up the serial port that Acculink uses to use the default 19.2K baud rate 8-N-1, 8 data bits, No parity, One stop bit.

I can't find where it states what the default slave address is. On the memory map, register 0x0002 is the slave address, but the comment makes no sense:
Read Address 0XFF
Write Address 1-247

One might interpret that as the default address is 0xFF, but FF is decimal 255 and the Modbus spec states that the slave address is 1 through 247 (decimal). I doubt that the default slave address is FF, but it is Chinese . . .

Note that the examples all use slave address 1. But the examples also incorrectly use the number one for the function code, which in the read examples should be 03hex, and in the write examples, 06hex. How reliable are the examples?

IF it were me, I'd try slave address 01 for starters.

Let's assume that you want to read both the temperature and the humidity.

So the memory map tells you that temperature is in register 0x0000 and humidity is in register 0x0001.


01-Modbus-Function-Code-03-memory-map-sm.jpg



So in Acculink, READ HOLDING REGISTERS is OK, START is the indexed value where the temperature value resides, 0000 and under count enter 2 because you want to read temperature and humidity.

Then it asks for the address for the temperature, 0000. Its multiplier, as you can find on the memory map under units, is 0.1, which means that the value 78.9 will be received as 789 and needs to be multiplied by 0.1 to get 78.9.

You'll probably get a second question for humidity, address 0001 and a multiplier of 0.1 as well.
 

Similar Topics

Hello, I am trying to create a modbus map for Modicon PLC BMXP342020. I am using UnityPro software. Does anyone know how to do create this map...
Replies
6
Views
3,152
The idea here is to provide for a brief rapid influx of message codes while preventing sequentially repeating the same message. i.e. if two...
Replies
23
Views
685
Hello everyone, In a factory where we installed Citect 7.20 the computer began to show the first signs of end of life. They never considered...
Replies
0
Views
75
Hi everyone, I'm a last year student at the university in Ghent, and for my thesis i need to write a TwinCAT program that writes data to a .daq...
Replies
0
Views
143
When I go to create a new module in Studio 5000 I can't enter any information for the IP Address or change any other fields. Is there any fix to...
Replies
1
Views
255
Back
Top Bottom