lavinh

Communication between Controllogix MVI56E-MNET and SLC MVI46-MNET

6 posts in this topic

I have to set up a communication (read & write) between a Controllogix MVI56E-MNET module and a SLC MVI46-MNET module.

Since in the Command List, we have to specify the Slave Node address, I don't know how to setup the Modbus node address for these modules.

It would be OK if we try to talk to other Modbus devices with these MNET modules, but how do we do when we try to talk between them.

Anyone have this experience, please help.

Lavinh

Share this post


Link to post
Share on other sites

Strictly speaking, Modbus/TCP is a peer to peer protocol, so it's a "Unit Identifier", not a "Modbus Slave address".   And yet the MVI56-MNET module makes no mention of the proper name, calling them all "Modbus Slaves".

Here's an excellent technical discussion of Modbus/TCP from a different vendor, Real Time Automation.   John Rinaldi is super-smart:

http://www.rtaautomation.com/technologies/modbus-tcpip/

When your MVI module is acting as a "Modbus Slave", it's really being a "Modbus/TCP Server".

When your MVI module is acting as a "Modbus Master", it's really being a "Modbus/TCP Client".

In general, I think the MVI56 and MVI46 modules behave as Unit Identifier 1 at their IP address, so you'll always make the module you're reading from or writing to "Modbus Slave 1" in the Command List.

1 person likes this

Share this post


Link to post
Share on other sites

Ken,

Thanks for your prompt response to my questions.

I have another question that I want to clarify since I don't have these modules at hand for testing yet.

Assuming I only want to read information between these 2 modules (i.e SLC500 MVI46-MNET  reads data from CLogix via MVI56E-MNET and vice versa).

In the Controllogix PLC, data will be copied to the MNET.DATA.WriteData (I assume these data will be mapped to the MVI56E-MNET Database by the Add-On Instruction).

From MVI46-MNET, a Command List will be issued with Function Code 3 to read these data (I use Function Code 3 because I found that Modbus addresses in these modules for the database are at 40001-45000).

The same will apply for CLogix MVI56E-MNET to reads data from SLC500 via MVI46-MNET.

Could you please verify what I think is correct, if not please enlighten me.

 

Many thanks

Lavinh

Edited by lavinh

Share this post


Link to post
Share on other sites

You've got the right basic idea.    Data is written to the MVI module internal "database" by the .WriteData tags, and read out of it by the .ReadData tags.

I find it helpful to draw myself a simply diagram of the flat-file "database" inside the MVI module.   It's really just one big data table and you have to be clear about which section of the table is being used for which purpose (writing or reading).

Because you are using two Allen-Bradley products, can I ask why you are using Modbus/TCP instead of one of the built-in Allen-Bradley protocols ?

 

Edited by Ken Roach

Share this post


Link to post
Share on other sites

Thanks, Ken

The reason we have to use Modbus/TCP instead of Ethernet IP because these 2 PLCs are at 2 different companies exchanging information.

If using Ethernet IP, there is a risk of the programming ability at the other end.

Cheers

Share this post


Link to post
Share on other sites

Isolation and intrusion prevention are a really excellent reason for doing this.   Thanks for posting that !

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now