1 引言
ifix是全球最領(lǐng)先的hmi/scada自動化監(jiān)控組態(tài)軟件,已有超過300,000套以上的軟件在全球運行。intellution公司的ifix作為第三方軟件,具有強大的scada和hmi功能,并且提供了與多種plc進行通訊的i/o驅(qū)動程序,可與多種plc直接接口,在國內(nèi)外其他工業(yè)控制領(lǐng)域獲得了廣泛的應(yīng)用。本項目采用ifix作為支撐平臺,充分利用ifix提供的各種服務(wù)和資源,開發(fā)了一個有色金屬冶金熱風爐自動控制系統(tǒng)。
2 系統(tǒng)概要
熱風爐自動控制系統(tǒng)結(jié)構(gòu)如圖1所示。
圖 1 熱風爐系統(tǒng)結(jié)構(gòu)圖
plc完成數(shù)據(jù)的采集、處理和控制。plc所要采集的模擬量數(shù)據(jù)包括:熱風爐各位置的溫度、壓力、冷風總支管流量、溫度、壓力,熱風流量、發(fā)生爐煤氣流量、溫度、壓力,助燃風機電流、頻率等等,由變送器輸入;開關(guān)量數(shù)據(jù)為所有熱風爐
控制閥門的啟/停狀態(tài),比如熱風閥開、熱風閥關(guān)、熱風閥集中控制,由繼電器接點輸入。控制功能包括模擬量調(diào)節(jié)和開關(guān)量控制。其中模擬量調(diào)節(jié)包括發(fā)生爐煤氣流量調(diào)節(jié)、空氣流量調(diào)節(jié)以及助燃風機頻率調(diào)節(jié)等,由pid運算實現(xiàn),輸出控制調(diào)節(jié)閥的開度;開關(guān)量控制包括控制各個閥門的自動啟/停、助燃風機啟/停、緊急休風的閥門閉合。數(shù)據(jù)處理包括:參數(shù)越上限或越下限報警及連鎖,設(shè)備異常報警、電源故障報警等。上位機監(jiān)控系統(tǒng)由ifix軟件實現(xiàn),包括scada系統(tǒng)和hmi圖形系統(tǒng)。scada系統(tǒng)通過與plc建立通訊關(guān)系,讀取實時數(shù)據(jù)并形成實時數(shù)據(jù)庫;hmi圖形系統(tǒng)顯示實時數(shù)據(jù)和報警信息、記錄歷史數(shù)據(jù)、打印報表、修改設(shè)定參數(shù)以及實現(xiàn)軟手動控制等。本系統(tǒng)選用的plc系統(tǒng)為abb公司的ac300集散控制系統(tǒng),通訊方式為dcom通訊協(xié)議。
3 scada系統(tǒng)
上位機scada系統(tǒng)的最基本功能就是數(shù)據(jù)讀取和數(shù)據(jù)管理,ifix通過軟件接口i/o驅(qū)毒程序與plc直接建立通訊來讀取數(shù)據(jù),數(shù)據(jù)管理則通過數(shù)據(jù)庫實現(xiàn)。
i/o驅(qū)動程序是連接硬件設(shè)備和scada服務(wù)器的通訊程序,它能夠?qū)νㄓ嶅e誤進行自動檢測、報告和恢復(fù),并且提供對通訊的冗余支持。由于控制設(shè)備多種多樣,而且各自所采用的通訊協(xié)議也各不相同,因此,intellution公司提供了各種與常用控制設(shè)備進行通訊的高性能的i/o驅(qū)動程序。在設(shè)計監(jiān)控系統(tǒng)時,為了使scada服務(wù)器能與硬件設(shè)備建立通訊,首先必須根據(jù)硬件設(shè)備選擇相應(yīng)的i/o驅(qū)動程序并對其進行正確配置。i/o驅(qū)動程序的配置由配置軟件來實現(xiàn),他設(shè)置通訊口及其參數(shù),控制器的名稱以及scada服務(wù)器所要訪問的控制器中的i/o地址、數(shù)據(jù)類型等。系統(tǒng)運行時,自動啟動i/o驅(qū)動程序,而且配置文件也將被自動載入運行。
圖 2 數(shù)據(jù)傳輸流程圖1
4 實時數(shù)據(jù)庫“塊”系統(tǒng)設(shè)計
ifix采用面向?qū)ο蟮臄?shù)據(jù)庫設(shè)計方法。數(shù)據(jù)庫中的主要元素是“塊”,不同的塊將完成不同的功能。將多個塊按順序連接起來,就組成了“鏈”。在鏈中,數(shù)據(jù)塊順序傳遞,可實現(xiàn)特定的功能。ifix提供的“塊”,安功能及其在鏈中的位置,可以分為“初級塊”和“次級塊”。“初級塊”直接與i/o驅(qū)動程序交換數(shù)據(jù),位于鏈的首位,可單獨使用;“次級塊”從“初級塊”或上一級塊獲得數(shù)據(jù),不能位于鏈的首位,也不能單獨使用。“初級塊”和“次級塊”又分別包含了多種類型的塊。
4.1 塊類型的選擇
在熱風爐自動控制系統(tǒng)設(shè)計中,為了讀寫plc中設(shè)備的參數(shù)值,采用了“初級塊”中的ai塊(模擬量輸入塊),ar(模擬量寄存器)塊,ao(模擬量輸出)塊,di(數(shù)字量輸入)塊,dr(數(shù)字量寄存器)塊,do(數(shù)字量輸出)塊。ai塊和di塊在每一個掃描周期,當sac(掃描、報警、控制)程序掃描該塊時,都會向i/o驅(qū)動程序發(fā)送或接收數(shù)據(jù),其數(shù)據(jù)傳輸流程如圖2所示。
ar塊和dr塊也能從i/o驅(qū)動程序讀或者寫數(shù)據(jù),但它們不需要sac程序的支持,而且只是在引用該數(shù)據(jù)塊的畫面打開時才傳輸數(shù)據(jù),因此,該塊占用的內(nèi)存最小且可以提高sac程序的運行性能。數(shù)據(jù)傳輸流程如圖3所示。
圖 3 數(shù)據(jù)傳輸流程圖2
在數(shù)據(jù)庫設(shè)計時,靜態(tài)數(shù)據(jù)(如:pid控制的設(shè)定值、參數(shù)報警極限、連鎖控制限制、計數(shù)器定值等)采用寄存器塊,以提高系統(tǒng)的運行性能;而測量參數(shù)則采用參數(shù)輸入塊,以保證實時性。
4.2 塊的參數(shù)配置
數(shù)據(jù)庫塊具有多種屬性參數(shù),有的是只讀參數(shù),有的可以讀/寫,對其參數(shù)的不同設(shè)置將影響到數(shù)據(jù)的準確性。
(1)i/o地址(a_ioad)的設(shè)定。塊參數(shù)a_ioad(i/o地址)指定該塊讀取數(shù)據(jù)的地址,以ascii碼表示,設(shè)置格式為:device:address,其中,device為i/o驅(qū)動程序中配置的控制器的名稱;address表示i/o點的地址,與i/o驅(qū)動程序中配置的i/o點的地址具有相同的格式。
(2)標度轉(zhuǎn)換(a_iosc)的設(shè)定。對于模擬量數(shù)據(jù)來說,從控制器中讀取的原始數(shù)據(jù)往往是以數(shù)字形式表示的,如以無符號整數(shù)表示,但對于操作人員,需要知道的確是以工程單位表示的具有實際物理意義的數(shù),如以mpa表示的壓力值,因此,需要對原始數(shù)據(jù)進行交換。塊的a_iosc參數(shù)的選擇綜合考慮了i/o點原始數(shù)據(jù)的類型、取值范圍及是否進行范圍超限監(jiān)測、報警等因素。
(3)掃描時間(a_scant)的設(shè)定。定時掃描的數(shù)據(jù)塊,掃描時間的設(shè)定格式為time:phase,time為sac掃描時間的間隔,phase為在該時間間隔內(nèi),掃描該塊的起始時間。例如,設(shè)定block1塊的掃描時間為5:1,則sac每隔5秒執(zhí)行一次掃描,每個掃描周期開始后1秒掃描block1塊。對于具有相同掃描時間的數(shù)據(jù)塊,為其分配不同的掃描起始時間,可以避免cpu同時處理太多數(shù)據(jù),從而提高系統(tǒng)的運行性能,這對大型系統(tǒng)尤為重要。
5 上位機hmi的實現(xiàn)
利用ifix提供的各種圖形對象、控件和內(nèi)嵌的vba,設(shè)計開發(fā)了圖形化的人機交互界面。
5.1 實時數(shù)據(jù)顯示
scada服務(wù)器是后臺運行的,在運行模式下,其數(shù)據(jù)庫參數(shù)對用戶是不可見的,因此,使用大量的圖形對象直觀地顯示實時數(shù)據(jù),對模擬量參數(shù),采用“數(shù)據(jù)連接(datalink)”對象,它與數(shù)據(jù)庫的連接如下:
picture.datalink1.format1.source=fix32.thisnode.tag.fcv,格式中,picture為顯示圖形對象的畫面名稱,thisnode為本監(jiān)控系統(tǒng)的名稱,tag為數(shù)據(jù)庫塊的名稱,fcv為該數(shù)據(jù)庫塊的當前值。對于重要的控制參數(shù)(煤氣流量、冷風流量、助燃空氣流量、總管壓力等),分別采用實時曲線顯示一個小時內(nèi)參數(shù)的變化趨勢,以了解控制器的條件品質(zhì),實時曲線通過調(diào)用“chart”對象實現(xiàn)。
對數(shù)字量參數(shù),采用“shape”類對象前景色的變化來模擬其狀態(tài)的變化,它與數(shù)據(jù)庫的連接方式如下:
picture.oval1.aninatedforegroudcolor.source=fix32.thisnode.tag.fcv.
5.2 歷史數(shù)據(jù)記錄與報表打印
歷史數(shù)據(jù)庫的形成由后臺運行程序“htc.exe”完成,該程序以定時存儲的方式記錄了最近30天內(nèi)的一些重要的運行參數(shù)(煤氣流量、壓力、冷風流量、壓力、熱風流量、溫度、總管壓力等),以備今后查看或進行故障分析。歷史數(shù)據(jù)以數(shù)據(jù)文件的形式存儲,通過“chart”對象顯示30天內(nèi)任一天的參數(shù)變化曲線,同時,也可以用報表的形式打印出來。打印程序由vba編程實現(xiàn),它通過sql語言查詢數(shù)據(jù)庫,并調(diào)用excel形成指定格式的報表。
5.3 故障報警
系統(tǒng)運行過程中出現(xiàn)異常情況是,通過報警提醒操作人員。報警采用三種方式:改變“數(shù)據(jù)連接”對象的顏色、彈出報警畫面、聲光報警。三種方式都是通過編寫事件驅(qū)動的后臺運行的調(diào)度程序(scheduler)來實現(xiàn),數(shù)據(jù)顏色的變化通過改變圖形對象的前景色屬性來實現(xiàn),例如,正常運行時,閥門的顏色用綠色顯示,閥門關(guān)到位是用紅色顯示,閥門故障時用黃色閃爍顯示,閥門中間狀態(tài)用藍色顯示。報警畫面采用“報警總匯(alarm summary)”圖形對象,該對象顯示報警的參數(shù)、類別、狀態(tài)等。聲光報警通過報警事件觸發(fā)儀表柜上的聲光
報警器實現(xiàn)。
5.4 設(shè)定參數(shù)修改
系統(tǒng)在運行過程中,隨著運行工況的變化,可能需要對各種閥門開度的設(shè)定值、壓力、溫度報警上/下限、設(shè)備連鎖上/下限等過程控制參數(shù)進行修改。對這些參數(shù)的修改將會影響到系統(tǒng)的性能和設(shè)備的安全,因此,為了保證系統(tǒng)的安全,設(shè)置了兩個操作權(quán)限,即操作員和管理員級。當操作權(quán)限為操作員級時,只能對參數(shù)進行查看,修改部分參數(shù),但不能退出系統(tǒng);為管理員級時,能執(zhí)行所有才做。系統(tǒng)啟動時,缺省的操作權(quán)限為操作員級,若想修改程序或退出系統(tǒng),則需要按照用戶名和密碼登陸為管理員。另外,根據(jù)操作安全的需要,對系統(tǒng)設(shè)置了環(huán)境保護,啟動時自動全屏顯示,并屏蔽了可能導(dǎo)致誤操作的組合鍵,使系統(tǒng)運行更加安全、可靠。
6 結(jié)束語
項目已在韶關(guān)冶煉廠熱風爐系統(tǒng)中獲得應(yīng)用。該系統(tǒng)采用abb公司的ac800m系列plc,上位機采用dell工業(yè)服務(wù)器,下位機與上位機通過abb的網(wǎng)卡相連,i/o驅(qū)動采用dcom通訊協(xié)議,利用ifix的opc驅(qū)動。運行結(jié)果表明,熱風爐各個閥門開/關(guān)全部實現(xiàn)自動控制;調(diào)節(jié)參數(shù)波動小,連鎖程序穩(wěn)定有效。上位機系統(tǒng)運行穩(wěn)定,使用方便,操作簡單;整套系統(tǒng)具有較高的自動化水平,達到了設(shè)計目的。
利用ifix提供的scada組件,采用i/o驅(qū)動程序與不同廠家的plc進行接口以獲取數(shù)據(jù),用數(shù)據(jù)庫來管理數(shù)據(jù);利用hmi提供的圖形對象顯示和監(jiān)控數(shù)據(jù),保證的數(shù)據(jù)高度的完整性。實踐表明,本系統(tǒng)運行穩(wěn)定,自動化程度高,具有較好的應(yīng)用前景。