modbus支援的功能碼:
下表是modbus支援的功能碼:
功能碼名稱
作用01
讀取線圈狀態
取得一組邏輯線圈的當前狀態(on/off)
02 讀取輸入狀態
取得一組開關輸入的當前狀態(on/off)
03 讀取保持暫存器
在乙個或多個保持暫存器中取得當前的二進位制值
04 讀取輸入暫存器
在乙個或多個輸入暫存器中取得當前的二進位制值
05 強置單線圈
強置乙個邏輯線圈的通斷狀態
06 預置單暫存器
把具體二進值裝入乙個保持暫存器
07 讀取異常狀態
取得8個內部線圈的通斷狀態,這8個線圈的位址由控制器決定
08 回送診斷校驗
把診斷校驗報文送從機,以對通訊處理進行評鑑
09 程式設計(只用於484)
使主機模擬程式設計器作用,修改pc從機邏輯
10 控詢(只用於484)
可使主機與一台正在首席執行官程式任務從機通訊,探詢該從機是否已完成其操作任務,僅在含有功能碼9的報文傳送後,本功能碼才傳送
11 讀取事件計數
可使主機發出單詢問,並隨即判定操作是否成功,尤其是該命令或其他應答產生通訊錯誤時
12 讀取通訊事件記錄
可是主機檢索每台從機的modbus事務處理通訊事件記錄。如果某項事務處理完成,記錄會給出有關錯誤
13 程式設計(184/384 484 584)
可使主機模擬程式設計器功能修改pc從機邏輯
14 探詢(184/384 484 584)
可使主機與正在執行任務的從機通訊,定期控詢該從機是否已完成其程式操作,僅在含有功能13的報文傳送後,本功能碼才得傳送
15 強置多線圈
強置一串連續邏輯線圈的通斷
16 預置多暫存器
把具體的二進位制值裝入一串連續的保持暫存器
17 報告從機標識
可使主機判斷編址從機的型別及該從機執行指示燈的狀態
18 (884和micro 84)
可使主機模擬程式設計功能,修改pc狀態邏輯
19 重置通訊鏈路
發生非可修改錯誤後,是從機復位於已知狀態,可重置順序位元組
20 讀取通用引數(584l)
顯示擴充套件儲存器檔案中的資料資訊
21 寫入通用引數(584l)
把通用引數寫入擴充套件儲存檔案,或修改之
22~64
保留作擴充套件功能備用
65~72
保留以備使用者功能所用
留作使用者功能的擴充套件編碼
73~119
非法功能
120~127
保留留作內部作用
128~255
保留用於異常應答
在這些功能碼中較長使用的是1、2、3、4、5、6號功能碼,使用它們即可實現對下位機的數字量和模擬量的讀寫操作。
1、讀可讀寫數字量暫存器(線圈狀態):
例:[11][01][00][13][00][25][crc低][crc高]
意義如下:
<2>命令號01:讀取數字量的命令號固定為01。
<5>crc校驗:是從開頭一直校驗到此之前。在此協議的最後再作介紹。此處需要注意,crc校驗在命令中的高低位元組的順序和其他的相反。
例:[11][01][05][cd][6b][b2][0e][1b][crc低][crc高]
意義如下:
<1>裝置位址和命令號和上面的相同。
<2>返回的位元組個數:表示資料的位元組個數,也就是資料1,2...n中的n的值。
<3>資料1...n:由於每乙個資料是乙個8位的數,所以每乙個資料表示8個開關量的值,每一位為0表示對應的開關斷開,為1表示閉合。比如例子中,表示20號(索引號為19)開關閉合,21號斷開,22閉合,23閉合,24斷開,25斷開,26閉合,27閉合...如果詢問的開關量不是8的整倍數,那麼最後乙個位元組的高位部分無意義,置為0。
<4>crc校驗同上。
2、讀只可讀數字量暫存器(輸入狀態):
和讀取線圈狀態類似,只是第二個位元組的命令號不再是1而是2。
3、寫數字量(線圈狀態):
例:[11][05][00][ac][ff][00][crc低][crc高]
意義如下:
<1>裝置位址和上面的相同。
<2>命令號:寫數字量的命令號固定為05。
<4>下置的資料高8位,低8位:表明需要下置的開關量的狀態。例子中為把該開關閉合。注意,此處只可以是[ff][00]表示閉合[00][00]表示斷開,其他數值非法。
<5>注意此命令一條只能下置乙個開關量的狀態。
裝置響應:如果成功把計算機傳送的命令原樣返回,否則不響應。
4、讀可讀寫模擬量暫存器(保持暫存器):
例:[11][03][00][6b][00][03][crc低][crc高]
意義如下:
<1>裝置位址和上面的相同。
<2>命令號:讀模擬量的命令號固定為03。
例:[11][03][06][02][2b][00][00][00][64][crc低][crc高]
意義如下:
<1>裝置位址和命令號和上面的相同。
<2>返回的位元組個數:表示資料的位元組個數,也就是資料1,2...n中的n的值。例子中返回了3個模擬量的資料,因為乙個模擬量需要2個位元組所以共6個位元組。
<3>資料1...n:其中[資料1][資料2]分別是第1個模擬量的高8位和低8位,[資料3][資料4]是第2個模擬量的高8位和低8位,以此類推。例子中返回的值分別是555,0,100。
<4>crc校驗同上。
5、讀只可讀模擬量暫存器(輸入暫存器):
和讀取儲存暫存器類似,只是第二個位元組的命令號不再是2而是4。
6、寫單個模擬量暫存器(保持暫存器):
例:[11][06][00][01][00][03][crc低][crc高]
意義如下:
<1>裝置位址和上面的相同。
<2>命令號:寫模擬量的命令號固定為06。
<4>下置的資料高8位,低8位:表明需要下置的模擬量資料。比如例子中就把1號暫存器的值設為3。
<5>注意此命令一條只能下置乙個模擬量的狀態。
裝置響應:如果成功把計算機傳送的命令原樣返回,否則不響應。
modbus通訊協議
modbus是由modicon 現為施耐德電氣公司的乙個品牌 在1979年發明的,是全球第乙個真正用於工業現場的匯流排協議。modbus網路是乙個工業通訊系統,由帶智慧型終端的可程式設計序控制器和計算機通過公用線路或區域性專用線路連線而成。其系統結構既包括硬體 亦包括軟體。它可應用於各種資料採集和過...
modbus 通訊協議
modbus rtu模式的協議字段 modbus協議rtu模式要求每一幀的起始和結束都以至少3.5個字元為間隔。每個字元間隔是字元位數 波特率,以1位起始位,8位資料,1位停止位,無奇偶校驗位的10位資料。以波特率為9600b s為例,字元間隔為1.04ms,也就是每一幀的開始和結束都伴隨著至少3....
Modbus通訊協議
儲存到相簿 2019 6 19 11 24 上傳 modbus通訊協議 modbus概述 modbus是由modicon公司 現為施耐德電氣的乙個品牌 在1978年發明的,這是乙個跨時代 里程碑式的網路協議,因為工業網路從此拉開了序幕。modbus是全球第乙個真正用於工業現場的匯流排協議,據不完全統...