1/8/2018 11:02 AM | |
Posts: 4 Rating:
|
Hello I have written a program that is uses the MB_CLIENT FB to communicate with Modbus TCP Servers. There are 10 separate MB TCP/IP servers and I have 3 separate polls (Read Multiple Holding Registers) for information from each. I therefore have in total 30 x MB_CLIENT FB's being used. Each MB server has its own IP address on the subnet and they also have unique UNIT_ID’s / Slave Addresses. The PLC can poll units 1 - 9 without any problem, all results are returned correctly and all MB_CLIENTS appear to disconnect correctly. When polling UNIT 10, the first read works successfully, however the following 2 do not and return error 16#80C8. I have checked to ensure that all MB_CLIENT FB's are using unique CONNECT_ID's and they are. If I remove 2 previous reads of any other units then the queries for UNIT 10 are successful, therefore I know that the UNIT_ID is correct i.e. 16#000A = 10 and the MB server is responding to the queries. I can see that within the DB for the 2 MB_CLIENT queries that don not seem to be working that the TRCV_SFB.EN_R value is FALSE, for all other queries that work this is TRUE. It would appear that once I exceed 28 x MB_CLIENT FB Calls then I start to receive these errors, could this be a device limitation? My PLC also provides 2 x MB Server connections on different ports, I have disabled these connections, however this makes no difference. I have attached an example of a MB Query. Any help is greatly appreciated. Thanks AttachmentMB_CLIENT Query.pdf (247 Downloads) |
Follow us on