TechnosoftwareOPCServerDeveloperStudio.NET操作入門OPCServerDeveloperStudio.NET用途說明及基本要求●OPCServerDeveloperStudio.NET提供完整的.NETVB/C#應用程式發展平台的工具和方法(Method),用來快速及簡易地發展OPCDataAccess、OPCAlarms&Events之Server端應用程式。●此工具讓我們不需花費許多時間先了解OPC規範,即可輕易地開發出我們需要的OPCServer應用程式。●欲採用此產品來開發OPCServer應用程式,必須先行安裝MicrosoftVisualStudio.NET2005軟體,並包含.NETFramework2.0的安裝。●以極低的價位購買一次,即可無限制地持續開發出各種OPCServer應用程式,並安裝在許多不同的電腦中。●OPCCoreComponents。以OPCDeveloperStudio.NET開發之應用程式均需要在安裝有由OPCFoundatation所提供之OPCCoreComponents才能正常執行。其安裝程式預設情況下是位於「我的文件」\OPCServerDeveloperStudio.NETProfessional\binaries\redist\OPCCoreComponentsRedistributable資料夾中的setup.exe和OPCCoreComponentsRedistributable(x86).msi程式。OPCServerDeveloperStudio.NET的應用程式群組內容●選擇「開始」功能表-程式集-Technosoftware-OPCServerDeveloperStudio.NETProfessional可看到此應用程式群組的內容如下:-Specifications:此群組內包含有常用的OPC規範,包括通用規範、OPCDA和OPCA&E規範。-ChangeLog:此產品之變更記錄文件。-LicenseAgreement:授權說明文件。-MicrosoftC#Samples:以C#程式語言製作之範例程式。-MicrosoftVBSamples:以VisualBasic.NET程式語言製作之範例程式。-OPCServerDeveloperStudio.NETDocumentation:原廠提供之教學輔助說明文件,其內包含所有可用的Namespace供參考。-OPCDA1.0aand2.05aDiagnosticClient:OPCDAClient程式診斷工具程式。-OPCRegistryCheckUtility:檢查Registry中OPC設定的程式。-OPCServerTraceUtility:OPCServer程式之追蹤檢查程式。-ProductSheet:產品規格書。-ReadmeFirst:此產品開始使用前之必讀文件。TsOpcNetDASampleServer範例程式的使用(一)●啟動MicrosoftVisualStudio2005或2008。如為MicrosoftVisualStudio2005,則請從「開始」功能表-所有程式-MicrosoftVisualStudio2005中執行。TsOpcNetDASampleServer範例程式的使用(二)●在MicrosoftVisualStudio2005的起始頁中的功能表中選擇「檔案」-「開啟」-「專案/方案」。並選擇到「我的文件」\OPCServerDeveloperStudio.NETProfessional\Microsoft\VB\TsOpcNetDASampleServer\資料夾中的TsOpcNetDASampleServer.sln,並按下開啟按鈕。TsOpcNetDASampleServer範例程式的使用(三)●「我的文件」\OPCServerDeveloperStudio.NETProfessional\Microsoft\VB\TsOpcNetDASampleServer\專案資料夾中包含有以下的檔案:-TsOpcNetServer.exe:此為共用的genericOPCDA1.0a/2.05a/3.00OPCServer。-RegServer.bat:此Batch檔被用來註冊OPCServer用。-ServerAdaption.vb:此CustomPluginclass的基底class是IGenericServerinterface,其包含讓genericserver叫用的methods,且必須依據應用程式的需求來加以修改。其名稱(CustomPlugin)不能被改變,因為它會被genericserver執行時所呼叫。-IGenericServer.vb:此檔案定義genericserver的interface。千萬不要對此檔案內容做任何變更。它包含了definitions、callbackmethods和被genericserver叫用的預設methods。-AssemblyInfo.vb:此為標準的.NETassemblydefinitions。-TsOpcNetServer.exe.config:此檔案可用來變更製作出來的OPCServer名稱,及在作業系統中的註冊資訊。如欲深入了解此OPCServer的定義如何被讀取,可參考IGenericServer.vb檔案中的OnGetDAServerRegistryDefinition()程式碼。-ReadMe.txt:包含上述內容的說明文件。TsOpcNetDASampleServer範例程式的使用(四)●此範例程式展示一個基本的OPCDA1.0a/2.05a/3.00OPCServer的製作。在ServerAdaption.vb檔案的RefreshThread中模擬了幾個信號變化:SimulatedData.Ramp、SimulatedData.Random和SimulatedData.Sine。TsOpcNetDASampleServer範例程式碼的解說●OPCServerDeveloperStudio.NETServer包含以下二個組件:genericOPCServerEXE(TsOpcNetServer.exe)和可客製化assemblyDLL(TsOpcNetServerPlugin.dll)。●Genericserver負責管理OPCDA1.05a/2.05a/3.00client界面和內部的datacache。此程式是不需要做任何變更的。●可客製化DLL部份負責處理與設備溝通界面。這裡所謂「設備」並不一定是指硬體裝置,它可能是資料庫或是其他軟體程式。可客製化DLL部份才是我們需要去加以編修的。●可客製化DLL提供一組可客製化的界面methods,用來進行與genericserver之間的設定、資料交換和OPCitem的更新協調。●Genericserver中的clientupdatethread依據連接上來的client之更新要求進行資料更新。●可客製化DLL呼叫genericserver來更新OPCitem的值。此事件觸發模式確保最佳的執行效能。但利用genericserver的refreshthread來呼叫可客製化DLL進行genericservercache的更新,也是可行的。全新OPCServer專案的建立與編修(一)●複製整個範例程式資料夾至另外一個新建立的資料夾。●以VisualStudio2005開啟此新建立資料夾中的專案,並修改solution和project為自己想要的名稱。●開啟ServerAdaption.vb,並變更OnGetDAServerRegistryDefinition()中的server註冊定義資訊。●為產生出全新獨一無二的GUID以使用在CLSID和APPID,可利用VisualStudio的工具CreateGUIDS來進行。●在IGenericServer.vb中對於下述函式進行必要的編修。●Genericserver在程式啟始階段呼叫以下的methods:OnGetDAServerRegistryDefinition()、OnGetDAServerParameters()、OnGetDAOptimizationParameters()及OnCreateServerItems()。以及當client呼叫以下的函式時:OnRefreshItems()和OnWriteItems()。●最重要的callback函式是:AddItem()和SetItemValue()。Callback函式允許客製化DLL從genericserver取得狀態資訊,或是變更genericserver中的資料。●一些額外可被genericserver呼叫的函式有:-動態位址空間處理的OnItemRequest()。全新OPCServer專案的建立與編修(二)-客製化特定瀏覽處理的OnBrowseChangePosition()、OnBrowseItemIDs()和OnBrowseGetFullItemID()。-客製化屬性處理的OnQueryProperties()和OnGetPropertyValue()。-負責OPCitem更新最佳化的OnAddItems()和OnRemoveItems()。●一些額外可被genericserver呼叫的callback函式有:-AddProperty()允許增加客製化屬性到genericserver。-AddAnalogItem()允許增加類比item到genericserver的cache。-RemoveItem()允許從genericserver的cache中移除Item。-GetActiveItems()用來取得正被client使用的items清單。●更新OPCItem從設備到client包含以下二部份:-從設備更新到server的cache。-更新clients。●從client更新資料到設備是利用以下方式處理:-更新暫存buffer或更新設備。TsOpcNetDASampleServer除錯、編譯及執行的方式(一)●在專案名稱TsOpcNetDASampleServer上按滑鼠右鍵並選擇「屬性」來開啟屬性設定視窗。TsOpcNetDASampleServer除錯、編譯及執行的方式(二)●點選「起始外部程式」並按下右方的檔案選擇按鈕來選取「我的文件」\OPCServerDeveloperStudio.NETProfessional\Microsoft\VB\TsOpcNetDASampleServer\資料夾內的TsOpcNetServer.exe。TsOpcNetDASampleServer除錯、編譯及執行的方式(三)●接著就可從功能表的「偵錯」-「開始偵錯」進行偵錯或編譯及執行的動作。TsOpcNetDASampleServer除錯、編譯及執行的方式(四)●Genericserver開始執行時,會呼叫IGenericServer.vb檔案中的OnGetDAServerRegistryDefinition()。●當第一個OPCClient連上時,Genericserver會呼叫IGenericServer.vb檔案中的OnGetDAServerParameters()和OnCreateServerItems()函式。●等到執行完成以上三個函式之後,即進行正常的OPCServer運作。●若此專案的OPCServer名稱(亦即ProgID)未經變更,則可從任何OPCClient的瀏覽OPCServer視窗中看到此OPCServer的預設名稱–TsOpcNet.DataSampleVB.67,並要求其提供服務。佈署已建置好的OPCServer到其它電腦●專案建置(Build)成功之後,需複製專案建置電腦中的TsOpcNetServer.exe和RegServer.bat從專案資料夾到bin資料夾下