智聯物聯技術分享,本期為大家介紹工業通訊常用的主流協議Modbus協議。
Modbus協議的前身叫做Mod協議,常被用于Modicon公司的PLC控制器中,后來Modicon被Schneider收購后隨之改名為我們如今所熟悉的modbus協議,現如今廣泛應用在物聯網的控制器、HMI和傳感器中與其他工控終端設備進行通訊,Modbus已然成為了工業通訊應用中主流的常用協議。
通過Modbus協議可以使控制器之間經由網絡(例如以太網)和其他設備之間進行通信。Modbus協議還可以讓不同品牌的控制設備進行組網,方便運營商對設備進行集中監控管理。
Modbus協議定義了控制器能認識使用的消息結構,描述控制器對其它設備的請求訪問過程,對來自其它設備的請求進行回應,以及偵測錯誤數據并記錄。Modbus協議制定了內容的公共格式與消息域格局。
Modbus協議Modbus協議功能碼
Modbus協議的功能碼用于表示信息幀的功能,03、04、06、16最為常用。
功能碼03的名稱是讀取保持寄存器內容,在一個或多個保持寄存器中取得當前的二進制值。
功能碼04的名稱是讀取輸入寄存器內容,在一個或多個輸入寄存器中取得當前的二進制值。
功能碼06的名稱是預置單寄存器,把具體二進制值裝入一個保持寄存器。
功能碼16的名稱是預置多個寄存器,把具體的二進制值裝入一串連續的保持寄存器。
Modbus協議功能碼Modbus協議03、04功能碼
03讀取保持寄存器內容和04讀取輸入寄存器內容兩者之間到底存在著哪些功能差異呢?Modbus協議被常用于PLC通信的輸入輸出數字量信號以及模擬量信號。Modbus協議的04功能碼輸入寄存器就是從模擬量信號輸入引申出來的,即輸入寄存器只能從模擬量信號輸入端改變寄存器,而主機則不能通過下發指令改變輸入寄存器的數據;而保持寄存器則是用于輸出模擬量信號的,主機是可以改變寄存器數據,對于主機來說輸入寄存器是只讀的,而保持寄存器是可以讀寫的。當主機用06、16功能碼的指令去預置輸入寄存器的時候,設備會返回一個代碼為0x81的錯誤代碼,即企圖寫只讀寄存器。
Modbus協議Modbus協議的TCP、RTU、ASCII
Modbus RTU和Modbus ASCII協議基于串口通訊,如RS232或RS485等工業串口進行數據透傳。
ModbusTCP協議則基于以太網通信,如雙絞線、光纖、無線上傳送。
常見應用在PLC可編程邏輯控制器之間的通信中,由于PLC的開放性,可應用于現場設備、智能終端、儀器儀表中。
Modbus協議的映射地址
在使用Modbus協議經常會遇到3xxxx,4xxxx的寄存器數據類型,Modbus映射地址都是從0開始的,比如30009代表的是輸入寄存器,這樣的映射地址格式常用于PLC系統與組態軟件中。
Modbus協議映射地址-
物聯網
+關注
關注
2913文章
44923瀏覽量
376991 -
MODBUS
+關注
關注
28文章
1820瀏覽量
77308 -
PLC通信協議
+關注
關注
0文章
3瀏覽量
1733
發布評論請先 登錄
相關推薦
評論