modbus connection of AC800M controller to AC110 and about 7s delay in receive and send signals
In our project,I have connected one contrller AC800M through CI853 to the 2 AC110 controller using modbus RTU by using westermo modem MD-12.I have configured both side and communication is ok ,but I have about 7s delay in signal updating in both side.I have attached my modbus logic and hardware setting.Please help me how can I fix this delay time problem.
thanks a lot.
7 Seconds does seem far too long. I think that your Program design is making it hard to see if you are getting tiemouts or if you are overloading the CI853 with too many read requests. Some small changes may make it easier to debug.
Your poll time is too short, move it out to 10 or 15 seconds. With a poll this short you're continually polling while you're also trying to send messages.
Your timeout is also probably too short. At 2 seconds this isbarely longer than the 1 second sending interval. If you are having timeout problems then you wont see them before you just resend the message with the regular clock pulse cycle time.
IMHO, The FTrig at TP blocks are not required. Remove them and also the En_N1 and En_N2 variables. Move the Pulse Generator AFTER the MBConnect and enable the generator if "Valid AND NOT Error". Use separate pulse generators for each port.
Connect the output of the Pulse Generator to the REQ of the MBReads ONLY if your AC110 immediately responds withing the 1 second pulse time. Otherwise, You need to slow your pulse generator or chain the NRd teminals of each MBRead to enable the Next read only after the previous read has completed.
And obviously if the PLC interfaces are identical then simply write the entire program in a Library or user defined function block and instantiate it twice instead of Copy/Pasting it.
The task interval for your program should be 500Ms or shorter. I would suggest 250 or 125mSec so that your MBRead blocks have several opportunities to be updated before the next set of MBRead requests are generated.
The CI853 is actually quite good at queing up multiple Read requests as long as you dont overload the response time of the Slave PLC.