Qt自带QModbusTcpClient,换个电脑就不好使了,换libmodbus
下载
可以去github下载
链接: https://pan.baidu.com/s/13lgEZ59Dt5M7zmTJNpfKvg?pwd=yzfm 提取码: yzfm
下载libmodbus 并解压
编译
- 进入该目录下libmodbus-master\src\win32
- 使用如下应用运行configure.js文件
出现下图情况表示成功,关闭即可
- 使用VS2019打开与configure.js文件同目录下的modbus-9.sln文件
打开时出现下图情况点击确定即可
- Release编译
- 编译之后会出现一个错误,原因未知,按确定不影响,这时libmodbus-master\src\win32目录下会生成modbus.lib和modbus.dll两个文件
使用
- Qt项目下新建libmodbus文件夹,拖入如下文件夹
- Qt加入已存在路径
- pro文件加入
LIBS += -Ldll -lws2_32
- .h文件引入如下,便可使用
#include "libmodbus\modbus.h"
- 出现报错,找不到modbus.h
"modbus.h"换成<libmodbus\modbus.h>
Demo
读写数据不能放在构造函数里,不然失灵,未知原因
// 连接
mb = modbus_new_tcp("192.168.1.x",502);
modbus_set_slave(mb,1);//设置需要连接的从机地址
modbus_connect(mb);
// 设置通讯超时时间
struct timeval t;
t.tv_sec=0;
t.tv_usec=1000000; //设置modbus超时时间为1000毫秒,注意:经测试,如果没有成功建立tcp连接,则该设置无效。
modbus_set_response_timeout(mb,t.tv_sec,t.tv_usec);
// 读写数据不能放在构造函数里,不然失灵,未知原因
// 读数据
uint16_t tab_reg[128]={
0};
int regs=modbus_read_registers(mb, 202,