Multiple masters in Modbus TCP/IP network

jonnies

Member
Join Date
Jun 2009
Location
Illinois
Posts
26
Hi all,

I recently ran into a problem with my latest project. I am using a MicroLogix 1100 PLC, and have 4 remote IO modules that talk to it via Modbus TCP/IP (this is all going from the RTU port of the PLC, through an RTU-to-TCP/IP gateway, to the remote IO modules). Obviously the IO modules have to be the slave in this case. I also have an EZ Series HMI that talks via Modbus TCP/IP to the PLC. The HMI wants the PLC to be a slave in this case.

Is it possible to have the HMI be the PLC's master, and the PLC be the IO modules' master? If not, what options are there to get around this? Any help would be appreciated.

Thanks,

Jon
 
I was always told you can only have one Master and multiple slaves. Now which is which can differ. You'd have to set up two different networks to do what you're asking.
 
I believe with a Gateway I can make this work. Does anyone have experience with any Modbus Gateways to make the HMI the master of the PLC, and the PLC the master of some other device?
 
The ML1100 ethernet port is native Ethernet/IP, so can you use the appropriate AB ethernet driver on the touchpanel instead of Modbus/TCP? Surely it has one? Or is there some reason you cannot?
 
Robert, I have been looking at that as an alternative today, but so far I have not gotten it to work. Maybe I am missing something.

On the ML1100 we have the following options for the MSG block on the Ethernet channel:

500CPU Read
500CPU Write
485CIF Read
485CIF Write
PLC5 Read
PLC5 Write
CIP Generic

On the touch screen we have the following options for Ethernet:

Modbus TCP/IP
ControlLogix Ethernet/IP
PLC5E (DF1 over Ethernet/IP)
SLC5/05 (DF1 over Ethernet/IP)
GE SRTP

No matter what, the HMI has to be a master-- does that mean that I shouldn't be using MSG blocks at all? I have tried using the PLC5E and SLC5/05 both with MSG blocks and without them, to no avail. In these tests, in the HMI tag definition, I am putting N7:0 as the address for a numeric indicator. Is this correct, or is there some other registry mapping for these protocols? The HMI is an EZTouch EZ-T10C-FU, and the error I am getting once I load it onto the panel is "PLC 01 Read Error; STS 10"


In addition, another configuration I may have wrong is the Channel Config in the ML1100. I have it set to 10/100 Mbps Full Duplex/Half Duplex. Is there any way to find out if this is the right option?

Thanks for all the help,

Jon
 
Lots of good questions. First: the PLC does nothing once ethernet is setup. No messaging or anything like that. Second we have to get the correct driver for the EZ series - frankly I have never used one, but one of the AB drivers should work.

But you need ethernet comms setup first. Can you ping the ML1100? If you can ping it, then your questions about speed and duplex are all set. If you can't ping, then we need to solve the ethernet issue first.
 
I can indeed ping both the PLC and HMI. In the HMI editor, there is a button for updating the driver. There are no options or anything-- the only choice is the "EnetProto" driver. As a check, I tried changing the PLC connection to other random things, such as Modicon, and then went back to the update driver menu, and the driver had also changed to "Modicon". So I can only assume EnetProto is the correct driver for PLC5E (what I am trying to use right now).

I have updated it, but I am still getting the same error-- "PLC 01 Read Error: STS 10". In the EZ Touch Help, it says it is getting the STS number in hex from the PLC, but in the RSLogix 500 Help I can't find any definition for an STS 10 (or an STS 16 decimal) error.

Any thoughts or ideas I could try?
 
Last edited:
Would the SLC driver be a better match? Can you try bringing in a different register? Also maybe just one register at a time for now. I know with some hardware that I might bring in 20 tags - if one of those is bad, then none of them are read, which is very annoying. If that doesn't work then I am out of ideas. Sorry, and good luck.
 
Thanks Robert--

Interestingly enough, the driver doesn't change when I change it from PLC5 to SLC5/05. It is still EnetProto. I get the same error with either protocol. And I am already doing just one register, N7:0. I can try a single bit I suppose. If that doesn't work I will keep exploring the Modbus TCP/IP Gateway option. Thanks for your help.

Jon
 
I was always told you can only have one Master and multiple slaves. Now which is which can differ. You'd have to set up two different networks to do what you're asking.

I dont see why you cant have multiple masters. Assuming a master is a device that initiates the read or write operation, you can h ave as many of those on Ethernet as you want.
 
Well the question is, if the HMI is a master, and the ML 1100 is a master, how does the HMI know which addresses to use to poll the ML 1100?

Normally if something is polling the ML 1100, I would set up the R232 port as a Modbus slave, which would bring up the menu shown in the attached screen shot. That is where I would say, ok, the 4xxxx addresses are linked to the N7 table, etc. If the ML 1100 is set up as a master, I don't think any modbus addresses are linked anywhere in the PLC memory. Can anyone confirm/deny this?

Jon

ab-slave.JPG
 
Another related question--

If I use PLC5E (DF1 over Ethernet), how do I map the addresses in the PLC? I found a guide for the PLC5 address format:

a:xxy/zz

Where:
'a' is the designation for input (I) or output (O).
'xx' is the rack number
'y' is the group number (slot number if you are using single slot addressing)
'zz' is the input terminal on the card

In the HMI, if I want to link something to N7:1 or something, how do I do this? Can I just type N7:1, or do I have to use something like I:070, or I:017/0? I think my syntax here might be what is causing the error I am getting when I try to use this protocol.

Thanks for everyone's input once again.
 
Success

All--

After trying about a hundred things I have finally gotten these devices to talk over the ML 1100's Ethernet port. I wish I knew what I was doing wrong before, for anyone with the same problem in the future, but I am still unsure. But they are definitely talking over the SLC5/05 (DF1 over ethernet) protocol. The addresses I am using for the HMI tags ended up being straight up PLC N7 addresses. Thanks SO much to everyone who gave input into my situation.

Jon
 

Similar Topics

With Ethernet/Modbus-TCP, if a device is a Modbus Master, can it be polled by another Modbus Master? That is, "act like a slave", for lack of a...
Replies
7
Views
6,751
Have anyone experience with use of Siemens S7-300 (CP341 card) and use of multiple masters. I have a client with a SCADA system there have Modbus...
Replies
0
Views
3,404
If an IPC with Codesys runtime on it has two separate ethernet ports, is it possible to have an Ethercat master on each of them? I do not find...
Replies
3
Views
537
Could anyone from a Siemens background offer me some advice here. I have a spec here which is requesting a system where until normal control a...
Replies
11
Views
6,386
I have several small individual stations, each controlled with a 314C-2DP processor. Right now, a multiproject is used to contain all of the...
Replies
2
Views
2,794
Back
Top Bottom