欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

3天內(nèi)不再提示

Modbus協(xié)議長啥樣呢?Modbus RTU協(xié)議有哪些參數(shù)?

冬至子 ? 來源:物聯(lián)網(wǎng)諸子東 ? 作者:諸子東 ? 2023-08-10 16:36 ? 次閱讀

Modbus 協(xié)議可以走串口,可以走網(wǎng)口。

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

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

那Modbus 協(xié)議長啥樣呢。

我們先來直接看一組數(shù)據(jù)。

主站發(fā)送:01 03 00 14 00 01 C4 0E

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

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

我們進入情景中。

現(xiàn)場有一個HMI。

還有一個PLC

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

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

“你管的著么,雙十一打折,多買了幾個不行呀?!?/p>

那燈的數(shù)據(jù)呢,就只有開還是關(guān)。也就是非0即1了。是開關(guān)類型。

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

那HMI通過Modbus協(xié)議,理應可以讀到100個燈里,任意一個或者連續(xù)幾個燈的數(shù)據(jù)。

也可以讀一個稱或者連續(xù)幾個稱的數(shù)據(jù)。

也就是報文上,要能把這些表現(xiàn)出來。

比如HMI想讀第20個稱的數(shù)據(jù),只讀一個。

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

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

我們看一下報文。

01 03 00 14 00 01 C4 0E。

真的有14 這個字節(jié)。

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

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

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

1.jpg

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

確實也是呀。HMI只是想讀一個稱的數(shù)據(jù),沒必要發(fā)其它不相關(guān)的數(shù)據(jù)的呀。

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

“HMI可以通過485,接幾個PLC的哦?!?/p>

“可是我要怎么知道我要讀哪個PLC的數(shù)據(jù)呢”

“這樣吧,我們給不同的PLC起一個編號,也就是站號,這樣就可以了?!?/p>

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

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

“嗯,好辦法。那就用第一個字節(jié)表示吧?!?/p>

1.jpg

這樣,一個Modbus RTU協(xié)議,就此誕生了。

我們再回過頭來總結(jié)看一下,這個modbus 協(xié)議,大概就五個參數(shù)。

1.jpg

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

第一個字段,就是站號。

主設(shè)備是沒有站號的。只有從設(shè)備有站號。

為什么主設(shè)備沒有站號呢。

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

那從設(shè)備是否只能一個呢。

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

主設(shè)備要訪問哪個設(shè)備的時候呢,就根據(jù)站號來區(qū)分了。

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

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

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

第二個字段,是功能碼。

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

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

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

1.jpg

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

modbus ascii和modbus tcp 也離不了這幾個參數(shù)。

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

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

筆者從事物聯(lián)網(wǎng)以來,接觸的設(shè)備支持modbus的,不在少數(shù)??梢哉f,99%就只用到前面介紹的內(nèi)容,真的不能更多了。

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

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

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

我們先看看讀的。

1.jpg

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

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

這樣從站回復的數(shù)據(jù)就是FF FF 0F了。

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

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

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

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

1.jpg

2.jpg

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

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

    關(guān)注

    6043

    文章

    44623

    瀏覽量

    638795
  • ModBus協(xié)議
    +關(guān)注

    關(guān)注

    3

    文章

    178

    瀏覽量

    33533
  • CRC校驗
    +關(guān)注

    關(guān)注

    0

    文章

    84

    瀏覽量

    15280
  • RTU
    RTU
    +關(guān)注

    關(guān)注

    0

    文章

    418

    瀏覽量

    28775
  • PLC控制器
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    9166
收藏 人收藏

    評論

    相關(guān)推薦

    Modbus庫開發(fā)筆記之十一:關(guān)于Modbus協(xié)議棧開發(fā)的說明

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

    modbus協(xié)議講解modbus-rtu以及modbus-tcp協(xié)議詳解

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

    什么是Modbus協(xié)議?如何寫穩(wěn)定的Modbus代碼?

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

    modbus協(xié)議筆記

    已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議的業(yè)界標準,并且現(xiàn)在是工業(yè)電子設(shè)備之間常用的連接方式。Modbus作為目前工業(yè)領(lǐng)域應用最廣泛的協(xié)議,與其他通信協(xié)議相比,
    發(fā)表于 07-02 07:17

    Modbus-RTU協(xié)議模式學習下載

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

    Modbus協(xié)議是什么?Modbus協(xié)議主要有哪些應用?

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

    Modbus協(xié)議的特點是什么

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

    Modbus協(xié)議地址與協(xié)議層次

    Modbus協(xié)議地址是什么意思?Modbus協(xié)議層次何優(yōu)勢?
    發(fā)表于 09-28 06:27

    Modbus協(xié)議是什么

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

    Modbus是什么?Modbus協(xié)議哪些優(yōu)點

    Modbus是什么?Modbus協(xié)議哪些優(yōu)點?Modbus協(xié)議包括哪些?
    發(fā)表于 09-30 08:40

    Modbus-RTU協(xié)議包括哪些

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

    如何快速實現(xiàn)Modbus RTUModbus TCP協(xié)議轉(zhuǎn)換?

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

    Modbus協(xié)議的理解

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

    Modbus協(xié)議網(wǎng)關(guān)是什么?Modbus協(xié)議網(wǎng)關(guān)的功能

    Modbus協(xié)議網(wǎng)關(guān)是一種專門用于工業(yè)自動化環(huán)境中的網(wǎng)絡(luò)設(shè)備,其主要功能是實現(xiàn)不同通信協(xié)議之間的轉(zhuǎn)換,尤其是將基于Modbus協(xié)議的設(shè)備或系統(tǒng)與使用其他協(xié)議的設(shè)備、控制系統(tǒng)或信息系統(tǒng)連
    的頭像 發(fā)表于 04-11 15:51 ?825次閱讀

    Modbus RTU協(xié)議Modbus TCP/IP協(xié)議的區(qū)別

    Modbus RTUModbus TCP/IP的本質(zhì)都是Modbus協(xié)議,都是通過Modbus寄存器地址來交換數(shù)據(jù)的,那么它們之間
    的頭像 發(fā)表于 10-18 17:44 ?804次閱讀