完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
基于QT的Modbus-TCP的开发 在上一篇的使用报告中,我们详细介绍了libmodbus的安装、配置,以及基于QT的Modbus-RTU应用程序开发。本篇报告介绍另外一种Modbus通讯协议,即Modbus-TCP,Modbus-TCP与RTU最大的不同是传输介质,以及中间协议转换。 Modbus-RTU采用RS232或RS485电气接口,传输介质采用普通电缆或双绞线。Modbus-TCP采用以太网芯片收发数据,可采用以太网双绞线或光线传输,Modbus-TCP在普通的协议基础上将数据转换为SOCKET数据类型,接收端解析数据还原为普通Modbus协议数据类型。由于以太网高速传输,以及距离可无限扩展,近年来逐步得到了广泛应用,部分传感器仪表同时指出Modbus-RTU和Modbus-TCP两种协议。 关于Modbus-RTU的更加详细介绍请自己搜索了解。 本试用报告主要介绍QT工程创建和通讯测试过程。 1.创建QT测试项目 搭建M2的硬件运行环境,开机启动系统,启动QTCreator,创建libmodbustest2工程。项目创建结束后,通过命令行将libmodbus中的文件拷贝到项目目录下: cp -r /nfsshare/libmodbus 项目文件夹路径 将libmodbus文件夹中文件添加到项目中: 右击项目名称,选择“Add Existing Files...”,如图所示: 选择libmodbus文件夹: 修改libmodbus文件夹下的modbus-private.h和modbus.c代码中的”#include 设计界面如图示: 右击上图中的按钮,选择“goto slot...”,如下图所示: 弹出对话框,选择第一项,如图所示: 点击“OK”按钮,创建该按钮的命令执行函数,输入代码如下图所示: 详细代码如下: modbus_t *mb; uint16_t tab_reg[32]={0}; mb = modbus_new_tcp("192.168.1.110", 1502); //由于是tcp client连接,在同一个程序中相同的端口可以连接多次。IP地址根据自己的PC地址设置,1502端口也可根据实际情况自己选择 modbus_set_slave(mb, 17); //从机地址 modbus_connect(mb); struct timeval t; t.tv_sec=0; t.tv_usec=1000000; //设置modbus超时时间为1000毫秒,注意:经测试,如果没有成功建立tcp连接,则该设置无效。 modbus_set_response_timeout(mb, &t); int regs=modbus_read_registers(mb, 0, 10, tab_reg); QMessageBox::about(NULL, "报告", QString("Tcp读取寄存器的个数:%1").arg(regs)); QString qs =QString("%1n%2n%3n%4n%5n%6n%7n%8n%9n%10n").arg(tab_reg[0]).arg(tab_reg[1]).arg(tab_reg[2]).arg(tab_reg[3]).arg(tab_reg[4]).arg(tab_reg[5]).arg(tab_reg[6]).arg(tab_reg[7]).arg(tab_reg[8]).arg(tab_reg[9]); QMessageBox::information(this,"Info",qs); modbus_close(mb); modbus_free(mb); 输入以上代码后,在widget.cpp文件中输入头文件: 至此,QT项目工程创建完毕,下面开始搭建硬件环境。 2. 硬件测试环境搭建 为了便于调试,我们采用无线连接,Nanopi M2配置无线网卡,连接到无线路由,在PC机端Modbus slave软件配置为TCP Modbus监听模式。 进入Modbus slave软件主界面,主菜单“Setup”——“Slave Definition...”,弹出对话框,设置如下: 主菜单“Connection”——“Connect...”,在弹出的对话框中设置如下, |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
369个成员聚集在这个小组
加入小组NanoPi m3适合刷什么系统,刚接触玩,我刷了一个比较卡
5421 浏览 1 评论
7158 浏览 1 评论
4762 浏览 1 评论
【NanoPC-T4试用体验】4、手把手教你从单片机移植驱动到ARM Linux上
7717 浏览 1 评论
【NanoPC-T4试用体验】NanoPC-T4控制步进电机
24574 浏览 1 评论
NanoPi m3适合刷什么系统,刚接触玩,我刷了一个比较卡
5424浏览 1评论
426浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 09:25 , Processed in 0.396190 second(s), Total 36, Slave 30 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号