亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于MODBUS TCP協(xié)議的船用以太網(wǎng)通信系統(tǒng)設(shè)計(jì)

        2018-04-23 03:53:44楊明超
        船電技術(shù) 2018年3期
        關(guān)鍵詞:客戶機(jī)船用服務(wù)器端

        鄭 軼,楊明超

        (武漢船用電力推進(jìn)裝置研究所,武漢 430064)

        0 引言

        隨著艦船設(shè)備的不斷更新?lián)Q代,對(duì)艦船的操作與控制也在逐步向集中式的方向靠攏。艇員依靠集中控制室的計(jì)算機(jī)便可觀測(cè)艦船各設(shè)備的狀態(tài),并可通過計(jì)算機(jī)向各設(shè)備發(fā)送指令。艦船設(shè)備的狀態(tài)參數(shù)的獲取與指令的發(fā)送,需要船用通信系統(tǒng)的良好支持。目前應(yīng)用于艦船的通信方式主要包括CAN通信及以太網(wǎng)通信,其中,以太網(wǎng)通信速率較快,數(shù)據(jù)傳輸穩(wěn)定,不易受到外部干擾,適合大量數(shù)據(jù)參數(shù)的循環(huán)上傳。

        1 概述

        1.1 MODBUS協(xié)議概述

        MODBUS協(xié)議由Modicon在1979年發(fā)明,是OSI模型第7層上的應(yīng)用層報(bào)文傳輸協(xié)議,它定義了一個(gè)與基礎(chǔ)通信層無關(guān)的協(xié)議數(shù)據(jù)單元(PDU),即PDU=MODBUS功能碼+數(shù)據(jù)域。在某些特定總線或網(wǎng)絡(luò)上,MODBUS協(xié)議能夠映射在應(yīng)用數(shù)據(jù)單元(ADU)上,即ADU=地址域+PDU+校驗(yàn)碼,其通用幀格式如圖1所示。

        圖1 MODBUS通用幀格式

        目前MODBUS協(xié)議主要應(yīng)用于以太網(wǎng)通信(MODBUS TCP)、串口通信(MODBUS RTU)及高速令牌傳遞網(wǎng)絡(luò)(MODBUS PLUS)。在不同類別的網(wǎng)絡(luò)中,對(duì)ADU的封裝也存在差異,以MODBUS TCP/IP為例,其ADU的組成如圖2所示。

        圖2 MODBUSTCP/IP幀格式

        可以看出,在MODBUS TCP協(xié)議中,ADU=MBAP+PDU。MBAP是TCP/IP協(xié)議上使用的一種專用報(bào)文頭,用以識(shí)別ADU。MBAP報(bào)文頭由7個(gè)字節(jié)組成,其格式如下表1所示。

        表1 MBAP報(bào)文頭組成

        從表格中可以看到,由于MBAP中含有長(zhǎng)度信息,接收者能夠清晰的識(shí)別報(bào)文的邊界,因此在MODBUS TCP協(xié)議中,其ADU不再含有校驗(yàn)碼。

        1.2 MODBUS TCP通信系統(tǒng)模型

        MODBUS TCP通信系統(tǒng)模型一般基于客戶機(jī)/服務(wù)器模型搭建,如圖3所示。

        圖3 MODBUS TCP通信系統(tǒng)客戶機(jī)/服務(wù)器模型

        客戶機(jī)/服務(wù)器模型基于4種類型的報(bào)文:請(qǐng)求、指示、響應(yīng)和證實(shí)。客戶機(jī)向服務(wù)器發(fā)送請(qǐng)求指令(MODBUS請(qǐng)求),服務(wù)器接收到來自客戶機(jī)的指令(MODBUS指示)后,對(duì)該指令進(jìn)行響應(yīng)(MODBUS響應(yīng)),即按照約定的協(xié)議內(nèi)容向客戶機(jī)發(fā)送數(shù)據(jù),并由客戶機(jī)對(duì)發(fā)送的數(shù)據(jù)進(jìn)行辨識(shí)和處理(MODBUS證實(shí))。

        MODBUS TCP通信系統(tǒng)可以包括多個(gè)MODBUS客戶機(jī)和服務(wù)器,其他互聯(lián)設(shè)備也可通過客戶機(jī)或服務(wù)器TCP/IP網(wǎng)關(guān)接入該通信系統(tǒng),如圖4所示。

        圖4 MODBUS TCP通信系統(tǒng)示意圖

        1.3 船用以太網(wǎng)通信系統(tǒng)

        目前廣泛使用的船用以太網(wǎng)通信系統(tǒng)多采用“一主多從”的構(gòu)建思路,即由集中控制室的計(jì)算機(jī)擔(dān)任主機(jī),依次向各設(shè)備輪詢數(shù)據(jù),如圖5所示。

        圖5 船用以太網(wǎng)通信系統(tǒng)結(jié)構(gòu)示意圖

        采用集中式輪詢方式的好處在于可以分時(shí)段向各設(shè)備發(fā)送數(shù)據(jù)請(qǐng)求,一來可以有效利用集控室計(jì)算機(jī)的系統(tǒng)資源,二來可以避免各設(shè)備同時(shí)返回?cái)?shù)據(jù)造成通信線路堵塞。

        2 設(shè)計(jì)實(shí)現(xiàn)

        2.1 船用MODBUS TCP通信系統(tǒng)總體框圖

        圖6 船用MODBUS TCP通信系統(tǒng)結(jié)構(gòu)

        結(jié)合圖3、圖4和圖5可以看出,船用以太網(wǎng)通信系統(tǒng)可以按照MODBUS TCP通信系統(tǒng)結(jié)構(gòu)進(jìn)行搭建,如圖6所示。

        將集控室計(jì)算機(jī)作為客戶機(jī),各設(shè)備作為服務(wù)器,由集控室計(jì)算機(jī)向各設(shè)備發(fā)送輪詢請(qǐng)求,并接收返回?cái)?shù)據(jù)。以客戶機(jī)與其中一臺(tái)服務(wù)器為例,其信息交換示意圖如圖7所示。

        圖中,socket()函數(shù)用于創(chuàng)建套接字,bind()函數(shù)用來綁定一個(gè)端口號(hào)到該套接字,并在套接字與所指定的端口號(hào)之間建立一個(gè)連接。socket初始化完成后,服務(wù)器端需要使用listen()函數(shù)將狀態(tài)置為偵聽,才能夠接收到來自客戶機(jī)的連接請(qǐng)求。此時(shí),若客戶機(jī)需要與服務(wù)器進(jìn)行數(shù)據(jù)交換,則需要使用connect()函數(shù)來指定套接字號(hào)、服務(wù)器IP地址和端口號(hào),服務(wù)器在接收到客戶機(jī)的連接請(qǐng)求后,需要使用accept()函數(shù)指定之前在listen()函數(shù)中所指定的套接字號(hào),用以確定當(dāng)前訪問的客戶機(jī)。在連接完成后,客戶機(jī)可以使用send()函數(shù)向服務(wù)器發(fā)送MODBUS請(qǐng)求,服務(wù)器需要使用recv()函數(shù)進(jìn)行接收,再使用send()函數(shù)向客戶機(jī)發(fā)送MODBUS響應(yīng)。值得注意的是,客戶機(jī)在發(fā)送一個(gè)MODBUS請(qǐng)求后,無需等待服務(wù)器端的響應(yīng)便可以繼續(xù)發(fā)送下一個(gè)MODBUS請(qǐng)求。

        圖7 MODBUS TCP通信系統(tǒng)信息交換示意圖

        2.2 MODBUS服務(wù)器端建立

        MODBUS服務(wù)器端的主要處理流程如圖8所示。

        程序在初始化完成后即進(jìn)入等待,在接收到來自客戶機(jī)的請(qǐng)求PDU后,對(duì)該P(yáng)DU進(jìn)行檢驗(yàn),根據(jù)檢驗(yàn)情況決定生成MODBUS應(yīng)答或是MODBUS異常,并將該應(yīng)答或者異常作為響應(yīng)發(fā)送給客戶機(jī),其詳細(xì)設(shè)計(jì)分述如下:

        圖8 MODBUS服務(wù)器端信息處理流程圖

        1)初始化

        與其他基于TCP/IP協(xié)議的設(shè)備類似,作為服務(wù)器端程序,MODBUS服務(wù)器端首先需要進(jìn)行初始化,其核心內(nèi)容是設(shè)置并綁定自身IP。建立服務(wù)器函數(shù)CreateServer()的核心代碼如下:

        接下來需要將服務(wù)器置于偵聽狀態(tài)。MODBUS服務(wù)器端應(yīng)支持多個(gè)并發(fā)的客戶機(jī)同時(shí)連接。在設(shè)計(jì)時(shí),采用多線程策略可以實(shí)現(xiàn)該項(xiàng)功能,即每當(dāng)偵聽到新的連接請(qǐng)求時(shí),便建立一個(gè)新的線程來進(jìn)行操作。偵聽函數(shù)TcpListen()的核心代碼如下:

        2)生成MODBUS應(yīng)答/異常

        對(duì)于并發(fā)的連接,在接收到來自客戶機(jī)的請(qǐng)求時(shí),服務(wù)器端將在對(duì)應(yīng)的線程內(nèi)對(duì)請(qǐng)求進(jìn)行處理。根據(jù)MODBUS協(xié)議的MBAP報(bào)文頭判斷請(qǐng)求類別,再按照約定的協(xié)議內(nèi)容向客戶機(jī)返回?cái)?shù)據(jù)。響應(yīng)函數(shù)ClientService()的核心代碼如下:

        2.3 MODBUS客戶端建立

        MODBUS客戶端的主要處理流程如圖9所示。

        圖9 MODBUS客戶端信息處理流程圖

        程序在初始化完成后即進(jìn)入等待,根據(jù)需求發(fā)送請(qǐng)求PDU,同時(shí)監(jiān)測(cè)是否收到響應(yīng)PDU,根據(jù)檢驗(yàn)情況決定生成MODBUS肯定證實(shí)或是MODBUS否定證實(shí),并將該證實(shí)發(fā)送給用戶應(yīng)用,其詳細(xì)設(shè)計(jì)分述如下:

        1)初始化

        MODBUS客戶端初始化的主要內(nèi)容是建立客戶機(jī)與服務(wù)器端的連接。使用Socket類中的Connect函數(shù)可以完成這一目標(biāo)。連接函數(shù)TcpConnect()的核心代碼如下:

        2)發(fā)送MODBUS請(qǐng)求

        可采用多種策略發(fā)送MODBUS請(qǐng)求,最為常用的是使用timer定時(shí)器作為觸發(fā),定時(shí)發(fā)送。發(fā)送函數(shù)timersend_Tick()的核心代碼如下:

        3)處理數(shù)據(jù)并生成肯定/否定證實(shí)

        與服務(wù)器端的處理方式類似,接收函數(shù)根據(jù)MODBUS協(xié)議的MBAP報(bào)文頭判斷數(shù)據(jù)類別,再按照約定的協(xié)議內(nèi)容解析數(shù)據(jù)。接收函數(shù)ReceiveMsg()的核心代碼如下:

        3 通信測(cè)試

        3.1 MODBUS服務(wù)器端測(cè)試

        根據(jù)第二章的內(nèi)容,采用C#編寫MODBUS服務(wù)器端測(cè)試程序,使用0x03功能碼進(jìn)行測(cè)試,起始地址為40101,大端模式。其主界面如圖10所示。

        測(cè)試時(shí)使用TCP/UDP調(diào)試工具模擬MODBUS客戶端。運(yùn)行MODBUS服務(wù)器端測(cè)試程序,單擊程序中的“開啟服務(wù)器”按鈕,并在TCP/UDP調(diào)試工具中設(shè)置本機(jī)IP為192.168.163.1,端口為9000,連接類型為TCP,單擊“連接”按鈕。此時(shí)調(diào)試工具已與本機(jī)連接。按照MODBUS協(xié)議,其MODBUS請(qǐng)求格式及數(shù)值如表2所示。

        圖10 MODBUS服務(wù)器端測(cè)試程序

        單擊TCP/UDP調(diào)試工具中“發(fā)送”按鈕,可在接收欄中看到數(shù)據(jù)序列如圖11所示。

        將該數(shù)據(jù)序列進(jìn)行解析,如表3所示。

        可見調(diào)試工具接收到的報(bào)文信息完整、正確,通信正常。

        表2 MODBUS請(qǐng)求格式及數(shù)值

        3.2 MODBUS客戶端測(cè)試

        根據(jù)第二章的內(nèi)容,采用C#編寫MODBUS客戶端測(cè)試程序,使用0x03功能碼進(jìn)行測(cè)試,起始地址為40101,大端模式,采用定時(shí)器觸發(fā)方式向服務(wù)器發(fā)送MODBUS請(qǐng)求。使用Modbus Slave調(diào)試工具模擬MODBUS服務(wù)器端,設(shè)置如圖12所示。

        圖11 TCP/UDP調(diào)試工具結(jié)果

        表3 調(diào)試結(jié)果解析

        圖12 Modbus Slave調(diào)試工具設(shè)置

        運(yùn)行MODBUS客戶端測(cè)試程序,單擊“連接服務(wù)器”按鈕,得到的結(jié)果如圖13所示。

        圖13 MODBUS客戶端測(cè)試程序結(jié)果

        對(duì)比圖12和圖13可以看出,客戶端收到服務(wù)器端數(shù)據(jù),且數(shù)據(jù)完整、正確,通信正常。

        4 小結(jié)

        本文結(jié)合MODBUS TCP通信系統(tǒng)與船用以太網(wǎng)通信系統(tǒng)的結(jié)構(gòu)特征,設(shè)計(jì)了基于MODBUS TCP協(xié)議的船用以太網(wǎng)通信系統(tǒng),采用C#開發(fā)環(huán)境對(duì)通信系統(tǒng)的服務(wù)器端和客戶端進(jìn)行了編程設(shè)計(jì)并進(jìn)行了通信測(cè)試。測(cè)試結(jié)果表明,該編程設(shè)計(jì)正確,能夠有效進(jìn)行數(shù)據(jù)交互。

        參考文獻(xiàn):

        [1] 張小川.Modbus設(shè)備嵌入式網(wǎng)頁控制方法的研究與實(shí)現(xiàn)[J].科技風(fēng),2014,(20):26-27.

        [2] 黃波.虛擬儀器技術(shù)在電力諧波分析系統(tǒng)中的應(yīng)用[D].華中科技大學(xué),2014.

        [3] 史妍.基于Modbus的人防工程能源監(jiān)控系統(tǒng)研究[D].哈爾濱工業(yè)大學(xué),2012.

        [4] 張芳.網(wǎng)絡(luò)控制系統(tǒng)時(shí)延分析、控制器設(shè)計(jì)及仿真研究[D].北京交通大學(xué),2007.

        [5] 郝曉弘,祖守圓,徐維濤.基于VC的Modbus/TCP協(xié)議模型通信測(cè)試軟件的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2006,(07):64-67.

        猜你喜歡
        客戶機(jī)船用服務(wù)器端
        Reducing the global cancer burden with gastrointestinal screening: China’s 30 years practice
        船用PVC夾芯板在近場(chǎng)水下爆炸作用下的吸能特性
        山鋼拿下船用9Ni鋼訂單
        山東冶金(2022年1期)2022-04-19 13:40:40
        船用柴油機(jī)應(yīng)用前景展望
        淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
        成功(2018年10期)2018-03-26 02:56:14
        我國(guó)第一臺(tái)2205千瓦船用低速柴油機(jī)
        在Windows中安裝OpenVPN
        網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
        瘦客戶機(jī):安全與便捷的選擇
        基于Web數(shù)據(jù)提高訪問速度的方法
        日韩av中文字幕亚洲天| 2019nv天堂香蕉在线观看| 国产在线一区二区三区四区 | 国产色视频一区二区三区不卡| 国产suv精品一区二区四| 国产免费爽爽视频在线观看| 国产午夜福利短视频| 国产精品va在线观看一| 国产精品黄页免费高清在线观看 | 精品久久久久成人码免费动漫| 日本高清色倩视频在线观看| 欧美一片二片午夜福利在线快 | 国产免费丝袜调教视频| 无码AV高潮喷水无码专区线| 欧美亚洲另类 丝袜综合网| 亚洲免费一区二区三区四区| 亚洲av片在线观看| 亚洲av无码av制服丝袜在线| 99久久精品一区二区三区蜜臀| 中文字幕亚洲乱码熟女1区2区| 少妇免费av一区二区三区久久| 三年片大全在线观看免费观看大全 | 毛片免费在线观看网址| 亚洲欧美成人中文在线网站| 女同在线网站免费观看| 久久久99精品免费视频| 免费a级毛片18以上观看精品| 国产精品成年片在线观看| 欧美日韩亚洲综合久久久| 日本女优中文字幕亚洲| 成熟人妻换xxxx| 亚洲国产精品毛片av不卡在线 | 亚洲男人av天堂午夜在| 久久综合亚洲色社区| 国产精品人成在线观看| 精品久久中文字幕一区| 久久精品国产只有精品96| 色八区人妻在线视频免费| 亚洲欧美日韩高清一区二区三区| 国产一区二区黑丝美胸| 亚洲开心婷婷中文字幕|