AB Message Instruction Help

Join Date
Jan 2014
Location
Barrie
Posts
15
Ok, so I've been reading through older forum posts trying to understand how this works. I'm more confused than when I started.

I'm trying to send a message from 1 PLC (micrologix 1100) to another (SLC 5/03) in order to achieve a remote shut down. I'm fairly new to this kind of PLC control...in fact I've never used the MSG function. At the moment I'm simply trying to get the two PLCs to communicate over RS232, which currently I've had no luck.

Once I manage to establish communications, I simply wish to send a write message from the Micrologix 1100 to turn on a bit in the SLC5/03. Eventually this will be done on a larger scale, with all the PLCs being networked via Ethernet. We're working toward installing a remote shutdown for emergency purposes.

Any help would be appreciated as I'm not even sure where to start!

Thanks.
 
Ordinary PLCs are not suitable for handling emergency situations . Either hardwire the emergency controls or use safety PLCs .

Paul
 
Agrees with Paul. Use message only for non-critical application.

It's going to be challenging to communicate between 1100 and a 5/03. If memory serves me, you can add a NET-ENI module to the 5/03, essentially adding ethernet ability to it or using an AIC module to communicate over RS485.

You mentioned RS232, which means to me the DF1 protocol but I'm not even sure that's possible between the two plc you mentioned. Really, I wouldn't go with this route even if you can do it. Go with the NET-ENI or AIC.
 
Let me rephrase that. For remote shutdown, not necessarily for emergency purposes. All our systems are set-up with hardwired safety relays. This is a back-up to ensure that in case of building evacuation due to fire or a spill, the machines can be stopped remotely.

The idea was to eventually go with Ethernet/ip. I was just trying to do it on a small scale before spending money on the NET-ENI. Maybe I need to bite the bullet on one first for the trial run.
 
You might like to think about a windows PC using a deployment of Advanced HMI ( Its free ) .It will write ( or read ) from the ML1100 over ethernet . With an ethernet card for the SLC It will also talk to that .
With a WiFi in the remote area you could even use a Tablet .

Paul

P.S. AHMI will also go over RS232
 
Last edited:
You might like to think about a windows PC using a deployment of Advanced HMI ( Its free ) .It will write ( or read ) from the ML1100 over ethernet . With an ethernet card for the SLC It will also talk to that .
With a WiFi in the remote area you could even use a Tablet .

Paul

P.S. AHMI will also go over RS232
Thanks. I'll give the Advanced HMI a go. It looks pretty cool.
 
So, not really sure why all of the concern about how complicated this is mainly because it’s not even remotely difficult or complicated. You’re asking to do one of the simplest things short of having an input control an output.
First, DF1 is most certainly designed to pass communications between PLC’s and both the MicroLogix 1100 (all MicroLogix for that matter) and SLC5/03 have a DF1 compatible port (Channel 0). You have a couple of options with what kind of DF1 you want to use (DF1 full duplex, Half duplex and radio modem) however if it’s going to be just the two controllers then DF1 Full Duplex is the way to go. One reason is it’s the simplest setup and all you have to do is set both channel 0 ports (one in each PLC) to “DF1 Full Duplex, 19.2Kbaud, 8 data bits, 1 stop bit and CRC error checking”. This is the default configuration for both the MicroLogix 1100 and the SLC5/03 (all SLC’s actually). So set both PLC’s up with their channel 0 ports as above.
Then you need to write a message instruction in the MicroLogix, again super simple. I’ve attached a sample program for a series B 1100. Open it up with RSLogix 500 and take a look. There’s nothing else happening, just the messaging.
A few things to note:
• You do have to create a data file for each MSG but that’s no different than creating another word file. Right click on “Data Files” and select “New” and then “Message”.
o This will be the “MSG File” used in the message instruction. In my example it’s “MG9:0”
• In my example I’m writing word “N7:0” with 1 element to the SLC’s “N7:0”. In your application you might only need one bit but you need to write/read whole words so just write the word and use one of the bits for control.
• The second rung takes the MSG’s done or error bit and unlatches the MSG’s enable bit. This restarts the MSG once it is done or errors. This provides continuous messaging. If you don’t want the MSG to be running all the time I’d still use the unlatch method and then control the rung the MSG is on. I did this with “B3:0/0” which I call the “system run” bit. It’s just a means of starting and stopping the MSG. It can be done in many ways.
Don’t be intimidated by this, it’s easy. Just play around with it a little bit (pardon the pun) and you’ll see. Also someone stated that message instructions shouldn’t be used for critical functions, hogwash. I’ve been using message instructions for PLC to PLC communications for 20+ years and find it very reliable, especially DF1.
Last, don’t screw around with 485, use RS232. You don’t need any “ENI’s” or anything like that, a “PM02” cable to connect to the MicroLogix’s channel 0 port and it’s designed to plug into a channel 0 DB-9 port so you won’t need a null cable.
Use the link below and download the MicroLogix 1100 “instruction set reference”. It’s a big document but there is an entire chapter on messaging.
Have fun
http://literature.rockwellautomation.com/idc/groups/literature/documents/rm/1763-rm001_-en-p.pdf
 
I also wanted to add that if there is a concern about the data being “up to date” then you could write a routine in the SLC that cycles the bit after a certain period of time with that time being longer than how often the 1100 writes to the SLC. For example, let’s say that you’re using the status of “N7:0/0” to start and stop a process. When “N7:0/0” is high the process runs when its low it stops. When you want it to run the 1100 writes “N7:0” to the SLC with bit “0” high. At the same time the 1100 is also setting “N7:0/1” high. When “N7:0/0” goes high a timer starts and will go done after 750mS. At 25mS “N7:0/1” is unlatched. When the 1100 messages the SLC again it resets “N7:0/1” high and when “N7:0/1” goes high it resets the timer (through a One Shot). So if the messages are getting through the timer is being reset before it can go done. If the messages fail then “N7:0/1” stays low and the timer finishes which sets its done bit which unlatches “N7:0/0” and whatever its controlling stops. If the 1100 messages the SLC every 500mS then the timer can never go done.
I’m pretty sure that there are better ways to do this but this one does work and it’s pretty easy to set up
 
So, not really sure why all of the concern about how complicated this is mainly because it’s not even remotely difficult or complicated. You’re asking to do one of the simplest things short of having an input control an output.
First, DF1 is most certainly designed to pass communications between PLC’s and both the MicroLogix 1100 (all MicroLogix for that matter) and SLC5/03 have a DF1 compatible port (Channel 0). You have a couple of options with what kind of DF1 you want to use (DF1 full duplex, Half duplex and radio modem) however if it’s going to be just the two controllers then DF1 Full Duplex is the way to go. One reason is it’s the simplest setup and all you have to do is set both channel 0 ports (one in each PLC) to “DF1 Full Duplex, 19.2Kbaud, 8 data bits, 1 stop bit and CRC error checking”. This is the default configuration for both the MicroLogix 1100 and the SLC5/03 (all SLC’s actually). So set both PLC’s up with their channel 0 ports as above.
Then you need to write a message instruction in the MicroLogix, again super simple. I’ve attached a sample program for a series B 1100. Open it up with RSLogix 500 and take a look. There’s nothing else happening, just the messaging.
A few things to note:
• You do have to create a data file for each MSG but that’s no different than creating another word file. Right click on “Data Files” and select “New” and then “Message”.
o This will be the “MSG File” used in the message instruction. In my example it’s “MG9:0”
• In my example I’m writing word “N7:0” with 1 element to the SLC’s “N7:0”. In your application you might only need one bit but you need to write/read whole words so just write the word and use one of the bits for control.
• The second rung takes the MSG’s done or error bit and unlatches the MSG’s enable bit. This restarts the MSG once it is done or errors. This provides continuous messaging. If you don’t want the MSG to be running all the time I’d still use the unlatch method and then control the rung the MSG is on. I did this with “B3:0/0” which I call the “system run” bit. It’s just a means of starting and stopping the MSG. It can be done in many ways.
Don’t be intimidated by this, it’s easy. Just play around with it a little bit (pardon the pun) and you’ll see. Also someone stated that message instructions shouldn’t be used for critical functions, hogwash. I’ve been using message instructions for PLC to PLC communications for 20+ years and find it very reliable, especially DF1.
Last, don’t screw around with 485, use RS232. You don’t need any “ENI’s” or anything like that, a “PM02” cable to connect to the MicroLogix’s channel 0 port and it’s designed to plug into a channel 0 DB-9 port so you won’t need a null cable.
Use the link below and download the MicroLogix 1100 “instruction set reference”. It’s a big document but there is an entire chapter on messaging.
Have fun
http://literature.rockwellautomation.com/idc/groups/literature/documents/rm/1763-rm001_-en-p.pdf

Wow. Thank you for such a detailed explanation. I'll spend some time playing around with all that stuff today. I appreciate your advice and the example!
 
After a day of banging my head against a bench, I thought I'd update this. At this point I'm able to establish communications through DF1 to write from the ML1100 to the SLC5/03. My messaging is all set-up with no errors, however I still can't get it to work. I'm monitoring both PLCs through alternate channels (Ethernet for the 1100, DH485 for the SLC). If I manually change N7:0/0 to high (1) through the data table, then the message will write it to low (0). I'm attempting though, to write from low to high (0 to 1). Each time I give the 1100 the input to enable the MSG, nothing changes state in the 5/03.

I'm sure what I'm doing wrong is something stupidly simple, but I just can't seem to find it. I'll post copies of the two programs I'm working from over the next day or two, if that will help to get me closer to a solution.
 
Are you sure you're doing a write from the 1100 to the 5/03 and not a read (I've done that one more than once:rolleyes:) ? When you ad a message instruction on a MicroLogix 1100 it defaults to read.
 
The first time I made my own message command I had it active ALL THE TIME. I pulled my hair out trying to figure out why it wasn't working correctly. The lesson I learned was to always have a logical trigger. When something that was going to be transmitted changes state I had the message command activate. When somebody says "Its not working!!!" That is the first thing I think of.
 

Similar Topics

Hello, I'm trying to read a parameter from a Power Flex 525 drive to monitor output current in order to detect a jam condition in carousel filler...
Replies
10
Views
3,680
Working with SLC 5/05. How does the MSG instruction use the control block and how do correctly determine the length of what it should be?
Replies
9
Views
2,707
I have a SLC 5/05 and I am trying to read motor current from one of the Allen Bradley 193 E300 series overload units. On the Rockwell site I...
Replies
1
Views
2,476
What's the easiest way to monitor a CIP data table read or write instruction. I'm reading and writing from a Compact logix to a micro 820, over...
Replies
3
Views
1,485
Studio5000, V31 I'm Messaging a MassFlow Meter, specifically to pull the Engineering Units (units of measure) for 6 instances. Basically, do I...
Replies
2
Views
1,203
Back
Top Bottom