現(xiàn)場(chǎng)應(yīng)用中經(jīng)常會(huì)涉及到數(shù)據(jù)的比對(duì),例如:對(duì)紫金橋?qū)崟r(shí)庫(kù)和關(guān)系庫(kù)的數(shù)據(jù)進(jìn)行比對(duì),可能有多個(gè)解決方案,但是通過(guò)內(nèi)置sql和通用數(shù)據(jù)表的使用可以方便快速的實(shí)現(xiàn)。 下面介紹的事例就是通過(guò)二者結(jié)合實(shí)現(xiàn)紫金橋的歷史數(shù)據(jù)和關(guān)系庫(kù)的數(shù)據(jù)進(jìn)行對(duì)比的功能。
本事例是針對(duì)現(xiàn)場(chǎng)實(shí)際的需求寫(xiě)的,具體需求是:實(shí)現(xiàn)讀取紫金橋歷史庫(kù)里的數(shù)據(jù)進(jìn)行運(yùn)算即當(dāng)天數(shù)據(jù)減去前一天的數(shù)據(jù)的差值(并保存到關(guān)系庫(kù)中),和取自關(guān)系庫(kù)中第三方提供的數(shù)據(jù)進(jìn)行對(duì)比,進(jìn)而實(shí)現(xiàn)數(shù)據(jù)校對(duì)的功能。這里為了系統(tǒng)的調(diào)試把前一天的數(shù)據(jù)使用畫(huà)面上的時(shí)間控件(#_starttime)值來(lái)替代,當(dāng)天的時(shí)間用時(shí)間控制加一分鐘后的值來(lái)代替。
下面是系統(tǒng)架構(gòu)圖:

圖一
一、數(shù)據(jù)庫(kù)組態(tài):T001,T002,T003,TP001,TP002,TP003仿真現(xiàn)場(chǎng)數(shù)據(jù)。

圖二
二、畫(huà)面組態(tài)

圖三
起始時(shí)間控件:_starttime系統(tǒng)調(diào)試時(shí),設(shè)定值作為當(dāng)天時(shí)間。
自由報(bào)表:nTagName,保存需要查詢(xún)pv值歷史的點(diǎn)的點(diǎn)名。

圖四
自由報(bào)表:nTagVal,內(nèi)置 sql返回的點(diǎn)名、前一天8點(diǎn)的值、當(dāng)天8點(diǎn)的值、時(shí)間戳(當(dāng)天的時(shí)間yyyy/mm/dd 8:00:00)

圖五
內(nèi)置sql對(duì)象:MyInsql,查詢(xún)歷史數(shù)據(jù)。(詳細(xì)使用見(jiàn)紫金橋的相關(guān)文檔)
通用數(shù)據(jù)表:MyTable,用來(lái)作為數(shù)據(jù)緩存。(詳細(xì)使用見(jiàn)紫金橋的相關(guān)文檔)
三、關(guān)系庫(kù)里建兩個(gè)關(guān)系數(shù)據(jù)表
表1存儲(chǔ)從歷史庫(kù)查出的當(dāng)天和前一天的差值。

圖六
表2是一組從其他系統(tǒng)讀入的校準(zhǔn)值即準(zhǔn)確值。

圖七
四、運(yùn)行時(shí)的控制邏輯實(shí)現(xiàn)
1.在窗口進(jìn)入窗口腳本里使用間接變量指向TP001,TP002,TP003,這樣對(duì)TNum[0], TNum[1], TNum[2]的操作就等于對(duì)TP001.PV, TP002.PV, TP003.PV的操作。

圖八
2.定義通用數(shù)據(jù)表對(duì)象和實(shí)型數(shù)據(jù)變量,字符變量。

圖九
3.通過(guò)內(nèi)置sql對(duì)象查詢(xún)“前一天”和“當(dāng)天”的歷史。

圖十
4.計(jì)算二者的差值寫(xiě)入到紫金橋?qū)崟r(shí)庫(kù)中(TNum[i] = val1 – val2,見(jiàn)第1步)并插入關(guān)系庫(kù)的表一中。

圖十一
5.把時(shí)間基、“當(dāng)天”、“前一天”、差值以及校正值插入自由報(bào)表nTagName內(nèi)顯示。

圖十二
五、運(yùn)行時(shí)的效果。
軟件系統(tǒng),在時(shí)間控件里設(shè)置一個(gè)時(shí)間。大約一分鐘后查看畫(huà)面如下效果:

圖十三
關(guān)系庫(kù)里的表一和表二如下:

圖十四

圖十五
注意:表2因?yàn)闆](méi)有實(shí)際的現(xiàn)場(chǎng)環(huán)境,為了測(cè)試需要手動(dòng)寫(xiě)入了一些數(shù)據(jù)。
到此,本事例介紹完畢。
有任何關(guān)于組態(tài)軟件的技術(shù)問(wèn)題或需要更多的技術(shù)資料,可以在微信(微信號(hào):Realinfo)留下聯(lián)系方式或者到http://www.realinfo.cc/交流論壇里提出,我們將及時(shí)為您解答。
|