a免费视频-a免费看-a免费观看-a猛片免费播放-欧美一级免费片-欧美一级免费看

Modbus TCP協(xié)議簡(jiǎn)介

發(fā)布日期:2020年07月08日 文章作者:聲科電子 閱讀量:1367

Modbus總線有三種協(xié)議:Modbus RTU協(xié)議、Modbus ASCII協(xié)議和Modbus TCP協(xié)議,Modbus總線活躍在工業(yè)通信領(lǐng)域。Modbus RTU和Modbus ASCII擅長(zhǎng)串行通信,比如基于RS485或者RS232的通信,而ModbusTCP則擅長(zhǎng)基于以太網(wǎng)的通信。由于底層所使用的結(jié)構(gòu)不同,Modbus的應(yīng)用數(shù)據(jù)單元(Application Data Unit,ADU)有所不同。請(qǐng)看以下的詳細(xì)介紹。 為了進(jìn)行通信,Modbus規(guī)定了一種很簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),被稱為“協(xié)議數(shù)據(jù)單元”(Protocol Data Unit,PDU)。協(xié)議數(shù)據(jù)單元由功能碼 數(shù)據(jù)構(gòu)成,如下圖:


協(xié)議數(shù)據(jù)單元


功能碼的長(zhǎng)度為1個(gè)字節(jié),它表示要執(zhí)行的功能。比如常見(jiàn)的:01讀取線圈;02讀取離散量輸入值;03讀取保持寄存器值;05寫(xiě)單個(gè)線圈等;數(shù)據(jù)部分的長(zhǎng)度為0-252個(gè)字節(jié),它表示要讀的地址或者要寫(xiě)入的值,不同的功能碼對(duì)應(yīng)的數(shù)據(jù)有所不同。比如01功能碼,其數(shù)據(jù)為4個(gè)字節(jié),其中前兩個(gè)字節(jié)表示要讀取的線圈的地址,后兩個(gè)字節(jié)表示要讀取線圈的數(shù)量;而對(duì)于05功能碼,其數(shù)據(jù)也是4個(gè)字節(jié),前兩個(gè)字節(jié)表示要寫(xiě)入線圈的地址,后面兩字節(jié)表示要寫(xiě)入的值。 協(xié)議數(shù)據(jù)單元有三種類型:請(qǐng)求型協(xié)議數(shù)據(jù)單元(Request PDU)、應(yīng)答型協(xié)議數(shù)據(jù)單元(Response PDU)、及異常應(yīng)答型協(xié)議數(shù)據(jù)單元(Exception Response PDU)。 協(xié)議數(shù)據(jù)單元是Modbus的通用數(shù)據(jù)結(jié)構(gòu),它與底層物理結(jié)構(gòu)無(wú)關(guān),Modbus RTU、Modbus ASCII和Modbus TCP都使用相同的協(xié)議數(shù)據(jù)單元。但是,Modbus在通信的時(shí)候,總要依賴物理網(wǎng)絡(luò)。因此要把協(xié)議數(shù)據(jù)單元映射到物理網(wǎng)絡(luò)上,這就形成了應(yīng)用數(shù)據(jù)單元(Application Data Unit,ADU)。由于底層網(wǎng)絡(luò)的不同,Modbus TCP跟Modbus RTU和Modbus ASCII的應(yīng)用數(shù)據(jù)單元是不同的,Modbus RTU和Modbus ASCII的ADU結(jié)構(gòu)如下圖所示:


Modbus RTU和Modbus ASCII的ADU結(jié)構(gòu)

而Modbus TCP的ADU結(jié)構(gòu)如下:

Modbus TCP的ADU結(jié)構(gòu)


可以看到,Modbus TCP的應(yīng)用數(shù)據(jù)單元是在協(xié)議數(shù)據(jù)單元的基礎(chǔ)上,添加了一個(gè)叫做“MBAP頭(MBAP Header)”的結(jié)構(gòu)。MBAP是英文“ModBus APlication”的縮寫(xiě),即“應(yīng)用數(shù)據(jù)單元”的意思。 MBAP頭結(jié)構(gòu)由7個(gè)字節(jié)構(gòu)成,如下表所示:


MBAP頭結(jié)構(gòu)


其中: ◆傳輸標(biāo)識(shí)符:用于標(biāo)識(shí)應(yīng)用數(shù)據(jù)單元,即請(qǐng)求和應(yīng)答之間的配對(duì);客戶端對(duì)該部分進(jìn)行初始化,服務(wù)器端將其拷貝到自己的ADU中; ◆協(xié)議標(biāo)識(shí)符:系統(tǒng)間的協(xié)議標(biāo)識(shí),0=Modbus; ◆長(zhǎng)度:接下來(lái)要發(fā)送的數(shù)據(jù)長(zhǎng)度,即:?jiǎn)卧獦?biāo)識(shí)符 PDU的總長(zhǎng)度,以字節(jié)為單位; ◆單元標(biāo)識(shí)符:用于系統(tǒng)間的站尋址,比如在以太網(wǎng) 串行鏈路的網(wǎng)絡(luò)中,遠(yuǎn)程站的地址; 這就是Modbus TCP的ADU結(jié)構(gòu),即:MBAP頭 PDU,是不是很簡(jiǎn)單呢?Modbus TCP的數(shù)據(jù)傳輸采用的是一種被稱為“客戶端/服務(wù)器”的模式,這也是上面的表格中會(huì)出現(xiàn)客戶端/服務(wù)器功能描述的原因。其實(shí),很多網(wǎng)絡(luò)通信都采用的這種方式,比如西門(mén)子的S7通信協(xié)議。在串行鏈路中,這種方式也稱為主-從通信。 在Modbus在網(wǎng)絡(luò)通信中,通常需要寫(xiě)明IP地址和端口號(hào),為什么Modbus TCP的ADU中沒(méi)有相關(guān)的內(nèi)容呢? 其實(shí)這是因?yàn)镸odbus TCP是一個(gè)應(yīng)用層的協(xié)議,通常意義上的IP地址和端口號(hào)屬于傳輸層/網(wǎng)絡(luò)層的協(xié)議:



在邏輯上Modbus TCP是在TCP層上的。在發(fā)送數(shù)據(jù)的時(shí)候,Modbus TCP的應(yīng)用數(shù)據(jù)單元首先向下傳送給傳輸層,加上TCP協(xié)議的報(bào)文;再傳送給網(wǎng)絡(luò)層,加上IP協(xié)議的報(bào)文;再向下傳送給數(shù)據(jù)鏈路層及物理層;接收的過(guò)程正好相反,從物理層一層一層的去掉相應(yīng)層的報(bào)文,最終到達(dá)應(yīng)用層。所以在使用Modbus TCP進(jìn)行數(shù)據(jù)傳輸?shù)臅r(shí)候,是要配合TCP/IP協(xié)議來(lái)使用的。使用電腦編程,就要用到SOCKET技術(shù);如果是使用PLC編程,通常廠家已經(jīng)把底層通信封裝成庫(kù)指令了,可直接調(diào)用。Modbus TCP使用的端口號(hào)是502需要為Modbus TCP預(yù)留。

主站蜘蛛池模板: 小淘气尼古拉| 恰纳卡莱之战完整版在线观看| 何丽萍| 秀人网官网| 徐若晗个人简历| 全国精神病查询系统官网| 天气预报电影| 俞晴| 间宫祥太朗| 乱世危情电视剧演员表| 五行字库查询| 深夜在线播放| 做生活的高手| 温柔地杀死我| 分部分项工程验收记录表| 闺蜜之夏 电影| 头像图片2024最新款女| 男人脱衣服| 哈尔的移动城堡免费完整版| 军官与男孩| 四年级下册古诗三首| 秀人网周妍希| fate动漫| 影楼ps后期修片的软件| 温性的水果有哪些| 李采潭全部作品| 二年级100个词语| 底线电影| 乡村女教师 电影| 放烟花的视频| 德国老太性视频播放| 大秦帝国第一部免费版 | 蝴蝶视频在线观看| 山东教育电视台直播在线观看| angela white电影| 公司辞退员工的合法流程及赔偿 | 蓝家宝电影| 阻击之王电影在线观看| 日本变态网站| 奇怪的夜晚电影| 呼兰河传思维导图|