王昕鑫 彭 節 秦 冰
陸軍工程大學軍械士官學校 湖北 武漢 430075
隨著電力工業的快速發展,電力市場的改革要求電廠不斷提高設備可利用率、安全運行性,提高監控自動化程度,減少運行和維護費用。計算機監控系統在水電站的應用,為機組的安全、可靠、經濟運行提供了保障,同時保證了電能質量,而水電站監控系統上位機軟件的開發是實現水電站綜合自動化的重要保障。
組態王軟件是一種通用的工業監控軟件,它融過程控制設計、現場操作及工廠管理于一體,將一個企業內部的各種生產系統及應用和信息交流匯集在一起,實現最優管理。
組態王軟件作為一個開放型的通用工業監控軟件,支持與國內外常見的PLC、智能模塊、智能儀表、變頻器、數據采集板卡等通過常規通訊接口進行數據通訊。
組態王軟件與IO 設備進行通訊一般是通過調用*.dll動態庫來實現的,不同的設備、協議對應不同的動態庫。工程開發人員無須關心復雜的動態庫代碼及設備通訊協議,只須使用組態王提供的設備定義向導,即可定義工程中使用的I/O 設備,并通過變量的定義實現與I/O 設備的關聯,對用戶來說既簡單又方便。
2.1 創建工程
2.1.1 定義外部設備 組態王把那些需要與之交換數據的硬件設備或軟件程序都作為外部設備使用。外部硬件設備通常包括PLC、儀表、模塊、變頻器、板卡等;外部軟件程序通常指包括DDE、OPC 等服務程序。按照計算機和外部設備的通訊連接方式,則分為:串行通信(232/422/485)、以太網、專用通信卡(如CP5611)等。
在計算機和外部設備硬件連接好后,為了實現組態王和外部設備的實時數據通訊,必須在組態王的開發環境中對外部設備和相關變量加以定義。
2.1.2 定義變量 數據庫是“組態王軟件”最核心的部分,是聯系上位機和下位機的橋梁。數據庫中存放的是應用工程中定義的變量以及系統變量。變量可以分為基本類型和特殊類型兩大類,基本類型的變量又分為內存變量和I/O 變量兩種。
“I/O 變量”指的是組態王與外部設備或其它應用程序交換的變量。這種數據交換是雙向的、動態的,就是說在組態王系統運行過程中,每當I/O 變量的值改變時,該值就會自動寫入外部設備或遠程應用程序;每當外部設備或遠程應用程序中的值改變時,組態王系統中的變量值也會自動改變。所以,那些從下位機采集來的數據、發送給下位機的指令,比如集水井水位、開關等變量,都需要設置成“I/O 變量”。那些不需要和外部設備或其它應用程序交換,只在組態王內使用的變量,比如計算過程的中間變量,就可以設置成“內存變量”。
2.2 制作畫面 在本系統中,結合現場工藝流程,利用組態王豐富的繪圖工具主要設計了如下畫面:水電站主接線圖、主控系統圖、集水井圖、空壓機圖、主變風機圖、發點機組圖、報警查詢圖等。
在組態王工程管理器中“畫面”選項中,新建畫面,進入到開發系統。利用組態王提供的圖庫和工具箱繪制各個模塊的物理連接圖,然后建立圖素的動畫連接,實現動態效果,如圖1所示。

圖1 集水井水位圖
“動畫連接”是建立畫面的圖素與數據庫變量的對應關系。在畫面中,將表示集水井的藍色矩形的縮放連接與數據庫變量“集水井水位1#”相關聯,藍色矩形就會隨著該變量的變化而縮放,實現了水位的動態變化效果。
為了方便對系統的操作和管理,建立一個系統菜單,對用戶進行管理,它包括:用戶登錄、修改口令、退出登錄、退出系統等菜單項。實現此菜單項,用到了系統函數voidOnMenuClick(LONG MenuIndex,LONGChildMenuIndex),命令語言如下:
if(MenuIndex==0){LogOn();}//用戶登錄
if(MenuIndex==1){changepassword();logoff();}//修改口令
if(MenuIndex==2){logoff();}//用戶注銷
if(MenuIndex==3){exit(0);}//退出系統
2.3 數據庫連接 組態王SQL訪問功能實現組態王和其他外部數據庫(通過ODBC 訪問接口)之間的數據傳輸。它包括組態王的SQL 訪問管理器和相關的SQL函數。
SQL訪問管理器用來建立數據庫字段和組態王變量之間的聯系,包括“表格模板”和“記錄體”兩部分。通過表格模板在數據庫表中建立相應的表格;通過記錄體建立數據庫字段和組態王之間的聯系。記錄體中定義了Access數據庫表格字段與組態王變量之間的對應關系,對應關系如下表1所示

表1 數據庫字段與變量的對應關系
該監控系統具有形象生動的監控畫面,簡便易學的操作方法,適合在電站及倉庫等需要實現自動化監控的場景中推廣運用。