999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種通用多協(xié)議數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2015-07-02 13:22:04劉祿恒
物聯(lián)網(wǎng)技術(shù) 2015年6期
關(guān)鍵詞:數(shù)據(jù)采集

劉祿恒

摘 要:數(shù)據(jù)采集系統(tǒng)一直是工控系統(tǒng)的核心要件。論述一種基于Modbus協(xié)議、Fins協(xié)議和IEC104協(xié)議的通用多協(xié)議數(shù)據(jù)采集系統(tǒng),該系統(tǒng)根據(jù)不同協(xié)議的特點(diǎn)將數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,支持?jǐn)?shù)據(jù)實(shí)時(shí)訂閱、冗余處理和統(tǒng)一發(fā)布。應(yīng)用結(jié)果表明,該系統(tǒng)是一個(gè)實(shí)時(shí)性強(qiáng)、易擴(kuò)展、易維護(hù)的高效穩(wěn)定的數(shù)據(jù)采集系統(tǒng)。

關(guān)鍵詞:多協(xié)議;數(shù)據(jù)采集;標(biāo)準(zhǔn)化處理;框架

中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2015)06-00-02

0 引 言

數(shù)據(jù)采集,是指從傳感器和其它待測設(shè)備等模擬和數(shù)字被測單元中采集信號(hào),再由計(jì)算機(jī)進(jìn)行存儲(chǔ)、處理、顯示或打印的過程。數(shù)據(jù)采集過程往往表現(xiàn)出“數(shù)據(jù)量大”、“數(shù)據(jù)增長速度快”、“數(shù)據(jù)冗余”、“設(shè)備通信協(xié)議不統(tǒng)一”等特點(diǎn),這往往會(huì)導(dǎo)致采集系統(tǒng)無法適應(yīng)不斷增長的處理需求,系統(tǒng)擴(kuò)展性能低,難以維護(hù)[1]。本文論述了一種基于Modbus協(xié)議、Fins協(xié)議和IEC104協(xié)議的多協(xié)議數(shù)據(jù)采集系統(tǒng),該系統(tǒng)根據(jù)不同協(xié)議的特點(diǎn)將數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,支持?jǐn)?shù)據(jù)訂閱、冗余處理和統(tǒng)一發(fā)布。

1 系統(tǒng)總體結(jié)構(gòu)

1.1 系統(tǒng)層次結(jié)構(gòu)

系統(tǒng)總體結(jié)構(gòu)如圖1所示,系統(tǒng)主要由采集框架層,緩存判重層和數(shù)據(jù)管理層三部分組成,其中采集框架層包含輪詢框架和主動(dòng)上傳框架,不同協(xié)議可根據(jù)協(xié)議的特性來選擇相應(yīng)框架,比如Modbus和Fins協(xié)議都沒有定義主動(dòng)上傳的功能所以采用輪詢框架,而IEC104中有主動(dòng)上傳的功能則采用主動(dòng)上傳框架。緩存判重層可以將不同協(xié)議間的數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,減少數(shù)據(jù)冗余和數(shù)據(jù)發(fā)布時(shí)的負(fù)載。數(shù)據(jù)管理層是將采集上來的數(shù)據(jù)統(tǒng)一管理,然后再分發(fā)給各個(gè)訂閱者。訂閱者可以是數(shù)據(jù)庫或者顯示界面,數(shù)據(jù)管理層可以直接存儲(chǔ)到數(shù)據(jù)庫,也可通過共享內(nèi)存或者套接字存儲(chǔ)到數(shù)據(jù)庫或者顯示到界面上。如果是顯示到界面上,增加訂閱的功能便可減少顯示界面查詢數(shù)據(jù)庫的延遲,提高采集系統(tǒng)的實(shí)時(shí)性。

1.2 系統(tǒng)線程模型

系統(tǒng)總體表現(xiàn)為一個(gè)進(jìn)程,不同協(xié)議的數(shù)據(jù)采集工作在不同的線程里。輪詢框架下的每個(gè)協(xié)議有兩個(gè)線程,主動(dòng)上傳框架下的協(xié)議采用一個(gè)線程。數(shù)據(jù)管理模塊中等待訂閱的工作為一個(gè)線程,數(shù)據(jù)的發(fā)布為一個(gè)線程。

圖1 系統(tǒng)總體結(jié)構(gòu)圖

2 關(guān)鍵技術(shù)

2.1 輪詢框架的實(shí)現(xiàn)

輪詢框架的核心為兩個(gè)線程和兩個(gè)鏈表,線程分為主線程和工作線程,主線程主要維護(hù)兩個(gè)定時(shí)器,工作線程進(jìn)行實(shí)際采集和設(shè)備重新連接的工作。主線程的兩個(gè)定時(shí)器分別對(duì)應(yīng)工作線程的兩個(gè)鏈表,兩個(gè)鏈表分別為數(shù)據(jù)采集設(shè)備鏈表和重新連接的設(shè)備鏈表。

輪詢框架分為兩個(gè)線程,可以隔離定時(shí)器和實(shí)際的采集或重連工作,減少彼此之間的影響。網(wǎng)絡(luò)通訊有很多不確定的因素,在一個(gè)設(shè)備上的采集延遲可能會(huì)影響到其他設(shè)備上的數(shù)據(jù)采集。將定時(shí)器和實(shí)際工作設(shè)備兩者隔離就能保證各設(shè)備上一定次數(shù)的信息采集,確保系統(tǒng)正常穩(wěn)定的運(yùn)行。

2.2 主動(dòng)上傳框架的實(shí)現(xiàn)

主動(dòng)上傳框架采用Reactor編程模式,對(duì)各socket描述符進(jìn)行監(jiān)聽,有數(shù)據(jù)到來就對(duì)協(xié)議進(jìn)行解析,回調(diào)提前注冊(cè)好的信息處理函數(shù),取出數(shù)據(jù)。如果設(shè)備發(fā)生故障則關(guān)閉socket描述符,啟動(dòng)重新連接設(shè)備的定時(shí)器,定期進(jìn)行設(shè)備重連。

IEC104協(xié)議本身規(guī)定了4個(gè)定時(shí)器,包括為連接建立超時(shí)進(jìn)行重連的定時(shí)器t0(30秒)、發(fā)送或測試APDU的超時(shí)定時(shí)器t1(15秒)、無數(shù)據(jù)報(bào)文時(shí)確認(rèn)的超時(shí)定時(shí)器t2(10秒,t2t1)[2]。所以在選擇主動(dòng)上傳框架使用時(shí)應(yīng)根據(jù)協(xié)議本身的規(guī)定做特殊化處理。

2.3 不同協(xié)議數(shù)據(jù)的標(biāo)準(zhǔn)化處理

由于不同協(xié)議間模擬點(diǎn)的數(shù)據(jù)信息表示可能不一致,比如Modbus和Fins協(xié)議模擬點(diǎn)的數(shù)據(jù)信息選用uint16_t來表示,而IEC104協(xié)議選用float來表示,所以系統(tǒng)統(tǒng)一定義了一個(gè)數(shù)據(jù)結(jié)構(gòu)--struct Data,不同協(xié)議下模擬點(diǎn)的信息統(tǒng)一用std::unique_ptr指針表示,然后根據(jù)協(xié)議類型填入 std::map 或std::map。協(xié)議間的數(shù)字點(diǎn)信息則統(tǒng)一用std::map 來表示。這樣可以達(dá)成不同協(xié)議數(shù)據(jù)的標(biāo)準(zhǔn)化,方便了系統(tǒng)的緩存判重和統(tǒng)一發(fā)布。

2.4 緩存判重去冗余

系統(tǒng)總體用一棵紅黑樹來緩存最近一次采集的所有協(xié)議下所有設(shè)備的數(shù)據(jù)信息,這樣每次進(jìn)行發(fā)布的都是所有設(shè)備下有數(shù)據(jù)變化了的點(diǎn)信息,大大減少了數(shù)據(jù)冗余和發(fā)布時(shí)的負(fù)載,明顯提高了系統(tǒng)性能。另外有了緩存模塊,設(shè)備信息的顯示界面可以不需要讀取設(shè)備列表上的配置文件,而從網(wǎng)絡(luò)上直接獲取設(shè)備列表。

2.5 數(shù)據(jù)管理統(tǒng)一發(fā)布

數(shù)據(jù)管理模塊參考了muduo的日志庫[3],線程模型在前端線程收集數(shù)據(jù),數(shù)據(jù)信息到達(dá)一定大小或者數(shù)據(jù)發(fā)布定時(shí)器超時(shí)之后將數(shù)據(jù)傳給背景線程,由背景線程來統(tǒng)一發(fā)布給訂閱者,比如數(shù)據(jù)庫和顯示界面等。這樣可以在不影響數(shù)據(jù)采集效率的前提下,提高數(shù)據(jù)發(fā)布效率,免除系統(tǒng)在發(fā)布上的等待。另外系統(tǒng)采用Reactor + one loop per thread 編程模式等待來自網(wǎng)絡(luò)的訂閱并實(shí)施數(shù)據(jù)信息在網(wǎng)絡(luò)上的發(fā)布。傳統(tǒng)的采集系統(tǒng)都是先將數(shù)據(jù)存到數(shù)據(jù)庫中,然后工控系統(tǒng)其他組件再從數(shù)據(jù)庫中讀取數(shù)據(jù),這樣往往會(huì)造成很大的延時(shí),所以支持訂閱和統(tǒng)一發(fā)布的采集系統(tǒng)對(duì)工控系統(tǒng)的實(shí)時(shí)性大有裨益。

采集系統(tǒng)采用如圖2所示的協(xié)議格式來進(jìn)行統(tǒng)一的數(shù)據(jù)發(fā)布。報(bào)文最開始用3個(gè)字節(jié)的“HEI”來對(duì)報(bào)文定界,其后是4個(gè)字節(jié)的報(bào)文長度,方便接收方對(duì)報(bào)文進(jìn)行處理。然后是設(shè)備個(gè)數(shù)及設(shè)備上的具體點(diǎn)信息。

圖2 數(shù)據(jù)發(fā)布的協(xié)議

由于數(shù)據(jù)標(biāo)準(zhǔn)化的處理,數(shù)據(jù)發(fā)布在協(xié)議上也做了一些妥協(xié),多了一個(gè)字節(jié)的標(biāo)識(shí)來判斷設(shè)備上是否包含模擬點(diǎn)。設(shè)備信息如圖3所示。

圖3 設(shè)備信息內(nèi)容

3 運(yùn)行結(jié)果及分析

為了對(duì)系統(tǒng)做性能上的評(píng)測,編寫Modbus協(xié)議和IEC104協(xié)議設(shè)備端的仿真程序,模擬這兩個(gè)協(xié)議下多個(gè)設(shè)備上的多種點(diǎn)信息,多個(gè)不同的模擬點(diǎn)分別模擬正弦曲線(如圖4),二次函數(shù)曲線,指數(shù)曲線,對(duì)數(shù)曲線,平方根曲線等的變化,不同的數(shù)字點(diǎn)只需要模擬一系列隨機(jī)0/1值的變化即可。

圖4 設(shè)備上的模擬點(diǎn)數(shù)據(jù)按正弦曲線變化

采集系統(tǒng)會(huì)根據(jù)協(xié)議的特點(diǎn)實(shí)時(shí)將數(shù)據(jù)采集上來,然后統(tǒng)一發(fā)布。數(shù)據(jù)顯示的界面如圖5所示,圖中顯示的是IEC104協(xié)議下設(shè)備0的數(shù)據(jù)信息,該設(shè)備下模擬點(diǎn)號(hào)16 385的值為12 198.6,數(shù)字點(diǎn)號(hào)1的值為0。

圖5 數(shù)據(jù)顯示界面

在界面上選擇不同的協(xié)議并選擇協(xié)議下各相應(yīng)設(shè)備上不同點(diǎn)的信息,將數(shù)據(jù)與設(shè)備仿真端的數(shù)據(jù)對(duì)比,發(fā)現(xiàn)程序運(yùn)行無誤。

設(shè)備的仿真端程序總共模擬了50個(gè)設(shè)備的變化,系統(tǒng)均能實(shí)時(shí)準(zhǔn)確的將各協(xié)議下各設(shè)備的各個(gè)點(diǎn)信息采集上來,說明了該系統(tǒng)性能的高效性。

采集系統(tǒng)在采集框架層完成之后才增加的對(duì)FINS協(xié)議的支持,說明了系統(tǒng)容易擴(kuò)展,容易維護(hù)的特性。而采集系統(tǒng)支持?jǐn)?shù)據(jù)實(shí)時(shí)訂閱、冗余處理和統(tǒng)一發(fā)布,說明了系統(tǒng)是一個(gè)實(shí)時(shí)性能可靠的數(shù)據(jù)采集系統(tǒng)。

4 結(jié) 語

本文論述了一種基于Modbus協(xié)議、Fins協(xié)議和IEC104協(xié)議的通用多協(xié)議數(shù)據(jù)采集系統(tǒng), 該系統(tǒng)根據(jù)不同協(xié)議的特點(diǎn)將數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,支持?jǐn)?shù)據(jù)實(shí)時(shí)訂閱、數(shù)據(jù)冗余處理和統(tǒng)一發(fā)布。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)是一個(gè)易擴(kuò)展,易維護(hù)的實(shí)時(shí)性強(qiáng)的高效穩(wěn)定的數(shù)據(jù)采集系統(tǒng)。

參考文獻(xiàn)

[1]彭新一,黃競斌,黃志煒 .“一種面向大規(guī)模分布式數(shù)據(jù)采集的標(biāo)準(zhǔn)化方法” [C]. Proceedings of 2010 The 3rd,International Conference on Computational Intelligence and Industrial Application,2010(7).

[2] Telecontrol equipment and systems Part 5-104: Transmission protocols Network access for IEC 60870-5-101 using standard transport profiles[S]. IEC 60870-5-104:2000, IDT

[3]陳碩.《Linux多線程服務(wù)端編程》[M].北京:電子工業(yè)出版社,2013。

[4] Modbus Application Protocol Specification V1.1b, Modbus-IDA. http://www.Modbus-IDA.org

[5]鞠陽,張惠剛.IEC60870-5-104遠(yuǎn)動(dòng)規(guī)約的設(shè)計(jì)及其應(yīng)用[J].繼電器,2006,34(17):55-58.

[6] FINS communications. http://paginas.fe.up.pt/~pfs/recursos/plcs/omron/cs1/eth_manual/sec5.pdf

猜你喜歡
數(shù)據(jù)采集
Web網(wǎng)絡(luò)大數(shù)據(jù)分類系統(tǒng)的設(shè)計(jì)與改進(jìn)
CAN總線通信技術(shù)在電梯監(jiān)控系統(tǒng)中的應(yīng)用
基于大型嵌入式系統(tǒng)的污水檢測系統(tǒng)設(shè)計(jì)
社會(huì)保障一卡通數(shù)據(jù)采集與整理技巧
基于AVR單片機(jī)的SPI接口設(shè)計(jì)與實(shí)現(xiàn)
CS5463在植栽用電子鎮(zhèn)流器老化監(jiān)控系統(tǒng)中的應(yīng)用
大數(shù)據(jù)時(shí)代高校數(shù)據(jù)管理的思考
科技視界(2016年18期)2016-11-03 22:51:40
鐵路客流時(shí)空分布研究綜述
基于廣播模式的數(shù)據(jù)實(shí)時(shí)采集與處理系統(tǒng)
軟件工程(2016年8期)2016-10-25 15:54:18
通用Web表單數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
軟件工程(2016年8期)2016-10-25 15:52:53
主站蜘蛛池模板: 亚洲色图综合在线| 久久99蜜桃精品久久久久小说| 免费国产好深啊好涨好硬视频| 欧美劲爆第一页| 亚洲精品午夜天堂网页| 亚洲全网成人资源在线观看| 亚洲欧美激情另类| 国产三级毛片| 亚洲欧美一区在线| 男女男精品视频| 日本高清免费不卡视频| 久久精品国产电影| 香蕉视频国产精品人| 欧美国产日韩在线观看| 在线观看91精品国产剧情免费| 天堂亚洲网| 欧美69视频在线| 国产白浆视频| 国产精品无码影视久久久久久久| 99伊人精品| 18禁色诱爆乳网站| 久久大香伊蕉在人线观看热2| 国产毛片不卡| 亚洲色欲色欲www网| 国产靠逼视频| 毛片免费视频| 国产日韩丝袜一二三区| 熟女视频91| 日韩在线视频网| 亚洲精品国产乱码不卡| a毛片在线播放| 国产欧美视频综合二区| 国产乱码精品一区二区三区中文| 国产成人久久综合一区| 国产黄色免费看| 亚洲精品无码在线播放网站| 国产欧美在线观看一区| 国产在线98福利播放视频免费| 青青热久免费精品视频6| 日韩人妻无码制服丝袜视频| 国产成人一二三| 久久黄色免费电影| 又爽又黄又无遮挡网站| 国产成人在线小视频| 一本色道久久88| 91 九色视频丝袜| 国产高颜值露脸在线观看| 草草影院国产第一页| 国产成人1024精品| 国产精品久久久久鬼色| 欧美一级视频免费| 在线a网站| 九九九精品视频| 国产午夜福利亚洲第一| 精品福利视频导航| 老熟妇喷水一区二区三区| 亚洲精品无码抽插日韩| 性色生活片在线观看| 波多野衣结在线精品二区| 亚洲国产天堂在线观看| 亚洲无码视频一区二区三区| 日韩精品无码免费专网站| 国产真实乱子伦视频播放| 免费a级毛片视频| 香蕉久久国产超碰青草| 亚洲一级毛片| 国产在线观看成人91| 中文字幕1区2区| 国产一级毛片网站| 精品中文字幕一区在线| 制服丝袜在线视频香蕉| 亚洲欧洲AV一区二区三区| 亚洲无码37.| 成人综合久久综合| 热久久国产| 女人一级毛片| 天堂成人在线| 国产成人乱无码视频| 色天天综合| aⅴ免费在线观看| 亚洲精品自在线拍| 日韩乱码免费一区二区三区|