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

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

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