本文共 743 字,大约阅读时间需要 2 分钟。
本文简单介绍Qt使用外部modbus通信C++编程流程
modbus中文手册: Qtmodbus较为方便,建议无特殊情况可以使用qtmodbus,为何不使用Qt自带QModbus呢?原因是我在编写modbus主站的时候需要创建一个线程监听从站的数据,创建线程的时候出现为不同线程的父线程创建子线程的报错,个人解决不了。1.搭建modbus环境
在pro工程项目中添加头文件所在路径,lib库2.建立连接
//创建modbus对象modbus_t *modbus;//建立tcp连接modbus = modbus_new_tcp(ip地址,端口号);//设置slaveint ret = modbus_set_slave(modbus,slave号);//错误返回-1,正确返回0;//进行连接ret = modbus_connect(modbus);//错误返回-1,正确返回0;//设置响应延迟,第三个参数是最迟的时间,1000为1ms不是1s;ret = modbus_response_timeout(modbus,0,900000);
中文操作手册上并没有找到设置slave的,但是这个确实要设置,不然只能连接不可以通信只是我没有找到,可能不是很细心,slave一般设置为1,市面上的modbus调试工具上面可以查看
3.接收/发送数据
//读数据ret = modbus_read_registers(modbus,起始地址,数据个数,存储的容器);//读取的数据存储在容器中,错误返回-1//写数据ret = modbus_write_registers(modbus,起始地址,数据个数,存储的容器);//将容器的数据依次写入寄存器
转载地址:http://seezi.baihongyu.com/