《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 跨平臺(tái)SCADA的歷史數(shù)據(jù)收集與存儲(chǔ)設(shè)計(jì)
跨平臺(tái)SCADA的歷史數(shù)據(jù)收集與存儲(chǔ)設(shè)計(jì)
2018年電子技術(shù)應(yīng)用第12期
鐘洋洋,王毅璇,王 皓,傅一帆
華北計(jì)算機(jī)系統(tǒng)工程研究所,北京100083
摘要: 歷史數(shù)據(jù)是工業(yè)生產(chǎn)中設(shè)備運(yùn)行產(chǎn)生的實(shí)時(shí)數(shù)據(jù)記錄。針對(duì)國(guó)產(chǎn)PLC上位機(jī)監(jiān)控系統(tǒng)的數(shù)據(jù)收集和存儲(chǔ)過(guò)程中數(shù)據(jù)量過(guò)大、效率低等問(wèn)題,設(shè)計(jì)出一種跨平臺(tái)的、滿足工業(yè)生產(chǎn)要求、利于問(wèn)題回溯的收集存儲(chǔ)方式。通過(guò)關(guān)鍵幀和變更集的方式進(jìn)行數(shù)據(jù)壓縮和收集。劃分多個(gè)內(nèi)存緩沖區(qū)并利用時(shí)間戳的變化實(shí)現(xiàn)自動(dòng)切換,提升數(shù)據(jù)的讀寫(xiě)效率。同時(shí)采用Qt的信號(hào)和槽機(jī)制觸發(fā)線程進(jìn)行數(shù)據(jù)存儲(chǔ)操作,實(shí)現(xiàn)數(shù)據(jù)收集和存儲(chǔ)同時(shí)進(jìn)行。在Windows和Linux操作系統(tǒng)平臺(tái)上運(yùn)行,其功能和性能皆達(dá)到設(shè)計(jì)要求。
中圖分類號(hào): TP311
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.180960
中文引用格式: 鐘洋洋,王毅璇,王皓,等. 跨平臺(tái)SCADA的歷史數(shù)據(jù)收集與存儲(chǔ)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2018,44(12):111-114.
英文引用格式: Zhong Yangyang,Wang Yixuan,Wang Hao,et al. Historical data collection and storage design of cross-platform SCADA[J]. Application of Electronic Technique,2018,44(12):111-114.
Historical data collection and storage design of cross-platform SCADA
Zhong Yangyang,Wang Yixuan,Wang Hao,F(xiàn)u Yifan
National Computer System Engineering Research Institute of China,Beijing 100083,China
Abstract: Historical data is the real-time data record generated by the operation of equipment in industrial production. Aiming at the problems such as oversize of data, low efficiency in the process of data collection and storage of domestic PLC monitor and control system, a cross-platform, meeting the requirements of industrial production, facilitating the backtracking of problem collection and storage method is proposed. Data is compressed and collected by using the way of key frames and change sets. This design divides multiple memory buffers and uses timestamp change to achieve automatic switching so as to enhance data read and write efficiency. Meanwhile, the signal and slot mechanism of Qt are used to trigger the thread for data storage operation, which implements data collection and storage at the same time. Running on Windows and Linux operating system platforms, both function and performance of the design meet the requirements.
Key words : historical data;collection;storage

0 引言

    隨著現(xiàn)代化工業(yè)的不斷發(fā)展,生產(chǎn)企業(yè)的規(guī)模越來(lái)越大,對(duì)生產(chǎn)過(guò)程中的安全性和穩(wěn)定性要求越來(lái)越高。因此,需要對(duì)整個(gè)生產(chǎn)過(guò)程進(jìn)行監(jiān)控。將分散使用的儀器、儀表、控制器等集中起來(lái)管理,于是就產(chǎn)生了數(shù)據(jù)采集與監(jiān)視控制系統(tǒng),又稱工業(yè)組態(tài)軟件(Supervisory Control And Data Acquisition,SCADA)??缙脚_(tái)SCADA的著重點(diǎn)在于系統(tǒng)在不同的操作系統(tǒng)平臺(tái)之間進(jìn)行移植,都能夠穩(wěn)定正常地運(yùn)行。

    組態(tài)軟件是用于數(shù)據(jù)采集與過(guò)程控制的專用軟件[1],是位于自動(dòng)控制系統(tǒng)監(jiān)控層一級(jí)的軟件平臺(tái)和開(kāi)發(fā)環(huán)境中,一般由數(shù)據(jù)采集與控制信息發(fā)送、歷史數(shù)據(jù)記錄與趨勢(shì)顯示、報(bào)警記錄及事件處理、報(bào)表生成和打印等部分組成。其中,歷史數(shù)據(jù)的收集存儲(chǔ)是工業(yè)組態(tài)軟件不可或缺的一部分,用于記錄SCADA系統(tǒng)中各個(gè)控制器數(shù)據(jù)及狀態(tài)值,為控制系統(tǒng)的故障診斷與數(shù)據(jù)分析等提供數(shù)據(jù)依據(jù)。它主要服務(wù)于設(shè)備性能的維護(hù)、故障原因的診斷以及工藝流程的改進(jìn)。

    理論上,歷史數(shù)據(jù)是系統(tǒng)定時(shí)從實(shí)時(shí)數(shù)據(jù)庫(kù)中采樣,保存到歷史數(shù)據(jù)庫(kù)中的數(shù)據(jù),用戶需要時(shí)可隨時(shí)從歷史數(shù)據(jù)庫(kù)中訪問(wèn)歷史數(shù)據(jù)[2]。歷史數(shù)據(jù)存儲(chǔ)具有歷史數(shù)據(jù)量龐大、歷史數(shù)據(jù)存儲(chǔ)的格式相對(duì)簡(jiǎn)單固定以及數(shù)據(jù)保存的時(shí)間間隔相差很大等特點(diǎn)[3-4]。

    目前,組態(tài)軟件實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)的一些主流產(chǎn)品一般都提供歷史數(shù)據(jù)收集和存儲(chǔ)功能,能夠較長(zhǎng)時(shí)間地保存、備份現(xiàn)場(chǎng)生產(chǎn)運(yùn)行的過(guò)程數(shù)據(jù)。但是由于工業(yè)生產(chǎn)現(xiàn)場(chǎng)的采集點(diǎn)多、采集種類多樣以及采集時(shí)間周期較短,因而要保存的歷史數(shù)據(jù)量非常大。就客觀而言,如果將這些數(shù)據(jù)直接存儲(chǔ),不僅會(huì)占用大量的系統(tǒng)存儲(chǔ)空間,而且會(huì)降低數(shù)據(jù)庫(kù)中數(shù)據(jù)的實(shí)時(shí)性,使數(shù)據(jù)的傳輸、查詢變得困難。因此需要改良目前歷史數(shù)據(jù)的收集和存儲(chǔ)方式,不僅可以節(jié)省磁盤(pán)開(kāi)銷,同時(shí)也保證對(duì)歷史數(shù)據(jù)訪問(wèn)的快捷性[5]。

    本文研究著重點(diǎn)在于如何將大量的實(shí)時(shí)數(shù)據(jù)有效地存入本地SQLite數(shù)據(jù)庫(kù)中,采用關(guān)鍵幀和變更集的兩種方式進(jìn)行數(shù)據(jù)收集,在數(shù)據(jù)的質(zhì)量和存量方面找到平衡點(diǎn),優(yōu)化現(xiàn)有的歷史數(shù)據(jù)收集存儲(chǔ)方式。在Qt開(kāi)發(fā)平臺(tái)上編寫(xiě)程序,并且在Windows和Linux操作系統(tǒng)平臺(tái)上進(jìn)行實(shí)際驗(yàn)證。

1 總體設(shè)計(jì)

    設(shè)計(jì)整體分為歷史數(shù)據(jù)收集設(shè)計(jì)和歷史數(shù)據(jù)存儲(chǔ)設(shè)計(jì)。歷史數(shù)據(jù)收集主要負(fù)責(zé)從國(guó)產(chǎn)可編程邏輯控制器(Programmable Logic Controller,PLC)中采集到數(shù)據(jù)并存入內(nèi)存塊中。歷史數(shù)據(jù)存儲(chǔ)主要負(fù)責(zé)將內(nèi)存塊中的數(shù)據(jù)經(jīng)過(guò)一定處理加工后存入本地SQLite數(shù)據(jù)庫(kù)中,以便日后查詢所需。總體設(shè)計(jì)框圖如圖1所示。

jsj2-t1.gif

    本設(shè)計(jì)采用的數(shù)據(jù)庫(kù)是SQLite數(shù)據(jù)庫(kù)。SQLite是微型關(guān)系型嵌入式數(shù)據(jù)庫(kù),可獨(dú)立運(yùn)行且無(wú)需安裝和配置,運(yùn)行速度塊,內(nèi)存占用小,API易用性強(qiáng),支持大部分SQL-92標(biāo)準(zhǔn),支持事物的ACID特性(持久性、隔離性、一致性和原子性),并且使用一個(gè)數(shù)據(jù)庫(kù)文件來(lái)存儲(chǔ)整個(gè)數(shù)據(jù)庫(kù),同一個(gè)數(shù)據(jù)庫(kù)文件可以在不同應(yīng)用平臺(tái)上使用,代碼完全開(kāi)源[6]。

2 歷史數(shù)據(jù)收集設(shè)計(jì)

    歷史數(shù)據(jù)收集部分是上位機(jī)監(jiān)控軟件(SCADA)所具有功能的一部分,是位于上位機(jī)軟件與國(guó)產(chǎn)PLC接口部分的上行方向,實(shí)現(xiàn)對(duì)PLC原始數(shù)據(jù)的獲取、協(xié)議解析,然后將數(shù)據(jù)存入內(nèi)存塊中。其中,采用的數(shù)據(jù)收集方法是對(duì)死區(qū)限值壓縮算法的優(yōu)化,衍生出關(guān)鍵幀和變更集兩種數(shù)據(jù)記錄方式。

2.1 系統(tǒng)設(shè)計(jì)

    歷史數(shù)據(jù)收集子系統(tǒng)與PLC設(shè)備的數(shù)據(jù)通信方式采用有線方式,使用100 Mb/s(含)以上的以太網(wǎng)通過(guò)國(guó)產(chǎn)控制器實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)測(cè)控設(shè)備實(shí)時(shí)運(yùn)行信息的采集,將實(shí)時(shí)協(xié)議數(shù)據(jù)解析后存儲(chǔ)在內(nèi)存塊中,再提交給上位機(jī)數(shù)據(jù)處理子系統(tǒng)處理。

    歷史數(shù)據(jù)收集子系統(tǒng)作為上位機(jī)監(jiān)控軟件的內(nèi)部數(shù)據(jù)源提供者,要求常年不間斷運(yùn)行,實(shí)時(shí)獲取PLC設(shè)備運(yùn)行數(shù)據(jù),所以必須具有高度的可靠性、穩(wěn)定性和擴(kuò)展性,同時(shí)依據(jù)工業(yè)生產(chǎn)狀況,也要具有強(qiáng)大的數(shù)據(jù)采集能力,其大致流程如圖2所示。

jsj2-t2.gif

    功能說(shuō)明如下:

    (1)數(shù)據(jù)采集:通常采集工業(yè)生產(chǎn)運(yùn)行設(shè)備的模擬量輸入、數(shù)字量輸入、脈沖量;如有需要也可以采集模擬量輸出值和數(shù)字量輸出值。且同時(shí)支持多個(gè)控制器、大數(shù)據(jù)量的采集。采集的數(shù)據(jù)僅僅是數(shù)值,沒(méi)有狀態(tài)和時(shí)間戳。采用定時(shí)機(jī)制采集數(shù)據(jù),最小請(qǐng)求周期可設(shè)置為100 ms(或其整數(shù)倍)~1 s(由控制器傳輸量的多少?zèng)Q定)。

    (2)協(xié)議解析:采用庫(kù)方式支持各種通信協(xié)議的解析,例如自有協(xié)議、Modbus協(xié)議、OPC協(xié)議等[7],每種協(xié)議或者規(guī)約采用獨(dú)立的庫(kù),實(shí)現(xiàn)設(shè)計(jì)要求中的擴(kuò)展性需求。

    (3)變更數(shù)據(jù)轉(zhuǎn)發(fā):解析后的采集數(shù)據(jù)臨時(shí)被放置于數(shù)據(jù)緩沖區(qū),一旦數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)發(fā)生了變化,即達(dá)到存儲(chǔ)數(shù)組的最大下標(biāo)值,則將變更的數(shù)據(jù)集提交給數(shù)據(jù)存儲(chǔ)子系統(tǒng),由數(shù)據(jù)存儲(chǔ)子系統(tǒng)進(jìn)一步對(duì)數(shù)據(jù)進(jìn)行加工處理,加入狀態(tài)和時(shí)間戳[8]等操作。

    (4)診斷統(tǒng)計(jì):診斷功能是指周期性檢測(cè)控制器的主從狀態(tài)(PLC有主從冗余模式:存在兩個(gè)CPU模塊,主CPU運(yùn)行時(shí),副CPU進(jìn)行備份),采集數(shù)據(jù)和下發(fā)指令僅面向主控制器。另外診斷功能還負(fù)責(zé)與任務(wù)管理進(jìn)程通信,告知其當(dāng)前進(jìn)程的運(yùn)行狀態(tài);監(jiān)察對(duì)應(yīng)的通信接口工作狀態(tài),在發(fā)生故障時(shí)發(fā)出報(bào)警。統(tǒng)計(jì)功能指通信過(guò)程的調(diào)試記錄、通信速率、傳輸字節(jié)數(shù)等附加功能。

2.2 數(shù)據(jù)記錄

2.2.1 收集算法

    收集子系統(tǒng)采用的算法原型是死區(qū)限值壓縮算法,在其基礎(chǔ)上進(jìn)行優(yōu)化設(shè)計(jì)。

    死區(qū)限值壓縮算法的原理是通過(guò)判斷當(dāng)前值偏離最后一個(gè)記錄的范圍是否大于死區(qū)限值,來(lái)決定是否記錄此數(shù)據(jù)。如果大于死區(qū)限值,則記錄該數(shù)據(jù)并以此數(shù)據(jù)為新的起點(diǎn)進(jìn)行死區(qū)限制壓縮[9]。算法圖如圖3所示。

jsj2-t3.gif

    設(shè)算法的門(mén)限值是T,起點(diǎn)A的值為V,那么點(diǎn)A的死區(qū)范圍為區(qū)間(V-T,V+T)。點(diǎn)A之后的點(diǎn)值只要沒(méi)有超出死區(qū)范圍就直接放棄,直到F超出死區(qū)范圍,成為新的起點(diǎn)[10]。

    死區(qū)限值壓縮算法雖然能夠得到不錯(cuò)的壓縮率,但是屬于有損壓縮,在工業(yè)生產(chǎn)中,如果長(zhǎng)期缺少某一點(diǎn)的數(shù)據(jù)信息是不合適的,不利于后期分析問(wèn)題。所以為了確保穩(wěn)定記錄工業(yè)設(shè)備運(yùn)行時(shí)的數(shù)據(jù),在數(shù)據(jù)收集算法設(shè)計(jì)上,對(duì)死區(qū)限值壓縮算法進(jìn)行優(yōu)化,在保持原有算法思想不變的基礎(chǔ)上,增加獲取關(guān)鍵幀的數(shù)據(jù)收集方式,定時(shí)收集全部采集點(diǎn)的數(shù)據(jù)信息,形成關(guān)鍵幀和變更集兩種數(shù)據(jù)收集方式。

2.2.2 收集方式

    在數(shù)據(jù)收集子系統(tǒng)中,為了保證數(shù)據(jù)的準(zhǔn)確性,同時(shí)確保收集的數(shù)據(jù)量也不至于過(guò)大,系統(tǒng)采用兩種數(shù)據(jù)收集方式:關(guān)鍵幀和變更集。兩種方式在系統(tǒng)運(yùn)行時(shí),同時(shí)進(jìn)行操作,互不干擾。

    (1)關(guān)鍵幀:操作員可以設(shè)定一定時(shí)間間隔(一般是15 min),系統(tǒng)會(huì)每隔該時(shí)間值對(duì)所有要求收集的點(diǎn)信息全部記錄一遍。

    (2)變更集:系統(tǒng)內(nèi)會(huì)自動(dòng)識(shí)別每一時(shí)刻采集點(diǎn)信息的數(shù)據(jù)值是否存在變化(系統(tǒng)設(shè)計(jì)時(shí),將數(shù)據(jù)變化的閾值默認(rèn)設(shè)計(jì)為0)。數(shù)據(jù)如果存在變化,系統(tǒng)會(huì)將該點(diǎn)信息記錄在內(nèi)存緩沖區(qū)中;反之,系統(tǒng)將不會(huì)收集該點(diǎn)此時(shí)間點(diǎn)的信息數(shù)據(jù)值,即系統(tǒng)只會(huì)收集此時(shí)間點(diǎn)變化的采集點(diǎn)信息數(shù)據(jù)值。

    關(guān)鍵幀的優(yōu)勢(shì)在于保證采集點(diǎn)信息的完整性,不會(huì)存在長(zhǎng)時(shí)間缺失某一點(diǎn)信息的情況。同時(shí),變更集的優(yōu)勢(shì)在于優(yōu)化存儲(chǔ)采集點(diǎn)信息的數(shù)據(jù)量。兩種方式共同作用,優(yōu)勢(shì)互補(bǔ),提高歷史數(shù)據(jù)收集效率,將收集的數(shù)據(jù)量控制在合適的范圍內(nèi)。

    在Qt開(kāi)發(fā)平臺(tái)上,采用設(shè)計(jì)原理,編寫(xiě)程序?qū)煞N方式結(jié)合在一起,具體流程圖如圖4所示。

jsj2-t4.gif

3 歷史數(shù)據(jù)存儲(chǔ)設(shè)計(jì)

    歷史數(shù)據(jù)存儲(chǔ)子系統(tǒng)負(fù)責(zé)對(duì)數(shù)據(jù)收集子系統(tǒng)收集的數(shù)據(jù)進(jìn)行實(shí)時(shí)的處理和存儲(chǔ),目的是將數(shù)據(jù)收集子系統(tǒng)的“生數(shù)據(jù)”加工成“熟數(shù)據(jù)”,即轉(zhuǎn)化為滿足上位機(jī)系統(tǒng)真正需要的數(shù)據(jù)結(jié)構(gòu),并且將數(shù)據(jù)存儲(chǔ)到歷史庫(kù)中,便于以后查詢。

3.1 工作方式

    當(dāng)接收到數(shù)據(jù)收集子系統(tǒng)的轉(zhuǎn)發(fā)模塊發(fā)送來(lái)的消息通知后,系統(tǒng)會(huì)對(duì)數(shù)據(jù)進(jìn)行處理和存儲(chǔ)操作,大致流程如圖5所示。

jsj2-t5.gif

    關(guān)鍵模塊說(shuō)明:

    (1)時(shí)間戳處理:在校時(shí)子系統(tǒng)保證下,為待處理的數(shù)據(jù)批量打上時(shí)標(biāo),標(biāo)明該批數(shù)據(jù)采集的時(shí)刻,為后來(lái)操作提供幫助。

    (2)模擬量處理:具備工程量程轉(zhuǎn)換、線性/非線性變換、零漂修正算法、數(shù)值死區(qū)處理等功能,每個(gè)功能可以采用模塊化設(shè)計(jì)。

    (3)數(shù)字量處理:具備取反功能。

    (4)報(bào)警處理:檢查收集的數(shù)據(jù)是否存在異常,如有異常即報(bào)警提示工作人員。

3.2 關(guān)鍵環(huán)節(jié)

    歷史數(shù)據(jù)存儲(chǔ)系統(tǒng)的關(guān)鍵環(huán)節(jié)分為實(shí)時(shí)數(shù)據(jù)存儲(chǔ)至內(nèi)存緩沖區(qū)中和數(shù)據(jù)從內(nèi)存緩沖區(qū)中轉(zhuǎn)存至本地SQLite數(shù)據(jù)庫(kù)兩部分。

    (1)第一部分

    當(dāng)收集子系統(tǒng)運(yùn)行并有數(shù)據(jù)到來(lái)時(shí),數(shù)據(jù)存儲(chǔ)子系統(tǒng)會(huì)自動(dòng)識(shí)別并在本地磁盤(pán)固定位置新建數(shù)據(jù)庫(kù)文件。數(shù)據(jù)庫(kù)文件是以此刻設(shè)備時(shí)間值為起始,以數(shù)據(jù)庫(kù)文件記錄結(jié)束時(shí)間值為終止的方式進(jìn)行命名。在存儲(chǔ)系統(tǒng)運(yùn)行時(shí),一般是以10 min的時(shí)間跨度來(lái)新建一個(gè)數(shù)據(jù)庫(kù)文件。如果數(shù)據(jù)記錄時(shí)間跨度不等于10 min,系統(tǒng)會(huì)以當(dāng)時(shí)結(jié)束時(shí)間值來(lái)替換新建該數(shù)據(jù)庫(kù)文件時(shí)的結(jié)束時(shí)間值。文件命名形式例如RECORD_20180130014305_20180130014510。數(shù)據(jù)庫(kù)文件新建完成后,并不會(huì)立刻寫(xiě)入數(shù)據(jù),而是等到有內(nèi)存切換的情況,才進(jìn)行寫(xiě)入操作。

    同時(shí),系統(tǒng)開(kāi)辟兩個(gè)內(nèi)存緩沖區(qū)memA和memB,用于臨時(shí)存儲(chǔ)從收集子系統(tǒng)到來(lái)的數(shù)據(jù)。為了使該子系統(tǒng)存儲(chǔ)和轉(zhuǎn)存能夠不停地進(jìn)行,故生成兩塊內(nèi)存區(qū)域:當(dāng)memA存滿時(shí),系統(tǒng)就會(huì)自動(dòng)切換到memB繼續(xù)進(jìn)行存儲(chǔ),而memA就會(huì)進(jìn)行數(shù)據(jù)轉(zhuǎn)存至本地?cái)?shù)據(jù)文件的過(guò)程。對(duì)于單個(gè)點(diǎn)信息數(shù)據(jù),系統(tǒng)采用結(jié)構(gòu)體數(shù)組的形式進(jìn)行存儲(chǔ),數(shù)組的下標(biāo)是根據(jù)當(dāng)前時(shí)間值經(jīng)過(guò)一定數(shù)學(xué)變化來(lái)確定的,部分代碼如下所示:

    pst=(tsmp/(m_isMsec ?1 :1000) )/m_secCount ;

    index=(tsmp/(m_isMsec?1:1000) ) %m_secCount ;

    該結(jié)構(gòu)體數(shù)組就是位于當(dāng)前內(nèi)存塊的空間中,系統(tǒng)會(huì)設(shè)定數(shù)組的大小,當(dāng)數(shù)組下標(biāo)值達(dá)到設(shè)定值后,系統(tǒng)就會(huì)發(fā)送信號(hào),觸發(fā)響應(yīng)函數(shù),自動(dòng)切換到另一塊內(nèi)存緩沖區(qū)中。

    (2)第二部分

    當(dāng)存在一塊內(nèi)存空間存滿后,系統(tǒng)會(huì)自動(dòng)切換內(nèi)存塊,并利用Qt的信號(hào)和槽機(jī)制對(duì)存滿的內(nèi)存塊進(jìn)行轉(zhuǎn)存至數(shù)據(jù)庫(kù)操作,對(duì)另一個(gè)內(nèi)存塊會(huì)繼續(xù)進(jìn)行數(shù)據(jù)收集操作。實(shí)現(xiàn)的部分代碼如下所示:

if(mem== memA)

{

        mem= memB;

}

else

    {

        mem= memB;

    }

    cleanCache(mem);

    m_pst.position = 0;

    m_pst.index = 0;

    對(duì)于當(dāng)前進(jìn)行數(shù)據(jù)轉(zhuǎn)存至數(shù)據(jù)庫(kù)操作的內(nèi)存塊,因?yàn)槠渲写嬖谀M量和數(shù)字量數(shù)據(jù),所以系統(tǒng)會(huì)進(jìn)行轉(zhuǎn)存哈希表、區(qū)分?jǐn)?shù)據(jù)和存入數(shù)據(jù)庫(kù)等處理,最后形成完整的數(shù)據(jù)文件,存在本地磁盤(pán)中。

    數(shù)據(jù)庫(kù)中存在兩種數(shù)據(jù)文件表:模擬量和數(shù)字量,對(duì)兩種數(shù)據(jù)分別進(jìn)行存儲(chǔ),利于后期對(duì)數(shù)據(jù)庫(kù)查詢操作。

4 結(jié)束語(yǔ)

    本文主要介紹關(guān)于歷史數(shù)據(jù)收集和存儲(chǔ)設(shè)計(jì)的思想、關(guān)鍵方法以及實(shí)現(xiàn)。編寫(xiě)的數(shù)據(jù)收集和存儲(chǔ)系統(tǒng)在基于Windows和Linux操作平臺(tái)的實(shí)際運(yùn)行中對(duì)國(guó)產(chǎn)PLC的數(shù)據(jù)采集和存儲(chǔ)操作都能正常穩(wěn)定進(jìn)行,性能指標(biāo)都達(dá)到設(shè)計(jì)要求。

參考文獻(xiàn)

[1] 嵇月強(qiáng).工業(yè)歷史數(shù)據(jù)庫(kù)的研究[D].杭州:浙江大學(xué),2007.

[2] 徐國(guó)風(fēng).實(shí)時(shí)數(shù)據(jù)庫(kù)關(guān)鍵技術(shù)研究[D].西安:西安建筑科技大學(xué),2006.

[3] 江勇,王文海,張龍旗.組態(tài)軟件中歷史數(shù)據(jù)存儲(chǔ)與查詢的一種新方法[J].江南大學(xué)學(xué)報(bào)(自然科學(xué)版),2005,4(6):579-583.

[4] 張?jiān)?組態(tài)軟件中的歷史數(shù)據(jù)處理過(guò)程[J].福建電腦,2010(9):81-82.

[5] 任寶強(qiáng).監(jiān)控組態(tài)軟件實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].保定:華北電力大學(xué),2009.

[6] 張欣.嵌入式數(shù)據(jù)庫(kù)在嵌入式設(shè)備中的研究和應(yīng)用[D].成都:電子科技大學(xué),2012.

[7] 陳騫,劍強(qiáng),汪鐳,等.關(guān)于OPC UA的歷史數(shù)據(jù)獲取[J].微型電腦應(yīng)用,2010,26(2):35-37.

[8] 王凌峰,吳海鑫,陳彥彪,等.工控組態(tài)軟件中數(shù)據(jù)處理的設(shè)計(jì)和實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2000,16(2):33-35.

[9] 陳騫.基于工業(yè)實(shí)時(shí)數(shù)據(jù)的壓縮算法研究[J].科協(xié)論壇,2009(9):106-108.

[10] 金陳武.基于WoT的傳感器數(shù)據(jù)管理技術(shù)[D].北京:北京郵電大學(xué),2014.



作者信息:

鐘洋洋,王毅璇,王  皓,傅一帆

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。