ModBus TCP: Slave and Master confusion


mbruck

Recommended Posts

Please, could some one explain more about ModBus TCP, Slave and Master configuration. What confusing me is :( , id terminology: Modbus TCP slave is Ethernet master and vice versa :( . "Slave is master"

More, when configuring devices there several possible combination: MODBUS TCP, Modbus TCP slave and New Ethernet (TCP) client, New Ethernet Server .... :)

I have succesfully connect DaqFactory to one Modbus TPC application where read input status (F2), but I can't READ FROM DAQFactory. Even I try several combination above, I never success to establish communication. Please, could you explain how to establish TCP communication QuickMOD<->MyApplication in somple steps!

Thank you!

Link to comment
Share on other sites

First, you need to think of the protocol and transport layer separately. The protocol is ModbusTCP master, ModbusRTU master, ModbusTCP slave, ModbusRTU slave, etc. The transport layer is serial, ethernet client, ethernet server, etc. In DAQFactory you can apply any protocol to any transport layer, which gives you complete flexibility for the many ways devices get hooked up. That said, there are some typical setups. Modbus Master protocols on ethernet typically use the ethernet (TCP) client, while modbus slave protocols on ethernet typically use the ethernet server. On serial, there is no differentiation between client and server. In Ethernet, a server is something that can accept incoming connection requests, but can't go out and try and establish a connection with another computer. A client can establish connections with other servers, but can't accept incoming connections. It is possible to run both a client and server on the same machine. In fact, in a single copy of DAQFactory you can create an ethernet server device and then create an ethernet client device that connects to that server.

As for using the modbus slave on ethernet:

create a new serial/ethernet device, call it "modslave" or something.

create an ethernet server for the device, port 502, timeout 1000.

select that server and ModbusTCPslave protocol and click ok to create the device

go to your regular channels that have data coming in from some other device and go to the Mod Slave# column. Here, put in tag #'s to use in the modbus slave. Use tag #'s < 10000 for integers, and > 10000 for float.

That's it. Quick Mod should be able to connect by specifying the IP address running the above copy of DF, port 502, ID = 1, I/O type = read holding, tag # = whatever you put in the last step above.

Link to comment
Share on other sites

  • 5 years later...

And we should change the modbus address with  

device.mydevice.ModbusAddress = what_you_want

  this script from command bar if you want. It doesn't work from the channel panel. I didn't see any visual interface for this maybe Guru knows.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.