国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Ai-WB2+Modbus 485 RTU 遠程控制

AIoT行業洞察 ? 來源:AIoT行業洞察 ? 作者:AIoT行業洞察 ? 2024-12-27 10:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

以下作品由安信可社區用戶

http://ckdsx.cn制作

目錄

1.什么是Modbus, RS485

1.1RS485 VS RS232

1.2RS485,RS232兩種協議之間的主要區別

1.3Modbus的內容是什么?

1.4幀結構

1.5Modbus指令實例1.5.1

1.6 Modbus-RTU協議

2.外設介紹

2.1常用芯片選擇

2.2初始化過程

3.移植過程

3.1資料介紹

3.2示例參考程序代碼

wKgZPGduFnaAXzJ7AADVfYXSP8o367.jpg

使用wb2進行 modbus 485 通訊演示_嗶哩嗶哩_bilibiliwww.bilibili.com/video/BV1Hapxe4EsV/?vd_source=54c5db21948db2378659b7e8e42bafbf

wKgZO2duFneAIx32AABBB5ttvPI143.jpg

一、什么是Modbus, RS485 ?

Modbus就是一種用在工業上的簡單協議!顧名思義,它是一個Bus,即總線協議。比如串口協議、IIC協議、SPI都是通信協議。

RS485是一種通用的通信標準,廣泛用于數據采集和控制應用中。它的主要優點之一是它允許將多個 RS485設備放在同一條總線上,這使得多個節點可以相互連接。

RS-485(目前稱為EIA/TIA-485)是通信物理層的標準接口,一種信號傳輸方式,OSI(開放系統互連)模型的第一級。創建 RS-485是為了擴展RS-232接口的物理功能。

串行EIA-485連接是使用兩根或三根電線的電纜完成的:一根數據線、一根帶反轉數據的電線,通常還有一根零線(接地,0V)。這樣,發射器和接收器通過22或24AWG 實心線的雙絞線電纜交換數據。

01、RS485 VS RS232

RS485和RS232串行通信協議已經使用了50多年,并且仍在整個商業和工業中廣泛使用。擴展RS232標準的功能是開發RS485協議的動力。下表概述了這兩個標準。

wKgZPGduFneAKpz4AABzpopinbk825.jpg

02、RS485,RS232兩種協議之間的主要區別

發射器和接收器的數量

RS232串行接口設計用于連接兩個設備。該協議支持單個發射器和接收器之間的通信。 RS485接口,最多可以將32個串行設備連接到一個變送器

操作距離

使用RS232協議的設備在發送器和接收器之間的距離限制為15米,同時仍能實現最大數據傳輸速率。如果可以容忍較慢的數據速率,則可以延長此長度。 RS485協議大大延長了操作距離。它支持1200米長度的最大數據速率,使RS485協議成為物理上相距遙遠的設備之間通信的絕佳選擇。

數據傳輸速度

RS232接口的傳輸速度為1Mb/s,傳輸距離可達15米。RS485在15米的距離內提供高達10Mb/s的更高速度。當達到1200米的最大長度時,RS485協議以100Kb/s的速度傳輸數據。

電氣噪聲問題和接地電位

RS232接口是一種基于電壓電平的系統,在接地電位差異最小的情況下性能最佳。表現出高水平電噪聲和可變接地電位的環境會影響RS232有效傳輸數據的能力,并可能導致數據丟失或損壞。

RS485協議采用差分電壓系統,使其能夠在具有較高電噪聲水平的環境中有效運行。差分電壓系統的一個副產品是數據傳輸距離的延長、傳輸速度的提高以及RS485所見的更低電壓的使用。

03、Modbus的內容是什么?

Modbus-RTU,Modbus-ASCII,Modbus-TCP以上三種協議,一個設備只會有一種協議,如果你的設備使用的是Modbus-RTU,只需查看以下對應部分,一般來說大部分的設備都是Modbus-RTU協議的。

04、幀結構

地址

占用一個字節,范圍0-255,其中有效范圍是1-247,其他有特殊用途,比如255是廣播地址(廣播地址就是應答所有地址,正常的需要兩個設備的地址一樣才能進行查詢和回復)。

功能碼

占用一個字節,功能碼的意義就是,知道這個指令是干啥的,比如你可以查詢從機的數據,也可以修改數據,所以不同功能碼對應不同功能。

數據

根據功能碼不同,有不同結構,在下面的實例中有說明。

校驗

為了保證數據不錯誤,增加這個,然后再把前面的數據進行計算看數據是否一致,如果一致,就說明這幀數據是正確的,我再回復;如果不一樣,說明你這個數據在傳輸的時候出了問題,數據不對的,所以就拋棄了。

這是一個基于ModbusRTU協議的Ai-WB2modbus庫,它支持以下幾種modbus協議命令:

*0x01: 讀一個或多個線圈寄存器
*0x02: 讀一個或多個離散輸入寄存器
*0x03: 讀一個或多個保持寄存器
*0x04: 讀一個或多個輸入寄存器
*0x05: 寫單個線圈寄存器
*0x06: 寫單個保持寄存器
*0x0F: 寫多個線圈寄存器
*0x10: 寫多個保持寄存器

05、Modbus指令實例

查詢從機地址為01的數據

主機發送:01 03 00 00 00 01 84 0A
從機回復:01 03 02 19 98 B2 7E

發送數據解析

wKgZPGduFneADbK8AADao95wGc8064.jpg

回復數據解析

wKgZO2duFniAcEEkAADBbv_rbak371.jpg

查詢數據基本流程就是:

發送:從機的地址+要干嘛的功能碼+要查的寄存器的地址+要查的寄存器地址的個數+校驗碼
回復:從機的地址+主機發我的功能碼+要發送給主機數據的字節數+數據+校驗碼

修改從機地址為01的數據

主機發送:01 06 00 00 00 01 48 0A

從機回復:01 06 00 00 00 01 48 0A

發送數據解析

wKgZPGduFniAKdtwAADJdAyiFc0755.jpg

回復數據解析

wKgZPGduFniAKdtwAADJdAyiFc0755.jpg

06、Modbus-RTU協議

只需要看懂功能碼0x03、0x06、0x10這三個基本的就已經足夠了,分別回想下其數據域部分:

0x03—主機需要發送起始地址+寄存器數量,從機回復總字節數+數據;
0x06—主機發送起始地址+數據內容(因為你只需要修改一個,所以起始地址就是所要修改的地址),從機返回起始地址+數據內容(發現居然一樣!)
0x10—主機發送起始地址+寄存器個數+總字節數+數據,從機返回起始地址+寄存器數量

二、外設介紹

RS485轉TTL模塊

wKgZO2duFniALjxkAACxIV3lsvU662.jpg

RS485遠程I/O聯網模塊IODO控制器modbus

wKgZPGduFnmAaPcBAAEEkXpeCYs545.jpg

3.3V與5.0V電源、信號兼容的RS485自動流向控制模塊無需“收—發”控制,使用本模塊跟操作串口一樣簡單,透傳模塊實現了TTL信號與RS485信號的互轉,但大家一定要知道,485是半雙工通信,這種通信方式可以實現雙向的通信,但不能在兩個方向上同時進行,必須輪流交替地進行;也就是說,通信信道的每一端都可以是發送端,也可以是接收端,但同一時刻里,信息只能有一個傳輸方向。

波特率:支持110~128000bps

模塊亮點:

(1)供電范圍寬:3.3V~5.5V。
(2)3.3V與5.0V信號兼容。
(3)采用原裝進口芯片,工業級設計,抗干擾能力強,同時采用更為有效的485防雷設計,可在工業現場及野外惡劣的環境下使用,工作溫度為—40℃至+85℃,傳輸距離可達千米(用的850米的2*1.5的線纜做的測試,建議在800米內使用,超過800米請加中繼器)。
(4)采用半孔工藝設計,板厚0.8mm,可輕松作為子母板使用,也可焊接端子使用。
(5)具有RXD、TXD信號指示燈,收發狀況盡收眼底。

模塊特點:

(1)本模塊充分考慮了485總線防雷設計和抗干擾設計,在野外長距離傳輸時,將模塊的“接大地”端接入大地,可以起到很好的抗干擾和防雷的作用,使485總線更安全;室內短距離傳輸時可以不接入大地。
(2)采用標準的2.54間距設計,方便您的二次開發。
(3)具有120歐匹配電阻,短接RO即可使能匹配電阻,長距離傳輸時建議短接。
(4)支持多機通訊,允許接在最多128個設備的總線上
(5)本模塊可以進行熱插拔,不會出現其他485芯片熱插拔出現的信號栓死現象。
(6)大面積鋪銅,防止信號干擾。

01、常用芯片選擇

SN75176

SN75276

SN75179

SN75180

MAX485

MAX488

MAX490

02、初始化過程

引入頭文件

#include
#include
#include
#include
#include
#include"bl_sys.h"
#include
#include"softcrc.h"
#include"stdint.h"
#include"string.h"

設置初始化參數

波特率:默認串口配置為9600波特率,8位數據位,無校驗位,1位停止位。

hosal_uart_dev_tuart_dev_log = {
.config= {
.uart_id= 1,
.tx_pin= 16, // TXD GPIO
.rx_pin= 7, // RXD GPIO
.cts_pin= 255,
.rts_pin= 255,
.baud_rate= 115200,
.data_width= HOSAL_DATA_WIDTH_8BIT,
.parity= HOSAL_NO_PARITY,
.stop_bits= HOSAL_STOP_BITS_1,
.mode= HOSAL_UART_MODE_POLL,
},
};
hosal_uart_init(&uart_dev_log);

配置用到的引腳

默認使用串口引腳:硬件串口

使用板載引腳4個:TX,RX,3.3V,GND(接線方法見模塊說明書或下圖) RS485引腳:A+連接A+,B-連接B-,數據有干擾的情況下GND接地。

三、移植過程

01、資料介紹

地址和命令可以直接以16進制的方式寫到數組里,CRC16校驗需要計算或查表獲得;

參考網上CRC教程,使用本地CRC庫文件二次封裝完成CRC校驗及校驗值追加與打印函數(有關更多CRC計算請參考網上教程);

由于手頭方便的僅有modubusRS485遠程控制IO模塊,僅以此模塊完成命令發送控制其輸出繼電器開關的例程。

電路連線圖

Ai-WB2 => 串口TTL=> MAX485 => A,B雙絞線=>RS485設備

注:AI-WB2與模塊之間連線時,RX連接RX,TX連接TX。請根據模塊說明自行調整接線!

wKgZO2duFnmARde6AAF4wOpNfwQ728.jpg

wKgZPGduFnmAMJ4XAAEULPwDjAI934.jpg

02、示例參考程序代碼

RS485發送示例代碼如下:

----------------------
#include
intcounter = 0;voidsetup() {
RS485.begin(9600);}
voidloop() {
RS485.beginTransmission();
RS485.print("hello");
RS485.println(counter);
RS485.endTransmission();
counter++;
delay(1000);
}
-------------------------------

RS485接收并串口打印示例代碼如下:

-----------------------------------
#include
voidsetup() {
Serial.begin(9600); while(!Serial);
RS485.begin(9600);
//enable reception, can be //disabled with: RS485.noReceive();
RS485.receive();}
voidloop() {
if(RS485.available()) {
Serial.write(RS485.read()); }}
--------------------------------

注:通過串口助手直接輸出指令,有可能因為不是十六進制,或指令尾部被增加回車換行(0D0A)而導致失敗!

程序運行過程:wb2通過串口向RS485轉TTL模塊發送指令,遠程IO模塊通過Modbus端口A、B接收數據并解析,然后執行指令動作。

程序運行現象:RS485轉TTL模塊,TX指示燈每隔兩秒點了一下,遠程IO模塊輸出端口1234順序開啟,然后順序關閉。

若無硬件,則可以使用串口助手觀察命令發送情況,請注意勾選HEX顯示。(見下圖)

wKgZO2duFnqAcWixAAFQrzxYX40418.jpg

程序代碼見原貼中的附件

【外設移植】Ai-WB2+Modbus 485 RTU 遠程控制。程序太過簡單,未制作成庫文件,各位可直接修改使用,make相關內容同helloworld文件一樣。

https://bbs.aithinker.com/forum.php?mod=viewthread&tid=45244&_dsign=2c20ee00

PS:感謝園長、銀、狗哥、杰哥、妖哥等各位安信可技術社區的大佬熱情幫助!

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 遠程控制
    +關注

    關注

    4

    文章

    727

    瀏覽量

    37041
  • RTU
    RTU
    +關注

    關注

    0

    文章

    450

    瀏覽量

    30596
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Profinet 與 Modbus RTU/485 輕松建立通信

    Profinet 與 Modbus RTU/485 輕松建立通信 在工業自動化系統中,常需將基于 Profinet 協議的設備與 Modbus RT
    的頭像 發表于 01-27 13:58 ?215次閱讀
    Profinet 與 <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>/<b class='flag-5'>485</b> 輕松建立通信

    Modbus RTU轉Profinet總線協議網關

    站。 疆鴻智能JH-RTU-PN 網關MODBUS一側做主站時可用于一對多集成MODBUS/485、或一對一集成MODBUS/232設備,形
    的頭像 發表于 09-18 14:49 ?470次閱讀
    <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>轉Profinet總線協議網關

    工業場景下塔訊 Modbus RTUModbus TCP 網關實現橫河流量計與 WinCC 數據交互案例

    米)、組網復雜、無法直接接入以太網等問題。Modbus RTUModbus TCP協議 塔訊TX 131-RE-RS/TCP-2C網關通過協議轉換,將串口設備無縫接入工業以太網,實現
    的頭像 發表于 08-19 15:16 ?963次閱讀
    工業場景下塔訊 <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b> 轉 <b class='flag-5'>Modbus</b> TCP 網關實現橫河流量計與 WinCC 數據交互案例

    Modbus TCP 轉 Modbus RTU電腦端 TCP 與西門子 V20 變頻器的通信案例

    從站)進行通信,Modbus TCP轉Modbus RTU塔訊TX 131-RE-RS/TCP-2C網關實現對變頻器的遠程控制與參數監測。
    的頭像 發表于 07-27 17:19 ?911次閱讀
    <b class='flag-5'>Modbus</b> TCP 轉 <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>電腦端 TCP 與西門子 V20 變頻器的通信案例

    用PLC控制使用Modbus RTU協議的采集模塊

    本文介紹了使用Modbus RTU協議的采集設備如何與PLC連接。
    的頭像 發表于 07-25 10:57 ?1265次閱讀
    用PLC<b class='flag-5'>控制</b>使用<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>協議的采集模塊

    控制器遇上“協議外交官”:CC\\-Link IE轉Modbus RTU的能源數據握手

    : 1.精準翻譯: 實時解析控制器CC-Link IE幀,提取功率、狀態等關鍵值,準確映射為Modbus RTU寄存器地址。 2. 無縫兼容: 對
    發表于 06-26 14:35

    工程師福音!CCLinkie轉Modbus RTU讓粉塵監測不再“揚灰”

    多個Modbus RTU網關接口的粉塵儀接入CC-Link IE控制網絡。工程師引入一臺協議轉換網關,將其作為CC-Link IE從站,并將所有粉塵儀并聯到其RS-485端口。配置完成
    發表于 06-26 14:21

    化工界的\"神仙連接\":CCLink IE和Modbus RTU的液位計完美通婚指南

    Modbus RTU則是工控界的\"元老級\"協議,運行在RS-485等串行總線上,通信簡單可靠。由于開放性和成本優勢,廣泛應用于液位計、流量計等現場設備。這兩種協議\"各說各話
    發表于 06-24 13:56

    CC\\-Link IE轉Modbus RTU:讓伺服驅動輕松“入網”的秘籍

    : 1.CC-Link IE TSN接口:無縫接入主站網絡,享受高速、確定性的通信。 2.Modbus RTU接口(RS485):輕松連接伺服驅動器的Modbus口。 3. 核心翻譯引
    發表于 06-23 14:02

    Profinet轉RS485-Modbus RTU通信案例詳解

    在工業自動化系統中,常常需要將不同協議的設備進行集成,以實現數據的交互和控制。本案例介紹了一種利用?工業級Profinet轉RS485 Modbus-Rtu協議網關(規格型號:ZP-WTU-PNMD02)?實現Profinet與
    的頭像 發表于 06-23 10:10 ?1965次閱讀
    Profinet轉RS<b class='flag-5'>485-Modbus</b> <b class='flag-5'>RTU</b>通信案例詳解

    基于 DeviceNet 轉 MODBUS RTU 協議的施耐德 PLC 與 ABB 電機驅動器倉儲堆垛機的定位控制優化方案?

    基于 DeviceNet 轉 MODBUS RTU 協議的施耐德 PLC 與 ABB 電機驅動器倉儲堆垛機的定位控制優化方案? 案例背景? 物流倉儲中心的自動化程度不斷提升,大量設備協同作業以實現
    發表于 05-03 10:45

    Modbus rtu轉profibusDP接電機保護器快速配置案例

    在工業自動化領域,不同協議的設備之間進行通信是一項重要而復雜的任務。 通過Modbus RTU轉Profibus DP網關的配置,可以有效地實現電機保護器與主控系統之間的數據交換和遠程控制
    的頭像 發表于 04-28 09:52 ?603次閱讀
    <b class='flag-5'>Modbus</b> <b class='flag-5'>rtu</b>轉profibusDP接電機保護器快速配置案例

    如何使用無線遠程控制模塊來實現rs-485無線控制

    無線遠程控制模塊,是一種在工業自動化、遠程監控等領域廣泛應用的技術。以下將主要介紹無線遠程控制模塊及其在實現485無線控制中的應用。 一、無
    的頭像 發表于 04-24 17:08 ?1036次閱讀
    如何使用無線<b class='flag-5'>遠程控制</b>模塊來實現rs-<b class='flag-5'>485</b>無線<b class='flag-5'>控制</b>?

    Modbus RTU協議說明

    文章對Modbus RTU協議進行了較為詳細的說明,并用具體示例可以參考。
    的頭像 發表于 04-11 10:56 ?4972次閱讀
    <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>協議說明

    智慧路燈如何實現遠程控制

    引言 在智慧城市建設的進程中,叁仟智慧路燈作為重要的基礎設施,其遠程控制功能發揮著關鍵作用。遠程控制使得叁仟智慧路燈能夠擺脫地域限制,實現高效、精準的管理,極大地提升了城市照明系統的運行效率與智能化
    的頭像 發表于 03-18 12:27 ?1009次閱讀
    智慧路燈如何實現<b class='flag-5'>遠程控制</b>?