技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > iFix軟件EDA HDA編程接口的開發(fā)應(yīng)用

iFix軟件EDA HDA編程接口的開發(fā)應(yīng)用

時間:2008-11-10 15:32:00來源:fenghy

導(dǎo)語:?本文結(jié)合實(shí)際工作,具體介紹了EDA和HDA在VB,VC,Delphi編程語言環(huán)境中的應(yīng)用。
摘要: GE公司的SCADA類軟件iFix具有開放的體系結(jié)構(gòu),其靈活開放的實(shí)時數(shù)據(jù)和歷史數(shù)據(jù)編程接口EDA和HDA在項(xiàng)目開發(fā)中具有廣泛的應(yīng)用,本文結(jié)合實(shí)際工作,具體介紹了EDA和HDA在VB,VC,Delphi編程語言環(huán)境中的應(yīng)用。 關(guān)鍵詞:iFix;實(shí)時數(shù)據(jù)庫訪問接口EDA;歷史數(shù)據(jù)訪問接口HAD The Development and Application of EDA and HDA Programming Interface for iFix ABSTRACT: The SCADA software iFix from GE has an open software framework. The flexible and open real-time and historical database programming interface EDA and HDA are widely used in project development. This paper introduces the application of EDA and HDA in VB, VC, Delphi programming environment in detail. Key Words: iFix, Easy data access interface EDA, Historical data access interface HDA 前言 GE公司的iFix作為工業(yè)控制領(lǐng)域內(nèi)穩(wěn)定可靠優(yōu)秀的SCADA軟件,具有可靠性高,穩(wěn)定性好,功能強(qiáng)大的特點(diǎn),尤其是其iFix數(shù)據(jù)訪問開發(fā)工具包(iFix DataBase Access Toolkit)允許應(yīng)用程序編程人員訪問iFix的實(shí)時和歷史數(shù)據(jù),該工具包主要包括了實(shí)時數(shù)據(jù)訪問接口(East DataBase Access-EDA),歷史數(shù)據(jù)訪問接口(Historical Data Access-HDA)以及創(chuàng)建應(yīng)用程序所需用到的其他函數(shù)(Helper Function)部分的功能。開發(fā)工具包中所提供的編程接口函數(shù)說明是針對于Visual Basic和標(biāo)準(zhǔn)的C,C++語言,而且并不提供搭建應(yīng)用程序的具體細(xì)節(jié)。本文根據(jù)實(shí)際應(yīng)用開發(fā)經(jīng)驗(yàn),給出了如何在Visual Basic, Visual C++和Delphi編程環(huán)境下編寫應(yīng)用程序的具體步驟。 1.Visual Basic編程環(huán)境下的應(yīng)用 在創(chuàng)建的VB應(yīng)用程序項(xiàng)目中應(yīng)該首先添加2個模塊(Module),這2個模塊都是由iFix數(shù)據(jù)訪問開發(fā)工具包提供的,其中一個模塊是用于EDA編程接口使用的vdba.bas,另外一個模塊是用于HDA編程接口使用的fixtools.bas,在vdba.bas模塊中主要是基于VB格式的EDA接口函數(shù),數(shù)據(jù)結(jié)構(gòu),常數(shù)的聲明,而在fixtools.bas模塊中主要是實(shí)現(xiàn)對fixtools.dll動態(tài)鏈接庫的聲明,基于VB格式的HDA接口函數(shù),數(shù)據(jù)結(jié)構(gòu),常數(shù)的聲明,此外還提供了其他函數(shù)聲明,如iFix軟件的安裝路徑,iFix是否正在運(yùn)行,即上面提到的Helper Function聲明。編程人員也可以根據(jù)自己的需要按照這兩個模塊的聲明建立符合自己需要的VB模塊。在添加了編程接口的聲明模塊后,就可以在VB應(yīng)用程序中調(diào)用這些函數(shù)了,如下面就是一個在VB中讀取iFix實(shí)時數(shù)據(jù)的程序段: Private Sub EDAReadData() ……. G1 = eda_define_group(1, 0) ‘根據(jù)讀取的iFix標(biāo)簽名(TagName)數(shù)組,定義需要讀取的一組標(biāo)簽的實(shí)時值“F_CV” For i = 0 To Tagnum TagNtf(i) = eda_define_ntf(G1, Nodename, TagName(i), "F_CV", 0) Next i Call eda_lookup(G1) Call eda_wait(G1) Call eda_read(G1) Call eda_wait(G1) For i = 0 To Tagnum ‘將讀取到的每個標(biāo)簽的實(shí)時數(shù)據(jù)讀出賦值給變量 eda_err = eda_get_float(G1, TagNtf(i), fvalue) DataValue(i) = Format(fvalue, "###0.0#") Next i eda_delete_group(G1) …… End sub 執(zhí)行上述的子程序后,定義在TagName數(shù)組中的iFix實(shí)時數(shù)據(jù)庫中的標(biāo)簽名的實(shí)時數(shù)據(jù)將被讀出,當(dāng)然,EDA編程接口也支持向iFix的實(shí)時數(shù)據(jù)庫寫入值。 2.在Visual C++編程環(huán)境下的應(yīng)用 iFix的應(yīng)用編程開發(fā)包中提供的是標(biāo)準(zhǔn)的C語言的函數(shù)調(diào)用范例,為了讓EDA,HDA編程接口可以在Visual C++集成開發(fā)環(huán)境中正常使用,也需要在Visual C++中進(jìn)行一定的設(shè)置才可以使得整個應(yīng)用程序編譯通過。其設(shè)置步驟如下: (1)在Visual C++集成開發(fā)界面的ToolsOption點(diǎn)擊Directories選項(xiàng)卡在“Include Files”列表項(xiàng)中添加一行iFixtools提供的include文件路徑,如:C:\iFixtools\include,然后再在“Library Files”列表項(xiàng)中添加一行iFixtools提供的library文件路徑,如:C:\iFixtools\lib。 (2)在編程界面的ProjectSettings….的Link選項(xiàng)卡中的Object\Library modules下面的文本框中填上:dmacsdba.lib fixtools.lib這2個庫文件。 (3)在include文件目錄下的“DataType.h”文件中添加一行:#define OS_WNT (4)在相應(yīng)調(diào)用iFix EDA函數(shù)的C++程序文件中,添加如下的語句聲明使用標(biāo)準(zhǔn)的C語言的函數(shù)調(diào)用: extern "C" { #include "fixeda.h" } 經(jīng)過上述4個步驟就可以在Visual C++集成開發(fā)環(huán)境中調(diào)用EDA,HDA函數(shù)讀寫數(shù)據(jù)了,下面的代碼就是Visual C++中調(diào)用iFix EDA函數(shù)的例子。 // 定義iFix EDA組 eh = eda_define_group(1,0); if(!eh) exit(1); //定義NTF ei[0] = eda_define_ntf(eh, "fix", "FZ03-30MKA01CE903-XQ01", "F_CV", 0); ei[1] = eda_define_ntf(eh, "fix", "FZ03-30MKA01CE005-XQ01", "F_CV", 0); eda_lookup(eh); eda_wait(eh); eda_read(eh); eda_wait(eh); for(i=0;i<2;i++) { err=eda_get_float(eh,ei[i],&fvalue); data[i]=fvalue; if(err==1) { MessageBox("Read iFix Data Error"); } else { m_sData.Format("%5.3f",data[i]); UpdateData(FALSE); } } eda_delete_group(eh); 3.在Delphi編程環(huán)境下的應(yīng)用 由于iFix的應(yīng)用編程接口主要是面向微軟公司的編程平臺下的語言而開發(fā)的,因此在Borland公司的Delphi編程軟件下要使用EDA,HDA編程接口,需要自己編寫相關(guān)的接口函數(shù)聲明等,為了實(shí)現(xiàn)這個目的,我們可以根據(jù)intellution公司提供的VB下的VDBA.bas和FixTools.bas這2個模塊,對他們進(jìn)行Delphi編程語言語法的改寫,形成相應(yīng)的2個單元(unit)文件VDBA.pas和FixTools.pas,在應(yīng)用程序部分將這2個單元文件包含(include)進(jìn)來,因此在Delphi下的開發(fā)應(yīng)用是如何正確地將VDBA.bas和FixTools.bas這2個VB模塊翻譯成Delphi語言中的單元文件。 這里需要注意的是:在iFix提供的VB模塊中,接口函數(shù)調(diào)用參數(shù)的傳遞是使用指針傳遞的,因此在Delphi的單元文件中應(yīng)注意將函數(shù)參數(shù)的傳遞也使用指針進(jìn)行傳遞的。完成了接口函數(shù)調(diào)用的單元文件后,在Delphi語言中的調(diào)用方法和步驟與VB或VC中的是一樣。下圖1就是在Delphi編程環(huán)境中的iFix EDA編程接口函數(shù)的聲明部分。
圖1:Delphi編程環(huán)境中的應(yīng)用 4.結(jié)論 掌握并靈活應(yīng)用iFix 軟件的EDA,HDA編程接口,我們就可以用自己熟悉的編程語言開發(fā)出符合用戶不同需求的應(yīng)用程序,iFix軟件體系的開放性和靈活性得到了充分的體現(xiàn)。利用該編程接口使得iFix軟件應(yīng)用在DCS系統(tǒng)的人機(jī)界面成為可能,華能新銳控制技術(shù)有限公司的DCS控制系統(tǒng)PineControl的操作員站部分PineHMI就是基于iFix上進(jìn)行了大量的系統(tǒng)二次開發(fā)而完成的,這其中就必須大量運(yùn)用到EDA,HDA編程接口來滿足DCS系統(tǒng)人機(jī)界面部分的一些特殊功能。此外利用該接口還可以拓展iFix軟件的應(yīng)用范圍,如華能國際電力股份公司的發(fā)電廠實(shí)時監(jiān)管的廠站側(cè)系統(tǒng)以此為主搭建起來的。編程人員還可以將這些編程接口封裝成ActiveX動態(tài)鏈接庫,ActiveX控件等方式進(jìn)行互聯(lián)網(wǎng)應(yīng)用的擴(kuò)展等方面的應(yīng)用。 參考文獻(xiàn): [1].GE.Intelution公司. iFix Electronic Book [2].GE.Intelution公司.iFix Database Access Toolkit Help

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:可飽和電感在開關(guān)電源中的應(yīng)用

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號