系統(tǒng)監(jiān)控軟件的設(shè)計和實現(xiàn)
對于一個計算機監(jiān)控系統(tǒng)來說,硬件是基礎(chǔ),軟件是靈魂。軟件已經(jīng)成為計算機系統(tǒng)的主體,在很大程度上決定了系統(tǒng)的先進性、可靠性、實用性以及實時性。信息管理及監(jiān)控軟件是一種特殊的軟件,它具有如下特點:
1.要求可靠性特別高??煽啃圆粌H意味著系統(tǒng)工作的正確性,而且要求系統(tǒng)工作的連續(xù)性。例如控制過程不允許中斷,系統(tǒng)中各種參數(shù)不允許丟失;
2.要求監(jiān)控軟件實時性強。實時性要求系統(tǒng)能夠?qū)崟r反映監(jiān)測量并及時做出控制決策,即具有較快的響應(yīng)速度。
3.要求軟件的使用和維護方便。信息管理及監(jiān)控軟件主要由工程技術(shù)人員和操作人員使用,要求系統(tǒng)的使用和維護都很方便。
4.要求支持?jǐn)?shù)據(jù)庫安全登錄,數(shù)據(jù)庫訪問權(quán)限和程序使用安全。
5.支持?jǐn)?shù)據(jù)庫備份和基于事務(wù)的數(shù)據(jù)庫操作,數(shù)據(jù)集中管理并且具有很強的綜合統(tǒng)計、分析及報表輸出功能。
充分利用計算機的強大的處理能力,設(shè)計出實時性好、監(jiān)測控制高效可靠,軟件分析功能齊全,并且具有動畫效果、操作界面友好的信息管理及監(jiān)控軟件是本系統(tǒng)的主要任務(wù)。
Windows 2000是Windows NT 4.0的升級產(chǎn)品,不但集Windows 9x和Windows NT 4.0的眾多優(yōu)良的功能/性能于一身,而且在穩(wěn)定性、網(wǎng)絡(luò)功能和安全性能方面,比Windows NT 4.0都有了極大的改善。它不僅可以在一個小的工作組網(wǎng)絡(luò)中為用戶提供文件服務(wù)和打印服務(wù),也可以在一個大型企業(yè)的網(wǎng)絡(luò)中為用戶提供應(yīng)用程序、Web瀏覽與發(fā)布、文件傳輸、電子郵件和通訊等服務(wù),是一個性能更好、工作更穩(wěn)定、更容易管理的操作系統(tǒng)。因此上位機采用的操作系統(tǒng)是Microsoft公司的Windows 2000 Server。
由Inprise公司(原Borland公司)推出的基于Windows平臺的可視化快速應(yīng)用開發(fā)工具Delphi 6.0在數(shù)據(jù)庫編程方面功能十分強大而且有很強的程序界面開發(fā)能力。本控制系統(tǒng)的系統(tǒng)監(jiān)控軟件主要采用Delphi 6.0來開發(fā)。
系統(tǒng)監(jiān)控軟件總體結(jié)構(gòu)設(shè)計
軟件總體設(shè)計的任務(wù)是確定軟件的總體結(jié)構(gòu)、子系統(tǒng)和模塊的劃分,并確定模塊間的接口和評價模塊劃分的質(zhì)量,以及進行數(shù)據(jù)分析。按照軟件工程學(xué)的觀點,軟件的總體設(shè)計在整個軟件的開發(fā)過程中處于十分重要的地位。在詳細(xì)編寫代碼之前進行總體設(shè)計,可以站在全局的高度上,用較少的成本,從抽象的層次上來分析對比多種可能的系統(tǒng)實現(xiàn)方案和最合理的軟件結(jié)構(gòu),從而可以用較低的成本開發(fā)出質(zhì)量較高的軟件來??傮w設(shè)計過程通常由兩個主要的階段組成:
1)系統(tǒng)設(shè)計,即確定系統(tǒng)的具體實現(xiàn)方案;
2)結(jié)構(gòu)設(shè)計,即確定軟件的結(jié)構(gòu)。
軟件總體設(shè)計的具體步驟如下:
1.提出各種可供選擇的方案;
2.對各個方案進行論證,選取合理的方案,對于每個合理的方案都應(yīng)該有系統(tǒng)流程圖、組成系統(tǒng)的物理元素清單、成本效益分析和實現(xiàn)這個系統(tǒng)的進度進化;
3.確定最佳方案,在綜合分析對比各種合理方案的基礎(chǔ)之上選擇一個最佳方案;
4.功能分解。通常分為結(jié)構(gòu)設(shè)計和過程設(shè)計兩個階段。結(jié)構(gòu)設(shè)計確定程序由哪些模塊組成,以及這些模塊之間的關(guān)系;過程設(shè)計確定每個模塊的處理過程。
5.設(shè)計軟件結(jié)構(gòu),將各個模塊組織成良好的層次系統(tǒng);
6.?dāng)?shù)據(jù)庫設(shè)計,即在需求分析階段對數(shù)據(jù)要求所做的分析的基礎(chǔ)上進一步進行數(shù)據(jù)庫設(shè)計、子模式設(shè)計、完整性設(shè)計和安全性設(shè)計并進行優(yōu)化;
7.制定測試計劃:在軟件開發(fā)的早期考慮測試問題,能促使軟件設(shè)計人員在設(shè)計時注意提高軟件的可測試性;
8.書寫文檔:應(yīng)該用正式的文檔記錄總體設(shè)計的結(jié)果,在這個階段應(yīng)該完成的文檔有系統(tǒng)總體設(shè)計說明、用戶手冊、測試計劃、詳細(xì)的實現(xiàn)計劃和數(shù)據(jù)庫設(shè)計說明;
9.審查與復(fù)查:對總體設(shè)計的結(jié)果進行嚴(yán)格的技術(shù)審查,在技術(shù)審查之后由使用部門的負(fù)責(zé)人從管理的角度進行復(fù)審。
根據(jù)軟件總體設(shè)計的要求和過程,我們對系統(tǒng)的信息管理及監(jiān)控程序按不同的功能進行功能分解,劃分為不同的模塊。供水自動化計算機控制系統(tǒng)的信息管理及監(jiān)控軟件主要包括數(shù)據(jù)采集和通信、設(shè)備狀態(tài)控制和數(shù)據(jù)管理三個部分。數(shù)據(jù)采集和通信部分采集水位、壓力、流量、電壓和電流等數(shù)據(jù),用于記錄、存儲和分析,以及與PLC網(wǎng)絡(luò)通信。設(shè)備控制部分根據(jù)采集到的數(shù)據(jù)判斷系統(tǒng)當(dāng)前的運行狀態(tài),并可通過修改運行參數(shù)對設(shè)備工作狀態(tài)進行調(diào)整。數(shù)據(jù)管理部分負(fù)責(zé)數(shù)據(jù)的統(tǒng)計、查詢以及打印輸出,還有數(shù)據(jù)庫的備份和維護。
整個系統(tǒng)具有數(shù)據(jù)采集、存儲和分析功能,并能夠通過分析和計算制作相應(yīng)的數(shù)據(jù)報表,系統(tǒng)主界面如圖3-2所示。下面對各個部分功能和作用進行詳細(xì)的介紹。
數(shù)據(jù)采集和通信
數(shù)據(jù)采集部分由通信參數(shù)設(shè)定、數(shù)據(jù)處理、通信模塊和數(shù)據(jù)存儲模塊組成。
參數(shù)設(shè)定模塊包括傳感器參數(shù)設(shè)定和通信參數(shù)設(shè)定。傳感器參數(shù)設(shè)定用于設(shè)置傳感器的采樣頻率、閥值等。通信參數(shù)設(shè)定用于設(shè)定PC機與PLC之間的通信參數(shù)和協(xié)議。
數(shù)據(jù)處理模塊用于對從PLC讀取的數(shù)據(jù)按照約定的格式進行分解處理。對于采樣數(shù)據(jù),運用濾波方法對其進行必要的處理后存入數(shù)組。
通信模塊包括數(shù)據(jù)通信和通信測試。數(shù)據(jù)通信用于從PLC讀取各種數(shù)據(jù)和狀態(tài)信息以及下達(dá)控制命令和各種參數(shù)調(diào)整結(jié)果。通信測試模塊具有通信測試和診斷功能,確保通信狀態(tài)良好。通信測試界面如圖4-5所示。在下一章對其進行了詳細(xì)的介紹。
數(shù)據(jù)存儲模塊將采集到的生產(chǎn)過程中的各種重要運行數(shù)據(jù)加以處理并存入相應(yīng)的數(shù)據(jù)庫。
設(shè)備狀態(tài)控制
設(shè)備狀態(tài)控制部分由設(shè)備參數(shù)設(shè)定、報警處理、設(shè)備狀態(tài)調(diào)整和設(shè)備狀態(tài)顯示模塊組成。
設(shè)備參數(shù)設(shè)定用于設(shè)定各種設(shè)備的工作狀態(tài)參數(shù)和運行參數(shù),如變頻器的頻率上限、調(diào)整速度、電機的最高轉(zhuǎn)速等。
報警處理在發(fā)生生產(chǎn)故障時立即報警,發(fā)出報警聲音同時使報警畫面閃爍,以引起操作人員的注意。記錄報警發(fā)生時的有關(guān)信息,如報警信息、故障報警時間、確認(rèn)報警時間等,并對報警信息進行管理。
設(shè)備狀態(tài)調(diào)整包括參數(shù)優(yōu)化和其他設(shè)備狀態(tài)調(diào)整。其他設(shè)備狀態(tài)調(diào)整用于在計算機上對各種生產(chǎn)設(shè)備進行運行狀態(tài)調(diào)整以及開動、停止等操作。參數(shù)自優(yōu)化主要是通過PLC反饋的壓力和水位自動調(diào)整PID參數(shù),下傳到PLC中,通過PLC的PID調(diào)節(jié)功能實現(xiàn)系統(tǒng)的控制;此外還具有重要參數(shù)的優(yōu)化調(diào)整功能。只有當(dāng)系統(tǒng)處于控制狀態(tài)時,其他設(shè)備狀態(tài)調(diào)整才有效,否則無效。
設(shè)備狀態(tài)顯示用于動態(tài)顯示生產(chǎn)過程中的重要設(shè)備(如水泵、電動閥等)的啟動、停止和故障。水泵電機狀態(tài)參數(shù)顯示如圖3-4所示。用趨勢圖的形式動態(tài)顯示清水池水位、管網(wǎng)壓力、取水和供水流量、電壓、電流等。操作人員通過狀態(tài)顯示流程圖就可以很方便的了解生產(chǎn)中各種設(shè)備的工作狀況。
數(shù)據(jù)管理
數(shù)據(jù)管理部分包括數(shù)據(jù)查詢、數(shù)據(jù)備份和數(shù)據(jù)輸出三個方面。
數(shù)據(jù)查詢模塊主要包括歷史數(shù)據(jù)查詢,查詢選擇畫面如圖3-5所示。歷史數(shù)據(jù)查詢包括管網(wǎng)壓力歷史數(shù)據(jù)、水位歷史數(shù)據(jù)、取水和供水流量歷史數(shù)據(jù)、電耗表等,還可查詢重要設(shè)備的運行參數(shù)、狀態(tài)、操作記錄以及報警的歷史記錄。
數(shù)據(jù)備份模塊負(fù)責(zé)各種數(shù)據(jù)庫的備份以及維護。信息管理及監(jiān)控軟件會定期將數(shù)據(jù)庫備份到另外的目錄下保存,并將當(dāng)前使用的數(shù)據(jù)庫清空。該操作可由管理員手工執(zhí)行和設(shè)定。
數(shù)據(jù)輸出模塊負(fù)責(zé)各種數(shù)據(jù)及指標(biāo)的分析和匯總,并生成報表和打印輸出。軟件能夠根據(jù)選定的日期和數(shù)據(jù)類型生成日生產(chǎn)報表、月生產(chǎn)報表、年生產(chǎn)報表、電耗表等,同時還能以直觀的圖的形式和報表的形式打印。
此外,本系統(tǒng)還具有操作權(quán)限控制功能,采用分級密碼控制訪問者的訪問權(quán)限。
數(shù)據(jù)庫設(shè)計
供水系統(tǒng)的信息管理及監(jiān)控軟件是以數(shù)據(jù)庫為基礎(chǔ)建立的信息系統(tǒng)。數(shù)據(jù)庫管理系統(tǒng)既要具有較高的性能,又要具有兼容性和適應(yīng)性。根據(jù)需要解決的的企業(yè)管理問題和生成報表的格式,并考慮當(dāng)前企業(yè)所使用的數(shù)據(jù)記錄表格,本系統(tǒng)采用關(guān)系型數(shù)據(jù)庫結(jié)構(gòu)。
數(shù)據(jù)庫設(shè)計的原則
數(shù)據(jù)庫邏輯設(shè)計,即如何構(gòu)造合適數(shù)據(jù)模式(邏輯結(jié)構(gòu))問題時數(shù)據(jù)庫設(shè)計中的關(guān)鍵問題。一般來說,數(shù)據(jù)庫邏輯結(jié)構(gòu)的設(shè)計需要滿足規(guī)范化的前3級標(biāo)準(zhǔn):
第1規(guī)范:沒有重復(fù)的組或多值的列,并且字段的類型不隨記錄而改變。
第2規(guī)范:要求所有字段包含依賴完整主鍵的數(shù)據(jù),即每個非關(guān)鍵字段必須依賴于主關(guān)鍵字,不能依賴于一個組合式主關(guān)鍵字的某些組成部分。
第3規(guī)范:要求不存在傳遞依賴關(guān)系,即一個非關(guān)鍵字段不能依賴于另一個非關(guān)鍵字段。
遵守這些規(guī)則設(shè)計的數(shù)據(jù)庫會產(chǎn)生較少的列和更多的表,因而也就減少了數(shù)據(jù)冗余,也減少了用于存儲數(shù)據(jù)的頁。但表關(guān)系也許需要通過復(fù)雜的合并來處理,這樣會降低系統(tǒng)的性能。某種程度上的非規(guī)范化可以改善系統(tǒng)的性能,非規(guī)范化過程可以根據(jù)性能方面不同的考慮用多種不同的方法進行,下面的一些方法可以有助于性能的提高。
1、如果規(guī)范化設(shè)計產(chǎn)生了許多四路或更多路合并關(guān)系,就可以考慮在數(shù)據(jù)庫實體(表)中加入重復(fù)屬性(列)。
2、所用的計算字段(如總計等)可以考慮存儲到數(shù)據(jù)庫實體中。
3、重新定義實體以減少外部屬性數(shù)據(jù)或行數(shù)據(jù)的開支。
相應(yīng)的非規(guī)范化類型是:
① 把一個實體(表)分割成兩個表(把所有的屬性分成兩組)。這樣就把頻繁被訪問的數(shù)據(jù)同較少被訪問的數(shù)據(jù)分開了。這種方法要求在每個表中復(fù)制首要關(guān)鍵字。這樣產(chǎn)生的設(shè)計有利于并行處理,并將產(chǎn)生列數(shù)較少的表。
② 把一個實體(表)分割成兩個表或多個表(把所有的行分成兩組或多組)。這種方法適用于那些將包含大量數(shù)據(jù)的實體(表)。在應(yīng)用中常要保留歷史記錄,但是歷史記錄很少用到。因此可以把頻繁被訪問的數(shù)據(jù)同較少被訪問的歷史數(shù)據(jù)分開。
數(shù)據(jù)庫的建立
數(shù)據(jù)庫用于保存系統(tǒng)運行過程中的一些信息。信息管理及監(jiān)控軟件的主要數(shù)據(jù)信息包括:與設(shè)備有關(guān)的數(shù)據(jù),如水泵電機參數(shù)、電機運行狀況記錄等;與生產(chǎn)有關(guān)的數(shù)據(jù),如管網(wǎng)壓力、清水池水位、進水流量、出水流量、耗電量等;與系統(tǒng)運行有關(guān)的數(shù)據(jù),如工作人員、訪問權(quán)限、系統(tǒng)參數(shù)設(shè)置等都要保存到數(shù)據(jù)庫中。
下面我們列出部分表的主要結(jié)構(gòu):
1、水泵電機參數(shù)表:用于存儲一級、二級泵房所有水泵電機的各種基本數(shù)據(jù)。
bh * 數(shù)字(長整型) 編號 水泵電機的統(tǒng)一編號
scwz 文本(20) 所處位置 水泵電機所處位置
jzh 文本(20) 機組號 現(xiàn)場的機組編號
sbxh 文本(10) 水泵型號
yc 文本(10) 揚表5-1水泵電機參數(shù)表
程 水泵的設(shè)計揚程
ll 文本(10) 流量 水泵的額定流量
sbzs 文本(10) 水泵轉(zhuǎn)速 水泵的額定轉(zhuǎn)速
jzxh 文本(20) 電機型號
gl 文本(10) 功率 電機的額定功率
djzs 文本(10) 電機轉(zhuǎn)速 電機的額定轉(zhuǎn)速
dl 文本(10) 電流 電機的額定電流
2、表3-2電機運行狀況表:用于記錄電機的工作狀態(tài)以及操作記錄
字段名稱 數(shù)據(jù)類型 意義 備注
bh * 數(shù)字(長整型) 編號 水泵電機的統(tǒng)一編號
rq 日期 日期 水泵電機所處位置
sj 時間 時間 發(fā)生該項操作的時間
zt 文本(10) 電機狀態(tài) 狀態(tài)如何改變
pl 文本(10) 運行頻率 水泵的設(shè)計揚程
3、表3-3報警記錄表:用于記錄系統(tǒng)運行過程中的各種報警信息
字段名稱 數(shù)據(jù)類型 意義 備注
ID * 數(shù)字(長整型) 記錄編號 水泵電機的統(tǒng)一編號
rq 日期 報警日期 報警的日期
sj 時間 報警時間 報警事件發(fā)生的時間
bjly 文本(20) 報警來源 哪個設(shè)備報警
bjyy 文本(50) 報警原因 報警的原因
bz 文本(100) 備注 關(guān)于事件的說明
4、表3-5流量記錄表:用于記錄每小時的供水量,到整點時記錄一次,并可統(tǒng)計一天的總流量。
字段名稱 數(shù)據(jù)類型 意義 備注
bh * 數(shù)字(長整型) 編號 記錄編號
rq 日期 日期 記錄日期
q1 文本(20) 記錄時間(1:00) 一小時的出水量
q2 文本(20) 記錄時間(2:00) ...
... ... ... ...
q23 文本(20) 記錄時間(23:00) ...
q24 文本(20) 記錄時間(0:00) ...
Qa 文本(20) 當(dāng)天總流量 出水總量
5、工作人員信息表:存儲可以使用系統(tǒng)的工作人員(系統(tǒng)管理員、系統(tǒng)操作員)信息及其登陸密碼。表3-6工作人員信息表
字段名稱 數(shù)據(jù)類型 意義 備注
rybh * 數(shù)字(整型) 工作人員編號 開頭兩位數(shù)字為00表示系統(tǒng)管理員;01表示系統(tǒng)操作員。
如:00001表示1號管理員
xm 文本(10) 姓名
xb 文本(2) 性別 0表示男;1表示女
mm 文本(20) 密碼 初始值與工作人員編號相同
監(jiān)控軟件結(jié)構(gòu)設(shè)計
由于本系統(tǒng)用于連續(xù)監(jiān)測和控制自來水廠的生產(chǎn)過程,系統(tǒng)采樣時間長、采樣數(shù)據(jù)量大,而且采樣過程和數(shù)據(jù)的傳輸需要在一定的時間內(nèi)完成,否則會因為計算機處理不及而造成采樣數(shù)據(jù)丟失或者采樣終止。同時系統(tǒng)還要響應(yīng)隨時可能出現(xiàn)的狀態(tài)調(diào)整和數(shù)據(jù)查詢、打印等操作,不能因為采樣和數(shù)據(jù)處理而導(dǎo)致系統(tǒng)出現(xiàn)停頓和遲緩的現(xiàn)象。為了解決這個問題,我們采用了多線程編程技術(shù),使監(jiān)控系統(tǒng)和數(shù)據(jù)采集通信系統(tǒng)并行運行,從而保證了整個監(jiān)控系統(tǒng)的正常運行。監(jiān)控軟件結(jié)構(gòu)框圖如圖3-6所示。
系統(tǒng)啟動后,首先創(chuàng)建通信線程并立即執(zhí)行,定時發(fā)送讀取數(shù)據(jù)命令給各個現(xiàn)場的PLC。接收到PLC發(fā)送的數(shù)據(jù)后存入相應(yīng)的數(shù)組,由數(shù)據(jù)處理程序根據(jù)約定進行處理和判斷,同時將數(shù)據(jù)存入數(shù)據(jù)庫并實時更新設(shè)備狀態(tài)顯示界面中的相應(yīng)數(shù)據(jù)和圖表。通信程序框圖如圖3-7所示
實時監(jiān)控軟件處于一個動態(tài)的環(huán)境之中,各種數(shù)據(jù)在不斷的刷新更改,系統(tǒng)需要根據(jù)數(shù)據(jù)的變化不斷的進行處理和決策,因此對于數(shù)據(jù)的處理必須做到及時準(zhǔn)確。采用了多線程編程技術(shù)以后,系統(tǒng)具有較高的運行效率,應(yīng)用效果較好。
小結(jié)
信息管理及監(jiān)控軟件在控制系統(tǒng)中作為人機交互界面,具有很重要的作用。通過和控制系統(tǒng)的集成,信息管理軟件可以對所采集到的數(shù)據(jù)進行綜合分析和統(tǒng)計,改變傳統(tǒng)的管理模式。本章對控制系統(tǒng)的重要組成部分的信息管理及監(jiān)控軟件的設(shè)計和實現(xiàn)進行了研究,對設(shè)計和實現(xiàn)中的關(guān)鍵問題(例如軟件結(jié)構(gòu)設(shè)計、模塊的劃分、主要界面設(shè)計等)進行了詳細(xì)的分析和研究。
1.根據(jù)軟件設(shè)計的要求和系統(tǒng)的實際需求,設(shè)計了信息管理及監(jiān)控軟件的結(jié)構(gòu),并進行了模塊功能的劃分。
2.?dāng)?shù)據(jù)庫的設(shè)計是監(jiān)控系統(tǒng)中重要的一環(huán),本章對數(shù)據(jù)庫的設(shè)計原則和設(shè)計規(guī)范進行了分析,并在此基礎(chǔ)上設(shè)計并建立了監(jiān)控系統(tǒng)數(shù)據(jù)庫的主要部分。
本系統(tǒng)采用Delphi6.0實現(xiàn)了信息管理及監(jiān)控軟件的設(shè)計,通過現(xiàn)場的調(diào)試和應(yīng)用表明,該軟件集數(shù)據(jù)采集、分析和生產(chǎn)管理于一身,功能強大,使用方便。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。