《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于跨平臺的實(shí)時數(shù)據(jù)處理系統(tǒng)的設(shè)計
基于跨平臺的實(shí)時數(shù)據(jù)處理系統(tǒng)的設(shè)計
2017年電子技術(shù)應(yīng)用第9期
徐一鳳,豐大軍,張瀚文,張 灣,趙德政
華北計算機(jī)系統(tǒng)工程研究所,北京100083
摘要: 設(shè)計實(shí)現(xiàn)了一款實(shí)時數(shù)據(jù)處理系統(tǒng),是SCADA(數(shù)據(jù)采集與監(jiān)視控制系統(tǒng))的數(shù)據(jù)核心。在基于國產(chǎn)軟硬件平臺的基礎(chǔ)上,采用跨平臺的架構(gòu)設(shè)計,介紹了實(shí)時數(shù)據(jù)處理系統(tǒng)的功能及設(shè)計實(shí)現(xiàn)。該實(shí)時數(shù)據(jù)處理系統(tǒng)采用在共享內(nèi)存中創(chuàng)建多個隊(duì)列的方式存放輸入和輸出的數(shù)據(jù),既方便多個進(jìn)程同時存取數(shù)據(jù),又保證了數(shù)據(jù)處理的實(shí)時性。
中圖分類號: TP277
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.179011
中文引用格式: 徐一鳳,豐大軍,張瀚文,等. 基于跨平臺的實(shí)時數(shù)據(jù)處理系統(tǒng)的設(shè)計[J].電子技術(shù)應(yīng)用,2017,43(9):98-100,105.
英文引用格式: Xu Yifeng,F(xiàn)eng Dajun,Zhang Hanwen,et al. The design of the real-time data processing system based on multi-platform[J].Application of Electronic Technique,2017,43(9):98-100,105.
The design of the real-time data processing system based on multi-platform
Xu Yifeng,F(xiàn)eng Dajun,Zhang Hanwen,Zhang Wan,Zhao Dezheng
National Computer System Engineering Research Institute of China,Beijing 100083,China
Abstract: The real-time data processing system of this paper designed and implemented is the core of SCADA data. Under the background of localization for industrial control products, this paper introduces the function and the design of the real-time data processing system, which is based on domestic software and hardware platform and multi-platform architecture. In this paper, the method of creating multiple queue in the shared memory ensures that multiple processes can access data at the same time conveniently and the real-time of data processing.
Key words : multi-platform;supervisory control and data acquisition;real-time data processing

0 引言

    數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)(SCADA)是以計算機(jī)為基礎(chǔ)的生產(chǎn)過程控制與調(diào)度自動化系統(tǒng),可以對現(xiàn)場的運(yùn)行設(shè)備進(jìn)行監(jiān)視和控制。雖然SCADA系統(tǒng)從上世紀(jì)70年代誕生之初到現(xiàn)在已經(jīng)經(jīng)歷了幾代的發(fā)展,其與計算機(jī)硬件與操作系統(tǒng)的關(guān)系始終比較密切。在Windows上開發(fā)的SCADA系統(tǒng)不能運(yùn)行于UNIX和LINUX操作系統(tǒng)上,反之亦然。在工控安全日益嚴(yán)峻的今天,對能夠運(yùn)行于國產(chǎn)計算機(jī)和國產(chǎn)操作系統(tǒng)的自主可控SCADA系統(tǒng)的需求迫在眉睫[1]。本文設(shè)計的實(shí)時數(shù)據(jù)處理系統(tǒng)是SCADA系統(tǒng)的核心,采用跨平臺的軟件架構(gòu)設(shè)計:硬件采用國產(chǎn)飛騰處理器的服務(wù)器和臺式機(jī)(或筆記本),操作系統(tǒng)采用國產(chǎn)中標(biāo)麒麟,開發(fā)工具采用可跨平臺的Qt,支持在國產(chǎn)中標(biāo)麒麟和Windows操作系統(tǒng)上跨平臺運(yùn)行。

1 整體結(jié)構(gòu)

    數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)按照數(shù)據(jù)處理流程可分為四個層次:數(shù)據(jù)采集、實(shí)時數(shù)據(jù)處理、數(shù)據(jù)通信、數(shù)據(jù)顯示[2],如圖1所示。

tx2-t1.gif

    數(shù)據(jù)采集子系統(tǒng)是SCADA系統(tǒng)與PLC控制器的接口部分,分為上行、下發(fā)兩個方向。上行方向通過實(shí)現(xiàn)PLC原始數(shù)據(jù)的獲取、協(xié)議解析,對現(xiàn)場測控設(shè)備的實(shí)時運(yùn)行信息進(jìn)行采集。下發(fā)方向通過實(shí)現(xiàn)協(xié)議封包和數(shù)據(jù)輸出,對現(xiàn)場測控設(shè)備進(jìn)行調(diào)控。數(shù)據(jù)采集子系統(tǒng)作為SCADA系統(tǒng)的內(nèi)部數(shù)據(jù)源,要求常年不間斷連續(xù)運(yùn)行,必須具有高度的可靠性、穩(wěn)定性、擴(kuò)展性和強(qiáng)大的數(shù)據(jù)采集能力。

    數(shù)據(jù)處理子系統(tǒng)負(fù)責(zé)對數(shù)據(jù)采集子系統(tǒng)采集的數(shù)據(jù)進(jìn)行復(fù)雜的實(shí)時加工和處理,目的是將數(shù)據(jù)采集子系統(tǒng)的“生數(shù)據(jù)”加工成“熟數(shù)據(jù)”,即將采集的數(shù)據(jù)轉(zhuǎn)化為滿足上位機(jī)系統(tǒng)需要的、便于使用的數(shù)據(jù)結(jié)構(gòu),并且將數(shù)據(jù)存儲到實(shí)時數(shù)據(jù)表和歷史數(shù)據(jù)庫中。同時,上位機(jī)下發(fā)的控制指令也要經(jīng)過數(shù)據(jù)處理子系統(tǒng)后才能下發(fā)至對應(yīng)控制器,完成對測控設(shè)備的調(diào)控。數(shù)據(jù)處理子系統(tǒng)是SCADA系統(tǒng)的數(shù)據(jù)核心,同樣要求不間斷連續(xù)運(yùn)行,必須具有高度的可靠性、實(shí)時性、魯棒性和強(qiáng)大的數(shù)據(jù)處理能力[3]。

    數(shù)據(jù)通信子系統(tǒng)根據(jù)系統(tǒng)配置信息,通過以太網(wǎng)完成系統(tǒng)中各個站點(diǎn)之間的狀態(tài)監(jiān)控、組態(tài)同步、進(jìn)程控制、文件維護(hù)等工作,實(shí)時數(shù)據(jù)表的站間一致性和歷史數(shù)據(jù)訪問也需要借助數(shù)據(jù)通信子系統(tǒng)的數(shù)據(jù)傳輸功能。所有數(shù)據(jù)通信功能以API方式提供給各個上層應(yīng)用調(diào)用,實(shí)現(xiàn)將底層的網(wǎng)絡(luò)功能和上層應(yīng)用程序分離。

    數(shù)據(jù)顯示子系統(tǒng)通過圖形界面的方式將現(xiàn)場設(shè)備的運(yùn)行信息展現(xiàn)給用戶。通過圖形組態(tài)工具提供的圖元可以組成系統(tǒng)圖、流程圖、工藝圖、監(jiān)控圖、趨勢圖、餅圖、棒圖、報表等各種形式,實(shí)現(xiàn)操作員和SCADA系統(tǒng)之間的友好交互。

2 功能及實(shí)現(xiàn)

2.1 功能結(jié)構(gòu)

    實(shí)時數(shù)據(jù)處理子系統(tǒng)負(fù)責(zé)對進(jìn)入數(shù)據(jù)站的各種數(shù)據(jù)進(jìn)行統(tǒng)一管理,將統(tǒng)一處理后的數(shù)據(jù)寫入SCADA系統(tǒng)的各個數(shù)據(jù)隊(duì)列,供系統(tǒng)內(nèi)部的對應(yīng)模塊使用。它的工作方式是事件驅(qū)動周期保護(hù)方式,實(shí)現(xiàn)方式是將Qt提供的消息機(jī)制和定時器相結(jié)合。采用Qt的實(shí)現(xiàn)方式使系統(tǒng)能夠跨平臺運(yùn)行。當(dāng)收到PLC通信驅(qū)動模塊的通知消息,或收到通信管理模塊的通知消息,或到了保護(hù)周期還沒有被驅(qū)動時,實(shí)時數(shù)據(jù)處理子系統(tǒng)開始讀取接口隊(duì)列中的數(shù)據(jù),處理各個狀態(tài)點(diǎn)的數(shù)值和狀態(tài),并將處理過的數(shù)據(jù)輸出到各個輸出內(nèi)存中[4]

    系統(tǒng)中的數(shù)據(jù)采用集中收集、全網(wǎng)同步的處理方法,保證系統(tǒng)內(nèi)部各種數(shù)據(jù)收集時間一致性。在主歷史站上,實(shí)時數(shù)據(jù)處理子系統(tǒng)讀取各個數(shù)據(jù)隊(duì)列中的數(shù)據(jù),根據(jù)組態(tài)信息,處理系統(tǒng)數(shù)據(jù)的報警信息和狀態(tài)變位信息,并將處理結(jié)果寫入報警數(shù)據(jù)緩存和數(shù)字量狀態(tài)變位緩存,同時將所有數(shù)據(jù)的數(shù)值和狀態(tài)寫入實(shí)時表,如圖2所示。在非主歷史站(從歷史站、操作員站)上,實(shí)時數(shù)據(jù)處理子系統(tǒng)只需要管理本機(jī)的實(shí)時數(shù)據(jù)表,如圖3所示。

tx2-t2.gif

tx2-t3.gif

    實(shí)時數(shù)據(jù)處理子系統(tǒng)的工作流程如圖4所示,數(shù)據(jù)采集子系統(tǒng)上傳的PLC數(shù)據(jù)經(jīng)過數(shù)據(jù)處理模塊的處理后,分別產(chǎn)生報警和變位等數(shù)據(jù)狀態(tài),報警點(diǎn)被報警處理模塊處理后寫入報警隊(duì)列中,同時寫入全記錄隊(duì)列,變位點(diǎn)直接寫入全記錄隊(duì)列中。所有上傳的數(shù)據(jù)都要經(jīng)過實(shí)時處理模塊,產(chǎn)生其對應(yīng)的狀態(tài),并寫入實(shí)時數(shù)據(jù)表中。如果數(shù)據(jù)點(diǎn)的變化超過了歷史數(shù)據(jù)的死區(qū)設(shè)定,則寫入歷史數(shù)據(jù)隊(duì)列中。操作員的下發(fā)指令除了立即下發(fā)到指定控制器外,還要記錄到全記錄隊(duì)列中,同時進(jìn)入實(shí)時數(shù)據(jù)處理,寫入實(shí)時數(shù)據(jù)表。

tx2-t4.gif

    其中時間戳處理模塊在校時子系統(tǒng)保證下,為待處理的數(shù)據(jù)批量打上時標(biāo)。模擬量處理模塊具有工程量程轉(zhuǎn)換、線性/非線性變換、零漂修正算法、數(shù)值死區(qū)處理等功能,每個功能可以采用模塊化設(shè)計。數(shù)字量處理具備取反功能。操作員指令處理模塊包含人工置數(shù)、遙調(diào)、遙控、在線修改數(shù)據(jù)點(diǎn)屬性等功能。人工置數(shù)、遙調(diào)、遙控支持對批量指令的處理,例如群控、順控處理。數(shù)據(jù)通信子系統(tǒng)對實(shí)時數(shù)據(jù)進(jìn)行站間的同步處理,使得歷史主站和從站及操作員站上的數(shù)據(jù)和時間都能保證一致,避免系統(tǒng)數(shù)據(jù)的重復(fù)處理,提高系統(tǒng)性能[5]。

2.2 實(shí)現(xiàn)方式

    實(shí)時數(shù)據(jù)處理子系統(tǒng)接收數(shù)據(jù)采集子系統(tǒng)采集數(shù)據(jù)的最快速率為50 ms,為了提高實(shí)時數(shù)據(jù)處理的速度,采用在共享內(nèi)存中創(chuàng)建多個輸入與輸出隊(duì)列的方式。為了保證系統(tǒng)可以跨平臺運(yùn)行,共享內(nèi)存的實(shí)現(xiàn)采用Qt提供的QSharedMemory類。創(chuàng)建的隊(duì)列如下所示:

    (1)采集數(shù)據(jù)隊(duì)列

    數(shù)據(jù)采集子系統(tǒng)采集到的PLC控制器的數(shù)據(jù)寫入該隊(duì)列。

    (2)操作數(shù)據(jù)隊(duì)列

    SCADA的用戶操作和狀態(tài)的更新數(shù)據(jù)都寫入該隊(duì)列。

    (3)報警數(shù)據(jù)隊(duì)列

    實(shí)時數(shù)據(jù)處理模塊逐一處理接口隊(duì)列中報警點(diǎn)的報警信息,并將報警信息寫入報警數(shù)據(jù)隊(duì)列。寫入該隊(duì)列中的信息包括:報警發(fā)生信息、報警恢復(fù)信息、壞點(diǎn)報警。

    (4)全記錄隊(duì)列

    實(shí)時數(shù)據(jù)處理模塊在處理各個輸入接口隊(duì)列中的數(shù)據(jù)時,將需要記入全記錄中的信息寫入該隊(duì)列。

    (5)歷史數(shù)據(jù)隊(duì)列

    在歷史站主站上,實(shí)時數(shù)據(jù)處理模塊在處理采集接口隊(duì)列中的數(shù)據(jù)時,對于滿足收集條件的歷史點(diǎn)的數(shù)值和狀態(tài)寫入歷史數(shù)據(jù)隊(duì)列,該隊(duì)列將作為歷史數(shù)據(jù)收集模塊的輸入數(shù)據(jù)。歷史數(shù)據(jù)的收集條件為:①模擬量變化超過死區(qū);②數(shù)字量變化滿足定義條件;③數(shù)值未變,但狀態(tài)發(fā)生了變化(這里的狀態(tài)是指任何一個系統(tǒng)定義狀態(tài))。

    隊(duì)列的實(shí)現(xiàn)方式相同,均采用循環(huán)隊(duì)列的方式,每個隊(duì)列都存放一個共享內(nèi)存中。隊(duì)列的結(jié)構(gòu)如圖5所示。

tx2-t5.gif

    在對隊(duì)列的的操作過程中共有3種狀態(tài),分別為:空狀態(tài)、正常讀寫狀態(tài)和溢出狀態(tài),說明如下:

    (1)空狀態(tài):當(dāng)隊(duì)列的讀指針等于寫指針時,則認(rèn)為隊(duì)列為空。例如SCADA系統(tǒng)剛啟動時,沒有讀寫時隊(duì)列為空;或者SCADA系統(tǒng)運(yùn)行時,數(shù)據(jù)處理速度快于寫入速度,導(dǎo)致隊(duì)列被讀空等情況,如圖6所示。

tx2-t6.gif

    (2)正常讀寫狀態(tài):讀指針追著寫指針,如圖7所示。

tx2-t7.gif

    (3)溢出狀態(tài):寫指針寫滿整個隊(duì)列,重頭開始寫,并追上了讀指針。

    當(dāng)要寫入的新包的長度將要覆蓋未處理或處理中的數(shù)據(jù)包,則隊(duì)列寫入模塊將新來的數(shù)據(jù)包丟棄,對該丟棄事件做報警記錄,并在下一次符合寫入條件時寫入一個全點(diǎn)包。如果要寫入數(shù)據(jù)包的長度需要覆蓋多個隊(duì)列中的數(shù)據(jù)包,則這多個數(shù)據(jù)包中只要有一個處于處理狀態(tài),就屬于這種情況。如果此時數(shù)據(jù)處理啟動,則它連續(xù)處理未處理包,直到讀指針等于寫指針,如圖8所示。

tx2-t8.gif

3 結(jié)論

    本文設(shè)計實(shí)現(xiàn)的實(shí)時數(shù)據(jù)處理系統(tǒng)的工作原理采用Qt的消息機(jī)制,當(dāng)接收到數(shù)據(jù)采集子系統(tǒng)發(fā)送的數(shù)據(jù)消息后,進(jìn)行采集數(shù)據(jù)的處理,當(dāng)收到操作員指令消息后,進(jìn)行下發(fā)數(shù)據(jù)的處理。數(shù)據(jù)的處理采用在共享內(nèi)存中創(chuàng)建多個隊(duì)列的方式,使多個進(jìn)程能夠方便快速地對隊(duì)列中的數(shù)據(jù)進(jìn)行讀寫。Qt的實(shí)現(xiàn)方式使系統(tǒng)可以跨平臺運(yùn)行。

參考文獻(xiàn)

[1] 陳曦,周峰,郝鑫,等.我國SCADA系統(tǒng)發(fā)展現(xiàn)狀、挑戰(zhàn)與建議[J].工業(yè)技術(shù)創(chuàng)新,2015(1):103-114.

[2] 宋新航.SCADA系統(tǒng)設(shè)計和實(shí)現(xiàn)[D].天津:天津大學(xué),2009.

[3] ABBOTT R,GARCIA-MOLINA H.Scheduling real-time transactions:A performance evaluation[J].ACM Transactions on Database Systems,1992,2(3):513-560.

[4] OZDEMIR E,KARACOR M.Mobile phone based SCADA for industrial automation[J].Isa Transactions,2006,45(1):67-75.

[5] 呂炳潮,楊揚(yáng),伍民友.實(shí)時信息的理論研究及應(yīng)用[J].計算機(jī)工程與設(shè)計,2010,31(18):4012-4014,4043.



作者信息:

徐一鳳,豐大軍,張瀚文,張  灣,趙德政

(華北計算機(jī)系統(tǒng)工程研究所,北京100083)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品爱啪在线线免费观看| 亚洲国产一区二区三区高清| 欧美高清视频一区| 欧美中文字幕第一页| 这里只有精品丝袜| 亚洲毛片一区| 亚洲日本中文字幕区 | 亚洲午夜精品17c| 亚洲视频你懂的| 一区二区三区偷拍| 正在播放日韩| 在线一区二区日韩| 亚洲午夜久久久久久久久电影院| 在线亚洲欧美视频| 亚洲午夜在线观看视频在线| 亚洲一区亚洲| 羞羞答答国产精品www一本| 欧美一区二区免费观在线| 欧美一区二区在线观看| 亚洲成人在线视频播放 | 久久精品国产99国产精品澳门| 欧美中文字幕精品| 亚洲国产日韩欧美在线99 | 在线精品视频在线观看高清| 亚洲黄网站在线观看| 亚洲国产一成人久久精品| 亚洲精品欧美日韩| 一区二区三区精品| 亚洲一区尤物| 久久国产天堂福利天堂| 亚洲国产片色| 亚洲午夜精品17c| 欧美在线视频不卡| 久久另类ts人妖一区二区| 免费不卡中文字幕视频| 欧美日本一区二区三区| 国产精品v欧美精品v日本精品动漫| 国产精品永久入口久久久| 韩国一区二区三区美女美女秀| 亚洲激情网站免费观看| 中文一区在线| 久久国产黑丝| 一区二区欧美国产| 欧美一区二区日韩| 鲁鲁狠狠狠7777一区二区| 欧美精品亚洲二区| 国产精品一区二区三区久久| 在线播放日韩专区| 99re6这里只有精品| 欧美一区二区| 日韩天堂在线视频| 亚洲欧美另类在线观看| 久久视频在线看| 欧美日韩在线播放三区| 国产一区二区三区久久 | 欧美一区激情| 欧美激情91| 国产精品一区二区视频| 亚洲电影下载| 亚洲网站在线| 亚洲人精品午夜在线观看| 亚洲欧美一区二区三区极速播放 | 国产主播一区二区| 亚洲精品一区在线观看| 亚洲欧美日韩精品久久亚洲区| 亚洲欧洲在线看| 欧美一级成年大片在线观看| 欧美成人久久| 国产午夜精品全部视频播放| 亚洲精品乱码久久久久久按摩观 | 国产农村妇女毛片精品久久麻豆| 在线观看视频一区二区欧美日韩| 99re国产精品| 亚洲日本成人网| 久久国产日韩| 欧美视频导航| 亚洲第一毛片| 欧美一级成年大片在线观看| 中国av一区| 蜜臀av在线播放一区二区三区 | 国产视频亚洲| 在线综合亚洲欧美在线视频| 亚洲日本理论电影| 久久国产精品久久国产精品| 欧美日韩亚洲综合在线| **网站欧美大片在线观看| 亚洲欧美日韩国产成人精品影院 | 亚洲一区二区不卡免费| 欧美成人一区二区三区| 国产亚洲精品自拍| 亚洲一区二区三| 夜夜嗨av一区二区三区四区 | 欧美激情一区二区| 国内精品久久久久久久影视麻豆 | 在线亚洲成人| 欧美成人精品| 一区二区三区在线免费视频| 小黄鸭精品密入口导航| 亚洲一区二区在线看| 欧美日韩高清区| 最近中文字幕日韩精品| 亚洲电影中文字幕| 久久精品国产91精品亚洲| 国产精品一区毛片| 亚洲在线成人精品| 亚洲一区二区成人| 欧美视频在线观看 亚洲欧| 亚洲精品资源美女情侣酒店| 亚洲精一区二区三区| 欧美91大片| 亚洲第一天堂av| 亚洲区一区二区三区| 你懂的视频欧美| 在线免费观看日本一区| 亚洲电影自拍| 美女在线一区二区| 在线日韩一区二区| 91久久精品国产91久久性色| 欧美14一18处毛片| 亚洲人成亚洲人成在线观看| 日韩视频在线免费观看| 欧美精品在线视频| 亚洲精品久久久久久下一站| 99视频精品| 欧美日韩aaaaa| 夜夜嗨网站十八久久| 亚洲一区二区av电影| 国产精品国产a级| 中文一区二区| 欧美制服第一页| 国产一区二区黄| 亚洲激情视频在线观看| 欧美激情视频在线免费观看 欧美视频免费一 | 欧美亚洲一级| 久久免费99精品久久久久久| 精品999成人| 亚洲精品永久免费| 欧美日韩免费一区| 亚洲深夜福利网站| 欧美一区二区三区视频在线观看| 国产日韩精品视频一区二区三区| 久久超碰97人人做人人爱| 蜜桃伊人久久| 99亚洲视频| 午夜一区不卡| 韩日精品中文字幕| 日韩午夜一区| 国产精品视频专区| 欧美伊人久久久久久午夜久久久久 | 亚洲欧美日韩一区二区| 久久成人免费视频| 亚洲国产精品久久久久秋霞不卡 | 亚洲男同1069视频| 国产一区二区精品久久91| 亚洲黄色毛片| 欧美新色视频| 欧美一区二区三区在线视频 | 国产一区亚洲一区| 亚洲人成人一区二区三区| 欧美日韩在线三级| 欧美在线欧美在线| 欧美久久电影| 午夜精品久久久久影视| 欧美.com| 亚洲欧美激情一区| 你懂的网址国产 欧美| 一区二区三区偷拍| 免费成人黄色片| 亚洲午夜久久久| 欧美电影在线观看完整版| 亚洲视频第一页| 蜜臀久久99精品久久久画质超高清 | 亚洲欧美国产视频| 欧美激情国产日韩| 亚洲欧美视频一区| 欧美激情一区二区三区在线视频 | 一区二区三区视频在线看| 国产亚洲精品综合一区91| 日韩一级大片| 国产亚洲美州欧州综合国| 一区二区三区|亚洲午夜| 黑人巨大精品欧美黑白配亚洲 | 免费人成精品欧美精品| 亚洲一级电影| 欧美精品自拍偷拍动漫精品| 欧美在线视频日韩| 欧美性大战xxxxx久久久| 亚洲激情校园春色| 国产麻豆综合| 亚洲视频自拍偷拍| 在线免费观看日本一区| 欧美一区二区免费| av成人手机在线| 欧美成人国产va精品日本一级| 亚洲欧美精品在线| 欧美日韩国产美| 亚洲日本中文| 激情六月综合| 欧美在线影院在线视频| 一本综合久久|