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

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