一、引言
隨著技術的發展和管理要求的提高,要求電廠提高自動化水平、實現電廠管控一體化,實現全面的電廠數字化管理。為了達到上述要求,首先必須實現電廠輔控系統現場數據采集、過程可視化及過程監控功能,在此基礎上再實現輔助系統集中控制聯網監控功能,之后實現電廠實時監控信息系統。
iFIX是Intellution自動化軟件產品家族中的一個基于Windows的HMI/SCADA組件。基于開放的和組件技術,專為在工廠級系統之間提供易于集成和協同工作設計環境。
二、應用背景
浙江某電廠三期工程(2×300MW機組)的輔助控制系統包括凝結水精處理系統、渣水處理系統、酸堿再生系統、加藥控制系統、取樣控制系統、工業水泵房控制系統。
所有系統在控制室進行集中監控。控制系統采用以微處理器為基礎的PLC可編程控制器進行順序控制。采用以顯示器和鍵盤為監控中心,對輔控系統進行監視、控制,并能進行報警和制表打印。其中凝結水精處理系統是遠程iFIX網絡節點,渣水系統采用了組態王軟件,本工程需要集成這兩個系統到輔控系統。
圖 1 輔控系統控制結構圖
三、控制要求
顯示器畫面按照系統圖設計,反映整個工藝流程。
畫面顏色清晰逼真,運行時具有動態效果。
畫面設計由粗到細,逐層下拉:工藝主畫面、功能系統畫面、設備控制畫面、屬性畫面。
以顏色的變化來反映設備狀態的變化,以數值和棒圖的變化來反映現場模擬量的變化。
任何顯示器畫面均能在2秒(或更短)的時間內完全顯示出來,所有顯示的數據約每秒更新一次。
調用任一畫面的擊鍵次數不多于3次。
可存儲一個月或更長時間的現場數據,并可以實時趨勢圖和歷史趨勢圖顯示。
全開放的控制參數設定設計,可方便在線優化工藝過程。
標準記事本功能。
對現場設備報警,分級別以醒目方式顯示。
報警信息可長時間儲存,以備故障分析和優化工藝。
具有不可刪除的操作記錄,自動記錄操作過程。
安全分級,不同操作者設不同操作級別,不同操作者有不同操作密碼。
定時自動按照用戶報表模板,生成中文報表。
報表以EXCEL形式儲存,并可保存。
根據上述要求,本項目iFIX組態的畫面舉例如下:
圖 2 加藥控制系統iFIX畫面
四、面臨的問題
本輔控系統的監視管理、報警和控制功能很容易在iFIX組態軟件中實現,現場實施中遇到比較困難的問題有兩個:
1) 訪問渣水系統的組態王軟件數據庫。
渣水系統采用的是組態王軟件,不能作為iFIX網絡節點提供連接。由此我們想到用自動化領域的通信協議OPC規范來建立連接。通過iFIX 的OPC 客戶端訪問過程數據,可以克服異構網絡結構和網絡協議之間的差異。運用OPC技術可以實現全廠綜合自動化,實現各種智能儀表、自動控制系統的無障礙連接。
2) iFIX中電廠日報表的生成。
本輔控系統要求每天生成如下格式的日報表,并以EXCEL文件保存:
表1 電廠日報表
對于此問題,我們采用VBA+ADO+EXCEL的方式通過ADO訪問iFIX歷史數據源來編寫VBA腳本,然后通過運用iFIX的調度器運行基于時間的這段腳本來生成每天的EXCEL格式日報表。
五、解決方案
1、集成渣水系統方案
總則:通過訪問遠程OPC 服務器方式連接渣水系統組態王數據庫。渣水系統那邊安裝組態王的OPC服務器,iFIX作為OPC客戶端進行連接。
1) 配置OPC服務器端和客戶端的DCOM
①在裝有某OPC服務器的機器上。DCOM配置如下:
運行服務器上的dcomcnfg程序,進行DCOM配置。
進入DCOM的總體默認屬性頁面,將“在這臺計算機上啟用分布式COM”打上勾,將默認身份級別改為“無”。
進入DCOM的總體默認安全機制頁面,確認默認訪問權限和默認啟動權限中的默認值無EveryOne,如果不去掉EveryOne,應用服務器不能正常啟動。
在常規頁面中,雙擊應用服務器(此為組態王的OPC),打開應用服務器DCOM屬性設置。
將常規頁面中的身份驗證級別改為“無”。
位置頁面中選上“在這臺計算機上運行應用程序”。
將安全性頁面設置中,均選擇“使用自定義訪問權限”,編輯每一個權限,將EveryOne加入用戶列表中。
身份標識頁面中,選擇“交互式用戶”。
注意NT的GUEST用戶不能禁用。
②在客戶端機器上DCOM配置如下:
運行dcomcnfg程序,啟動dcom配置。
常規頁面中,雙擊應用服務器,打開應用服務器DCOM屬性設置。
將常規頁面中的身份驗證級別改為“無”。
身份標識頁面中,選擇“交互式用戶”。
位置頁面中,選擇“在這臺計算機上運行應用程序”。
進入DCOM的總體默認屬性頁面,將“在這臺計算機上啟用分布式COM”打上勾,將默認身份級別改為“無”。
兩端配置好后,客戶端機器(iFIX)就可以訪問遠方機器的OPC服務器了。
2) 連接組態王的OPC服務器
啟動iFIX 的OPC配置器(OPC PowerTool)
啟動配置器后出現如下界面,選擇Use Local OPC Client 點擊 Connect按鈕。
圖 3 OPC連接界面一
出現如下連接界面:
圖 4 OPC連接界面二
連接結束后出現如下界面:
圖 5 OPC連接界面三
第一次配置時左邊系統樹只有最上層根目錄名稱,代表OPC Server名稱。
點擊

按鈕增加OPC Server對象。具體配置如下:
Server :OPC服務器名。
Enable:點擊啟用。
Description:OPC服務器描述。
OPC Server Connection Setup:選擇Local表示啟用本地OPC服務器,
選擇Remote表示連接遠程OPC服務器。
此處我們選擇Remote,然后在Machine Name中填上組態王OPC服務器的IP地址,其余選項選擇系統默認配置,這樣就能連接上組態王的OPC服務器:KingView.View.1,進一步通過添加OPC組集合對象和OPC標簽對象就讀取到組態王的數據庫數據。
點擊

按鈕增加OPC組集合對象。
點擊

按鈕增加OPC標簽對象。
2.iFIX中電廠日報表的生成
總則:運用iFIX的調度器運行基于時間的VBA腳本來生成每天的EXCEL格式日報表。
1) iFIX中調度設置
在iFIX中新建時間調度,設置成間隔1小時的調度項,然后點擊VB編輯器自定義腳本,如下圖:
圖 6 iFIX中調度設置界面
2)初始變量定義
Dim ReportArray As Variant Rem 存放日報中所有要顯示的參數的數組
Dim FirstPoint1 As Variant Rem 第一個變量
Dim tempvar As Variant Rem 中間變量
Dim strStartTime, strEndTime Rem 報表查詢的時間范圍
Dim Interval As Variant Rem 報表查詢的間隔時間
Dim OutReportfile As Variant Rem 輸出EXCEL表格的文件名
Dim TemplateName As String Rem 這個是日報表模板的文件名
3) 建立對EXCEL的引用,并打開報表的模板文件:
Set msExcel = CreateObject("Excel.Application")
With msExcel
.WindowState = xlMinimized
.Visible = False
.Workbooks.Open ReportTemplateName, , False Rem 打開報表的模板文件
.ActiveWorkbook.ActiveSheet.Select
.DisplayAlerts = False
.DisplayAlerts = False
.Wait (Now() + 0.00002)
End With
4) 創建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為本地節點名
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) 執行對數據庫的查詢:
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) 建立查詢數據庫后的記錄集,并把數據寫到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 "第一個表查詢條件為空,請檢查查詢條件"
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
六、結論
通過本次電廠輔控系統的應用,充分體現了iFIX的網絡連接的便捷。它既可以作為OPC服務器,也可以作為OPC客戶端。開發人員可以從任何一個OPC服務器直接獲取動態數據, 并集成到Intellution WorkSpace 內。
同時,iFIX的靈活的報表功能也使開發人員得心應手。iCore和即插即解決結構為用戶提供多種報表生成方案。例如,可以通過標準的SQL 或ODBC 連接,向關系數據庫導出iFIX數據,生成報表。另外,Crystal Report(水晶報表)的運行動態連接庫(DLL)已經包含在了iFIX 內。
綜上所述,無論是Server和Client功能運行在單一計算機,實現簡單的單機人機界面(HMI),還是網絡復雜的分布式多Server 和多Client 數據采集和控制系統,iFIX都可以保證優異的性能,采用此軟件是輔控系統的最佳選擇。