ModBus協議基礎

2022年11月05日22:09:09 科技 1224

本篇作為modbusRTU問題的基礎篇,先講講modbus相關的協議,後篇再講問題是如何解決的,是怎麼的一個思路。

先列個引子,問題:現場plc接設備,比如泵、液位計鼓風機等設備,然後plc接dtu進行4G數據傳輸,雲服務器接受數據並進行設備數據的顯示及反控。

一張腦圖了解modbus的框架:

ModBus協議基礎 - 天天要聞

一、 Modbus的定義

Modbus通信協議:由Modicon公司(現在的施耐德電氣Schneider Electric)於1979年為可編程邏輯控制(即PLC)通信而發表。目前,Modbus已經成為工業領域通信協議的業界標準,並且現在是工業電子設備之間常用的連接方式。Modbus作為目前工業領域應用(比如說:PLC)最廣泛的協議。

相對其它通信協議modbus 協議的特點:免費;簡單;接口豐富。

(1)Modbus協議標準開放、公開發表且無版權要求。

(2)Modbus協議支持多種電氣接口,包括RS232RS485、TCP/IP等,還可以在各種介質上傳輸,如雙絞線、光纖、紅外、無線等。

(3)Modbus協議消息幀格式簡單、緊湊、通俗易懂。用戶理解和使用簡單,廠商容易開發和集成,方便形成工業控制網絡 Modbus協議是一種應用層報文傳輸協議,包括ASCII、RTU、TCP三種報文類型,協議本身並沒有定義物理層,只是定義了控制器能夠認識和使用的消息結構。

二、 Modbus的內容

先了解兩個概念:線圈和寄存器

線圈:從電氣角度來看,在電氣迴路中,一般都是靠接觸器中間繼電器來實現控制,接觸器或中繼最終靠的是線圈的得電和失電來控制觸點閉合和斷開,因此用線圈表示布爾量

寄存器:用來暫時存放參與運算的數據和運算結果,具有接收數據、存放數據和輸出數據的功能。

而寄存器在計算機中,就是用來存儲數據的,因此非布爾的數據放在寄存器里。

而按照兩種類型形成了modbus的存儲,由於有讀有寫就會有4種不同的組合,而為了方便使用,定義了代碼。

ModBus協議基礎 - 天天要聞

由於存儲區有4個,對4個存儲區進行讀寫就有了更多的組合,由於輸入線圈及輸入寄存器只能讀,所以一共有6種情況。但寫入又分成單個寫入和多個寫入,於是又多了兩種情況,於是便有了8種情況(modbus核心功能碼)。

ModBus協議基礎 - 天天要聞

三、 Modbus協議分類

Modbus協議目前存在Modbus RTU、Modbus ASCII、Modbus TCP三個版本。通信介質: 包括串口和網口。

說協議之前先說下位(bit)、位元組(byte)、字(word)之間的關係。

ModBus協議基礎 - 天天要聞

ASCII參照

計算機底層都是二進制代碼,不一致需進行轉換,但16進制用的多,不用十進制,因為16是2的倍數,更易表達,ASCII字符集採用的就是8bit,可以用2個16進制表示。目前上位機使用的基本都是16進制。

1word=2byte=16bit

高八位,低八位

內存里,一個單元是一個位元組,也就是8位,16位的指令,就是同時操作連續的2個內存地址,將這連續的2個內存地址當成一個單位,所以就有高8位和低8位之分。

由於計算機僅識別二進制描述的數字,所以對一個內存地址,也就是8位二進制,如:0000 0001,0000就是高四位,0001就是低四位。

Why?

對於8位處理器,不存在此問題,但16、32、64位時就會存在此問題,會存在哪個在前,哪個在後的問題。

下面說說modbus協議。

ModBus協議基礎 - 天天要聞

Modbus-TCP:由TCP頭+地址+PDU組成,

Modbus-RTU:由地址+PDU+CRC校驗組成

a:Modbus為一問一答協議,發送一個請求後要等待回復才能發送第二個請求。

b:Modbus-RTU的物理接口為串口。

c:Modbus-TCP的物理接口為以太網

Modbus報文如下所示:

ModBus協議基礎 - 天天要聞

Modbus通訊如下所示:

ModBus協議基礎 - 天天要聞

【在modbus協議中】

主機發送modbus請求,從機根據請求內容向主機返迴響應。在modbus協議中,主機總是主動方,從機總是被動方

四、 Modbus報文解析

Modbus協議2種通信模式交換信息:單播模式和廣播模式。

不管是請求報文還是答覆報文,數據結構如下:

ModBus協議基礎 - 天天要聞

即報文(幀數據)由4部分構成:地址(Slave Number)+功能碼(Function Codes)+數據(Data)+校驗(Check) 。其中的地址代表從設備的ID地址,作為尋址的信息。功能碼表示當前的請求執行具體什麼操作,比如讀還是寫。數據代表需要通訊的業務數據,可以根據實際情況來確定。最後一個校驗則是驗證數據是否有誤。其中的功能碼說明如下:

ModBus協議基礎 - 天天要聞

栗子:

a.請求:01 03 00 00 00 02 C4 0B

01:設備地址 ,設備地址為1

03:功能碼 ,當前為03讀取請求

00 00:寄存器起始地址,從00 00寄存器開始讀取

00 02:讀取寄存器長度 ,讀取2個長度,代表讀2個寄存器,即4個位元組。

C4 0B:CRC效驗和

回復:01 03 04 00 0C 00 02 BB F1

01:設備地址 ,設備地址為1

03:功能碼,當前為03讀取回復

04:數據長度 ,包含4個位元組的數據

00 0C:寄存器1數值

00 02:寄存器2數值

BB F1:CRC效驗和

03,04長度為寄存器。


以讀報文為例:

01,02:

發包:01 01 00 00 00 08 XX XX

回包:01 01 01 00 XX XX

此處00 08代表讀8位,即一個位元組,因此回包的數據長度為01。

01,02長度為位。

反控:

ModBus協議基礎 - 天天要聞

科技分類資訊推薦

引領科技豪華MPV新風尚 第二代騰勢D9西安車展亮相 - 天天要聞

引領科技豪華MPV新風尚 第二代騰勢D9西安車展亮相

兼具宜商氣度與家用溫情的科技豪華旗艦MPV,第二代騰勢D9迎來西安地區正式亮相。新車依託全球新能源MPV冠軍底蘊,以第二代刀片電池、雙閥雲輦-C、天神之眼5.0智駕等核心技術全面升級,兼顧商務體面與家庭舒適,為西北高端用戶帶來一站式全能出行解決方案。
採購禁入!科華數據材料造假被拒門外 - 天天要聞

採購禁入!科華數據材料造假被拒門外

本報(chinatimes.net.cn)記者胡雅文 北京報道這家趕上AI算力風口的公司,因投標材料造假,被相關採購方列入禁入名單兩年,其此前提出的複議申請也被正式駁回。相關採購平台近日發佈公告,明確駁回科華數據股份有限公司(下稱「科華數據」,002335.SZ)此前提交的複議申請。早在一年前,科華數據已被認定在「信息通信樞紐...
快評樂道L80:15萬元級買大五座,這波值得沖? - 天天要聞

快評樂道L80:15萬元級買大五座,這波值得沖?

日前,樂道L80正式發佈並開啟預售,其整車購買預售價為24.58萬元起,租電購買預售價則低至15.98萬元起。面對大型SUV市場「細分再細分」之競爭趨勢,這款樂道年度重磅新車都有哪些優勢?又能否成為「大五座SUV革新之作」?下面,圈哥就帶大家全方位感受。
成都直擊凱威德:純電全尺寸SUV的張揚與大氣 - 天天要聞

成都直擊凱威德:純電全尺寸SUV的張揚與大氣

4月22日,凱迪拉克以奧斯卡級盛典規格,將上海保利大劇院點亮為璀璨舞台,在品牌代言人倪妮與全場嘉賓的共同見證下,凱迪拉克全尺寸純電公路旗艦——凱威德耀然上市。新車共推出長續航四驅Pro、高性能四驅Ultra兩款配置,官方售價區間為46.88萬-50.88萬元。