讀可讀寫模擬量寄存器:
?
發送命令(主機向從機)格式:
[ 設備地址 ]?[ 命令號 03]?[ 起始寄存器地址高 8 位 ]?[ 低 8 位 ]?[ 讀取的寄存器數高 8 位 ]?[ 低 8 位 ]?[CRC 校驗的低 8 位 ]?[CRC 校驗的高 8 位 ]?
例: [11][03][00][6B][00][03][CRC 低 ][CRC 高 ]?
意義例如以下:
11 : 設備地址,樣例中的地址是 11 ,溶氧傳感器端默認的地址是 1 , 。
03 : 讀模擬量的命令號固定為 03 ,這是 Modbus 協議規定的 。
00 、 6B : 起始地址高 8 位 ( 00 ) 、低 8 位 ( 6B ) :表示想讀取的模擬量的起始地址,比方樣例中的起始地址為 107 。 這個 006B 表示一個完整的地址,注意這里的地址是高 8 位在前,低 8 位在后。
00 、 03 : 寄存器數高 8 位 ( 00 ) 、低 8 位 ( 03 ) :表示從起始地址開始讀多少個模擬量(返回的每個模擬量是用兩個字節表示的)。樣例中為 3 個模擬量。注意,在返回的信息中一個模擬量須要返回兩個字節 同一時候這里的地址也是高 8 位在前,低 8 位在后 。
[CRC 低 ][CRC 高 ] :幀尾的 CRC-16 校驗,尤其須要注意的一點是校驗結果的低 8 位在前,高 8 位在后,這個順序不同于起始地址以及讀取深度的地址順序。
?
設備響應: [ 設備地址 ]?[ 命令號 03]?[ 返回的字節個數 ][ 數據 1][ 數據 2]...[ 數據 n][CRC 校驗的低 8 位 ]?[CRC 校驗的高 8 位 ]?
例: [11][03][06][02][2B][00][00][00][64][CRC 低 ][CRC 高 ]?
意義例如以下:
11 : 設備地址(從機地址)。
03 :命令號。
06 : 返回的字節個數(不高擴兩字節的校驗碼):表示數據的字節個數,也就是數據 1 , 2...n 中的 n 的值。樣例中返回了 3 個模擬量的數據,由于一個模擬量須要 2 個字節所以共 6 個字節。
數據 1...n :當中 [ 數據 1][ 數據 2] 各自是第 1 個模擬量的高 8 位和低 8 位, [ 數據 3][ 數據 4] 是第 2 個模擬量的高 8 位和低 8 位,以此類推。樣例中返回的值各自是 555 , 0 , 100 。
[CRC 低 ][CRC 高 ] :CRC 校驗同上。?
?
寫單個模擬量寄存器:
?
發送命令(主機向從機)格式:
[ 設備地址 ]?[ 命令號 06]?[ 需下置的寄存器地址高 8 位 ]?[ 低 8 位 ]?[ 下置的數據高 8 位 ]?[ 低 8 位 ]?[CRC 校驗的低 8 位 ]?[CRC 校驗的高 8 位 ]?
例: [11][06][00][01][00][03][CRC 低 ][CRC 高 ]?
意義例如以下:
11 : 設備地址和上面的同樣。
06 : 寫模擬量的命令號固定為 06 。
00 、 01 :要被寫入的 寄存器地址高 8 位,低 8 位。
00 、 03 :要被寫入的 數據高 8 位,低 8 位 。比方樣例中就把 1 號寄存器的值設為 3 。
注意此命令一條僅僅能寫入一個模擬量的狀態。?
[CRC 校驗的低 8 位 ]?[CRC 校驗的高 8 位 ] :同上。
設備響應:假設成功把計算機發送的命令原樣返回,否則不響應。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
