The below questions always cause confusion to anyone who would like to implement Modbus requests in M580 :
Presumably, if we have 3 PLCs (1, 2 & 3) that perform read and write requests using "Read_Var" & "Write_Var" blocks simultaneously. So, if we suppose that all CPUs can provide a max of 16 requests per scan on the Ethernet channel.
Accordingly :
- Does a request refer to the no. of implemented "Read_Var" & "Write_Var" blocks inside the the code ?. Or, does a request refer to the no. of open communication connections between each single CPU and the other 2 ones ?
- If the above is correct (a request refers to the communication connection between 2 CPUs), so if for example PLC1 and PLC2 are performing read and write requests between each other, will the total number of requests between them be 1 or 2 in total (a read request for the read way/route and another write request for the write way/route) ?
- If we consider the communication of read and write between 2 CPUs as 2 requests in total, so what is the max no. of allowable "Read_Var" & "Write_Var" blocks in a single CPU's code ?
- If other communication modules are present on each CPU's rack (like NOC, NOM .... etc.) which are performing read and write requests as well, so in this case will the max no. of requests for both read and write be the cumulative number of all requests performed by the present Ethernet channels (like the 16 requests presumed above) ?
- If NOC's DTM requests are also implemented, do they have other independent max number of requests performed, or those requests shall be considered within the max no. of the system (CPU) in total ?
- Finally, if the max requests no. is exceeded (>16), will there be a workaround to handle those requests per scan (like disabling a portion of them in the current scan cycle, and swapping them with the current ones in the next scan cycle simultaneously) ?
____________________________________________________________________________________________________________________________________________________________________
Based on the above questions, please consider the below :
In the implementation of a Modbus TCP communication between client and server PLCs, there are limitations related to the number of requests that can be supported in a single/one cycle, both on the client and server PLC sides. When the PLC is both in client and server modes, the maximum number of connections authorized by PLC must also be taken into account.
For the Client PLC :
Depending on the CPU reference, there is a limit on the number of requests that can be executed in one cycle in the Client PLC :
- If it is explicit messaging, each EFs (READ_VAR, WRITE_VAR or DATA_EXCH) used in the program logic is considered as a request. As a result, there will be as many requests as EFs (READ_VAR, WRITE_VAR or DATA_EXCH) in the sections of the Control Expert PLC application
- If it is implicit messaging, for a NOC module, each line of the ''Request settings'' tab associated with each device (Server) of the ''Device list'' of the Master DTM (DTM of the NOC in this case) is considered as a request. Similarly, for the NOE module of the M340, Premium or Quantum platform, each line of IO Scanning is considered as a request
So, max. no. of supported Modbus requests by M580 CPUs per scan cycle are :
For the Server PLC :
Like the client, there is a limit on the number of requests that can be processed by the PLC in server mode during a cycle. For M580, the limit on the maximum number of requests that can be handled by the PLC is split between the CPU and the communication modules (NOC).
For example, a M580 4040 can process a maximum of 32 requests in server mode during its PLC cycle. In these requests, it can only process 24 via the service port and equipment network, and the other 16 requests are received via the X bus.
The below local rack assembly example includes a BMEP584040 CPU, along two BMENOC0301/11 Ethernet communication modules. Therefore, the maximum value in this example apply to the BMEP584040 CPU (described above) :
When the incoming requests exceed these maximum values, they are queued in a first-in/first out (FIFO) buffer. The size of the FIFO buffer depends on the selected CPU :
- Modbus TCP and EtherNet/IP Server: The table below shows the maximum number of Modbus TCP, EtherNet/IP, or UMAS requests that can be served by the CPU's Modbus TCP server at each MAST scan :
For the Client/Server PLC : When the PLC is both client and server at the same time, in addition to the two limitations presented above, the limitation linked to the maximum number of authorized connections must be taken into account. Below is the following table listing the maximum number of simultaneous Modbus TCP, EtherNet/IP and UMAS connections on the embedded Ethernet port, depending on the M580 CPU reference :
Finally, you can refer to this FAQ < FA168406 >, to know more about Modbus, and its associated function codes
Released for:Schneider Electric United Arab Emirates

