CLX to Atlas Copco (Modbus) communications

phuz

Member
Join Date
Jun 2008
Location
Mohnton, PA
Posts
1,044
I'm re-writing a control scheme for some air compressors. Two of them have micrologix PLCs and the third is an Atlas Copco with MODBUS communications. It has a Lantronix RTU to Ethernet converter. I found a manual (http://read.pudn.com/downloads156/doc/comm/696115/UserGuideMkIVModbus01.pdf) that shows the registers I should need for all the control and status, so I configured the Prosoft module to read from its port 2003 on a few test registers. Unfortunately the data I am seeing in the CLX tables doesn't quite match what I would expect to see. I've tried byte swapping, word swapping, etc.

Further, even though I setup the Prosoft config for a register count of 5, it's filling 14 registers in the CLX table. And depending on which set of registers I attempt to read, some stay steady, while same flash a value and then return to 0.

Anyone have experience with this?

Untitled.jpg
 
Last edited:
I would try changing your starting MB address by adding 1 or subtracting 1 from what is shown in the manual. I have had issues with the device address starting at 0 but I needed to start at 1 in the PLC to make it work. And I have seen the other way around. Moving my starting address made things work for me. Might work for you.
 
Why port 2003?

Typicall I thought that modbus TCP used port 502

Yes, Modbus TCP is, but Modbus RTU over Ethernet is 2003.

I would try changing your starting MB address by adding 1 or subtracting 1 from what is shown in the manual. I have had issues with the device address starting at 0 but I needed to start at 1 in the PLC to make it work. And I have seen the other way around. Moving my starting address made things work for me. Might work for you.

No, it's more than that. I'm always conscious of that, but thanks. I wish it was that easy.
 
Something else is weird. If you look at the Prosoft config I just did, I am trying to read registers with one command, and then read coils with another.
However, both addresses in the PLC have the same data.

Untitled.jpg
 
Oh well it was worth a shot o_O

Anyway to make that shot bigger? it is hard to read.

I don't know how much MB stuff you have on that module but I wonder if it would be a good idea to reset the module back to factory and re-enter the config? I have equipment that I have to sometimes do that to when things get weird.
 
Oh well it was worth a shot o_O

Anyway to make that shot bigger? it is hard to read.

I don't know how much MB stuff you have on that module but I wonder if it would be a good idea to reset the module back to factory and re-enter the config? I have equipment that I have to sometimes do that to when things get weird.

PLCS.net is shrinking it, unfortunately.

Maybe this:
 
Last edited:
Just throwing this out but have you tired port 502? I was looking at the user manual for the Lantronix XDirect-IAP (not sure if that is the one you are using) and it says that it is a Modbus TCP to Modbus RTU converter.
 
Just throwing this out but have you tired port 502? I was looking at the user manual for the Lantronix XDirect-IAP (not sure if that is the one you are using) and it says that it is a Modbus TCP to Modbus RTU converter.

Yes, 502 is a closed port. ;)
 
It's not that I'm not getting data when reading from 2003, because I am. It just doesn't look correct and you see some strange things happening, as shown in the photos.
 
Yea it is very strange. is the data you are getting when you read 40001- 40005 correct? Or is that data incorrect too?

Can you get into the Atlas Copo device and see if there is any configuration that is messed up in there? If there is some strange user mapping in that device it is possible that is messing you up too.
 
Yea it is very strange. is the data you are getting when you read 40001- 40005 correct? Or is that data incorrect too?

Can you get into the Atlas Copo device and see if there is any configuration that is messed up in there? If there is some strange user mapping in that device it is possible that is messing you up too.

I can't tell if the data is correct. As far as I know, the first data point I am reading in 0001, which is analog input 1, is pressure. According to the manual, pressure is in terms of bar (0.001 bar). If I convert that number integer in the CLX, 6261, to 6.261 bar, and then to psi, I get 90.8 psi. This is very realistic and I see it fluctuating. So far that is the only address that sort of makes sense. But why it would also be showing up in lower parts of the array?
 
OK, I've made a little progress. As it turns out, you were right, Bullzi, in that the MODBUS reference sheet from Atlas was off by 1. I thought you meant my mapping in the CLX. So 1061 in the manual is actually 1060 when I reference it from the Prosoft config.
That being said, here is the nasty thing that is happening. If I only use one command, the data comes through fine. If I add another command, the two sets of data swap locations.

In the example below, the data in [500] should be at [510] and vice versa.
If I disable the second command, you will see the value of 4771 at [500].

Ready? Go.

Untitled.png
 

Similar Topics

Controller: 1756-L84E v.35 Prosoft MVI56E-MNETC for ModbusTCP/IP I'm having an issue with some of my write commands. The write command that...
Replies
0
Views
194
I have several Avery scale units and they are configured as Generic Ethernet modules, and I am actually reading the data fine for the weight...
Replies
2
Views
419
What's the best way to move a tag value from the panelview+7 to the clx plc. We display amps from a power meter on the panelview screen, read in...
Replies
1
Views
398
I'm running into an issue migrating a PLC-5 using the newer Logix Designer Export when opening a saved .ACD from RSLogix-5. It has multiple RIO...
Replies
2
Views
616
We have two sites that are stranded with no line of site, they are handled by phone/modem with a chain that includes: Stranded site (client)...
Replies
5
Views
908
Back
Top Bottom