利用IFIX的數(shù)據(jù)庫技術實現(xiàn)電爐的爐報信息采集
一、前言
1、iFIX簡介
Proficy HMI/SCADA - iFIX 是GE FANUC公司開發(fā)的業(yè)界內優(yōu)秀的人機界面軟件之一。IFIX運行于Windows 2000、NT、XP平臺,采用Win32標準和32位代碼,使用客戶/服務器體系結構。IFIX組態(tài)軟件有許多優(yōu)點:畫面編輯簡單易用,內嵌大量常用工業(yè)圖庫,便于快速生成畫面。其數(shù)據(jù)功能也很強大,可以與SQL、Access或Oracle數(shù)據(jù)庫配合使用。很方便的將PLC報警、事件、過程數(shù)據(jù)等實時地記錄到這些數(shù)據(jù)庫中。iFIX軟件提供各種業(yè)內流行PLC驅動程序可與數(shù)百種第三方廠家的PLC、DCS互連。IFIX還是一個開放性很強的HMI,它全面支持微軟操作系統(tǒng)的ODBC(開放式數(shù)據(jù)庫連接)。可以利用第三方支持ODBC接口的應用程序從數(shù)據(jù)庫中獲取數(shù)據(jù)。
2、iFIX®數(shù)據(jù)庫:SCADA的基本功能
iFIX軟件是以SCADA(supervisory control and data acquisition)組件為核心。SCADA的基本功能是數(shù)據(jù)采集和數(shù)據(jù)管理,保證數(shù)據(jù)的完整性,并且提供完整的分布式網絡功能。
數(shù)據(jù)采集就是從OPC服務器或現(xiàn)場過程硬件— 主要包括生產所必須的控制器、傳感器、馬達、開關和其它設備獲取過程數(shù)據(jù)信息存入SCADA。iFIX也可以向現(xiàn)場下位機寫數(shù)據(jù),這樣就建立了控制軟件所需要的雙向連接。IFIX通過OPC(OLE for process control)方式來獲得和利用現(xiàn)場數(shù)據(jù),OPC是一個具有公用接口的客戶/服務器模塊,它允許iFIX與標準的對象、方式和屬性通信。IFIX不需要用特別的硬件來獲得數(shù)據(jù),而是通過一個I/O驅動器的軟件接口同已經存在的I/O設備直接通訊。在大多數(shù)情況下,iFIX可以使用現(xiàn)場已經裝配的I/O硬件來工作,即使在現(xiàn)場的同一網絡上使用不同廠家的I/O設備,I/O驅動器都可以兼容它們,這在現(xiàn)場應用中顯得尤為重要。在本應用中就是利用OPC方式來獲取電爐各過程控制PLC中的數(shù)據(jù)信息,并匯總形成爐報信息。
數(shù)據(jù)管理包括通過掃描、報警和控制程序(SAC, scan alarm control)從驅動程序映像列表(DIT, diver image table)中讀取數(shù)據(jù),對數(shù)據(jù)進行處理,再將數(shù)據(jù)傳送到過程數(shù)據(jù)庫(PDB, process data base)以及通過建立SQD和SQT觸發(fā)器把采集的數(shù)據(jù)存儲到數(shù)據(jù)庫(如:SQL、ORACLE)相應的表中,來進行對數(shù)據(jù)的統(tǒng)計、分析。
3、VB6.0簡介
VB6.0是微軟公司推出的優(yōu)秀的Windows應用程序快速開發(fā)工具。它以先進的可視化面向對象開發(fā)技術。簡單易學的編程語言、靈活的數(shù)據(jù)庫操作等優(yōu)點吸引了廣大程序員的青睞。利用VB6.0的新一代數(shù)據(jù)庫引擎—ADO,可以方便的和SQLSERVER數(shù)據(jù)庫連接,快速的在數(shù)據(jù)庫綁定控件與數(shù)據(jù)之間建立連接,實現(xiàn)對數(shù)據(jù)庫的操作。
本文探索并實踐如何將IFIX SCADA數(shù)據(jù)存入SQLSERVER,并用VB6.0通過ODBC訪問SQL數(shù)據(jù),形成電爐爐報信息的匯總與查詢。其原理圖如下:

二、將IFIX SCADA數(shù)據(jù)記錄通過ODBC保存到SQL SERVER
IFIX組態(tài)軟件中提供iFIX SQL接口選項(即iFIX ODBC)和VBA編程兩種方法來訪問SQL數(shù)據(jù)源, iFIX ODBC配置相對簡單,所以本應用中采用iFIX ODBC方便地將IFIX SCADA數(shù)據(jù)存入SQL數(shù)據(jù)庫。iFIX ODBC由SQL觸發(fā)塊(SQT)、SQL數(shù)據(jù)塊(SQD)、SQL任務三部分組成,其中SQL觸發(fā)塊用于制定SQL命令的名稱,并確定數(shù)據(jù)傳輸觸發(fā)的時間或事件,SQL數(shù)據(jù)塊用于指定采集和傳送的數(shù)據(jù)以及數(shù)據(jù)傳送的方向。SQL任務除去處理和ODBC驅動的通訊外,還和SQT塊、SQD塊通訊。數(shù)據(jù)通訊原理圖如下:

圖二
實現(xiàn)過程如下:
1、 打開SQL Server2000企業(yè)管理器,在security內增加可以訪問數(shù)據(jù)庫的用戶,并將該用戶登錄進數(shù)據(jù)庫DB1,在數(shù)據(jù)庫內創(chuàng)建應用來保存數(shù)據(jù)的表。
2、 創(chuàng)建ODBC數(shù)據(jù)源,通過控制面板增加數(shù)據(jù)源,并指定該數(shù)據(jù)源連接的SQL SERVER。使用SQL方式驗證,輸入有效的登錄名和口令,測試ODBC數(shù)據(jù)連接是否成功。如不成功,從新檢查ODBC數(shù)據(jù)源配置。
3、 運行iFIX下的系統(tǒng)配置SCU,并在SCU界面菜單選擇“配置“下拉菜單選擇SQL賬戶或快捷圖標按鈕進入SQL帳戶配置界面,單擊配置SQL任務按鈕彈出SQL任務組態(tài)對話框,在“SQL支持“選項中選中啟用。在關系數(shù)據(jù)庫選項中正確填入數(shù)據(jù)庫ID:DB1、SQL命令表、錯誤記錄表名稱。
4、 打開iFIX數(shù)據(jù)庫管理器創(chuàng)建SQT和SQD數(shù)據(jù)塊。將所需的SCADA數(shù)據(jù)保存到相應的SQD數(shù)據(jù)表中。定義SQT中的SQL名和數(shù)據(jù)庫ID,數(shù)據(jù)庫ID和ODBC名稱應相同。保存數(shù)據(jù)庫管理器;
5、 打開iFIX任務控制器,點擊SQL,驗證SQL服務是否啟動。如正常,當數(shù)據(jù)庫中SQT被觸發(fā),則將相應過程數(shù)據(jù)庫文件存入SQL數(shù)據(jù)庫中。
三、 用VB6.0 實現(xiàn)電爐爐報信息數(shù)據(jù)庫的連接和綁定
在VB6.0查看該爐報數(shù)據(jù)庫操作過程如下
1、 運行VB6.0新建工程,在VB界面中執(zhí)行“視圖”菜單的“數(shù)據(jù)視圖窗口“彈出該界面;
2、 在該界面中選中“數(shù)據(jù)鏈接“文件夾,單擊鼠標右鍵,出現(xiàn)快捷菜單,執(zhí)行菜單項“添加數(shù)據(jù)鏈接“界面,在“提供者“選項卡中選擇OLE DB提供者為“Microsoft OLE Provider for SQL Server”(或Microsoft OLE DB Provider for ODBC Drivers);
3、 選擇“連接“選項卡,輸入數(shù)據(jù)庫服務器名稱、用戶登錄名、密碼及登錄的數(shù)據(jù)庫。
4、 設計相應窗體應用界面,設計應用程序代碼,用程序實現(xiàn)數(shù)據(jù)庫的連接。具體操作過程如下:
模塊Modeule1的設計
Option Explicit
Public SQLUserName As String 用戶登錄賬戶
Public SQLPassword As String 用戶登錄密碼
Public MyConnection As New ADODB.Connection 建立數(shù)據(jù)庫連接
窗體裝載事件中加入下列代碼,加載主窗體時,通過代碼與數(shù)據(jù)庫DB1建立連接。
Private Sub From_load ()
MyConnection.ConnectionString ="driver={SQL Server};"_ '驅動程序名
&"server=server;uid="&SQLUserName_ '服務器名及用戶登錄賬戶號
&";pwd="&SQLPassword & ";"_ '用戶登錄密碼
&"database=db1"
MyConnection.Open
End sub
在窗體上添加相應數(shù)據(jù)庫表內數(shù)據(jù)連接,將所需數(shù)據(jù)顯示在窗體上。編譯VB工程項目,生成可執(zhí)行文件EAF_Repoter.EXE,.運行該程序。所示如下圖:

四 、結束語
以上我們介紹了利用IFIX組態(tài)軟件中提供iFIX SQL接口選項(即iFIX ODBC)方法將過程數(shù)據(jù)庫數(shù)據(jù)存入SQL數(shù)據(jù)庫,實現(xiàn)了電爐爐報信息采集。對于電爐的生產信息、時間信息做匯總存檔。用VB6.0 做界面,方便了生產人員的查詢和比對分析。在實際應用中生產技術人員可以根據(jù)爐報的相關信息指導調整電爐的生產和操作。
本文作者創(chuàng)新點:利用iFIX過程數(shù)據(jù)庫,配置SQL觸發(fā)塊和SQL數(shù)據(jù)塊將SCADA(過程數(shù)據(jù)庫)數(shù)據(jù)寫入關系數(shù)據(jù)庫SQL Server 2000匯成電爐爐報信息。
1、iFIX簡介
Proficy HMI/SCADA - iFIX 是GE FANUC公司開發(fā)的業(yè)界內優(yōu)秀的人機界面軟件之一。IFIX運行于Windows 2000、NT、XP平臺,采用Win32標準和32位代碼,使用客戶/服務器體系結構。IFIX組態(tài)軟件有許多優(yōu)點:畫面編輯簡單易用,內嵌大量常用工業(yè)圖庫,便于快速生成畫面。其數(shù)據(jù)功能也很強大,可以與SQL、Access或Oracle數(shù)據(jù)庫配合使用。很方便的將PLC報警、事件、過程數(shù)據(jù)等實時地記錄到這些數(shù)據(jù)庫中。iFIX軟件提供各種業(yè)內流行PLC驅動程序可與數(shù)百種第三方廠家的PLC、DCS互連。IFIX還是一個開放性很強的HMI,它全面支持微軟操作系統(tǒng)的ODBC(開放式數(shù)據(jù)庫連接)。可以利用第三方支持ODBC接口的應用程序從數(shù)據(jù)庫中獲取數(shù)據(jù)。
2、iFIX®數(shù)據(jù)庫:SCADA的基本功能
iFIX軟件是以SCADA(supervisory control and data acquisition)組件為核心。SCADA的基本功能是數(shù)據(jù)采集和數(shù)據(jù)管理,保證數(shù)據(jù)的完整性,并且提供完整的分布式網絡功能。
數(shù)據(jù)采集就是從OPC服務器或現(xiàn)場過程硬件— 主要包括生產所必須的控制器、傳感器、馬達、開關和其它設備獲取過程數(shù)據(jù)信息存入SCADA。iFIX也可以向現(xiàn)場下位機寫數(shù)據(jù),這樣就建立了控制軟件所需要的雙向連接。IFIX通過OPC(OLE for process control)方式來獲得和利用現(xiàn)場數(shù)據(jù),OPC是一個具有公用接口的客戶/服務器模塊,它允許iFIX與標準的對象、方式和屬性通信。IFIX不需要用特別的硬件來獲得數(shù)據(jù),而是通過一個I/O驅動器的軟件接口同已經存在的I/O設備直接通訊。在大多數(shù)情況下,iFIX可以使用現(xiàn)場已經裝配的I/O硬件來工作,即使在現(xiàn)場的同一網絡上使用不同廠家的I/O設備,I/O驅動器都可以兼容它們,這在現(xiàn)場應用中顯得尤為重要。在本應用中就是利用OPC方式來獲取電爐各過程控制PLC中的數(shù)據(jù)信息,并匯總形成爐報信息。
數(shù)據(jù)管理包括通過掃描、報警和控制程序(SAC, scan alarm control)從驅動程序映像列表(DIT, diver image table)中讀取數(shù)據(jù),對數(shù)據(jù)進行處理,再將數(shù)據(jù)傳送到過程數(shù)據(jù)庫(PDB, process data base)以及通過建立SQD和SQT觸發(fā)器把采集的數(shù)據(jù)存儲到數(shù)據(jù)庫(如:SQL、ORACLE)相應的表中,來進行對數(shù)據(jù)的統(tǒng)計、分析。
3、VB6.0簡介
VB6.0是微軟公司推出的優(yōu)秀的Windows應用程序快速開發(fā)工具。它以先進的可視化面向對象開發(fā)技術。簡單易學的編程語言、靈活的數(shù)據(jù)庫操作等優(yōu)點吸引了廣大程序員的青睞。利用VB6.0的新一代數(shù)據(jù)庫引擎—ADO,可以方便的和SQLSERVER數(shù)據(jù)庫連接,快速的在數(shù)據(jù)庫綁定控件與數(shù)據(jù)之間建立連接,實現(xiàn)對數(shù)據(jù)庫的操作。
本文探索并實踐如何將IFIX SCADA數(shù)據(jù)存入SQLSERVER,并用VB6.0通過ODBC訪問SQL數(shù)據(jù),形成電爐爐報信息的匯總與查詢。其原理圖如下:

二、將IFIX SCADA數(shù)據(jù)記錄通過ODBC保存到SQL SERVER
IFIX組態(tài)軟件中提供iFIX SQL接口選項(即iFIX ODBC)和VBA編程兩種方法來訪問SQL數(shù)據(jù)源, iFIX ODBC配置相對簡單,所以本應用中采用iFIX ODBC方便地將IFIX SCADA數(shù)據(jù)存入SQL數(shù)據(jù)庫。iFIX ODBC由SQL觸發(fā)塊(SQT)、SQL數(shù)據(jù)塊(SQD)、SQL任務三部分組成,其中SQL觸發(fā)塊用于制定SQL命令的名稱,并確定數(shù)據(jù)傳輸觸發(fā)的時間或事件,SQL數(shù)據(jù)塊用于指定采集和傳送的數(shù)據(jù)以及數(shù)據(jù)傳送的方向。SQL任務除去處理和ODBC驅動的通訊外,還和SQT塊、SQD塊通訊。數(shù)據(jù)通訊原理圖如下:

圖二
實現(xiàn)過程如下:
1、 打開SQL Server2000企業(yè)管理器,在security內增加可以訪問數(shù)據(jù)庫的用戶,并將該用戶登錄進數(shù)據(jù)庫DB1,在數(shù)據(jù)庫內創(chuàng)建應用來保存數(shù)據(jù)的表。
2、 創(chuàng)建ODBC數(shù)據(jù)源,通過控制面板增加數(shù)據(jù)源,并指定該數(shù)據(jù)源連接的SQL SERVER。使用SQL方式驗證,輸入有效的登錄名和口令,測試ODBC數(shù)據(jù)連接是否成功。如不成功,從新檢查ODBC數(shù)據(jù)源配置。
3、 運行iFIX下的系統(tǒng)配置SCU,并在SCU界面菜單選擇“配置“下拉菜單選擇SQL賬戶或快捷圖標按鈕進入SQL帳戶配置界面,單擊配置SQL任務按鈕彈出SQL任務組態(tài)對話框,在“SQL支持“選項中選中啟用。在關系數(shù)據(jù)庫選項中正確填入數(shù)據(jù)庫ID:DB1、SQL命令表、錯誤記錄表名稱。
4、 打開iFIX數(shù)據(jù)庫管理器創(chuàng)建SQT和SQD數(shù)據(jù)塊。將所需的SCADA數(shù)據(jù)保存到相應的SQD數(shù)據(jù)表中。定義SQT中的SQL名和數(shù)據(jù)庫ID,數(shù)據(jù)庫ID和ODBC名稱應相同。保存數(shù)據(jù)庫管理器;
5、 打開iFIX任務控制器,點擊SQL,驗證SQL服務是否啟動。如正常,當數(shù)據(jù)庫中SQT被觸發(fā),則將相應過程數(shù)據(jù)庫文件存入SQL數(shù)據(jù)庫中。
三、 用VB6.0 實現(xiàn)電爐爐報信息數(shù)據(jù)庫的連接和綁定
在VB6.0查看該爐報數(shù)據(jù)庫操作過程如下
1、 運行VB6.0新建工程,在VB界面中執(zhí)行“視圖”菜單的“數(shù)據(jù)視圖窗口“彈出該界面;
2、 在該界面中選中“數(shù)據(jù)鏈接“文件夾,單擊鼠標右鍵,出現(xiàn)快捷菜單,執(zhí)行菜單項“添加數(shù)據(jù)鏈接“界面,在“提供者“選項卡中選擇OLE DB提供者為“Microsoft OLE Provider for SQL Server”(或Microsoft OLE DB Provider for ODBC Drivers);
3、 選擇“連接“選項卡,輸入數(shù)據(jù)庫服務器名稱、用戶登錄名、密碼及登錄的數(shù)據(jù)庫。
4、 設計相應窗體應用界面,設計應用程序代碼,用程序實現(xiàn)數(shù)據(jù)庫的連接。具體操作過程如下:
模塊Modeule1的設計
Option Explicit
Public SQLUserName As String 用戶登錄賬戶
Public SQLPassword As String 用戶登錄密碼
Public MyConnection As New ADODB.Connection 建立數(shù)據(jù)庫連接
窗體裝載事件中加入下列代碼,加載主窗體時,通過代碼與數(shù)據(jù)庫DB1建立連接。
Private Sub From_load ()
MyConnection.ConnectionString ="driver={SQL Server};"_ '驅動程序名
&"server=server;uid="&SQLUserName_ '服務器名及用戶登錄賬戶號
&";pwd="&SQLPassword & ";"_ '用戶登錄密碼
&"database=db1"
MyConnection.Open
End sub
在窗體上添加相應數(shù)據(jù)庫表內數(shù)據(jù)連接,將所需數(shù)據(jù)顯示在窗體上。編譯VB工程項目,生成可執(zhí)行文件EAF_Repoter.EXE,.運行該程序。所示如下圖:

四 、結束語
以上我們介紹了利用IFIX組態(tài)軟件中提供iFIX SQL接口選項(即iFIX ODBC)方法將過程數(shù)據(jù)庫數(shù)據(jù)存入SQL數(shù)據(jù)庫,實現(xiàn)了電爐爐報信息采集。對于電爐的生產信息、時間信息做匯總存檔。用VB6.0 做界面,方便了生產人員的查詢和比對分析。在實際應用中生產技術人員可以根據(jù)爐報的相關信息指導調整電爐的生產和操作。
本文作者創(chuàng)新點:利用iFIX過程數(shù)據(jù)庫,配置SQL觸發(fā)塊和SQL數(shù)據(jù)塊將SCADA(過程數(shù)據(jù)庫)數(shù)據(jù)寫入關系數(shù)據(jù)庫SQL Server 2000匯成電爐爐報信息。
文章版權歸西部工控xbgk所有,未經許可不得轉載。