问题描述:
在设置保持寄存器的时候,下位机获取此位会关机,不给上位机发送返回值,也就是不会有回应,在默认设置中QT modbus就会自动就进行三次发送。被设置数据,是一个控制字,每设置一次,就会关闭下位机进行模式转换,所以三次后会回到未设置前的模式,是我不希望的。
程序代码:
代码设置参数->地址:169,数据个数:1,数据:1,Device::IDmotorBsum:设备ID
void MainWindow::DendM_01()
{
QModbusDataUnit dataUnit(QModbusDataUnit::HoldingRegisters,169,1);
dataUnit.setValue(0,1);
master->sendWriteRequest(dataUnit, Device::IDmotorBsum);
//Device::IDmotorBsum设备ID静态变量
}
问题解决:
在连接串口时设置,不需要重复送设置,将参数设置为0即可,如下代码;如需要恢复功能程序设置即可。
QModbusClient *modbusClient;
modbusClient->setNumberOfRetries(0);