利用IFIX的數(shù)據(jù)庫技術(shù)實(shí)現(xiàn)電爐的爐報信息采集
2006/12/20 9:54:00
一、前言
1、iFIX簡介
Proficy HMI/SCADA - iFIX 是GE FANUC公司開發(fā)的業(yè)界內(nèi)優(yōu)秀的人機(jī)界面軟件之一。IFIX運(yùn)行于Windows 2000、NT、XP平臺,采用Win32標(biāo)準(zhǔn)和32位代碼,使用客戶/服務(wù)器體系結(jié)構(gòu)。IFIX組態(tài)軟件有許多優(yōu)點(diǎn):畫面編輯簡單易用,內(nèi)嵌大量常用工業(yè)圖庫,便于快速生成畫面。其數(shù)據(jù)功能也很強(qiáng)大,可以與SQL、Access或Oracle數(shù)據(jù)庫配合使用。很方便的將PLC報警、事件、過程數(shù)據(jù)等實(shí)時地記錄到這些數(shù)據(jù)庫中。iFIX軟件提供各種業(yè)內(nèi)流行PLC驅(qū)動程序可與數(shù)百種第三方廠家的PLC、DCS互連。IFIX還是一個開放性很強(qiáng)的HMI,它全面支持微軟操作系統(tǒng)的ODBC(開放式數(shù)據(jù)庫連接)??梢岳玫谌街С諳DBC接口的應(yīng)用程序從數(shù)據(jù)庫中獲取數(shù)據(jù)。
2、iFIX®數(shù)據(jù)庫:SCADA的基本功能
iFIX軟件是以SCADA(supervisory control and data acquisition)組件為核心。SCADA的基本功能是數(shù)據(jù)采集和數(shù)據(jù)管理,保證數(shù)據(jù)的完整性,并且提供完整的分布式網(wǎng)絡(luò)功能。
數(shù)據(jù)采集就是從OPC服務(wù)器或現(xiàn)場過程硬件— 主要包括生產(chǎn)所必須的控制器、傳感器、馬達(dá)、開關(guān)和其它設(shè)備獲取過程數(shù)據(jù)信息存入SCADA。iFIX也可以向現(xiàn)場下位機(jī)寫數(shù)據(jù),這樣就建立了控制軟件所需要的雙向連接。IFIX通過OPC(OLE for process control)方式來獲得和利用現(xiàn)場數(shù)據(jù),OPC是一個具有公用接口的客戶/服務(wù)器模塊,它允許iFIX與標(biāo)準(zhǔn)的對象、方式和屬性通信。IFIX不需要用特別的硬件來獲得數(shù)據(jù),而是通過一個I/O驅(qū)動器的軟件接口同已經(jīng)存在的I/O設(shè)備直接通訊。在大多數(shù)情況下,iFIX可以使用現(xiàn)場已經(jīng)裝配的I/O硬件來工作,即使在現(xiàn)場的同一網(wǎng)絡(luò)上使用不同廠家的I/O設(shè)備,I/O驅(qū)動器都可以兼容它們,這在現(xiàn)場應(yīng)用中顯得尤為重要。在本應(yīng)用中就是利用OPC方式來獲取電爐各過程控制PLC中的數(shù)據(jù)信息,并匯總形成爐報信息。
數(shù)據(jù)管理包括通過掃描、報警和控制程序(SAC, scan alarm control)從驅(qū)動程序映像列表(DIT, diver image table)中讀取數(shù)據(jù),對數(shù)據(jù)進(jìn)行處理,再將數(shù)據(jù)傳送到過程數(shù)據(jù)庫(PDB, process data base)以及通過建立SQD和SQT觸發(fā)器把采集的數(shù)據(jù)存儲到數(shù)據(jù)庫(如:SQL、ORACLE)相應(yīng)的表中,來進(jìn)行對數(shù)據(jù)的統(tǒng)計、分析。
3、VB6.0簡介
VB6.0是微軟公司推出的優(yōu)秀的Windows應(yīng)用程序快速開發(fā)工具。它以先進(jìn)的可視化面向?qū)ο箝_發(fā)技術(shù)。簡單易學(xué)的編程語言、靈活的數(shù)據(jù)庫操作等優(yōu)點(diǎn)吸引了廣大程序員的青睞。利用VB6.0的新一代數(shù)據(jù)庫引擎—ADO,可以方便的和SQLSERVER數(shù)據(jù)庫連接,快速的在數(shù)據(jù)庫綁定控件與數(shù)據(jù)之間建立連接,實(shí)現(xiàn)對數(shù)據(jù)庫的操作。
本文探索并實(shí)踐如何將IFIX SCADA數(shù)據(jù)存入SQLSERVER,并用VB6.0通過ODBC訪問SQL數(shù)據(jù),形成電爐爐報信息的匯總與查詢。其原理圖如下:
二、將IFIX SCADA數(shù)據(jù)記錄通過ODBC保存到SQL SERVER
IFIX組態(tài)軟件中提供iFIX SQL接口選項(xiàng)(即iFIX ODBC)和VBA編程兩種方法來訪問SQL數(shù)據(jù)源, iFIX ODBC配置相對簡單,所以本應(yīng)用中采用iFIX ODBC方便地將IFIX SCADA數(shù)據(jù)存入SQL數(shù)據(jù)庫。iFIX ODBC由SQL觸發(fā)塊(SQT)、SQL數(shù)據(jù)塊(SQD)、SQL任務(wù)三部分組成,其中SQL觸發(fā)塊用于制定SQL命令的名稱,并確定數(shù)據(jù)傳輸觸發(fā)的時間或事件,SQL數(shù)據(jù)塊用于指定采集和傳送的數(shù)據(jù)以及數(shù)據(jù)傳送的方向。SQL任務(wù)除去處理和ODBC驅(qū)動的通訊外,還和SQT塊、SQD塊通訊。數(shù)據(jù)通訊原理圖如下:
圖二
實(shí)現(xiàn)過程如下:
1、 打開SQL Server2000企業(yè)管理器,在security內(nèi)增加可以訪問數(shù)據(jù)庫的用戶,并將該用戶登錄進(jìn)數(shù)據(jù)庫DB1,在數(shù)據(jù)庫內(nèi)創(chuàng)建應(yīng)用來保存數(shù)據(jù)的表。
2、 創(chuàng)建ODBC數(shù)據(jù)源,通過控制面板增加數(shù)據(jù)源,并指定該數(shù)據(jù)源連接的SQL SERVER。使用SQL方式驗(yàn)證,輸入有效的登錄名和口令,測試ODBC數(shù)據(jù)連接是否成功。如不成功,從新檢查ODBC數(shù)據(jù)源配置。
3、 運(yùn)行iFIX下的系統(tǒng)配置SCU,并在SCU界面菜單選擇“配置“下拉菜單選擇SQL賬戶或快捷圖標(biāo)按鈕進(jìn)入SQL帳戶配置界面,單擊配置SQL任務(wù)按鈕彈出SQL任務(wù)組態(tài)對話框,在“SQL支持“選項(xiàng)中選中啟用。在關(guān)系數(shù)據(jù)庫選項(xiàng)中正確填入數(shù)據(jù)庫ID:DB1、SQL命令表、錯誤記錄表名稱。
4、 打開iFIX數(shù)據(jù)庫管理器創(chuàng)建SQT和SQD數(shù)據(jù)塊。將所需的SCADA數(shù)據(jù)保存到相應(yīng)的SQD數(shù)據(jù)表中。定義SQT中的SQL名和數(shù)據(jù)庫ID,數(shù)據(jù)庫ID和ODBC名稱應(yīng)相同。保存數(shù)據(jù)庫管理器;
5、 打開iFIX任務(wù)控制器,點(diǎn)擊SQL,驗(yàn)證SQL服務(wù)是否啟動。如正常,當(dāng)數(shù)據(jù)庫中SQT被觸發(fā),則將相應(yīng)過程數(shù)據(jù)庫文件存入SQL數(shù)據(jù)庫中。
三、 用VB6.0 實(shí)現(xiàn)電爐爐報信息數(shù)據(jù)庫的連接和綁定
在VB6.0查看該爐報數(shù)據(jù)庫操作過程如下
1、 運(yùn)行VB6.0新建工程,在VB界面中執(zhí)行“視圖”菜單的“數(shù)據(jù)視圖窗口“彈出該界面;
2、 在該界面中選中“數(shù)據(jù)鏈接“文件夾,單擊鼠標(biāo)右鍵,出現(xiàn)快捷菜單,執(zhí)行菜單項(xiàng)“添加數(shù)據(jù)鏈接“界面,在“提供者“選項(xiàng)卡中選擇OLE DB提供者為“Microsoft OLE Provider for SQL Server”(或Microsoft OLE DB Provider for ODBC Drivers);
3、 選擇“連接“選項(xiàng)卡,輸入數(shù)據(jù)庫服務(wù)器名稱、用戶登錄名、密碼及登錄的數(shù)據(jù)庫。
4、 設(shè)計相應(yīng)窗體應(yīng)用界面,設(shè)計應(yīng)用程序代碼,用程序?qū)崿F(xiàn)數(shù)據(jù)庫的連接。具體操作過程如下:
模塊Modeule1的設(shè)計
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};"_ 驅(qū)動程序名
&"server=server;uid="&SQLUserName_ 服務(wù)器名及用戶登錄賬戶號
&";pwd="&SQLPassword & ";"_ 用戶登錄密碼
&"database=db1"
MyConnection.Open
End sub
在窗體上添加相應(yīng)數(shù)據(jù)庫表內(nèi)數(shù)據(jù)連接,將所需數(shù)據(jù)顯示在窗體上。編譯VB工程項(xiàng)目,生成可執(zhí)行文件EAF_Repoter.EXE,.運(yùn)行該程序。所示如下圖:
四 、結(jié)束語
以上我們介紹了利用IFIX組態(tài)軟件中提供iFIX SQL接口選項(xiàng)(即iFIX ODBC)方法將過程數(shù)據(jù)庫數(shù)據(jù)存入SQL數(shù)據(jù)庫,實(shí)現(xiàn)了電爐爐報信息采集。對于電爐的生產(chǎn)信息、時間信息做匯總存檔。用VB6.0 做界面,方便了生產(chǎn)人員的查詢和比對分析。在實(shí)際應(yīng)用中生產(chǎn)技術(shù)人員可以根據(jù)爐報的相關(guān)信息指導(dǎo)調(diào)整電爐的生產(chǎn)和操作。
本文作者創(chuàng)新點(diǎn):利用iFIX過程數(shù)據(jù)庫,配置SQL觸發(fā)塊和SQL數(shù)據(jù)塊將SCADA(過程數(shù)據(jù)庫)數(shù)據(jù)寫入關(guān)系數(shù)據(jù)庫SQL Server 2000匯成電爐爐報信息。
參考文獻(xiàn):(1)《SQL Server使用教程》電子工業(yè)出版社,鄭阿奇。
(2)《Visual Basic 6.0 程序設(shè)計》,中國鐵道出版社,林建仁。
(3)《IFIX3.5 電子書》
(4)王 宏.用Delphi6創(chuàng)建Cimplicity HMI日志數(shù)據(jù)庫報表[J].微計算機(jī)信息,2003,1-1:67-69。
作者簡介:
李大吉 男
1、iFIX簡介
Proficy HMI/SCADA - iFIX 是GE FANUC公司開發(fā)的業(yè)界內(nèi)優(yōu)秀的人機(jī)界面軟件之一。IFIX運(yùn)行于Windows 2000、NT、XP平臺,采用Win32標(biāo)準(zhǔn)和32位代碼,使用客戶/服務(wù)器體系結(jié)構(gòu)。IFIX組態(tài)軟件有許多優(yōu)點(diǎn):畫面編輯簡單易用,內(nèi)嵌大量常用工業(yè)圖庫,便于快速生成畫面。其數(shù)據(jù)功能也很強(qiáng)大,可以與SQL、Access或Oracle數(shù)據(jù)庫配合使用。很方便的將PLC報警、事件、過程數(shù)據(jù)等實(shí)時地記錄到這些數(shù)據(jù)庫中。iFIX軟件提供各種業(yè)內(nèi)流行PLC驅(qū)動程序可與數(shù)百種第三方廠家的PLC、DCS互連。IFIX還是一個開放性很強(qiáng)的HMI,它全面支持微軟操作系統(tǒng)的ODBC(開放式數(shù)據(jù)庫連接)??梢岳玫谌街С諳DBC接口的應(yīng)用程序從數(shù)據(jù)庫中獲取數(shù)據(jù)。
2、iFIX®數(shù)據(jù)庫:SCADA的基本功能
iFIX軟件是以SCADA(supervisory control and data acquisition)組件為核心。SCADA的基本功能是數(shù)據(jù)采集和數(shù)據(jù)管理,保證數(shù)據(jù)的完整性,并且提供完整的分布式網(wǎng)絡(luò)功能。
數(shù)據(jù)采集就是從OPC服務(wù)器或現(xiàn)場過程硬件— 主要包括生產(chǎn)所必須的控制器、傳感器、馬達(dá)、開關(guān)和其它設(shè)備獲取過程數(shù)據(jù)信息存入SCADA。iFIX也可以向現(xiàn)場下位機(jī)寫數(shù)據(jù),這樣就建立了控制軟件所需要的雙向連接。IFIX通過OPC(OLE for process control)方式來獲得和利用現(xiàn)場數(shù)據(jù),OPC是一個具有公用接口的客戶/服務(wù)器模塊,它允許iFIX與標(biāo)準(zhǔn)的對象、方式和屬性通信。IFIX不需要用特別的硬件來獲得數(shù)據(jù),而是通過一個I/O驅(qū)動器的軟件接口同已經(jīng)存在的I/O設(shè)備直接通訊。在大多數(shù)情況下,iFIX可以使用現(xiàn)場已經(jīng)裝配的I/O硬件來工作,即使在現(xiàn)場的同一網(wǎng)絡(luò)上使用不同廠家的I/O設(shè)備,I/O驅(qū)動器都可以兼容它們,這在現(xiàn)場應(yīng)用中顯得尤為重要。在本應(yīng)用中就是利用OPC方式來獲取電爐各過程控制PLC中的數(shù)據(jù)信息,并匯總形成爐報信息。
數(shù)據(jù)管理包括通過掃描、報警和控制程序(SAC, scan alarm control)從驅(qū)動程序映像列表(DIT, diver image table)中讀取數(shù)據(jù),對數(shù)據(jù)進(jìn)行處理,再將數(shù)據(jù)傳送到過程數(shù)據(jù)庫(PDB, process data base)以及通過建立SQD和SQT觸發(fā)器把采集的數(shù)據(jù)存儲到數(shù)據(jù)庫(如:SQL、ORACLE)相應(yīng)的表中,來進(jìn)行對數(shù)據(jù)的統(tǒng)計、分析。
3、VB6.0簡介
VB6.0是微軟公司推出的優(yōu)秀的Windows應(yīng)用程序快速開發(fā)工具。它以先進(jìn)的可視化面向?qū)ο箝_發(fā)技術(shù)。簡單易學(xué)的編程語言、靈活的數(shù)據(jù)庫操作等優(yōu)點(diǎn)吸引了廣大程序員的青睞。利用VB6.0的新一代數(shù)據(jù)庫引擎—ADO,可以方便的和SQLSERVER數(shù)據(jù)庫連接,快速的在數(shù)據(jù)庫綁定控件與數(shù)據(jù)之間建立連接,實(shí)現(xiàn)對數(shù)據(jù)庫的操作。
本文探索并實(shí)踐如何將IFIX SCADA數(shù)據(jù)存入SQLSERVER,并用VB6.0通過ODBC訪問SQL數(shù)據(jù),形成電爐爐報信息的匯總與查詢。其原理圖如下:
二、將IFIX SCADA數(shù)據(jù)記錄通過ODBC保存到SQL SERVER
IFIX組態(tài)軟件中提供iFIX SQL接口選項(xiàng)(即iFIX ODBC)和VBA編程兩種方法來訪問SQL數(shù)據(jù)源, iFIX ODBC配置相對簡單,所以本應(yīng)用中采用iFIX ODBC方便地將IFIX SCADA數(shù)據(jù)存入SQL數(shù)據(jù)庫。iFIX ODBC由SQL觸發(fā)塊(SQT)、SQL數(shù)據(jù)塊(SQD)、SQL任務(wù)三部分組成,其中SQL觸發(fā)塊用于制定SQL命令的名稱,并確定數(shù)據(jù)傳輸觸發(fā)的時間或事件,SQL數(shù)據(jù)塊用于指定采集和傳送的數(shù)據(jù)以及數(shù)據(jù)傳送的方向。SQL任務(wù)除去處理和ODBC驅(qū)動的通訊外,還和SQT塊、SQD塊通訊。數(shù)據(jù)通訊原理圖如下:
圖二
實(shí)現(xiàn)過程如下:
1、 打開SQL Server2000企業(yè)管理器,在security內(nèi)增加可以訪問數(shù)據(jù)庫的用戶,并將該用戶登錄進(jìn)數(shù)據(jù)庫DB1,在數(shù)據(jù)庫內(nèi)創(chuàng)建應(yīng)用來保存數(shù)據(jù)的表。
2、 創(chuàng)建ODBC數(shù)據(jù)源,通過控制面板增加數(shù)據(jù)源,并指定該數(shù)據(jù)源連接的SQL SERVER。使用SQL方式驗(yàn)證,輸入有效的登錄名和口令,測試ODBC數(shù)據(jù)連接是否成功。如不成功,從新檢查ODBC數(shù)據(jù)源配置。
3、 運(yùn)行iFIX下的系統(tǒng)配置SCU,并在SCU界面菜單選擇“配置“下拉菜單選擇SQL賬戶或快捷圖標(biāo)按鈕進(jìn)入SQL帳戶配置界面,單擊配置SQL任務(wù)按鈕彈出SQL任務(wù)組態(tài)對話框,在“SQL支持“選項(xiàng)中選中啟用。在關(guān)系數(shù)據(jù)庫選項(xiàng)中正確填入數(shù)據(jù)庫ID:DB1、SQL命令表、錯誤記錄表名稱。
4、 打開iFIX數(shù)據(jù)庫管理器創(chuàng)建SQT和SQD數(shù)據(jù)塊。將所需的SCADA數(shù)據(jù)保存到相應(yīng)的SQD數(shù)據(jù)表中。定義SQT中的SQL名和數(shù)據(jù)庫ID,數(shù)據(jù)庫ID和ODBC名稱應(yīng)相同。保存數(shù)據(jù)庫管理器;
5、 打開iFIX任務(wù)控制器,點(diǎn)擊SQL,驗(yàn)證SQL服務(wù)是否啟動。如正常,當(dāng)數(shù)據(jù)庫中SQT被觸發(fā),則將相應(yīng)過程數(shù)據(jù)庫文件存入SQL數(shù)據(jù)庫中。
三、 用VB6.0 實(shí)現(xiàn)電爐爐報信息數(shù)據(jù)庫的連接和綁定
在VB6.0查看該爐報數(shù)據(jù)庫操作過程如下
1、 運(yùn)行VB6.0新建工程,在VB界面中執(zhí)行“視圖”菜單的“數(shù)據(jù)視圖窗口“彈出該界面;
2、 在該界面中選中“數(shù)據(jù)鏈接“文件夾,單擊鼠標(biāo)右鍵,出現(xiàn)快捷菜單,執(zhí)行菜單項(xiàng)“添加數(shù)據(jù)鏈接“界面,在“提供者“選項(xiàng)卡中選擇OLE DB提供者為“Microsoft OLE Provider for SQL Server”(或Microsoft OLE DB Provider for ODBC Drivers);
3、 選擇“連接“選項(xiàng)卡,輸入數(shù)據(jù)庫服務(wù)器名稱、用戶登錄名、密碼及登錄的數(shù)據(jù)庫。
4、 設(shè)計相應(yīng)窗體應(yīng)用界面,設(shè)計應(yīng)用程序代碼,用程序?qū)崿F(xiàn)數(shù)據(jù)庫的連接。具體操作過程如下:
模塊Modeule1的設(shè)計
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};"_ 驅(qū)動程序名
&"server=server;uid="&SQLUserName_ 服務(wù)器名及用戶登錄賬戶號
&";pwd="&SQLPassword & ";"_ 用戶登錄密碼
&"database=db1"
MyConnection.Open
End sub
在窗體上添加相應(yīng)數(shù)據(jù)庫表內(nèi)數(shù)據(jù)連接,將所需數(shù)據(jù)顯示在窗體上。編譯VB工程項(xiàng)目,生成可執(zhí)行文件EAF_Repoter.EXE,.運(yùn)行該程序。所示如下圖:
四 、結(jié)束語
以上我們介紹了利用IFIX組態(tài)軟件中提供iFIX SQL接口選項(xiàng)(即iFIX ODBC)方法將過程數(shù)據(jù)庫數(shù)據(jù)存入SQL數(shù)據(jù)庫,實(shí)現(xiàn)了電爐爐報信息采集。對于電爐的生產(chǎn)信息、時間信息做匯總存檔。用VB6.0 做界面,方便了生產(chǎn)人員的查詢和比對分析。在實(shí)際應(yīng)用中生產(chǎn)技術(shù)人員可以根據(jù)爐報的相關(guān)信息指導(dǎo)調(diào)整電爐的生產(chǎn)和操作。
本文作者創(chuàng)新點(diǎn):利用iFIX過程數(shù)據(jù)庫,配置SQL觸發(fā)塊和SQL數(shù)據(jù)塊將SCADA(過程數(shù)據(jù)庫)數(shù)據(jù)寫入關(guān)系數(shù)據(jù)庫SQL Server 2000匯成電爐爐報信息。
參考文獻(xiàn):(1)《SQL Server使用教程》電子工業(yè)出版社,鄭阿奇。
(2)《Visual Basic 6.0 程序設(shè)計》,中國鐵道出版社,林建仁。
(3)《IFIX3.5 電子書》
(4)王 宏.用Delphi6創(chuàng)建Cimplicity HMI日志數(shù)據(jù)庫報表[J].微計算機(jī)信息,2003,1-1:67-69。
作者簡介:
李大吉 男
提交
查看更多評論
其他資訊
CIP網(wǎng)絡(luò)技術(shù)在板坯連鑄機(jī)控制系統(tǒng)中的應(yīng)用
110噸交流電弧爐自動化系統(tǒng)控制概述