QT Modbus 多次响应问题

文章讲述了在使用QTmodbus时,如何避免因设置保持寄存器导致下位机频繁关机的问题,通过调整串口连接的重试次数为0来防止不必要的多次发送。
摘要由CSDN通过智能技术生成

问题描述:
        在设置保持寄存器的时候,下位机获取此位会关机,不给上位机发送返回值,也就是不会有回应,在默认设置中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);

   

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值