I am using the Nano as a Modbus/TCP client to an Acromag analog input module. Briefly, I open the channel, leave it open forever, and read two 16 bit registers. I count the number of failures by evaluating the S2 and S3 status bits. If STATUS(2) is zero, I count a no-response and if STATUS(3) is zero, I have to close the port and re-open. If I trigger the read command every second, the number of failures over a 24 hour period is 300+ for both STATUS. If I trigger the read command on a less frequent basis, every two seconds for instance, the numbers of failures drop to 3 or 4 each every 24 hours on both STATUS bits.
My questions: Why should I experience any failures at all? Is there a way to issue a read command knowing that all the hardware is ready to go?
I need to query at one second intervals because I am performing Coulomb calculations. I have tested the Acromag analog module with another Modbus/TCP client and it will respond to the same query in considerably less than one second with zero failures. As well, I cannot add any additional TCP modules until I know how to precisely time them. I have extensively reviewed the example code supplied with i-Trilogy and there is really no substance there.