MFC+Modbus-Tcp协议实现温湿度传感器采集

本文简单介绍MFC使用Modbus-Tcp通信实现RS-WS-ETH-6系列MODBUSTCP型温湿度传感器采集数据。

一、了解ModbusTCP协议

 一文看懂Modbus协议:一文看懂Modbus协议

二、libmodbus驱动库

 libmodbus驱动库的使用:Modbus驱动库—libmodbus驱动库的使用_whik1194的博客-CSDN博客_libmodbus

 modbus中文手册:libmodbus官方手册中文翻译_跃动的风的博客-CSDN博客_libmodbus使用说明

三、温湿度传感器配置

1.  参考设备使用说明书(从设备官网上下载),用配置软件搜索连接设备、设置设备本地参数、网络参数、设备参数。

2.  确定温度、湿度两个数据的寄存器地址。

MFC+Modbus-Tcp协议实现温湿度传感器采集_第1张图片

四、应用MFC编写上位机软件

1. 新建MFC应用程序ModbusTcpTest

2. 项目中添加引用资源

参考外部动态链接库dll文件导入mfc工程:外部动态链接库dll文件导入mfc工程_tongkudoing的博客-CSDN博客_mfc 导入dll

MFC+Modbus-Tcp协议实现温湿度传感器采集_第2张图片

 

 3. 建立连接

//创建modbus对象
modbus_t  *modbus;
//建立tcp连接
modbus = modbus_new_tcp(ip地址,端口号);
//设置slave
int  ret  =  modbus_set_slave(modbus,slave号);//错误返回-1,正确返回0;
//进行连接
ret = modbus_connect(modbus);//错误返回-1,正确返回0;
//设置响应延迟,第三个参数是最迟的时间,1000为1ms不是1s;
ret = modbus_response_timeout(modbus,0,900000);


4. 读数据
ret  = modbus_read_registers(modbus,起始地址,数据个数,存储的容器);//读取的数据存储在容器中,错误返回-1,正确返回0

5. 程序界面

MFC+Modbus-Tcp协议实现温湿度传感器采集_第3张图片

6. 开启线程刷新数据

参考:[转]MFC子线程中更新控件内容的两种办法_zhigang_zhao的博客-CSDN博客

7. 源码下载

https://download.csdn.net/download/zhigang_zhao/87210585

你可能感兴趣的:(C++/MFC,mfc,tcp/ip,c++)