Modbus Poll communication setting?

PLC1234

Member
Join Date
Nov 2020
Location
CA
Posts
5
I am trying to do very simple thing which is to write a value to PLC modbus address.

I set the byte (Productivity Suite) to be modbus communication. (See attached picture)

I can have my Modbus poll read my PLC data, but I cannot set values using Modbus poll

See my screen recorded video

https://streamable.com/cqchr5

renditionDownload.png
 
I'm not super experienced with Modbus, but could the issue be your addressing? Looks to me like you may have too many 0's. Typically I see 40007, not 400007. Just a shot in the dark.
 
According to your screen shot, register 40003 is a 32 bit integer, which uses both registers 40003 and 40004.

What might be happening is that when you write only one 16 bit word (value = 22 decimal) to register 4003 that expects 32 bits for both 40003 and 40004, the PLC might be smart enough to throw an exception code (error), indicating that it only got 16 bits instead of the needed 32 bits.

I would guess that you might need to change the "type" to whatever the PLC calls long (32 bit) integers and then write the value 22 to "two" registers, not one register, starting at 40003.
 
Usually when you pick the type of date, such as "Holding register" the prefix is added automatically, so you would only enter the offset value. So register 400007 would just be Holding register 7. Have you tried that?


Also:
Since you can read data from your PC, your PLC is acting as the Server in that application. Is it setup as a server to receive data too?
 
Last edited:
Typically I see 40007, not 400007. Just a shot in the dark.


Yes, some systems limit the range to 1-9999 40001 - 49999.
The MODBUS protocol supports 1-65565.
The "4" indicates a "holding" register.
The remaining digits is the register index.
The register index is 2 bytes = 65535.
400001 - 465535
 
Answer posted at the following link.

https://community.automationdirect.com/s/question/0D53u00002Rj0SyCAJ/modbus-poll-communication-setting

Modbus uses 16-Bit references on registers.
You have 32 bit registers set up to change.
C1 - 32 bit integer - Modbus address 400001 and 400002
C2 - 32 bit integer - Modbus address 400003 and 400003
C3 - 32 bit integer - Modbus address 400005 and 400006

If you want to write to C2 then use the following:
Address: 3 - Start of the Modbus address
Quantity: 2 - (2 16-bit registers)
Type: UINT32 Little-endian byte swap - This will set 32 bits in the register.

Regards,
Garry
 
Yes, some systems limit the range to 1-9999 40001 - 49999.
The MODBUS protocol supports 1-65565.
The "4" indicates a "holding" register.
The remaining digits is the register index.
The register index is 2 bytes = 65535.
400001 - 465535


Good to know, I have very little experience with Modbus, was just the first thing that caught my eye. Thanks for the heads up!
 

Similar Topics

Hi, Do you have any trick to make a software working when the 30 days demo version is expired? I've tried to uninstall/clean the registers etc...
Replies
6
Views
294
I'm trying to use DTM browser to make make modbus poll from RTAC. I'm able to get the points in first poll object. But not able to get anything in...
Replies
1
Views
125
Hello Guys, I have a Omron 3G3MX2 drive and I want to learn how its Modbus registers work by connecting to pc via Modbus poll software. does...
Replies
1
Views
728
i am using modbus pol to trouble shoot a modbus comms issue. I have device communicating modbus over rs485 going through a lantronix express DR...
Replies
7
Views
2,990
Hi all, I'm using my 1500 PLC to communicate to two modbus slaves devices via RTU comms: Comms settings being: 9600 8N1 Every now and then the...
Replies
4
Views
2,448
Back
Top Bottom