近年來,我國經濟持續發展,工業和生活用油的需求不斷增加,使得油庫在生產和管理方面的工作日益繁重。隨著計算機技術的不斷普及和發展,我國的油庫建設者們開始利用先進的工業控制技術、網絡技術、數據庫技術及其它相關的高科技技術,結合我國機場油庫現狀和發展趨勢,為實現油庫生產的自動化和日常管理工作的規范化進行了不懈的研究。下面以某民航機場中轉油庫的管理調度系統為例,介紹一下在上位機監控軟件方面的設計和實現,作為對這一領域的探討。
1 系統簡介
系統配置如圖1所示。它主要包括計算機網絡系統、數據庫服務器、上位機系統、電視監控系統、下位機PLC和生產過程,是一個典型的集散控制系統。自1975年第一套集散控制系統問世以來,集散控制系統在工業控制領域得到了越來越廣泛的應用。集散控制系統又叫分布式計算機控制系統(DCS),是由計算機技術、信號處理技術、測控技術、網絡通訊技術和人機接口技術相互發展而產生的,其主要特點是集中管理、分散控制,具有很強的自主性、協調性、靈活性和可靠性。進入90年代以后,以計算機網絡技術為代表的IT業逐漸成為推動高科技產業發展的新熱點,“開放”和“資源共享”是未來信息與控制領域發展的基本要求和發展趨勢。系統的開放不僅使不同廠商的集散控制系統產品可以互連,也使得第三方的軟件可以方便地在不同的硬件平臺上應用,從而簡化了用戶對系統的開發。在本系統中,上位機監控軟件就是用美國Wonderware公司的工控組態軟件InTouch 7.1開發的,下面將進行具體介紹。
2 InTouch的特點
目前,有很多工控組態軟件,如InTouch 、iFix、LabView,國產的有“組態王”、“世紀星”等。
InTouch是美國Wonderware公司開發的世界上第一個集成的、基于組件的MMI系統——FactorySuite 2000中的一個核心組件。它具有世界領先的HMI(人機接口界面)和面向對象的圖形開發環境,便于高效、快捷地配置用戶的應用程序。它在報警和歷史趨勢方面的功能,極大地方便了對系統的監控。
它具有強大的網絡功能,通過傳統的DDE和擴展的NetDDE的方式,可與本機和其它計算機中的應用程序實時交換數據。同時,它支持通過ODBC訪問各種類型的數據庫,便于系統的綜合管理。
另外,它支持標準的ActiveX技術,使得用戶可以輕松地為自己的應用程序開發各種網絡多媒體功能。
更重要的是,它提供了廣泛的通訊協議轉換接口——I/O Server,能方便地連接到各種控制設備,包括:Siemens、Modicon、Opto 22、square D等。甚至,也可以利用第三方Server。
在性能上,InTouch對核心代碼進行了優化,運行效率比較高。同時,它經過了嚴格的測試,并擁有大量的客戶,應該說具有相當高的可靠性和穩定性。
基于以上原因,我們選擇InTouch作為上位機軟件的開發工具。
3 軟件設計
1)用戶需求
此軟件的用戶是某機場中轉油庫,從目前情況來看,他們的日常生產流程主要包括從鐵路棧橋收航油(煤油)和汽油到指定的油罐,同時將合格的油發給機場或其它客戶。不久,他們將增加從管線直接收油的方式,并且將油品分為保稅油和非保稅油兩種,分別走不同的管線。另外,他們需要用數據庫進行管理,并打印每日報表。
2)數據通訊
在InTouch中,上位機的數據主要分為內存型和I/O型。其中,內存型數據為InTouch程序內部定義的變量,不需要通過I/O Server即可進行訪問;I/O型數據的來源一般為其它計算機結點或本機運行的其它程序,這類數據由InTouch通過NetDDE或DDE的方式獲得。
在本系統中,上位機采集下位機中來自現場的數據,經過處理,將控制命令傳給下位機,以此監控生產過程。然而,通常上位機無法直接從下位機中取得數據,這時需要一個通訊接口——I/O Server。由于,本系統上、下位機通過以太網進行連接,并且下位機為Modicon的PLC,因此應該選用Modicon Ethernet型號的I/O Server。假設上位機、下位機和運行I/O Server的計算機的IP地址分別為192.168.10.11、192.168.10.99、192.168.10.12,則I/O Server中Topic Definition的設置為:
Topic Name——plc(任意定義);
IP Adrress——192.168.10.99(PLC的地址)。
這樣,I/O Server就可以從下位機取得數據了。而要讓InTouch從I/O Server中取到正確的數據,還必須為每個I/O變量定義Access Name和Item Name:
其中,Access Name可任取,如IO,其余參數分別為:
Node Name——192.168.10.12(I/O Server所在結點的IP地址);
Application Name——mbenet(Modicon Ethernet的程序名);
Topic Name——plc(I/O Server中定義的Topic Name)。
Item Name根據下位機的不同有所差異,對于Modicon的PLC,開關量為1或0開頭的6為數,如:100001;模擬量為3或4開頭的6為數,如:400001。若為實型模擬量,還應寫為:400001 f,并占兩個寄存器。
3)畫面構成
上位機的主要畫面包括:油庫概貌、棧橋收航油流程圖、管線收航油流程圖、汽油收發流程圖、罐區信息、系統管理、系統登錄和注銷窗口、菜單和狀態信息窗口等。各畫面通過菜單按鈕進行切換,InTouch中常用的窗口顯示函數為:
Show “窗口名” 或 ShowAt( "窗口名",橫坐標, 縱坐標)。
其中,“棧橋收航油流程圖”如下圖所示:

棧橋收航油流程圖
InTouch提供了常用的作圖工具,并支持多種圖片格式,但無論原來是什么格式的圖片,InTouch都會將其轉化為bmp格式,因此粘貼圖片時應注意圖片的原始尺寸不要太大,以免影響運行速度。另外,InTouch還支持圖片透明色功能,這樣可去掉圖片中不需要的底色,使畫面更加協調、美觀。

4)系統監控
上位機軟件最主要的功能就是系統監控。InTouch可以為每個數據定義它的報警信息,模擬量還可定義高、低、高高、低低報警值,并且可以通過條件腳本或、數據值改變腳本和用戶編制的快速腳本處理各種報警信息,如彈出報警窗口或聲音提示。例如,要監控1號電機電流過高的情況,就可以定義一個motor1.HiStatus的條件腳本,并在On True腳本框中寫上:
Show "motor1_high_alarm"; (彈出報警窗口)
PlaySound( "d:\sound\1號電機高電流報警.wav", 1 ); (聲音報警)
5)數據庫訪問
數據庫是系統管理不可缺少的工具,也是工作報表的數據來源,。目前,在大、中型集散控制系統中被廣泛采用的數據庫管理軟件有Oracle、SQL Server、Informix等,本系統即采用了SQL Server。
InTouch支持SQL語言,并且能通過ODBC接口方便地與不同類型的數據庫進行連接。要做到這一點,首先需要在“控制面板”的ODBC中為自己的數據庫定義一個數據源名,如:oil;然后在InTouch的SQL Access Manager\Bind List中為自己在數據庫中定義的某張表(如tank)定義一個綁定列(如tanklist),注意表與綁定列的格式和數據類型應完全一樣。這樣,要往表中插入數據的程序就可以寫為:
SQLConnect( ConnectionId, "dsn=oil" ); (連接數據庫)
SQLInsert( ConnectionId, "tank", "tanklist" ); (插入數據)
InTouch沒有提供作報表的工具,但用戶可以自己制作報表窗口,并調用窗口打印函數PrintWindow()打印報表。另外,也可以采用其它報表制作工具或采取動態網頁的方式。
6)系統安全
系統安全問題是每一個上位機軟件設計人員必須考慮的,InTouch可以通過帳號管理機制,限制不同人員的訪問權限,來實現系統安全。
在本系統中,系統登錄的畫面如右圖所示。當操作員按下登錄熱鍵(如Ctrl+F10),將彈出此窗口。登錄之后的操作員擁有自己的訪問級別($AccessLevel),決定了他對上位機軟件的操作權限。比如,某些重要設備(如電機)的開關按鈕只能讓工程師以上級別的人($AccessLevel>6000)操作,則可在按鈕動畫鏈接的Miscellaneous\Disable(on)屬性的條件表達式中寫上$AccessLevel<6000。這樣,沒有登錄或訪問級別不夠的人就無法觸發此按鈕了。
4 方案總結
以上是本系統上位機軟件設計的基本框架,可以看出,通過與InTouch相結合,軟件不僅在設計和實現上非常簡單,而且在功能上也十分強大,同時又具有較高的性能和穩定性。并且,對軟件的維護和升級也比較方便。目前,該方案正被應用于某機場儲油庫改造的示范工程中。