libmodbus库中有两个超时响应函数:
modbus_set_byte_timeout(3)和modbus_set_response_timeout(3)
modbus_set_byte_timeout()函数是设置一条语句的字节之间的超时时间,可能是PLC响应了,但是语句不完全,没有传输完全。
modbus_set_response_timeout()函数设置PLC回应的响应时间,可能原因是PLC的从机端没有开,因此无响应,此时该函数设置的值起作用。
实际使用中,建议两条函数同时使用。
//设置超时时间为200ms
modbus_set_byte_timeout(mymodbustcp, 0,200000);
modbus_set_response_timeout(mymodbustcp, 0,200000);