第 19卷 第 23期電子設計工程2011年 l2月 V01.19 NO..2011基于數據庫的亞控軟件報表設計孫彥鵬,鄭 晟 ,李曉輝(太原理工大學 信息工程學院,山西 太原 )摘要 :亞控的監控軟件在 國內監控領域 中被大量應用 ,占有相當大的份額 。的監控能力強,在生成月報表 、年報表時,其 內置的報表功能較弱。如果處理數據量較大,生成報表時會消耗大量系統資源,此時若有突發事件需要處理,則會影響監控功能。監控中心一般配置有大容量高性能的服務器,由服務器完成處理數據生成報表的工作 .監控軟件根據需要調取報表 ,則既充分利用服務器強大的數據計算能力,又顯著地減少監控計算機的數據處理任務,使其有更多任務時間分配給監控任務。筆者以隧道監控為例,綜合運用與生成報表。關鍵詞 :組態王 ;服務器;報表 ;數據庫中圖分類號 :rP3l2文獻標識碼 :A文章編號 :1674—6236(20l1)23—0053— Yan—peng,ZHENG Sheng,-hui(Co//,,,China):.t-,. ,eded ,.,--ch in puter. high- , ,.,, r2005.:;;;近年來 。
國家重點建設交通領域 ,公路建設得到極大的其他軟件無法讀取其 中數據 。由于缺少直接對 自 發展 ,取得了令人矚 目的成績 。2010年底 ,全國公路總里程突帶工業數據庫進行處理的API函數 .目前常用 的處理方法是 破 400萬公里 .達 400.82萬公里,全 國高速公路達 7.41萬公將數據從工業數據庫 中讀 出到表中.利用表 的 自帶函數將表 里,居世界第二位 。全 國公路隧道為 7384處,512.26萬米 , 中的數據運算后生成歷史報表 。如圖 1所示 。如果采集變量 比上年末增加 1245處 .118.06萬米 ,比“十五”末增加 4495 多、統計時間跨度長 ,這種生成報表 的方法將消耗大量 的系 處、359.55萬米。其 中,特長隧道 265處、l13.80萬米 ,長隧道統資源 。 1218處、202.08萬米[1J。隧道內空間狹小、與外界聯系相對較【塾塑墨叁J 困難,隧道中突發事件具有隨機性和不可預測性翻。如果不采. . . . . . . . . . . i....一l存儲到-7-業數據庫I 取及 時 的監控 、消防、救援措施 ,會造成無法挽 回的巨大損 失 。
因此需要監控隧道 中的實時狀況 ,根據生成各種報表分讀取數據到自帶表中 析具體隧道 的通行特點,制定完善的預案措施 ,減少發生事表格API函數運算 故時人員和 財產 損失 。 目前 隧道 中常用 的監控軟件 有 、、WINCC、MCGS等 ,其 中 占生成歷史報表 I I生成實時報表 有相當大的比例 ,很有必要研究它的報表生成方式 。圖 1 改進前生成報表的方法Fig.1 1 兩種生成報表的流程及特點圖2為改進后 的方法 .將 采集到 的數據 同時存人 自帶的報表功能,使用 自定義格式的數據庫, 自定義格式的數據庫和通用數據庫 (文中選取),在中生成報表,并由 收稿 日期 :2011-09—29稿件編號 : 作者簡介 :孫彥鵬(1984一),男,山西運城人 ,碩士研究生。研 究方 向:控制理論與控 制工程 。- 53.. 萬方數據《電子設計工程)2011年第23期l塾量墨叁I. .. ... .. .. .. ... .. 1l.........一存儲到SQL數據庫I二二j[二==隈務器運~-SQL腳本二二二[二二查詢報表l生成實時報表ll生成歷圖2 改進后生成報表 的方法圖3 記錄體的格式Fig.2 .3 巧data調取 。
3554),界面 中風機 “停止 ”按鈕 ,所對應 的代碼如在 中,定義變量時,選擇合適的記錄方式,可 以下 :將采集數據 的數據寫入其 自定義的工業數據庫 中。如果將按下時:\\本站點 一stop=0;采集 的數 據錄入 .則需要 采用按住時:\\本站點xfj—stop=l;\\本站點xfj—no=2;ODBC的訪 問接 口。抬起時:\\本站點xfj—stop=0;1.1 oDBC簡介停開放數據庫互連 (vity,ODBC)是= (3oo) = (3oo)35O2 35Ol微 軟公 司 開放 服務 結構 (WOSA,摸屏編摸式&l6 #)中有關數據庫 的一個組成部分 .它建立 了一組= (300)= (3OO:規范 ,并提供了一組對數據庫訪問的標準 API(應用程序編程接1:3)。這些API利用SQL來完成其大部分任務。ODBC本身中心控制字摸式一 觸#2也提供了對 SQL語言的支持,用戶可以直接將 SQL語句送丙給。
= (3O0)3501在服務器上新建一個 SQL數據庫 (數據庫名為 :~xdma.摸式mdf),用 控制面板 中自帶的(32bit)1管理工具新建一個 (}.mdf)驅動的數據圖 4 風機 PLC代碼三 中源,名為:,然后配置該數據源,指向SQL數據庫4[1。Fig.4 PLC .2 中連接 SQL 一 號分析 以上代碼可知 ,點擊 “停止 ”按鈕 時.\\本站點在 “應用程序命令語言~運行時”輸入下列代xfj—stop產生的脈沖在 “數據改變語言”中,檢測 \、本站點碼 :\、本站點 \=\\本站點 \$日期+…’+\、本站點 \$時一 stop的脈沖上升沿 ,將數據 以記錄體 規定的字段方間 :在 “應用程序命令語 言一 啟動時”輸入下列代碼 : 式寫入 表中,具體代碼如下:(,”DSN=;UID=;PWD=“);根據實if(\\本站點xfj—stop==1)際情況填寫 數據庫的UID和PWD.使 與{數據源在 運行之初建立了連接。
\\本站點xfj—state=4;1.3 中表和中記錄體(,””,””);以風機表 的處理為例 ,在服務器的數據庫 中定義1表 ,如表 1所示 ;在 “QL訪 問管理器”中的1.4.2 模擬量數據錄入數據庫的實現方法“記錄體”選項 中建立記錄體 ,如圖3所示 。模擬量數據錄入 數據庫的方式類似于數字量 .不表1 表字段設計同之處在于 .模擬量錄入代碼在 “數據改變語言”的 “秒 ”改變Tab.1 data腳本中實現每 5S往 數據庫中錄人一次數據。以下為具體代碼:if(\、本站點 \$秒%5==0){(,””,””);}1.4 錄入數據庫的實現方法2 數據庫部分表的結構及代碼1.4.1 數字量數據錄入數據庫的實現方法如圖4所示數據庫表設計軟件,PLC代碼中,所有風機的停止代碼共用相由插入的數據是原始數據 ,存同的中心控制字 (PLC地址為 3505)和 中心編號 (PLC地址為放在原始數據表 中。
模擬型數據 ,則需將原始數據處理后存- 54- 萬方數據孫彥鵬 .等 基于數據庫的亞控 軟件報表設計 入專門定義 的模擬量 日報表 中,加快之后 查詢報表(6,2),CO最小值 (6,2), 速度。對于風機 、車道指示器等數字量 ,用戶關心的是某個操CO均值 (6,2),vi最大值 (6,2),vi最小值 作員在某個時刻對某個設備進行了某種操作 ,這在原始表中(6,2),vi均值 (6,2))as 已經有 明確 的記錄 .因而不需建立數字量Et報表 。當 日報表@Fcovi from from covi 中的某 時刻的記錄生成后 ,刪 除模擬量的原始表中對應 的數_ rpt 據 ,以節省服務器硬盤空間5[1。(char(13),時間 日期 ,120)@ 2.1 由原始表生成模擬量 日報表and@一每小時的記錄在 中建立 covi日報表 ,字段類型及說 明union 如表 2所示 。
(char(10),時間 日期,120)+’日總計 ’as’時表 rpt表字段間 日期 ’,Tab.(co最大值)as’co最大值’,min(co最小值)as’co最小值’,avg(co均值)as’co均值’,mxa(vi最大值)as’vi最大值’,min(vi最小值)as’vi最小值’,avg(vi均值)as’vi均值’from (char(13),時間 日期,120)@@t(char(10),時間 日期 ,120)+’日總計一 某一天的記錄在 中建立 covi日報表 的存儲過程 ,將上一)a 小時的原始數據匯總后寫入 日報表 ,其代碼如下:asend— (char(13),時間 日期數據庫表設計軟件,120)+’時’as’時間 日由日報表 covi—rpt生成 covi的月報表 covi—mpt,由月報 期 ’,max(co)as’CO最大值 ’,min(CO)as’co最小值 ’,avg(CO) 表 生成 covi的年報表 的思路與 由原始表_ as’CO均值 ’,max (vi)as’vi最大值 ’,min (vi)as’vi最小值 ’, 生成 日報表 類似 ,其具體代碼略去 。
avg(vi)as’vi均值 ’具體查詢和區間查詢使用相 同的代碼 ,設定開始時間from @和結束時間@兩個輸入參數 。具體查詢時,(char(13),時間 日期 ,120)=傳遞相同的參數給 @和 @,即查詢的(char(13),(hour,-1,()),120)起始時間等于結束時間。g02.4 刪除原始表 中冗余數據 2.2 在 中建立作業原始表中的數據 ,只是用來產生 日報表,當 日報表某條建立作業 。在每小 時的某個 固定時刻執行存儲過程記錄生成之后,原始表中生成該記錄的數據為冗余數據,可 covid.將上一小時原始表 中的模擬量數據匯總后寫入對應以刪除以釋放硬盤空間。為 日報表建立觸發器實現 ,_ 的日報表。將 服務啟動,并設置為 自動啟動,否則其代碼如下[81:as 作業不會被執行 ,設置方法為:我 的電腦一 控制面板一 管理—— 工具一服務一 右鍵 一 屬性一 啟動類(char(10),時間 日期 ,120) 型一一選擇 ”自動啟動”一一確定6[1。
in 2.3 對 日報表 中的記錄按天匯總((char(t0),時間 日期 ,120)from )日報表 covi—rpt中的記錄是 以小時為單位 ,中2.5 中查詢數據庫的代碼 生成 日報表時不僅要顯示每小時的數據 ,而且要求按天進行中主要使用 和 匯總 ,因此需要對 covi—rpt中的記錄進行再次匯總 。用 內嵌表兩個下拉框控件。一個下拉框 值函數實現上述,產生的數據不插入 日報表 covi—rpt中,其代負責報表類型 ,可供選擇的選項有 日報表、月報表、年報表, 碼如下 :默認選項為 日報表,另一個下拉框負責查詢類型.可供選擇 f(@ (10),@ 的選項有具體查詢和區間查詢,默認的選項為具體查詢。為 (10))選定的控件關聯變量名 .并連@ (時間 日期 char(10),CO最大值接數據庫 ,控件 的- 55.. 萬方數據《電子設計工程}2011年第23期month、year等屬性都是 float型,要將控件所選擇 的 日期傳遞[3】百度百科.ODBC$31:4~源 E【B/OL】.(2007—01—40)[2011-09—給數據庫 自定義函數的nchar型參數 ,最好進行數據類型顯011.http:/b/aike.baidu.corn/view/.htm.示轉換 。
此外,因為服務器中 日報表 的 日期時間列為 nchar [4]百度文庫.組態王6.53初級培訓教程一完整版 (9~12講).[EB/型,不是 型,所 以還需將諸如 2011-8—3等轉換為OL].(201l一02-28)2【011-09-01].http://wenku.baidu.com/2011-08—03的形式9[】。建立一個按鈕 ,命名為 “查詢”,按下該view/723d.htm1.按鈕時,將下拉框所選 內容對應的參數以動態 SQL語言的形[5]郭敬文,吳克河,郭穎.面向電力系統的跨平臺報表 系統 J【].式傳遞給服務器 ,服務器將查詢結果返 回給 現代 電力 ,2003,20(1):88—90.Class控件GUO Jing-wen,WU Ke—he, GUO Ying. J【J. 結 論Power,2003,20(1):88-90.針對 自帶的報表功能生成月報表與年報表較6【】林毅奇.自動報表 的設計與實現 D【】.廈 門:廈門大學,2006.為困難的問題,給出了另一種生成方法。
選擇 【】王慶忠.市級供 電公司電力報表系統的研究與實現[D].北作為數據庫 l0【1,存數監控軟件采集到的數據,并生成各種報京 :華北電力大學.2006.表 ,綜合使用了自定義函數、存儲過程、觸發器、作業等 SQL [8】鄒建.中文版~ 與管理應用實例 M【】.北功能模塊,大大地加快數據運算 ,減輕監控計算機的負擔。京 :人 民郵電出版社 .2005.參考文獻 :[9】劉韜,樓興華.數據庫系統開發實例導航[1】中華人 民共和 國交通運輸部.2010年公路水路交通運輸行[M].北京:人 民郵電出版社 ,2004.業發展統計公報 E【B/OL].(2011—04—28)[2011—09—01]. 1【0】喬曉明,陳有為.基于~建數據挖掘應用fJ1.現http://www.moc.gov.cn//// 代 電子技 術,2011(4):35—37.//.htm1.—ming,-wei.ing2【】盧毅,曹枚,季錦章.隧道聯動控制預案研究—— 中國高速【J.Modem ,2011公路隧道監控與運營管理技術研討會論文集 C『]//中國公(4):35—37.路 雜志社 .2008:38—40.恩智浦推出業界首款集成了LCD段碼驅動器的—M0微控制器恩智浦半導體 (.V.)推 出和系列微控制器一這是業界首款集成 了LCD段碼驅動器的—M0微控制器,可在單一芯片中實現高對 比度和亮度 。
和 內置 了恩智浦 驅動器,適用于 內含 多達4個底板和40段碼的靜態或 多路復用液晶顯示器.并能與多段 ID驅動器輕松實現級聯 .容納最 多2560段碼 ,適合更大的顯示器應用。恩智浦和 系列可將 總體系統成本降低 15%.同時提供 LCD無縫集成,適合工業 自動化、白色家電、照明設備、家用電器和便攜式醫療器械等多種應用。與 目前普通的LCD段碼驅動器解決方案相 比,恩智浦驅動器可靠性更高,可支持 2.5~6.5V寬LCD電源范 圍,使得 和 成為低 閥值和高閥值 LCD接 口的理想選擇 。集成 提高了系統可靠性和質量 .降低 了電氣互聯和兼容 問題 ,同時具備片上顯示RAM和多種 閃爍模式等關鍵特性 。除了整屏 閃爍之外 .和的閃爍頻率可以隨意配置 ,支持任意 LCD器件上 的交替信息顯示。微控制器發 出的顯示數據可 以存儲在 40x4位片上顯示RAM 中,并直接映射顯示在 LCD器件上 。另外 ,即使在微控制器牌低 電模式下仍可維持這些特征 .因此 。
和對于要求低成本 LCD段碼集成的低功率 8/16位應用 ,也是一款極具競爭力的解決方案 。支持最大32kB 閃存 、,提供豐富的外設支持,包括 2個 SSP、EC(FM+)、UART、4個系統定時器和一 個 8通道 10位高精度 ADC。作為節能高效系列的擴展產品.也具備獨特 API驅動 電源配置功能.提供即用型電源管理模板,設計人員通過簡單的API調用,即可進行運行時間優化,提高系統性能、效率和有源功耗。與 具有同樣功能集,另外還具備 128kB 閃存 以及創新型模擬外設.如雙路模擬 比較器,內建 32階基準 電壓 、邊緣和 電平檢測以及輸 出反饋環路 。是 工業控制系列的最新產品,也是安全關鍵型工業 自動化和白色家電應用的高可靠性解決方案。系列通過了—公司按照 —1標準進行的電快速脈沖群 (EFT)測試 .額定為高抗擾度等級 .并通過 了類認證。咨詢編號 :- 56- 萬方數據