Pulling Modbus Registers from MC600

krakenfan69

Lifetime Supporting Member
Join Date
Nov 2011
Location
Alberta
Posts
229
I have a project where I need to add logic to pull the Modbus registers from a General Monitors MC600. The project is in RSLogix 500 on a ML1400. It gets 6 Gas detectors wired directly to the MC600 then it pulls info from the device in the form of Modbus registers. I have no experience with Modbus (I've only been working in the industry since last November.) Could someone please point me in the right direction for some info on accomplishing this? I have searched online but the search returns are huge and often irrelevant. Any good relevant info out there?

I would appreciate any nudge in the right direction.

Kraken Fan #69
 
I presume you are going to use Modbus RTU over Serial RS-485 to communicate with the General Monitors MC600?

Stu....
 
The first thing you have to know/decide is which unit is going to be the Server/Slave and which unit is going to be the Client/Master.

I would guess the ML-1400 is going to be the Client/Master and the MC600 will the Server/Slave.

Once you know that, set up the Channel you are going to use appropriately as the Modbus Master or Slave.

Next, set up a Message(s) Instruction for that Channel and set it to read the Registers (Presumably 40000 Holding Registers) into a local Data Table.

The Manual covers this fairly well.

Instruction Reference:

http://literature.rockwellautomation.com/idc/groups/literature/documents/rm/1766-rm001_-en-p.pdf

User Manual:

http://literature.rockwellautomation.com/idc/groups/literature/documents/rm/1766-rm001_-en-p.pdf

Stu....
 
There's a lot of information over at www.modbus.org about the protocol, and I refer to the Modbus protocol spec documents often when I do a Modbus project.

http://www.modbus.org/specs.php

One of the first things to learn is that the first digit of a Modbus address is like a file type signifier; "4" is like a "N-register" in the A-B world.

The "Modbus address" is really just a way of describing the Function Codes to be used, and the offset in the data table.

Unless the devices are all in the same room and running of the same power, I would not use the non-isolated built-in RS485 port on Channel 0 of the MicroLogix 1400. I would use an RS-232 to RS-485 converter and isolator; B&B Electronics is my favorite vendor for that sort of thing.
 
Last edited:
I read a bit of the User Manual.

http://s7d9.scene7.com/is/content/minesafetyappliances/MC600 Manual

I would use two MSG instructions per MC600 unit; one to read the first 43 elements (status and Modbus channel 1 info) and another to read elements 65 through 156 (Six channels of sensor data).

Use sequential logic to run the MSG instructions; when each one is in the /DN or /ER state, trigger the next. Trigger these "poll sequences" with a repeating timer.
 
Hey guys, Just getting back to this project. I appreciate all the help. It makes way more sense now and Ken that logic example was very helpful. Now I have a MSG set up just as a quick test that I'm pulling data. It looks like I'm back to struggling with pin out now. I'm using CH 0 set up as Modbus Master feeding through a 1761-cbl-PM02 with the DB9 cut off as the MC600 just has terminals. It looks like the 1400's mini round is as follows,

Pin 4 (Orange in the cable) is RxD
Pin 7 (Brown in the cable) is TxD
Pin 2 (Green in the cable) is Gnd

My terminals on the MC600 show

MOD1+
MOD1-
Shield

AM I correct in assuming TxD = MOD1+ and RxD = MOD1-?

Thanks again for any info you can give.

Kraken Fan #69
 
The MC600 manual says it uses RS-485.

The MicroLogix 1400 Channel 0 connector has both RS-232 and RS-485 circuits in it. Pins 1 and 8 are the RS-485 "Data A" and "Data B", and Pin 3 is the Data Common.

Usually I prefer to use the 1763-NC01 cable to get these pins out of the connector. On the older MicroLogix (1000, 1200, 1500) pins 1 and 8 are the +24V Power and DC Common, so they weren't brought to the DB9 side of the 1761-CBL-PM02. You'll want to ring them out to find out if they're connected.

I didn't see a pinout for the MC600 in my brief review of the user manual; if you can point to one, please do.

Some vendors use the chassis ground instead of a dedicated Data Common pin. If so, connect the Data Common (pin 3) of the MicroLogix 1400 port to chassis ground.

You have a 50/50 chance of getting Data A = Data + and vice-versa. There's no standard nomenclature so every installation of dissimilar vendor equipment with RS-485 requires a coinflip. Getting the two data wires backwards won't hurt anything.

To get the MicroLogix to use the RS-485 pins with Modbus, you need to set the handshaking mode in RSLogix 500 for "No Handshaking - 485 Network". Otherwise it will send data to the RS-232 pins.
 
Yeah, Pin 1 and Pin 8 are not connected in the PM02. We are also out of 1763-NC01's. Can it be set up to use CH 2 and use a DB9 to RJ45 breakout and cutting open a CAT5 cable just for bench testing?

Kraken Fan#69
 
Channel 2 on the MicroLogix is an RS-232 only port. It's Channel 0 that has both signal types.

Do you have a 1761-NET-AIC handy ? That converts from RS-232 to RS-485 and can be connected to either port.

Almost any third-party RS-232 to RS-485 converter should work for this application, too.
 
Sorry I disappeared. Something elsse came up and I have been running ever since. I do have a 1761-NET-AIC but will that allow me to pull registers from a RS-485 device through the ch0 set up RS-232? Kinda backfeeding it? I also am unsure if that would work how to set up my MSG instruction for the Modbus registers.

I ordered a 1763-NC01 to use as a breakout as instructed and have set ch0 to No Handshaking RS-485 (to enable the RS-485 pins) and my MSG still errors out with "timed out in local processor". I have flipped my A/B on the 1763-NC01 and tried it that way too but have had no luck. I think I have an issue with my device (MC600) I have verified the Modbus settings and still no joy. I plan to try to connect using a converter and the program MDbus in the morning. I will get this thing working. I'll be calling the manufacturer in the AM as well.

Thanks again for all the help & info.

Kraken Fan #69
 
The "No Handshaking-485 Network" setting for Channel 0 enables the RS-485 pins and disables the RS-232 pins.

If you connect the 1761-NET-AIC to Channel 0 or Channel 1, leave the handshaking set for the default "No Handshaking".

If you have the 1761-NET-AIC you can hook it up over RS-232 to your computer and use ModScan32 or another Modbus test tool to verify the messaging and electrical interface to the MC600, before you bring the MicroLogix into the system.
 
Yeah I had left it at the default "no handshaking" while trying to use RS-232. I'll give that AIC another go in the AM too.

Thanks,

Kraken Fan #69
 

Similar Topics

Hey guys. So I have a 50 HP 460/600V motor on a PF525. I've verified the motor is wired correctly. The service factor is 1.15 and the pf is 0.8...
Replies
24
Views
1,910
Is it possible to pull information from a specific cell in an excel spreadsheet and use it in a program? I am wanting to display a time amount for...
Replies
4
Views
1,156
Hey guys, I am trying to pull the ladder logic out of some ancient Honeywell S9000 PLCs, but I can't find the software anywhere (google search...
Replies
10
Views
4,881
Hello Everyone, I am trying to pull a few data table points from a MicroLogix 1400 L32AWA Controller into a CompactLogix L30ER over ethernet. I...
Replies
2
Views
1,594
Hi everyone, I've recently acquired a RaspberryPi to see if I can start pulling some data from an AB PLC for trending and logging purposes. I've...
Replies
5
Views
4,724
Back
Top Bottom