Modbus Registers

_V_

Member
Join Date
Aug 2023
Location
Portugal
Posts
31
Hello everyone, I want to read a register in HC900 honeywell but I am not understanding.

https://ibb.co/2dNDsmk

In this link are the things I need to read, and in HC900 they want that in HEX, But what do I convert ?

I want the DATA IN 1 2 3 and 4.

Do I convert 40004 ? Or just 4 ?
Does it need to be 400004 ?
Because HC900 only accepts 4 numbers.
Do I do -1 and convert ?

If anyone has discord or skype or something to contact I would be very thankful.
 
I am not familiar with the HC900 but is it possible that you select a function code and the address separately and skip the prefix in the address?

If the HC900 requires HEX, then you will likely need to subtract 1 from the ABB decimal address.

That would mean that you program the HC900 to read addresses 0, 1, 2, and 3 which are the same in decimal or hex format.

With Modbus, you usually face gaps in technical documents which makes it best to run a trial on a single register to find out if the addressing is zero-based or one-based.
 
Some devices instead of the Modbus address request an offset in the Modbus Holding Registers area, on 400001 is offset 0. In your case DATA IN 1 will be offset 53 or HEX 35.
 
Assuming you're using the HC-900 Modbus/TCP Client/Master function TCPS function block (called "Modbus/TCP Slave" in the FB list) to read data from the ABB drive via the Ethernet communications link, then the hex address 35 is the same as (4)00054, configured in the FB's properties as shown below.

HC900-Modbus-TCPS-FB-FC03-Read-integer.jpg
 
"Register Data type" should be 'signed 16' or 'unsigned 16'; not 'unsigned 32'.

Thank you, and doing that am I able to read the information ?
Because when I do that I dont receive the information.
Do you have any idea why ?

Just one more question, its about the signal tag, do I just put the signal tag randomly on the modbus map ? Or do I need to do something specific and why do we need to use the signal tag ?

To everybody who posted, thank you !!
 
Last edited:
"Register Data type" should be 'signed 16' or 'unsigned 16'; not 'unsigned 32'.

danw and to write ?
I need to write on the variator, is it the same thing ? I need to write on DATA OUT 1 and its the (4)00004 so in hex is 3 right?
Then I write using a numeric constant ?
To write is it only signed or unsigned 16 aswell ?
 
Thank you, and doing that am I able to read the information ? Because when I do that I dont receive the information. Do you have any idea why ?
The General tab has to be configured, the Ethernet network has to be functional.

Just one more question, its about the signal tag, do I just put the signal tag randomly on the modbus map ? Or do I need to do something specific and why do we need to use the signal tag ?
When the HC900 reads a value via Modbus it has to put the value somewhere where it can identified and accessed. That's what a tag does.

The Modbus 'map' of defined values with addresses is in the slave/server, in this case, the ABB drive. Modbus Values read by the client/master are not put into a map in the client/master, rather they become a property, the dynamic value, of a defined 'tag'.


The HC900 can be a Modbus server/slave with either a pre-defined Modbus map or a custom Modbus map, but neither map is needed to read or write a value to a slave/server like the ABB drive.


Caveat
I don't know what Data_IN or Data_Out means for your ABB drive. You have to sort out which registers are read or read/write registers on the ABB drive.
 
Last edited:
danw and to write ?
Define the source of the write value, either a constant or an analog value. Example shows an analog variable:


HC900-Modbus-TCPS-choice-of-what-can-be-a-source-of-a-Modbus-Write.jpg




For a variable, you need to define it:


HC900-Modbus-TCPS-FB-FC06-Analog-Variable-for-Write-integer.jpg


And you need to configure the Write tab


HC900-Modbus-TCPS-FB-FC06-Write-Analog-Variable-integer.jpg


I need to write on the variator, is it the same thing ? I need to write on DATA OUT 1 and its the (4)00004 so in hex is 3 right?
Yes


Then I write using a numeric constant ?
I have no clue what type of data the drive needs.


To write is it only signed or unsigned 16 as well ?
The slave, the drive, defines what data type (format) the register is. The HC900 has a drop-down selection for data type (format). The rules of Modbus are that you cannot write a 32 bit floating point to a single 16 bit Modbus register.

Enable signal

Some kind of digital enable signal is needed. See the HELP file (right click the FB and select HELP)
 
Last edited:
Thank you so much danW, and I have 1 more question, in the modbus map, can I assign a tag or a variable to a singlel bit ? I just want to send a single bit and by putting float 32 it will ocupy a lot of space. Thank you again !
 
Modbus does not write bits, Modbus writes data words.

By Modbus Standards, Function Code FC05 uses the data word hex FF00 to write an ON value, and the data word hex 0000 to write an OFF value. The screen shot is from the Modbus standard:

FC-05-Write-Single-Coil-Request-frame-format.jpg



The HC900 Modbus TCP Slave block supports the Modbus Function Code FC05 "Write single Coil" instruction if you want to experiment with it.

I've never used FC05 so I do not know what source tag (analog variable, numeric constant or digital variable) the HC900 uses to format a single byte value of FF00 or 0000 for Function Code FC05.

Write-single-bit-using-FC05.jpg


The screen shot is merely a suggestion (with a numeric constant of 65280 decimal [FF00 hex?]) as to what might work, you'll have to experiment.
 

Similar Topics

Good day guys. I have a third party device with its Modbus registers which I want to copy/set up on a plc because I need to convert my Modbus tcp...
Replies
3
Views
144
Hi Team, So, what is the correct understanding of the codes for Holding vs Input registers? My understanding was #3 = Input registers & #4 =...
Replies
15
Views
2,509
Hello, I am attempting to add some IO Discrete tags to a AVEVA InTouch project (version 2020). These tags use the MBTCP driver and attempt to map...
Replies
1
Views
1,199
Platform: CCW, 2080-LC50-24QBB, Using 2080-SERIALISOL card Task: Writing Multiple Registers Using Modbus RTU (RS485) Problem: I am attempting...
Replies
4
Views
1,365
Hello all, I am working on project to pull data from G4/G5 ABB Totalflows via a modbus master/data radio. I don't have a physical totalflow with...
Replies
5
Views
1,833
Back
Top Bottom