MODBUS協議整理——功能碼簡述

來源:互聯網
上載者:User

標籤:邊沿觸發   串連方式   中文名   das   感應器   mda   -o   tcp   應用   

1.Modbus簡介——來自維基百科

    Modbus是一種串列通訊協定,是Modicon於1979年,為使用可程式化邏輯控制器(PLC)而發表的。Modbus是工業領域通訊協定的業界標準,並且現在是工業電子裝置之間相當常用的串連方式。Modbus比其他通訊協定使用的更廣泛的主要原因有:
【1】公開發表並且無版稅要求
【2】相對容易的工業網路部署
【3】對供應商來說,修改移動原生的位元或位元組沒有很多限制

圖1 modbus結構——來自

2.協議整理連結

    【功能碼簡述】    【讀線圈寄存器01H、讀離散輸入寄存器02H】    【讀保持寄存器03H、讀輸入寄存器04H】    【寫單個線圈寄存器05H、寫單個保持寄存器06H】    【寫多個線圈寄存器0FH,寫多個保持寄存器10H】 3.相關博文    【freemodbus modbus TCP 學習筆記】——freemodbus+uIP    【樹莓派學習筆記——實現modbus RTU從機】——raspberry+python modbus-tk    【EasyARM i.mx28學習筆記——通過modbus tcp控制GPIO】——i.mx287+freemodbus modbus tcp    【MODBUS學習筆記——modbus tk modbus TCP主機實現】 1.MODBUS功能碼簡述

    下表列出MODBUS支援的部分功能代碼:以十進位表示。

表1.1 MODBUS部分功能碼

代碼

中文名稱

寄存器PLC地址

位操作/字操作

運算元量

01

讀線圈狀態

00001-09999

位操作

單個或多個

02

讀離散輸入狀態

10001-19999

位操作

單個或多個

03

讀保持寄存器

40001-49999

字操作

單個或多個

04

讀輸入寄存器

30001-39999

字操作

單個或多個

05

寫單個線圈

00001-09999

位操作

單個

06

寫單個保持寄存器

40001-49999

字操作

單個

15

寫多個線圈

00001-09999

位操作

多個

16

寫多個保持寄存器

40001-49999

字操作

多個

1.1功能碼說明

    功能碼可以分為位操作和字操作兩類。位操作的最小單位為BIT,字操作的最小單位為兩個位元組。

        【位操作指令】    讀線圈狀態01H,讀(離散)輸入狀態02H,寫單個線圈06H和寫多個線圈0FH。

        【字操作指令】    讀保持寄存器03H,寫單個寄存器06H,寫多個保持寄存器10H。

 

1.2寄存器地址分配

表1.2 MODBUS寄存器地址分配

寄存器PLC地址

寄存器協議地址

適用功能

寄存器種類

讀寫狀態

00001-09999

0000H-FFFFH

01H 05H 0FH

線圈狀態

可讀可寫

10001-19999

0000H-FFFFH

02H

離散輸入狀態

可讀

30001-39999

0000H-FFFFH

04H

輸入寄存器

可讀

40001-49999

0000H-FFFFH

03H 06H 0FH

保持寄存器

可讀可寫

 

1.3寄存器種類說明

 

表1.3 MODBUS寄存器種類說明

寄存器種類

說明

PLC類比

舉例說明

線圈

狀態

輸出連接埠。可設定連接埠的輸出狀態,也可以讀取該位的輸出狀態。可分為兩種不同的執行狀態,例如保持型或邊沿觸發型。

DO

數字量輸出

電磁閥輸出,MOSFET輸出,LED顯示等。

離散

輸入狀態

輸入連接埠。通過外部設定改變輸入狀態,可讀但不可寫。

DI

數字量輸入

撥碼開關,接近開關等。

保持

寄存器

輸出參數或保持參數,控制器運行時被設定的某些參數。可讀可寫。

AO

類比量輸出

類比量輸出設定值,PID運行參數,變數閥輸出大小,感應器警示上限下限。

輸入

寄存器

輸入參數。控制器運行時從外部裝置獲得的參數。可讀但不可寫。

AI

類比量輸入

類比量輸入


1.4 PLC地址和協議地址區別

    PLC地址可以理解為協議地址的變種,在觸控螢幕和PLC編程中應用較為廣泛。

1.4.1 寄存器PLC地址

    寄存器PLC地址指存放於控制器中的地址,這些控制器可以是PLC,也可以使觸控螢幕,或是文本顯示器。PLC地址一般採用10進位描述,共有5位,其中第一位代碼寄存器類型。第一位元字和寄存器類型的對應關係如表1所示。PLC地址例如40001、30002等。

1.4.2 寄存器協議地址

    寄存器協議地址指指通訊時使用的寄存器地址,例如PLC地址40001對應定址地址0x0000,40002對應定址地址0x0001,寄存器定址地址一般使用16進位描述。再如,PLC寄存器地址40003對應協議地址0002,PLC寄存器地址30003對應協議地址0002,雖然兩個PLC寄存器寄存器通訊時使用相同的地址,但是需要使用不同的命令訪問,所以訪問時不存在衝突。

 

MODBUS協議整理——功能碼簡述

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.