Qt C++:使用 Modbus RTU 类(RS485)从多个从站读取数据
Posted
技术标签:
【中文标题】Qt C++:使用 Modbus RTU 类(RS485)从多个从站读取数据【英文标题】:Qt C++ : read data from multiple slaves using Modbus RTU class (RS485) 【发布时间】:2021-12-07 20:45:11 【问题描述】:我尝试通过以下方式使用 Qt modbus 类从 1 个温度传感器读取值:
QModbusDataUnit(QModbusDataUnit::InputRegisters, /*startAddress*/ 1000, /*numberOfEntries*/ 1 );
现在我想要的是从不同的从站读取值(不同的设备 ID 的相同端口)。
我尝试了 pymodbus,因为它的函数有设备 id 参数(例如:unit=0x03):
result = client.read_input_registers(0x03E8 ,1, unit=0x03)
但我不知道如何使用 Qt 来做同样的事情。
感谢任何形式的帮助。
【问题讨论】:
【参考方案1】:这并不像您想象的那么简单,并且 QtModbus 没有很好的文档记录,但我认为您需要在查询中使用 serverAddress
作为您的从站 ID:
QModbusReply *QModbusClient::sendReadRequest(const QModbusDataUnit &read, int serverAddress)
请参阅here 了解更多(不多)详细信息。
【讨论】:
以上是关于Qt C++:使用 Modbus RTU 类(RS485)从多个从站读取数据的主要内容,如果未能解决你的问题,请参考以下文章