Modbus RS485 Communication with PM583-ETH
Hello,
My questions are
1. Is it possible, to communicate PM583-ETH(Master) with other controller(Slave) on Modbus RS485 whose Starting Address is from '0'.
Is Starting address '0' supported or not?
If yes, then how to do this?
If not, then how to read '0' address data on PM583 PLC?
2. How many devices can communicate on PM583-ETH controller using Modbus TCP/IP protocol? (putting PM583-ETH as Client & other devices as Server)
Voted best answer
Answers
Hi,
1) Is it possible, to communicate PM583-ETH(Master) with other controller(Slave) on Modbus RS485 whose Starting Address is from '0'.
-Yes.When using COM_MOD_MAST block set ADDR=0, NB=1 and FCT=3 for reading the HR0 of the slave.
Is Starting address '0' supported or not?
-Yes it is supported.
2)How many devices can communicate on PM583-ETH controller using Modbus TCP/IP protocol? (putting PM583-ETH as Client & other devices as Server)
It all depends on proper utilization of available sockets. Sockets are utilized not just by ETH_MOD_MAST blocks, but also by other TCP/IP protocol related FBs declared in the PLC program .Every ETH_MOD_MAST block uses one socket. Max sockets available for PM583 ETH onboard ethernet port is 25, out of which 22 sockets are available for use by TCP/IP function blocks in the user program.
Theoritically you can simultaneouly communicate with 22 servers.However, doing so will often starve other protocols of socket usage. To avoid this, we generally use the looping method where in the ETH_MOD_MAST blocks are sequentially enabled one after the other.
Using the looping method, I had communicated with 24 servers. The modbus program had a cycle time=400ms. The parameter values in the MODBUS TCP/IP server settings page also matter.
The most efficient way to communicate with large no of servers at the fastest possible scan time requires usage of fewer ETH_MOD_MAST blocks and using Structured data types for passing parameter data to the ETH_MOD_MAST FBs sequentially.
PFA the ABB webinar doc which partially describes how this was achieved in ABB's lab.Implementing the method described in the the webinar doc requires a good level of experience in programming and some level of expertise.
Regards
Rahil
Add new comment