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

        ?

        基于組件式軟件平臺(tái)架構(gòu)的通用協(xié)議轉(zhuǎn)換器設(shè)計(jì)

        2018-08-07 09:46:32宋志剛蔡偉周李劍波
        機(jī)電工程技術(shù) 2018年7期
        關(guān)鍵詞:服務(wù)程序報(bào)文端口

        宋志剛,蔡偉周,李劍波,胡 陽(yáng),陳 佳,張 昆

        0 引言

        隨著計(jì)算機(jī)技術(shù)、通訊技術(shù)及軟件技術(shù)的發(fā)展,大量采用不同通訊協(xié)議的智能設(shè)備或系統(tǒng)被廣泛應(yīng)用于工業(yè)現(xiàn)場(chǎng)。為了實(shí)現(xiàn)這些使用不同通訊協(xié)議的設(shè)備或系統(tǒng)之間信息互聯(lián)互通,人們?cè)O(shè)計(jì)了多種協(xié)議轉(zhuǎn)換方法,如:比特型固定格式數(shù)據(jù)協(xié)議通用轉(zhuǎn)換方法[1]、參考編譯原理的通訊協(xié)議轉(zhuǎn)換方法[2]、基于特征關(guān)鍵字的協(xié)議轉(zhuǎn)換方法[3]、基于通用協(xié)議模版的協(xié)議轉(zhuǎn)換方法等[4]。文獻(xiàn)[5]設(shè)計(jì)了一種基于WEB的數(shù)據(jù)采集與監(jiān)控系統(tǒng)。本文設(shè)計(jì)了一種基于組件式[6-7]軟件平臺(tái)架構(gòu)的通用協(xié)議轉(zhuǎn)換器,具有良好的靈活性、可維護(hù)性和擴(kuò)展性。為敘述方便本文將以MODBUS協(xié)議為例介紹該協(xié)議轉(zhuǎn)換器的軟件設(shè)計(jì)。

        1 功能設(shè)計(jì)

        通用協(xié)議轉(zhuǎn)換器的硬件使用嵌入式工業(yè)計(jì)算機(jī)MOXA UC系列來(lái)實(shí)現(xiàn),具有2個(gè)10/100M LAN口和8個(gè)RS232/422/485可配置串口。CPU選用IXP-422,板上配置128MB DRAM和32MB FLASH。操作系統(tǒng)選用嵌入式uC?Linux[8]。

        協(xié)議轉(zhuǎn)換模塊的軟件系統(tǒng)應(yīng)滿足如下功能需求:

        (1)適用于多種標(biāo)準(zhǔn)協(xié)議,包括但不限于MODBUS/RTU、MODBUS/TCP、IEC104等;

        (2)支持用戶自定義協(xié)議;

        (3)支持多個(gè)通道同時(shí)進(jìn)行通訊;

        (4)可以適應(yīng)各種對(duì)接設(shè)備的不同通訊速率,且不同通訊通道不會(huì)互相拖慢處理速度;

        (5)可以通過(guò)遠(yuǎn)程工具配置端口通訊參數(shù),配置文件可以上傳下載;

        (6)可以在遠(yuǎn)程監(jiān)視到各個(gè)通訊通道的報(bào)文收發(fā),并可記錄系統(tǒng)日志;

        (7)預(yù)留開(kāi)發(fā)接口,允許用戶使用編程語(yǔ)言針對(duì)特定協(xié)議進(jìn)行自主開(kāi)發(fā);

        (8)部分通訊端口故障不影響整體運(yùn)行;

        (9)支持對(duì)用戶身份及權(quán)限的校驗(yàn)和管理。

        2 軟件設(shè)計(jì)

        2.1 結(jié)構(gòu)設(shè)計(jì)

        為了使協(xié)議轉(zhuǎn)換器具有良好的可擴(kuò)展性,通用協(xié)議轉(zhuǎn)換器的軟件系統(tǒng)采用組件式架構(gòu),包括:協(xié)議轉(zhuǎn)換器主服務(wù)程序(下簡(jiǎn)稱主服務(wù)程序)、協(xié)議通訊組件(下簡(jiǎn)稱通訊組件)和遠(yuǎn)程監(jiān)視及配置工具(下簡(jiǎn)稱監(jiān)視配置工具)。主服務(wù)程序與監(jiān)視配置工具構(gòu)成客戶端/服務(wù)器(C/S)結(jié)構(gòu)。

        主服務(wù)程序運(yùn)行于協(xié)議轉(zhuǎn)換器的uCLinux系統(tǒng)之下,隨操作系統(tǒng)自啟動(dòng),負(fù)責(zé)根據(jù)配置文件加載通訊組件,并提供協(xié)議轉(zhuǎn)換服務(wù)。同時(shí),主服務(wù)程序也負(fù)責(zé)響應(yīng)監(jiān)視配置工具的命令請(qǐng)求,完成系統(tǒng)配置的上傳、下載、備份以及對(duì)各個(gè)端口通訊狀態(tài)的監(jiān)視功能。為了節(jié)約系統(tǒng)資源,主服務(wù)程序采取單一進(jìn)程多個(gè)線程的方式提供通訊及系統(tǒng)管理服務(wù)。

        通訊組件采用動(dòng)態(tài)鏈接庫(kù)(.SO文件)方式實(shí)現(xiàn),用于實(shí)現(xiàn)與協(xié)議轉(zhuǎn)換器某一端口所連接的設(shè)備實(shí)現(xiàn)數(shù)據(jù)通訊。在主服務(wù)程序啟動(dòng)后被動(dòng)態(tài)加載。

        監(jiān)視配置工具運(yùn)行于與協(xié)議轉(zhuǎn)換器處于同一網(wǎng)絡(luò)下的某臺(tái)工作站上。該工作站操作系統(tǒng)采用WINDOWS系列。監(jiān)視配置工具與協(xié)議轉(zhuǎn)換器之間的命令交互及通訊監(jiān)視功能采用TCP協(xié)議實(shí)現(xiàn)。

        協(xié)議轉(zhuǎn)換器件系統(tǒng)軟件邏輯結(jié)構(gòu)如圖1所示。

        圖1 協(xié)議轉(zhuǎn)換器件系統(tǒng)軟件邏輯結(jié)構(gòu)

        2.2 監(jiān)視配置工具

        監(jiān)視配置工具作為客戶端運(yùn)行于同一網(wǎng)絡(luò)內(nèi)的某WINDOWS系統(tǒng)計(jì)算機(jī)上。監(jiān)視配置工具與協(xié)議轉(zhuǎn)換器之間通過(guò)TCP協(xié)議傳遞配置命令及被監(jiān)視端口的實(shí)時(shí)通訊數(shù)據(jù)。

        監(jiān)視配置工具采用分層式架構(gòu)、模塊化設(shè)計(jì),使用C++語(yǔ)言進(jìn)行開(kāi)發(fā)。

        2.2.1 邏輯結(jié)構(gòu)設(shè)計(jì)

        如圖2所示,監(jiān)視配置工具軟件分為三個(gè)邏輯層次,分別為界面層、業(yè)務(wù)層、通訊服務(wù)層。業(yè)務(wù)層劃分為三個(gè)功能模塊,包括用戶管理模塊、器件配置管理模塊、端口通訊監(jiān)視模塊。

        圖2 監(jiān)視配置工具邏輯結(jié)構(gòu)

        業(yè)務(wù)層的用戶管理模塊主要實(shí)現(xiàn)用戶登錄驗(yàn)證,用戶權(quán)限判斷,新用戶創(chuàng)建,用戶身份配置,用戶密碼修改等功能。

        器件配置管理模塊用于對(duì)端口的配置,包括端口的通訊參數(shù)、通訊協(xié)議、數(shù)據(jù)點(diǎn)表、點(diǎn)位映射關(guān)系表等。配置信息可以存儲(chǔ)為文件并予以保存。配置信息的收發(fā)采用命令報(bào)文實(shí)現(xiàn)。

        端口通訊監(jiān)視模塊用于接收協(xié)議轉(zhuǎn)換器上報(bào)的通訊報(bào)文及設(shè)備警告信息。

        通訊服務(wù)模塊封裝了TCP報(bào)文的收發(fā)。在該模塊內(nèi)對(duì)于業(yè)務(wù)層下發(fā)的命令報(bào)文采用緩沖隊(duì)列進(jìn)行緩存并逐一發(fā)送。

        2.2.2 通訊報(bào)文設(shè)計(jì)

        監(jiān)視配置工具與協(xié)議轉(zhuǎn)換器之間的通訊報(bào)文基本結(jié)構(gòu)如圖3所示。0XFFFF為報(bào)文起始標(biāo)志,0XEEEE為報(bào)文結(jié)束標(biāo)志。FC為報(bào)文功能類別碼。PT為端口類型,用數(shù)字0表示串口,用數(shù)字1表示網(wǎng)口。PI為端口ID,用于區(qū)分同類別的不同端口。LEN為后續(xù)內(nèi)容到報(bào)文結(jié)束標(biāo)志之前的數(shù)據(jù)的長(zhǎng)度。DIRC為報(bào)文傳遞方向,進(jìn)入?yún)f(xié)議轉(zhuǎn)換器的方向設(shè)為0,離開(kāi)協(xié)議轉(zhuǎn)換器的方向設(shè)為1。

        定義 2[9] Hom-Jordan李代數(shù)(L,[·,·]L,α,δ)由空間L,一個(gè)二元雙線性運(yùn)算L×L→L滿足

        圖3 監(jiān)視配置工具與協(xié)議轉(zhuǎn)換器的通訊報(bào)文結(jié)構(gòu)設(shè)計(jì)

        參見(jiàn)表1,根據(jù)報(bào)文功能,將報(bào)文分為如下幾類,分別用FC的不同數(shù)值表示。

        表1 監(jiān)視配置工具與協(xié)議轉(zhuǎn)換器的通訊報(bào)文類型

        2.3 協(xié)議轉(zhuǎn)換模塊

        協(xié)議轉(zhuǎn)換器中的主服務(wù)程序和通訊組件共同完成協(xié)議轉(zhuǎn)換功能。主服務(wù)程序作為單一進(jìn)程跟隨系統(tǒng)啟動(dòng),啟動(dòng)后將根據(jù)端口所使用的通訊協(xié)議類型加載對(duì)應(yīng)的動(dòng)態(tài)鏈接庫(kù)。

        2.3.1 程序設(shè)計(jì)

        如圖1所示,協(xié)議轉(zhuǎn)換器軟件邏輯上包括配置管理服務(wù)模塊、通訊監(jiān)視服務(wù)模塊、用戶管理服務(wù)模塊和數(shù)據(jù)通訊服務(wù)模塊。

        配置管理服務(wù)模塊在主線程運(yùn)行,負(fù)責(zé)響應(yīng)監(jiān)視配置工具的配置命令,接收端口配置文件或上傳端口配置文件。配置發(fā)生更改后系統(tǒng)將重新啟動(dòng),并重新載入配置文件。端口配置文件內(nèi)容包括:端口通訊參數(shù)設(shè)置、端口通訊協(xié)議、端口所連接的設(shè)備的地址或標(biāo)識(shí)、端口所連接設(shè)備的數(shù)據(jù)點(diǎn)位等。每個(gè)通訊口上所連接的設(shè)備個(gè)數(shù)多于1個(gè)時(shí)通過(guò)設(shè)備地址或標(biāo)識(shí)予以區(qū)分。

        通訊監(jiān)視服務(wù)模塊以主線程的子線程運(yùn)行,負(fù)責(zé)轉(zhuǎn)發(fā)端口通訊報(bào)文、端口警告信息給監(jiān)視配置工具。在該模塊內(nèi)部維護(hù)了一個(gè)循環(huán)緩沖隊(duì)列,用于存儲(chǔ)需要轉(zhuǎn)發(fā)的通訊報(bào)文或警告信息。使用互斥鎖來(lái)防止對(duì)緩沖隊(duì)列的數(shù)據(jù)訪問(wèn)沖突。同時(shí),在該模塊內(nèi)部設(shè)置一個(gè)客戶端列表,記錄每個(gè)客戶端具體訂閱了哪些端口的通訊或警告消息。

        用戶管理服務(wù)模塊功能在主線程實(shí)現(xiàn),負(fù)責(zé)響應(yīng)監(jiān)視配置工具的用戶操作命令。用戶配置信息以文件的形式存儲(chǔ)于主服務(wù)程序的工作目錄,并進(jìn)行加密。

        數(shù)據(jù)通訊服務(wù)模塊以單獨(dú)的工作線程運(yùn)行,用于管理每個(gè)端口上的數(shù)據(jù)通訊。該線程啟動(dòng)后,根據(jù)各個(gè)端口的名字找到對(duì)應(yīng)的端口配置文件,并根據(jù)配置文件中所配置的通訊協(xié)議,加載對(duì)應(yīng)的通訊組件,隨后開(kāi)啟該端口的通訊線程。通訊組件在發(fā)現(xiàn)數(shù)據(jù)出現(xiàn)更新時(shí),調(diào)用主服務(wù)程序中的回調(diào)函數(shù)OnPortDataChange,通知主服務(wù)程序本端口上某個(gè)數(shù)據(jù)點(diǎn)位已發(fā)生變化。主服務(wù)程序通過(guò)查配置表找到該數(shù)據(jù)點(diǎn)位的對(duì)端端口點(diǎn)位,并將該點(diǎn)位的更新信息發(fā)送給對(duì)端端口的通訊組件。對(duì)端端口的通訊組件將對(duì)應(yīng)點(diǎn)位的數(shù)值更新到數(shù)據(jù)緩存區(qū),并通過(guò)通訊報(bào)文,將對(duì)端端口的數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)變化信息傳遞給對(duì)端所連接的設(shè)備。

        協(xié)議轉(zhuǎn)換器對(duì)不同協(xié)議進(jìn)行轉(zhuǎn)換的數(shù)據(jù)處理流程如圖4所示。

        圖4 端口協(xié)議轉(zhuǎn)換處理流程

        2.3.2 組件設(shè)計(jì)

        協(xié)議轉(zhuǎn)換器通訊組件采用動(dòng)態(tài)鏈接庫(kù)實(shí)現(xiàn)。協(xié)議通訊組件對(duì)應(yīng)于某個(gè)特定的通訊協(xié)議,如MODBUS-RTU主站、MODBUS-RTU從站、MODBUS-TCP主站、MOD?BUS-TCP從站、IEC104主站、IEC104子站等。

        通訊組件對(duì)外需提供一組接口函數(shù)用于與主服務(wù)程序的交互。StartComm接口函數(shù)用于協(xié)議轉(zhuǎn)換器主服務(wù)程序控制端口通訊的啟動(dòng)過(guò)程。SetDataBuf用于設(shè)置該端口對(duì)應(yīng)的數(shù)據(jù)緩存區(qū),數(shù)據(jù)緩存區(qū)由主服務(wù)程序根據(jù)設(shè)備的配置信息從內(nèi)存池獲取,并把申請(qǐng)到的內(nèi)存地址傳遞給通訊組件,通訊組件使用該段內(nèi)存緩存數(shù)據(jù),并把數(shù)據(jù)變化信息通過(guò)回調(diào)函數(shù)OnPortDataChange通知給主服務(wù)程序,主服務(wù)程序調(diào)用對(duì)端端口通訊組件的SetDataExchange函數(shù)將數(shù)據(jù)變化更新到對(duì)端端口的數(shù)據(jù)緩存區(qū)并通過(guò)通訊報(bào)文同步到對(duì)端所連設(shè)備。對(duì)于某些主動(dòng)上報(bào)型通訊協(xié)議如(IEC104子站),SetDataExchange函數(shù)需要將數(shù)據(jù)變化主動(dòng)發(fā)送給所連設(shè)備,而對(duì)于輪詢類型的通訊協(xié)議(如MOD?BUS-RTU從站)只需要等待本端口外接的設(shè)備發(fā)起數(shù)據(jù)輪詢。

        由于采用了組件式架構(gòu),對(duì)于該協(xié)議轉(zhuǎn)換器暫未支持的工業(yè)標(biāo)準(zhǔn)通訊協(xié)議或某些設(shè)備廠家的自定義協(xié)議,只需按照通訊組件接口規(guī)范來(lái)開(kāi)發(fā)出相應(yīng)的通訊組件即可予以支持。對(duì)于文獻(xiàn)1、文獻(xiàn)3等文獻(xiàn)中所介紹的種種協(xié)議轉(zhuǎn)換算法,也均可以通訊組件的方式予以實(shí)現(xiàn)。

        3 結(jié)論

        設(shè)計(jì)了一種通用協(xié)議轉(zhuǎn)換器的軟件系統(tǒng),該軟件系統(tǒng)以組件式架構(gòu)實(shí)現(xiàn),具有較好的靈活性,可以適應(yīng)復(fù)雜的通訊協(xié)議轉(zhuǎn)換需求。同時(shí),該軟件系統(tǒng)提供了開(kāi)發(fā)接口,方便于協(xié)議轉(zhuǎn)換器的功能擴(kuò)展和升級(jí)。

        猜你喜歡
        服務(wù)程序報(bào)文端口
        基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
        汽車電器(2022年9期)2022-11-07 02:16:24
        基于移動(dòng)終端的人事信息員工自助服務(wù)系統(tǒng)設(shè)計(jì)
        一種端口故障的解決方案
        CTCS-2級(jí)報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
        基于C#的進(jìn)程守護(hù)程序的設(shè)計(jì)
        視聽(tīng)(2020年3期)2020-06-11 14:28:18
        淺析反駁類報(bào)文要點(diǎn)
        端口阻塞與優(yōu)先級(jí)
        ATS與列車通信報(bào)文分析
        水利工程施工監(jiān)理服務(wù)程序及質(zhì)量控制
        初識(shí)電腦端口
        電腦迷(2015年6期)2015-05-30 08:52:42
        桃色一区一区三区蜜桃视频| 少妇被躁爽到高潮无码文| 亚洲中久无码永久在线观看软件| av天堂线上| 蜜桃av一区二区三区久久| 亚洲不卡在线免费视频| 免费a级毛片在线播放不收费| 丰满人妻被黑人猛烈进入| 国产日韩成人内射视频| 五月激情狠狠开心五月| 丰满人妻被持续侵犯中出在线| 中文字幕亚洲综合久久天堂av| 北条麻妃国产九九九精品视频 | 亚洲va中文字幕无码| 国产精品自产拍在线观看中文| 自拍偷拍一区二区三区四区| 久久精品亚洲熟女av麻豆| 亚洲av乱码一区二区三区按摩| 成全高清在线播放电视剧| 美女超薄透明丝袜美腿| 97超碰国产一区二区三区| 亚洲一区二区免费在线观看视频| 内射人妻少妇无码一本一道| 亚洲熟妇无码av另类vr影视 | 国产女主播福利一区在线观看| 久久麻传媒亚洲av国产| 乱人伦中文视频在线| 国产高潮国产高潮久久久| 日韩人妻无码中文字幕一区| 青青久久精品一本一区人人 | 亚洲精品动漫免费二区| 国产成人vr精品a视频| 无码高潮少妇毛多水多水免费 | 久久蜜臀av一区三区| 免費一级欧美精品| 国产伦理一区二区久久精品| 老太婆性杂交视频| 久久精品99久久香蕉国产色戒| 日韩精品久久久中文字幕人妻| 日韩亚洲精选一区二区三区| 极品人妻被黑人中出种子|