本文簡單介紹MFC使用Modbus-Tcp通信實現(xiàn)RS-WS-ETH-6系列MODBUSTCP型溫濕度傳感器采集數(shù)據(jù)。
一、了解ModbusTCP協(xié)議
?一文看懂Modbus協(xié)議:一文看懂Modbus協(xié)議
二、libmodbus驅(qū)動庫
?libmodbus驅(qū)動庫的使用:Modbus驅(qū)動庫—libmodbus驅(qū)動庫的使用_whik1194的博客-CSDN博客_libmodbus
?modbus中文手冊:libmodbus官方手冊中文翻譯_躍動的風(fēng)的博客-CSDN博客_libmodbus使用說明
三、溫濕度傳感器配置
1.? 參考設(shè)備使用說明書(從設(shè)備官網(wǎng)上下載),用配置軟件搜索連接設(shè)備、設(shè)置設(shè)備本地參數(shù)、網(wǎng)絡(luò)參數(shù)、設(shè)備參數(shù)。
2.? 確定溫度、濕度兩個數(shù)據(jù)的寄存器地址。
四、應(yīng)用MFC編寫上位機軟件
1. 新建MFC應(yīng)用程序ModbusTcpTest
2. 項目中添加引用資源
參考外部動態(tài)鏈接庫dll文件導(dǎo)入mfc工程:外部動態(tài)鏈接庫dll文件導(dǎo)入mfc工程_tongkudoing的博客-CSDN博客_mfc 導(dǎo)入dll
?
?3.?建立連接
//創(chuàng)建modbus對象
modbus_t ?*modbus;
//建立tcp連接
modbus = modbus_new_tcp(ip地址,端口號);
//設(shè)置slave
int ?ret ?= ?modbus_set_slave(modbus,slave號);//錯誤返回-1,正確返回0;
//進行連接
ret = modbus_connect(modbus);//錯誤返回-1,正確返回0;
//設(shè)置響應(yīng)延遲,第三個參數(shù)是最遲的時間,1000為1ms不是1s;
ret = modbus_response_timeout(modbus,0,900000);
4. 讀數(shù)據(jù)
ret ?= modbus_read_registers(modbus,起始地址,數(shù)據(jù)個數(shù),存儲的容器);//讀取的數(shù)據(jù)存儲在容器中,錯誤返回-1,正確返回0
5. 程序界面
6. 開啟線程刷新數(shù)據(jù)
參考:[轉(zhuǎn)]MFC子線程中更新控件內(nèi)容的兩種辦法_zhigang_zhao的博客-CSDN博客
7. 源碼下載文章來源:http://www.zghlxwxcb.cn/news/detail-431629.html
https://download.csdn.net/download/zhigang_zhao/87210585文章來源地址http://www.zghlxwxcb.cn/news/detail-431629.html
到了這里,關(guān)于MFC+Modbus-Tcp協(xié)議實現(xiàn)溫濕度傳感器采集 二、libmodbus驅(qū)動庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!