1,自動化軟件發展趨勢
自動化軟件主要是指為用戶提供HMI的開發和運行環境的軟件,有些軟件還可以提供回路控制功能,使用戶實現基於PC的控制方案。自動化軟件應具有以下主要功能和特點:工業過程的動態可視化;數據收集和管理;過程監控和報警;報告和操作記錄功能;系統安全的分級管理;為其他企業程序提供實時和歷史數據;簡單的回路調節;批量控制等。
近年來,隨著計算機和網絡技術的發展和應用,自動化軟件的發展也呈現出以下發展趨勢。
1.1開放性和標準化
近年來,許多自動化軟件制造商已經將通用的標準化編程語言,如微軟的VBA(Visual Basic for Applications)集成到他們自己的軟件開發環境中。VBA和VB(Visual Basic)很像,但是不能編譯成可執行文件,這給很多熟悉VB的用戶提供了壹個編程環境。用戶在VBA環境下編寫程序時,可以使用DDE、ActiveX控件、ODBC、COM/DCOM等技術,使自動化軟件進化成壹個開放的軟件平臺。當軟件功能不能滿足用戶的特殊需求時,用戶可以根據自己的需求進行二次開發。
同時,OPC(OLE for Process control 1)技術也是自動化軟件的壹個熱點。OPC是微軟公司的對象鏈接和嵌入OLE/COM技術在過程控制中的應用,為工業控制領域提供了標準的數據訪問機制。
1.2網絡
隨著Internet/Intranet的普及,自動化軟件集成了基於TCP/IP協議的網絡功能,使其成為協同制造過程中的核心系統,實現了企業網絡環境下的實時數據管理、實時過程查看、實時趨勢瀏覽、報警記錄和查看、報表數據存儲、歷史趨勢存儲和查看、生產過程報表生成、生產統計報表生成等功能,從而實現了過程控制系統與信息系統的網絡集成。用戶可以通過IE瀏覽器登錄自動化軟件的Web Server服務器,實現生產過程的遠程瀏覽。
1.3管控壹體化
生產管理信息系統是大型企業的重點建設項目。隨著大規模數據庫技術的成熟,自動化軟件已經成為整個工廠信息收集和集成的工具。在未來的企業信息化進程中,自動化軟件將成為硬件設備和生產管理信息系統之間的橋梁。因為自動化軟件可以為生產管理信息系統提供生產過程的實時和歷史數據,而生產管理信息系統對生產過程具有指導作用。
2.VBA在自動化軟件中的應用
接下來以iFIX軟件為例,通過VBA編寫的腳本程序,給出將歷史數據輸出到Excel的例子,說明VBA在自動化軟件中的應用。
2.1 iFIX軟件簡介
IFIX軟件是通用電氣自動化軟件產品系列中基於Windows的HMI/SCADA組件。IFIX是壹個基於開放和組件技術的產品,旨在提供壹個易於在工廠級和商業系統之間集成和協同工作的設計環境。iFIX中還加入了OPC、VBA、ActiveX、DDE、ODBC等工業標準化技術,可以提供強大的開發環境,滿足用戶的特殊需求。
2.2 VBA在ifix軟件中的應用實例
ifix的數據訪問機制。iFIX中的數據分為實時數據庫和歷史數據庫,這兩個數據庫的訪問方式不同。對於實時數據庫,在iFIX的VBA項目中提供了各種iFIX對象,使用這些對象可以很容易地在VBA實現iFIX的控制功能。對於歷史數據庫,您可以訪問關系數據庫來獲取歷史數據。對於這些關系數據庫,大多數編程語言都提供了相應的數據控件來訪問它們。在VBA,通常使用ADO對象模型來訪問這些歷史數據庫。
B) ADO數據控件使用Microsoft ActiveX數據對象(ADO)快速建立數據綁定控件和數據提供者之間的連接。數據綁定控件是任何具有數據源屬性的控件。數據提供者可以是符合ODBC規範的任何數據源。
c)用VBA實現Excel報表。通過編寫VBA腳本程序,可以將歷史數據輸出到Excel並生成Excel報表。觸發方式有兩種:壹種是通過iFIX scheduler在固定的時間或事件啟動VBA腳本程序生成報告;妳也可以直接使用VBA生成壹個用戶界面。用戶可以輸入啟動時間和間隔等參數,然後點擊按鈕啟動VBA腳本程序並生成報告。這兩種方法在程序上是相似的,VBA腳本程序的主要部分如下。其中,程序將歷史數據、時間、標簽名等參數發送到Excel的Sheet2中。用戶可以使用Sheet1作為報表布局,並通過編輯布局格式和引用Sheet2數據形成最終報表。
根據用戶要求定義要查詢的時間段和變量名。
Dim MyDate,StartTime,EndTime作為字符串Dim tag 1,Tag2作為字符串
Tagl="TIC101。F_CV "
Tag2="TIC102。F_CV "
MyDate=Format(Now()," yyyy-mm-DD ")
StartTime = MyDate & amp”& amp"0:00:00"
結束時間=我的日期。”& amp" 23:OO:OO "
用ADO對象訪問ODBC數據庫,用SQL語言盲目查詢歷史數據。
strQuerySamp="Select Datetime,Value,Tag From Fix Where Mode = ' Sample ' and(Tag = ' " & Tagl & amp;" ' or TAG = ' " & ampTag2)和Interval=' 01:00:00 '和(Datetime)> = { ts ' " & amp;開始時間& amp)和Datetime < = { ts ' end time & amp;'})"
Dim cnADO作為新的ADODB。關系
Dim rsADO作為記錄集
設置cnADO=New ADODB。關系
cnADO。ConnectionString=" DSN=修復動態歷史數據;UID = saPWD =;”
cnAD0。打開“修復動態歷史數據”、“sa”、“修復動態歷史數據”
設置rsADO—新ADODB。記錄集
rsADO。打開strQuerySamp、cnADO、adOpenForwardOnly、adLockBatchOptimistic
調用Excel將歷史數據寫入打開的Excel報表文件。
Dim報告文件,在報告文件中作為字符串
Set Intyexcel= New Excel。應用
in report file-“C:\ data \ his report”
Intyexce1。打開InReportFile & amp".XLS”
Intyexce1。紙張(“紙張2”)。挑選
而rsADO。EOF & lt& gt真實的
用Intyexce1。工作表(2)
對於C=0到項
如果rsADO(c)= " "那麽。單元格(r,C + 1)。值= rsADO(c)
下壹個C
r;r+ 1
rsADO。M oveNex
以…結尾
w端
關閉Excel並保存報告文件。
out report file = in report file & amp;“_”& amp;我的約會
Intyexce1。ActiveW工作簿。另存為OutReportFile
Intyexce1。放棄
Set Intyexcel=Nothing
Set cnADO==Nothing
3.VBA應用的註意事項和前景。
集成了VBA編程語言的自動化軟件成為了壹個標準化、開放式的軟件開發平臺,使得自動化軟件本身具有無限的開放性和可擴展性。但也帶來了壹些問題。首先,開發者應該確保VBA腳本程序的可靠性和簡單性。VBA程序應經過嚴格全面的測試,並編寫錯誤處理程序,以確保生產過程控制萬無壹失。其次,VBA程序目前還不能寫多線程程序,開發者要選擇合適的觸發方式,避免沖突。
簡而言之,隨著最終用戶變得更加成熟,對自動化軟件有了更好的理解,他們將通過編寫程序來定制他們的過程和系統,以滿足他們的需求。自動化軟件將繼續為用戶提供這種安全可靠的技術手段。
參考
劉恩濤,趙。。Visual Basic6.0編程技術與案例分析,北京:中國水利水電出版社,1999.455 ~ 456,472 ~ 478,479 ~ 482。
[2]劉秉文,張深。。Visual Basic編程-數據庫。北京:人民郵電出版社。1999.196~198,224~232,248~251
詳細教程:/read.php?wid=455