国产aaaa级全身裸体精油片_337p人体粉嫩久久久红粉影视_一区中文字幕在线观看_国产亚洲精品一区二区_欧美裸体男粗大1609_午夜亚洲激情电影av_黄色小说入口_日本精品久久久久中文字幕_少妇思春三a级_亚洲视频自拍偷拍

首頁 > 化工知識 > 我是Modbus-RTU協(xié)議,我有兩個兄弟

我是Modbus-RTU協(xié)議,我有兩個兄弟

時間:2020-09-25 來源:方正智芯 瀏覽:

我是Modbus RTU協(xié)議,我來自Modbus大家庭。早在1971年,Modicon公司首次推出了Modbus協(xié)議,我和我大哥——Modbus ASCII 都誕生在這里。后來施耐德電氣(Schneider Electric)收購了Modicon公司,并在1997年推出了Modbus TCP協(xié)議,這就是我的三弟。2004年,中國國家標準委員會正式把Modbus作為了國家標準,開啟了我們?yōu)橹袊I(yè)通信做貢獻的新篇章。

我們?nèi)值茉诠I(yè)通信中應用廣泛,我和我大哥(Modbus ASCII)主要活躍在串行通信領域,而我三弟(Modbus TCP)則擅長以太網(wǎng)通信。你可以看看下面這張圖:

在串行鏈路中,我們(Modbus)使用一種簡單的主從協(xié)議(客戶機/服務器協(xié)議)進行通信。客戶機作為主站,向服務器發(fā)送請求;服務器(從站)接到請求后,對請求進行分析并作出應答。我和小伙伴的通信幀被稱為應用數(shù)據(jù)單元(Application Data Unit,ADU),它包括通信地址段、功能代碼段、數(shù)據(jù)段和校驗段,如下圖:

其中,功能代碼段和數(shù)據(jù)段組合稱為協(xié)議數(shù)據(jù)單元(Protocol Data Unit,PDU)。功能代碼段占用一個字節(jié),取值范圍為1~255,其中128~255為保留值,用于異常消息應答報文。1~127為功能代碼編號,其中65~72和100~110為用戶自定義編碼,具體請看下面這張圖片:

通用功能編碼(Public function code)是已經(jīng)公布的功能代碼,有確定的功能,用戶不能修改。比如:0x01表示讀取線圈,0x02表示讀取離散量的輸入等等。下圖是一些常用的功能代碼的描述:

早期在RS485串行通信中規(guī)定ADU的最大長度為256個字節(jié),其中:通信地址占用1個字節(jié),校驗段占用2個字節(jié),所以協(xié)議數(shù)據(jù)單元(PDU)的最大長度為256-1-2=253 字節(jié)。而我三弟(Modbus TCP)因為要增加一個7個字節(jié)的MBAP(MODBUS Application Protocol)的報文頭,所以他的ADU的長度=253+7=260 字節(jié)。

下面這張圖是我(Modbus -RTU)的通信數(shù)據(jù)單元(ADU)的結構:

我可以使用不同功能代碼來完成不同的功能,比如下面表格左邊的請求(request)指令使用0x05功能來使線圈173變?yōu)镺N狀態(tài):

該PDU指令中,第一個字節(jié)表示功能號“05”表示對單獨線圈進行寫操作(write single coil);第二個字節(jié)表示線圈地址的高字節(jié)位,第三個字節(jié)表示線圈地址的低字節(jié)位(線圈的編號從0開始)。本例程中,第173號線圈的序號為172(0x00AC);第四個字節(jié)表示輸出值得高字節(jié)位,第五個字節(jié)表示輸出值的低字節(jié)位。對于單獨線圈操作,0xFF00表示置位(ON),0x0000表示復位(OFF);不同的功能代碼,其參數(shù)的字節(jié)的定義不同,使用時要參考下手冊哦。

由于我(Modbus RTU)的報文格式?jīng)]有定義幀的起始與結束字符,因此對于幀識別有時間上的要求:幀與幀之間的時間間隔要大于3.5個字符(字節(jié))的時間;而幀內(nèi)部的字符之間的間隔不能大于1.5個字符的時間,如下圖:

我大哥(Modbus - ASCII)的幀的起始和停止有明確的字符定義;而我三弟(Modbus TCP)在傳輸過程中要增加一個報文頭—MBAP,以后有時間我再給你們介紹;

好了,有空去官網(wǎng)看看吧,可以下載PDF版本:

 

版權:如無特殊注明,文章轉(zhuǎn)載自網(wǎng)絡,侵權請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學習使用,務必24小時內(nèi)刪除。
相關推薦