Modbus addressing problem

soulmate

Member
Join Date
Aug 2011
Location
Cairo
Posts
20
Hi all​
I want your advise in my problem:​
I have an old plc (Arcom device with Isagraph program) which used to be monitored with Intouch SCADA , but the license of this SCADA will expired at this year end . I asked in this forum for an advise to monitor the PLC with Wncc and I was advised to use an OPC serve because the PLC uses Modbus RTU Protocol which isn't included in Wincc.​
I decided to use kepware OPC server and I succeded in making connection with my RTU but I found a problem that the addresses in my PLC for the pressure and temperature monitoring are 30001 to 30019 but in kepware the addressing must be 300001 (with an extra 0) so the reading on Wincc wasn't correct .​
I didn't know how to make the addresses match my PLC addresses.​
I can't modify the PLC configuration​
The temperature and pressure analog signals are (4-20 mA)​
Is there anybody that can help me please …. I'll appreciate any advice.​
 
The leading numeral 3 is not used in the Modbus message packet as an address, rather it is used to tell the Modbus master,(the internal driver in Kepware), to use the function code 04 in its message which tells the device that the data of interest is an 'input register', not an output register.

To identify whether the data is in an input register or holding register, sometimes the Modbus master uses the leading numeral 3xxxxx or 4xxxxx to determine that, or sometimes uses a method like 'select function', where one selects "input register" (which uses function code 03) or "holding register" (which uses function code 04). [Note that the function code 03 addresses the 4xxxxx data, the function code 04 addresses the 3xxxxx data.]

In both cases the xxxxx value is an indexed value from either zero (address) or one (register number), although the terminology of address or register is not officially defined and sometimes is interchanged.

Kepware is using 6 digit addressing, 3xxxxx. If you enter 30001, you're going to ask the slave for data at 330001. I suspect you're supposed to enter 300001, because you want the first input register (00001), even though the slave shows you 5 digit addresses (30001) in its documentation.

If you must actually enter the leading numeral 3 in Kepware to define the 'address', then try inserting an extra zero and use the six digit 300001 or 300019.

Or look for where in Kepware you select for the type of data needed, input or holding register and just use 00001 or 00019.
 
Hello,

For MODBUS addressing 30001 and 300001 access the same register.
3 = Input register
0001 or 00001 = register 1.

If you enter 300001 in Kepware you will be accessing register 30001 in the device. The invalid reading is caused by some other issue, not 5/6 digit addressing.
 
This topic is rather old and I suppose it has been resolved. Nonetheless I am having similar problem with Kepserver v6.5 connecting with Modbus TCP. I is continously reporting an "Exception =2 Block range = 400103 to 400103" "Bad address in Block". The only problem that I can see is that it uses the 6 digit instead 5 digit. I have tested the Modbus Server with QModMaster and it is up and running; so the problem comes from KepserverEX (it is a nightmare).

Many thanks for your comments, they are the only useful information I found on the web.
 
This topic is rather old and I suppose it has been resolved. Nonetheless I am having similar problem with Kepserver v6.5 connecting with Modbus TCP. I is continously reporting an "Exception =2 Block range = 400103 to 400103" "Bad address in Block". The only problem that I can see is that it uses the 6 digit instead 5 digit. I have tested the Modbus Server with QModMaster and it is up and running; so the problem comes from KepserverEX (it is a nightmare).

Many thanks for your comments, they are the only useful information I found on the web.

While you may have similar components (Kepware, modbus etc), you should post this a new question rather than continuing on a years old thread.
 

Similar Topics

Hello everyone. Using the designer software for the HC900 had me thinking. How can I assign 1 variable so 1 single bit. Like how can I say that...
Replies
1
Views
445
Hi, I am doing PLC using M221 as a slave device and communication via modbus. The PLC has been completed and i am required to provide Modbus...
Replies
5
Views
2,842
Hi All, I would like to know is there any option in Wecon pi studio for Modbus addressing. I have gone through the options but I can't find the...
Replies
0
Views
1,179
Does anyone have a good doc that explains the addressing for modbus with unity. I am having issues setting up the addressing when trying to...
Replies
7
Views
3,978
Hello everyone, I am working on a project that requires a connection to Alstom relays series P40x using Modbus RTU, and I am having trouble doing...
Replies
0
Views
977
Back
Top Bottom