一、引言
隨著技術(shù)的發(fā)展和管理要求的提高,要求電廠提高自動(dòng)化水平、實(shí)現(xiàn)電廠管控一體化,實(shí)現(xiàn)全面的電廠數(shù)字化管理。為了達(dá)到上述要求,首先必須實(shí)現(xiàn)電廠輔控系統(tǒng)現(xiàn)場(chǎng)數(shù)據(jù)采集、過程可視化及過程監(jiān)控功能,在此基礎(chǔ)上再實(shí)現(xiàn)輔助系統(tǒng)集中控制聯(lián)網(wǎng)監(jiān)控功能,之后實(shí)現(xiàn)電廠實(shí)時(shí)監(jiān)控信息系統(tǒng)。
iFIX是Intellution自動(dòng)化軟件產(chǎn)品家族中的一個(gè)基于Windows的HMI/SCADA組件?;陂_放的和組件技術(shù),專為在工廠級(jí)系統(tǒng)之間提供易于集成和協(xié)同工作設(shè)計(jì)環(huán)境。
二、應(yīng)用背景
浙江某電廠三期工程(2×300MW機(jī)組)的輔助控制系統(tǒng)包括凝結(jié)水精處理系統(tǒng)、渣水處理系統(tǒng)、酸堿再生系統(tǒng)、加藥控制系統(tǒng)、取樣控制系統(tǒng)、工業(yè)水泵房控制系統(tǒng)。
所有系統(tǒng)在控制室進(jìn)行集中監(jiān)控??刂葡到y(tǒng)采用以微處理器為基礎(chǔ)的PLC可編程控制器進(jìn)行順序控制。采用以顯示器和鍵盤為監(jiān)控中心,對(duì)輔控系統(tǒng)進(jìn)行監(jiān)視、控制,并能進(jìn)行報(bào)警和制表打印。其中凝結(jié)水精處理系統(tǒng)是遠(yuǎn)程iFIX網(wǎng)絡(luò)節(jié)點(diǎn),渣水系統(tǒng)采用了組態(tài)王軟件,本工程需要集成這兩個(gè)系統(tǒng)到輔控系統(tǒng)。
圖 1 輔控系統(tǒng)控制結(jié)構(gòu)圖
三、控制要求
顯示器畫面按照系統(tǒng)圖設(shè)計(jì),反映整個(gè)工藝流程。
畫面顏色清晰逼真,運(yùn)行時(shí)具有動(dòng)態(tài)效果。
畫面設(shè)計(jì)由粗到細(xì),逐層下拉:工藝主畫面、功能系統(tǒng)畫面、設(shè)備控制畫面、屬性畫面。
以顏色的變化來反映設(shè)備狀態(tài)的變化,以數(shù)值和棒圖的變化來反映現(xiàn)場(chǎng)模擬量的變化。
任何顯示器畫面均能在2秒(或更短)的時(shí)間內(nèi)完全顯示出來,所有顯示的數(shù)據(jù)約每秒更新一次。
調(diào)用任一畫面的擊鍵次數(shù)不多于3次。
可存儲(chǔ)一個(gè)月或更長時(shí)間的現(xiàn)場(chǎng)數(shù)據(jù),并可以實(shí)時(shí)趨勢(shì)圖和歷史趨勢(shì)圖顯示。
全開放的控制參數(shù)設(shè)定設(shè)計(jì),可方便在線優(yōu)化工藝過程。
標(biāo)準(zhǔn)記事本功能。
對(duì)現(xiàn)場(chǎng)設(shè)備報(bào)警,分級(jí)別以醒目方式顯示。
報(bào)警信息可長時(shí)間儲(chǔ)存,以備故障分析和優(yōu)化工藝。
具有不可刪除的操作記錄,自動(dòng)記錄操作過程。
安全分級(jí),不同操作者設(shè)不同操作級(jí)別,不同操作者有不同操作密碼。
定時(shí)自動(dòng)按照用戶報(bào)表模板,生成中文報(bào)表。
報(bào)表以EXCEL形式儲(chǔ)存,并可保存。
根據(jù)上述要求,本項(xiàng)目iFIX組態(tài)的畫面舉例如下:
圖 2 加藥控制系統(tǒng)iFIX畫面
四、面臨的問題
本輔控系統(tǒng)的監(jiān)視管理、報(bào)警和控制功能很容易在iFIX組態(tài)軟件中實(shí)現(xiàn),現(xiàn)場(chǎng)實(shí)施中遇到比較困難的問題有兩個(gè):
1) 訪問渣水系統(tǒng)的組態(tài)王軟件數(shù)據(jù)庫。
渣水系統(tǒng)采用的是組態(tài)王軟件,不能作為iFIX網(wǎng)絡(luò)節(jié)點(diǎn)提供連接。由此我們想到用自動(dòng)化領(lǐng)域的通信協(xié)議OPC規(guī)范來建立連接。通過iFIX 的OPC 客戶端訪問過程數(shù)據(jù),可以克服異構(gòu)網(wǎng)絡(luò)結(jié)構(gòu)和網(wǎng)絡(luò)協(xié)議之間的差異。運(yùn)用OPC技術(shù)可以實(shí)現(xiàn)全廠綜合自動(dòng)化,實(shí)現(xiàn)各種智能儀表、自動(dòng)控制系統(tǒng)的無障礙連接。
2) iFIX中電廠日?qǐng)?bào)表的生成。
本輔控系統(tǒng)要求每天生成如下格式的日?qǐng)?bào)表,并以EXCEL文件保存:
表1 電廠日?qǐng)?bào)表
對(duì)于此問題,我們采用VBA+ADO+EXCEL的方式通過ADO訪問iFIX歷史數(shù)據(jù)源來編寫VBA腳本,然后通過運(yùn)用iFIX的調(diào)度器運(yùn)行基于時(shí)間的這段腳本來生成每天的EXCEL格式日?qǐng)?bào)表。
五、解決方案
1、集成渣水系統(tǒng)方案
總則:通過訪問遠(yuǎn)程OPC 服務(wù)器方式連接渣水系統(tǒng)組態(tài)王數(shù)據(jù)庫。渣水系統(tǒng)那邊安裝組態(tài)王的OPC服務(wù)器,iFIX作為OPC客戶端進(jìn)行連接。
1) 配置OPC服務(wù)器端和客戶端的DCOM
①在裝有某OPC服務(wù)器的機(jī)器上。DCOM配置如下:
運(yùn)行服務(wù)器上的dcomcnfg程序,進(jìn)行DCOM配置。
進(jìn)入DCOM的總體默認(rèn)屬性頁面,將“在這臺(tái)計(jì)算機(jī)上啟用分布式COM”打上勾,將默認(rèn)身份級(jí)別改為“無”。
進(jìn)入DCOM的總體默認(rèn)安全機(jī)制頁面,確認(rèn)默認(rèn)訪問權(quán)限和默認(rèn)啟動(dòng)權(quán)限中的默認(rèn)值無EveryOne,如果不去掉EveryOne,應(yīng)用服務(wù)器不能正常啟動(dòng)。
在常規(guī)頁面中,雙擊應(yīng)用服務(wù)器(此為組態(tài)王的OPC),打開應(yīng)用服務(wù)器DCOM屬性設(shè)置。
將常規(guī)頁面中的身份驗(yàn)證級(jí)別改為“無”。
位置頁面中選上“在這臺(tái)計(jì)算機(jī)上運(yùn)行應(yīng)用程序”。
將安全性頁面設(shè)置中,均選擇“使用自定義訪問權(quán)限”,編輯每一個(gè)權(quán)限,將EveryOne加入用戶列表中。
身份標(biāo)識(shí)頁面中,選擇“交互式用戶”。
注意NT的GUEST用戶不能禁用。
②在客戶端機(jī)器上DCOM配置如下:
運(yùn)行dcomcnfg程序,啟動(dòng)dcom配置。
常規(guī)頁面中,雙擊應(yīng)用服務(wù)器,打開應(yīng)用服務(wù)器DCOM屬性設(shè)置。
將常規(guī)頁面中的身份驗(yàn)證級(jí)別改為“無”。
身份標(biāo)識(shí)頁面中,選擇“交互式用戶”。
位置頁面中,選擇“在這臺(tái)計(jì)算機(jī)上運(yùn)行應(yīng)用程序”。
進(jìn)入DCOM的總體默認(rèn)屬性頁面,將“在這臺(tái)計(jì)算機(jī)上啟用分布式COM”打上勾,將默認(rèn)身份級(jí)別改為“無”。
兩端配置好后,客戶端機(jī)器(iFIX)就可以訪問遠(yuǎn)方機(jī)器的OPC服務(wù)器了。
2) 連接組態(tài)王的OPC服務(wù)器
啟動(dòng)iFIX 的OPC配置器(OPC PowerTool)
啟動(dòng)配置器后出現(xiàn)如下界面,選擇Use Local OPC Client 點(diǎn)擊 Connect按鈕。
圖 3 OPC連接界面一
出現(xiàn)如下連接界面:
圖 4 OPC連接界面二
連接結(jié)束后出現(xiàn)如下界面:
圖 5 OPC連接界面三
第一次配置時(shí)左邊系統(tǒng)樹只有最上層根目錄名稱,代表OPC Server名稱。
點(diǎn)擊
按鈕增加OPC Server對(duì)象。具體配置如下:
Server :OPC服務(wù)器名。
Enable:點(diǎn)擊啟用。
Description:OPC服務(wù)器描述。
OPC Server Connection Setup:選擇Local表示啟用本地OPC服務(wù)器,
選擇Remote表示連接遠(yuǎn)程OPC服務(wù)器。
此處我們選擇Remote,然后在Machine Name中填上組態(tài)王OPC服務(wù)器的IP地址,其余選項(xiàng)選擇系統(tǒng)默認(rèn)配置,這樣就能連接上組態(tài)王的OPC服務(wù)器:KingView.View.1,進(jìn)一步通過添加OPC組集合對(duì)象和OPC標(biāo)簽對(duì)象就讀取到組態(tài)王的數(shù)據(jù)庫數(shù)據(jù)。
點(diǎn)擊
按鈕增加OPC組集合對(duì)象。
點(diǎn)擊
按鈕增加OPC標(biāo)簽對(duì)象。
2.iFIX中電廠日?qǐng)?bào)表的生成
總則:運(yùn)用iFIX的調(diào)度器運(yùn)行基于時(shí)間的VBA腳本來生成每天的EXCEL格式日?qǐng)?bào)表。
1) iFIX中調(diào)度設(shè)置
在iFIX中新建時(shí)間調(diào)度,設(shè)置成間隔1小時(shí)的調(diào)度項(xiàng),然后點(diǎn)擊VB編輯器自定義腳本,如下圖:
圖 6 iFIX中調(diào)度設(shè)置界面
2)初始變量定義
Dim ReportArray As Variant Rem 存放日?qǐng)?bào)中所有要顯示的參數(shù)的數(shù)組
Dim FirstPoint1 As Variant Rem 第一個(gè)變量
Dim tempvar As Variant Rem 中間變量
Dim strStartTime, strEndTime Rem 報(bào)表查詢的時(shí)間范圍
Dim Interval As Variant Rem 報(bào)表查詢的間隔時(shí)間
Dim OutReportfile As Variant Rem 輸出EXCEL表格的文件名
Dim TemplateName As String Rem 這個(gè)是日?qǐng)?bào)表模板的文件名
3) 建立對(duì)EXCEL的引用,并打開報(bào)表的模板文件:
Set msExcel = CreateObject("Excel.Application")
With msExcel
.WindowState = xlMinimized
.Visible = False
.Workbooks.Open ReportTemplateName, , False Rem 打開報(bào)表的模板文件
.ActiveWorkbook.ActiveSheet.Select
.DisplayAlerts = False
.DisplayAlerts = False
.Wait (Now() + 0.00002)
End With
4) 創(chuàng)建SQL查詢語句:
Dim rsADO As New ADODB.Recordset
Dim cnADO As New ADODB.Connection
Dim SQL0,SQL1 AS String
SQLO = "select FIX.value from FIX where FIX.interval=|" + Interval + "
| and FIX.datetime>={ts|" + strStartTime + "|} and FIX.datetime<{ts|" + strEndTime
+ "|}" Rem FIX為本地節(jié)點(diǎn)名
SQL1 = SQLO & " and (FIX.tag=|" & FirstPoint1 & "|"
iTotalCols = 1
For Each tempvar In FirstReportPoints
iTotalCols = iTotalCols + 1
SQL1 = SQL1 & " or FIX.tag=|" & tempvar & "|"
Next tempvar
SQL1 = SQL1 + ")"
5) 執(zhí)行對(duì)數(shù)據(jù)庫的查詢:
Set cnADO = New ADODB.Connection
With cnADO
Rem .CursorLocation = adUseClient
.Open "PROVIDER = Microsoft OLE DB Provider for ODBC Drivers;dsn=FIX
Dynamics Historical Data;uid=sa;pwd=;"
.Execute (SQL1)
End With
6) 建立查詢數(shù)據(jù)庫后的記錄集,并把數(shù)據(jù)寫到EXCEL中后另存為EXCEL文件:
Set rsADO = New ADODB.Recordset
rsADO.CursorLocation = adUseClient
rsADO.Open SQL1, cnADO, adOpenForwardOnly, adLockReadOnly If rsADO.BOF Then
rsADO.Close
cnADO.Close
With msExcel
DoEvents
.Acti
End With
Set msExcel = Nothing
Rem MsgBox "第一個(gè)表查詢條件為空,請(qǐng)檢查查詢條件"
Exit Sub
Else
c = 1
While rsADO.EOF <> True
With msExcel.Worksheets(1)
For j = 1 To 24
If rsADO(0) <> "" Then
msExcel.Worksheets(1).Cells(j, c).Value = rsADO(0)
rsADO.MoveNext
End If
Next j
End With
c = c + 1
Wend
msExcel.ActiveWorkbook.SaveAs "d:\" & OutReportfile & ".xls"
msExcel.Quit
msExcel.DisplayAlerts = True
msExcel.Visible = True
Set msExcel = Nothing
Set cnADO = Nothing
rsADO.Close
六、結(jié)論
通過本次電廠輔控系統(tǒng)的應(yīng)用,充分體現(xiàn)了iFIX的網(wǎng)絡(luò)連接的便捷。它既可以作為OPC服務(wù)器,也可以作為OPC客戶端。開發(fā)人員可以從任何一個(gè)OPC服務(wù)器直接獲取動(dòng)態(tài)數(shù)據(jù), 并集成到Intellution WorkSpace 內(nèi)。
同時(shí),iFIX的靈活的報(bào)表功能也使開發(fā)人員得心應(yīng)手。iCore和即插即解決結(jié)構(gòu)為用戶提供多種報(bào)表生成方案。例如,可以通過標(biāo)準(zhǔn)的SQL 或ODBC 連接,向關(guān)系數(shù)據(jù)庫導(dǎo)出iFIX數(shù)據(jù),生成報(bào)表。另外,Crystal Report(水晶報(bào)表)的運(yùn)行動(dòng)態(tài)連接庫(DLL)已經(jīng)包含在了iFIX 內(nèi)。
綜上所述,無論是Server和Client功能運(yùn)行在單一計(jì)算機(jī),實(shí)現(xiàn)簡單的單機(jī)人機(jī)界面(HMI),還是網(wǎng)絡(luò)復(fù)雜的分布式多Server 和多Client 數(shù)據(jù)采集和控制系統(tǒng),iFIX都可以保證優(yōu)異的性能,采用此軟件是輔控系統(tǒng)的最佳選擇。