日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Linux c modbus 线程,Modbus读写模拟量寄存器详解

發(fā)布時(shí)間:2024/10/6 linux 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux c modbus 线程,Modbus读写模拟量寄存器详解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

讀可讀寫(xiě)模擬量寄存器:

發(fā)送命令(主機(jī)向從機(jī))格式:

[設(shè)備地址] [命令號(hào)03] [起始寄存器地址高8位] [低8位] [讀取的寄存器數(shù)高8位] [低8位] [CRC校驗(yàn)的低8位] [CRC校驗(yàn)的高8位]

例:[11][03][00][6B][00][03][CRC低][CRC高]

ModBus的Ruby實(shí)現(xiàn)-RModBus 0.4.0 發(fā)布? http://www.linuxidc.com/Linux/2010-01/24200.htm

意義如下:

11:設(shè)備地址,例子中的地址是11,溶氧傳感器端默認(rèn)的地址是1,。

03:讀模擬量的命令號(hào)固定為03,這是Modbus協(xié)議規(guī)定的。

00、6B:起始地址高8位(00)、低8位(6B):表示想讀取的模擬量的起始地址,比如例子中的起始地址為107。這個(gè)006B表示一個(gè)完整的地址,注意這里的地址是高8位在前,低8位在后。

00、03:寄存器數(shù)高8位(00)、低8位(03):表示從起始地址開(kāi)始讀多少個(gè)模擬量(返回的每一個(gè)模擬量是用兩個(gè)字節(jié)表示的)。例子中為3個(gè)模擬量。注意,在返回的信息中一個(gè)模擬量需要返回兩個(gè)字節(jié)同時(shí)這里的地址也是高8位在前,低8位在后。

[CRC低][CRC高]:幀尾的CRC-16校驗(yàn),尤其需要注意的一點(diǎn)是校驗(yàn)結(jié)果的低8位在前,高8位在后,這個(gè)順序不同于起始地址以及讀取深度的地址順序。

設(shè)備響應(yīng):[設(shè)備地址] [命令號(hào)03] [返回的字節(jié)個(gè)數(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:命令號(hào)。

06:返回的字節(jié)個(gè)數(shù)(不高擴(kuò)兩字節(jié)的校驗(yàn)碼):表示數(shù)據(jù)的字節(jié)個(gè)數(shù),也就是數(shù)據(jù)1,2...n中的n的值。例子中返回了3個(gè)模擬量的數(shù)據(jù),因?yàn)橐粋€(gè)模擬量需要2個(gè)字節(jié)所以共6個(gè)字節(jié)。

數(shù)據(jù)1...n:其中[數(shù)據(jù)1][數(shù)據(jù)2]分別是第1個(gè)模擬量的高8位和低8位,[數(shù)據(jù)3][數(shù)據(jù)4]是第2個(gè)模擬量的高8位和低8位,以此類(lèi)推。例子中返回的值分別是555,0,100。

[CRC低][CRC高]:CRC校驗(yàn)同上。

寫(xiě)單個(gè)模擬量寄存器:

發(fā)送命令(主機(jī)向從機(jī))格式:

[設(shè)備地址] [命令號(hào)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:寫(xiě)模擬量的命令號(hào)固定為06。

00、01:要被寫(xiě)入的寄存器地址高8位,低8位。

00、03:要被寫(xiě)入的數(shù)據(jù)高8位,低8位。比如例子中就把1號(hào)寄存器的值設(shè)為3。

注意此命令一條只能寫(xiě)入一個(gè)模擬量的狀態(tài)。

[CRC校驗(yàn)的低8位] [CRC校驗(yàn)的高8位]:同上。

設(shè)備響應(yīng):如果成功把計(jì)算機(jī)發(fā)送的命令原樣返回,否則不響應(yīng)。

總結(jié)

以上是生活随笔為你收集整理的Linux c modbus 线程,Modbus读写模拟量寄存器详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。