色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

    文章

    634

    瀏覽量

    34938
  • RTU
    RTU
    +關注

    關注

    0

    文章

    414

    瀏覽量

    28690
收藏 人收藏

    評論

    相關推薦

    EtherCAT主站轉Modbus RTU網關(EtherCAT轉Modbus RTU

    ,具有高速傳輸、精確同步和靈活拓撲等特點,在自動化控制領域尤其是對實時性要求極高的場景中表現出色。而Modbus RTU是一種傳統的串行通信協議,被廣
    的頭像 發表于 09-09 16:32 ?291次閱讀
    EtherCAT主站轉<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>網關(EtherCAT轉<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>)

    EtherNet/IP轉Modbus-RTU主站網關(EtherNet/IP轉Modbus-RTU

    一,設備主要功能 捷米特JM-EIP-RTU型網關實現EtherNet/IP網絡與Modbus RTU串行總線之間的數據通訊,可支持RS232和RS485通訊。即EtherNet/IP
    的頭像 發表于 09-04 10:55 ?301次閱讀
    EtherNet/IP轉<b class='flag-5'>Modbus-RTU</b>主站網關(EtherNet/IP轉<b class='flag-5'>Modbus-RTU</b>)

    EtherNet/IP轉Modbus-RTU主站協議網關(JM-EIP-RTU

    一,設備主要功能 捷米特JM-EIP-RTU型網關實現EtherNet/IP網絡與Modbus RTU串行總線之間的數據通訊,可支持RS232和RS485通訊。即EtherNet/IP
    的頭像 發表于 08-26 14:43 ?324次閱讀
    EtherNet/IP轉<b class='flag-5'>Modbus-RTU</b>主站協議網關(JM-EIP-<b class='flag-5'>RTU</b>)

    android 遠程控制如何實現

    在現代工作和生活中,遠程控制安卓設備或使用安卓設備遠程控制其他設備已成為常見需求。安卓遠程控制允許IT管理員遠程訪問安卓設備。實施遠程控制
    的頭像 發表于 08-21 18:05 ?914次閱讀
    android <b class='flag-5'>遠程控制</b>如何實現

    ModbusRTU/485/232主站轉Profinet協議網關(JM-RTU-PN)

    Modbus RTU/RS485/232和Profinet是兩種不同的通信協議,分別用于不同的通信場景。捷米特JM-RTU-PN網關可以同時支持Mo
    的頭像 發表于 08-20 11:46 ?311次閱讀
    ModbusRTU/<b class='flag-5'>485</b>/232主站轉Profinet協議網關(JM-<b class='flag-5'>RTU</b>-PN)

    Modbus網關實現Modbus RTUModbus TCP協議相互轉換

    鋇錸Modbus網關BL120是一款專注于Modbus協議轉換的通信設備,支持Modbus RTUModbus TCP協議相互轉換,配備多
    的頭像 發表于 08-02 15:13 ?746次閱讀
    <b class='flag-5'>Modbus</b>網關實現<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>和<b class='flag-5'>Modbus</b> TCP協議相互轉換

    Profinet從站轉Modbus RTU/485/232總線協議轉換網關

    怎么樣讓Profinet和Modbus RTU/485/232通訊連接起來?這幾天有幾個客戶朋友咨詢到這個問題,作者在這里統一為大家回復一下。想要解決這個問題其實也非常簡單,只需要用到一個設備,名為
    的頭像 發表于 07-29 14:29 ?306次閱讀
    Profinet從站轉<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>/<b class='flag-5'>485</b>/232總線協議轉換網關

    說明白了,Modbus RTU通信協議解析-成都電路板單片機開發

    節,Modbus RTU是以字節為最小基本單元定義數據格式的。若干個字節的數據組成數據幀,Modbus RTU協議就關注于這個數據幀里每個字節的數據該是怎樣的。二、
    發表于 06-30 22:28

    PN轉RS485 Modbus RTU協議網關通訊優勢分析

    Modbus RTU”協議網關,它更像是一個連接不同世界橋梁,讓Profinet的高速和RS485的穩定完美結合,實現數據的高效流轉。
    的頭像 發表于 06-17 08:46 ?995次閱讀
    PN轉RS<b class='flag-5'>485</b> <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>協議網關通訊優勢分析

    ProfiNet轉RS485/Modbus Rtu協議網關

    網關實現PN轉rs485、profinet轉RS485Modbus轉profinet、RS485轉PN、profinet轉Modbus
    的頭像 發表于 06-13 08:55 ?727次閱讀
    ProfiNet轉RS<b class='flag-5'>485</b>/<b class='flag-5'>Modbus</b> <b class='flag-5'>Rtu</b>協議網關

    Modbus RTU轉PROFINET協議轉換網關 HT1S-PNS485-S10

    Modbus RTU/RS485/232 轉 PROFINET(S7-400/1500/1200、CPU315-2PN/DP)網關HT1S-PN48
    發表于 06-06 14:43

    Modbus-RTU通訊協議是什么?

    Modbus-RTU通訊協議是一種串行通訊協議,它可以用于連接不同類型的設備,以實現遠程監控和控制Modbus協議包括RTU、ASCII、
    的頭像 發表于 05-23 15:06 ?620次閱讀

    BL124采集Modbus RTUModbus TCP協議

    /IP網關設備,具備2個RS485串口、1個RS232串口和3個網口。其主要功能是將各種Modbus從站設備(如變頻器、電機保護器、閥門、儀表、IO模塊等)連接到Ethernet/IP主站,實現協議轉換和
    的頭像 發表于 04-29 16:28 ?458次閱讀
    BL124采集<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>和<b class='flag-5'>Modbus</b> TCP協議

    RS485MODBUS RTU的區別 如何選擇合適的通信技術?

    RS485MODBUS RTU的區別 如何選擇合適的通信技術? RS485是一種通信總線標準,而MODBUS
    的頭像 發表于 02-01 10:27 ?9856次閱讀

    MODBUS RTU詳細解釋

    Modbus 一個工業上常用的通訊協議、一種通訊約定。Modbus 協議包括 RTU、ASCII、TCP。其中 MODBUS-RTU最常用,比較簡單,在單片機上很容易實現。??
    發表于 01-12 16:39 ?9次下載
    主站蜘蛛池模板: 欧美大片免费观看| 老司机亚洲精品影院在线观看| 国产精品久久久久久久久久影院| 毛片手机在线观看| 影音先锋2017av天堂| 激情女人花| 亚洲精品成人在线| 国内国外精品影片无人区| 无码欧美XXXXX在线观看裸| 成人中文字幕在线观看| 人妻体体内射精一区二区| 97超级碰碰人妻中文字幕| 久久视热频国产这里只有精品23| 伊人久久丁香色婷婷啪啪| 黑吊大战白xxxxxx| 亚洲男人天堂网| 九九免费的视频| 最新果冻传媒在线观看免费版| 李亚男三级| 99无人区码一码二码三| 欧美区 bt| 冈本视频黄页正版| 污到湿的爽文免费阅读| 国产又粗又猛又爽黄老大爷| 亚洲 无码 在线 专区| 黑色丝袜美女被网站| 永久adc视频| 牛牛自拍国产免费视频| yellow在线观看免费直播| 三级黄色一级视频| 国产亚洲精品久久77777| 野花视频在线观看免费| 蜜桃成人在线| 俄罗斯6一9泑女网站| 亚洲国产综合人成综合网站00| 久久精品成人免费网站| av天堂电影网在线观看| 羲义嫁密着中出交尾gvg794| 久cao在线香蕉| videossexo乌克兰| 亚洲高清无在码在线无弹窗|