精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

Modbus協議長啥樣呢?Modbus RTU協議有哪些參數?

冬至子 ? 來源:物聯網諸子東 ? 作者:諸子東 ? 2023-08-10 16:36 ? 次閱讀

Modbus 協議可以走串口,可以走網口。

我們就先以Modbus RTU為主,畢竟Modbus RTU用的實在太多了。

其實只要把Modbus RTU掌握了,理解了,其它衍生出來的協議,自然也就理解了。

那Modbus 協議長啥樣呢。

我們先來直接看一組數據。

主站發送:01 03 00 14 00 01 C4 0E

從站回復:01 03 02 00 63 F8 6D

好,不管你有沒有學過Modbus協議,我們先假裝看懂了上面的報文。

我們進入情景中。

現場有一個HMI。

還有一個PLC

PLC接了100個燈,100個門,100個稱。

“誰家PLC會接這么多個燈,接這么多稱呀。”

“你管的著么,雙十一打折,多買了幾個不行呀。”

那燈的數據呢,就只有開還是關。也就是非0即1了。是開關類型。

那稱的數據呢,如果單位是克,那可以是0到9999克,比如,這個稱只能稱到9999克上限。

那HMI通過Modbus協議,理應可以讀到100個燈里,任意一個或者連續幾個燈的數據。

也可以讀一個稱或者連續幾個稱的數據。

也就是報文上,要能把這些表現出來。

比如HMI想讀第20個稱的數據,只讀一個。

那20,也就是十六進制0x14。

讀一個,1,也就是0x01 。

我們看一下報文。

01 03 00 14 00 01 C4 0E。

真的有14 這個字節。

但是是00 14 呢還是14 00 還是14 呢。

如果只有一個字節,只能表示0到255。不行,數量太少了,肯定不夠。那必須兩個字節表示。

所以,0014就是第20個稱。也就是我們所說的地址了。

1.jpg

這么乍一看,好像只需要三個字段,就可以表示HMI所需要讀的數據了。

確實也是呀。HMI只是想讀一個稱的數據,沒必要發其它不相關的數據的呀。

“HMI可以連接多個PLC嘛,怎么連接?”

“HMI可以通過485,接幾個PLC的哦。”

“可是我要怎么知道我要讀哪個PLC的數據呢”

“這樣吧,我們給不同的PLC起一個編號,也就是站號,這樣就可以了。”

“那Modbus協議上,我是不是也帶這個站號呢。”

“是的,我們在Modbus上面加個站號就是行了。這樣,如果PLC收到的報文,是自己的站號的,就回復,不是自己站號的,就不要回復,就解決了呀。”

“嗯,好辦法。那就用第一個字節表示吧。”

1.jpg

這樣,一個Modbus RTU協議,就此誕生了。

我們再回過頭來總結看一下,這個modbus 協議,大概就五個參數

1.jpg

我們每個字段開始聊一下。

第一個字段,就是站號。

主設備是沒有站號的。只有從設備有站號。

為什么主設備沒有站號呢。

主要是因為在一個modbus 通信里,有且只能有一個主站。只有主站才能主動發報文,從設備接到報文再判斷是否要回復。

那從設備是否只能一個呢。

如果是接到485總線上面,從站就可以有多個了。一般建議不超過32個。這個梗下期會聊的。

主設備要訪問哪個設備的時候呢,就根據站號來區分了。

不過,有時候呢,如果需要同時操作多個從設備,比如,想讓10個從設備同時開燈,怎么做比較合適呢。

逐個發送寫請求,那效率就有點慢了。

于是就有廣播站號的概念了。站號0代表廣播站號,當主站對站號0進行寫操作的時候,所有的從設備收到命令之后,一般只執行,不回復。

第二個字段,是功能碼。

這個功能碼呢,我們換一個角度去講解。

我們回歸到協議本身,這個協議主要就是用于通信,采集和控制的。那采集什么數據呢。

就是位變量和數值變量。有只讀的,可讀可寫的。

1.jpg

其實到這里,我們基本就把modbus協議掌握了。

modbus ascii和modbus tcp 也離不了這幾個參數。

一般來說新手只要了解到這里,基本可以了。modbus 就算是入門了。

至于是要繼續還是從入門到放棄,就看緣分了。

筆者從事物聯網以來,接觸的設備支持modbus的,不在少數。可以說,99%就只用到前面介紹的內容,真的不能更多了。

所以,本文就不再深入講解modbus rtu更多的功能碼和內容了。

國內外常見的PLC,還有各種單片機做出來的控制器,基本也就圍繞0X,1X,4X,3X功能碼的這幾個功能碼。

所以當你網上搜索出來各種中英文介紹Modbus 協議,講一大堆,不知道哪些要看,哪些不要看。筆者的經驗告訴我,不需要全都了解。

我們先看看讀的。

1.jpg

寄存器比較特殊,8個位占一個字節。在Modbus回復的數據里,并不是用一個字節表示一個位寄存器。而是用一個位,表示一個位寄存器。

這樣讀20個寄存器,就需要3個字節了。

這樣從站回復的數據就是FF FF 0F了。

也就是從站是至少一個字節起回復,不夠一個字節的位,按一個字節回復。

大概的公式就是 位寄存器個數/8 得到字節個數,然后再看是否整除,如果不整除,有余數,則再補一個寄存器。

20/8=2,然后有余數,余數是4。所以是三個字節。最后一個字節,只取低4位有效。

4.[功能碼02]讀1X寄存器,地址10,讀16個寄存器

1.jpg

2.jpg

總結起來,Modbus協議,也就常見8種功能碼。由于多寫可以兼容單寫,甚至有的控制器,直接去掉單寫命令,用多寫實現,這樣就只有6種功能碼了。

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

    關注

    6032

    文章

    44518

    瀏覽量

    633059
  • ModBus協議
    +關注

    關注

    3

    文章

    174

    瀏覽量

    33388
  • CRC校驗
    +關注

    關注

    0

    文章

    84

    瀏覽量

    15188
  • RTU
    RTU
    +關注

    關注

    0

    文章

    404

    瀏覽量

    28626
  • PLC控制器
    +關注

    關注

    0

    文章

    41

    瀏覽量

    9118
收藏 人收藏

    評論

    相關推薦

    Modbus庫開發筆記之十一:關于Modbus協議棧開發的說明

    /Modbus其次,Modbus協議國標,包括三個文件。我們這個協議棧就是按照國標開發的標準協議,但不完全,包括
    發表于 08-27 20:32

    modbus協議講解modbus-rtu以及modbus-tcp協議詳解

    modbus協議講解modbus-rtu以及modbus-tcp協議詳解,見附件。
    發表于 03-01 10:14

    什么是Modbus協議?如何寫穩定的Modbus代碼?

    什么是Modbus協議Modbus協議哪些分類?使用Modbus時有哪些注意事項?如何寫穩定的Modbus代碼?
    發表于 07-02 06:54

    modbus協議筆記

    已經成為工業領域通信協議的業界標準,并且現在是工業電子設備之間常用的連接方式。Modbus作為目前工業領域應用最廣泛的協議,與其他通信協議相比,
    發表于 07-02 07:17

    Modbus-RTU協議模式學習下載

    1.Modbus定義: 是一種串行通信協議,一開始是為使用PLC(即可編程邏輯控制器)設備通信而發表,已成為工業上通信協議的標準,是工業電子設備間常用連接方式。2.Modbus協議組成
    發表于 07-02 06:12

    Modbus協議是什么?Modbus協議主要有哪些應用?

    請問一下Modbus協議是什么?Modbus協議主要有哪些應用?
    發表于 07-15 12:04

    Modbus協議的特點是什么

    Modbus協議的特點是什么?Modbus協議哪幾類功能碼?
    發表于 09-26 08:13

    Modbus協議地址與協議層次

    Modbus協議地址是什么意思?Modbus協議層次何優勢?
    發表于 09-28 06:27

    Modbus協議是什么

    Modbus協議是什么?MODBUS功能碼哪些?MODBUS協議哪幾種傳輸模式?
    發表于 09-29 07:06

    Modbus是什么?Modbus協議哪些優點

    Modbus是什么?Modbus協議哪些優點?Modbus協議包括哪些?
    發表于 09-30 08:40

    Modbus-RTU協議包括哪些

    Modbus-RTUModbus 一個工業上常用的通訊協議、一種通訊約定。Modbus協議包括RTU、ASCII、TCP。其中MODBUS-RTU
    發表于 02-16 07:43

    如何快速實現Modbus RTUModbus TCP協議轉換?

    Modbus協議是工業現場串口設備之間常用的連接方式,其中最常見的就是Modbus RTUModbus TCP兩種。許多工廠需要將現場各種不同型號設備的數據都能夠通過一個上位機軟件或
    發表于 08-18 18:36

    Modbus協議的理解

    系統的兼容,最好采用通用的通訊協議。   我們可以Modbus協議進行修改,使之能使用在自己的系統中。Modbus協議包括ASCII、RTU、TCP等,并沒有規定物理層。此
    發表于 05-05 16:47

    Modbus協議網關是什么?Modbus協議網關的功能

    Modbus協議網關是一種專門用于工業自動化環境中的網絡設備,其主要功能是實現不同通信協議之間的轉換,尤其是將基于Modbus協議的設備或系統與使用其他協議的設備、控制系統或信息系統連
    的頭像 發表于 04-11 15:51 ?710次閱讀

    Modbus RTU協議Modbus TCP/IP協議的區別

    Modbus RTUModbus TCP/IP的本質都是Modbus協議,都是通過Modbus寄存器地址來交換數據的,那么它們之間
    的頭像 發表于 10-18 17:44 ?362次閱讀