OPC函數及方法_第1頁
OPC函數及方法_第2頁
OPC函數及方法_第3頁
OPC函數及方法_第4頁
OPC函數及方法_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優質文檔-傾情為你奉上開發OPC客戶端程序時,首先應該生成OPC服務器支持的OPC對象,然后就可以使用OPC對象支持的屬性和方法,對其進行各種操作。這樣使得客戶程序可以像使用自己支持的數據和功能一樣,去使用服務器對象支持的數據和功能。在VisualBasic6.0里,是以對象為單位對OPC服務器進行訪問的。通過OPC自動化服務器的對象模型,可以得知OPC自動化接口由以下四種對象所定義。1OPCServer服務器對象OPCServer的一個實例,OPC服務器自動含有一個OPC組集合對象,并可在其基礎上生成一個OPC瀏覽器對象。OPCServer服務器對象在使用其它OPC對象前必須生成,也就是

2、說在引用其他對象之前必須先創建OPCServer。OPCServer對象提供了對數據源訪問和通信的方法,其提供了“Connect”方法來連接OPC自動化服務器。主要的屬性有:StartTime(只讀屬性,服務器啟動運行的時間)、CurrentTime(只讀屬性,返回服務器顯示的當前時間)、LastUpdateTime(對于本OPC應用程序的最后數據更新時間)、MajorVersion(只讀屬性,OPC服務器的主版本號)、MinorVersion(只讀屬性,OPC服務器的次版本號)、Bandwith(只讀屬性,返回OPC服務器的不敏感區的百分比)、ServerState(只讀屬性,返回服務器的運

3、行狀態,這個屬性是比較重要的,方便客戶端程序查詢服務器的狀態,從而達到排除故障的目的)、ServerName(只讀屬性,返回客戶程序所要連接的服務器名,也就是OPC服務器的ProgID)、ServerNode(服務器所在計算機名或者計算機的IP,用于連接遠程的計算機)等。主要方法有:GetOPCservers(獲得己經注冊的OPC服務器的程序標識符,即ProgID)、Connect(用來建立與OPC數據存取服務器的連接)、Disconnect(斷開與服務器的連接)、CreatBrowser(創建OPC瀏覽器的對象)等。事件:只有一個ServerShutDown(關閉服務器,這個事件在服務器即將

4、關閉之前發生,OPC服務器以此通知OPC客戶程序預告即將關閉,OPC客戶程序應該在接到此事件通知后,立即清除所有的OPC組并斷開與OPC服務器的連接)。2OPCGroups組集合對象OPC組的容器,包含所有客戶端創建的OPCGroup對象的自動化集合。這個對象的用途是添加、清除和管理OPC組主要的屬性有:DefaultGroupIsActive(新添加的OPC組的活動狀態的默認值。默認初始值是活動狀態)、DefaultGroupUpdateRate(新添加的OPC組的默認數據更新周期,默認初始值是1000毫秒)、DefaultGrouPDeadband(新添加的OPC組的默認不敏感區的默認值,

5、即能引起數據變化的最小數值百分比,默認值是0%)、DefaultGroupLocaleID(新添加的OPC組區域標識符的默認值)、DefaultGroupTimeBias(新添加的OPC組的時間偏差的默認值)等。主要方法:Item(OPC組集合的默認方法。返回由集合索引指定的OPC組對象)、Add(在OPC組集合對象中添加一個組對象)、GetOPCGroup(返回指定的OPC組)、RemoveAll(為服務器關機作準備,刪除所有組和標簽)、Remove(刪除一個指定的組)、ConnectPublicGroup(連接到公共組)等。事件:AllGroupsDataChange(由多個OPC組的數據

6、變化而引發的事件)。3OPCGroup組對象,OPCGroup的一個實例,它包含自身的信息,同時向OPCItems對象提供數據獲取服務,它自動含有一個Items集合對象,允許客戶端來組織它們需要訪問的數據。OPCGroup可以作為一個單元來進行激活或停止激活操作。主要屬性:Name(OPC組的名稱)、IsPublic(判斷是否公共組)、IsActive(控制組的激活狀態。只有活動狀態的OPC組才進行定期的數據更新)、IsSubscribed(控制組的訂閱狀態)、ClientHandle(客戶句柄是由客戶端程序指定的用于識別某個OPC組的長整型數。當進行數據訪問或詢問OPC組狀態時,服務器將這個

7、數值和結果一起返回給OPC客戶程序)、TimeBias(數據采樣時間的時間偏差值,用于調整設備時間和OPC服務器時間的偏差)、DeadBand(不敏感區,只有數據變化超過此不敏感區時,服務器才觸發數據變化事件發生)、UpdateRate(數據更新周期)、OPCItems(OPC組的默認屬性,OPC標簽集合對象)。主要方法:SyncRead(同步讀OPC組內單個或多個OPC項的數據值、質量標志和采樣時間)、Syncwrite(同步寫入OPC組內單個或多個OPC項的數據值)、AsyncRead(異步讀)、Asyncwrite(異步寫)、AsyncRefresh(觸發數據變化事件發生,刷新OPC組內

8、所有活動的OPC標簽的數據。結果有數據變化事件DataChange返回)等。主要事件:DataChange(在OPC組內任何OPC項的數據值或質量標志變化時觸發的事件)、AsyncReadComplete(異步讀結束時發生的事件)、AsyncWriteComplete(異步寫結束時發生的事件)等。4OPCItems項集合對象,是OPC項對象的容器,自動化客戶程序創建的OPCGroup對象所包含的所有OPCItems對象的自動化集合。屬性:Parent(返回所屬的OPC組對象)、DefaultRequestedDataType(添加OPC項時,默認的要求的數據類型。初始值是控制設備的固有數據類型

9、,既是VT_Empty)、DefaultAccessPath(添加OPC項時,默認的數據訪問路徑。初始值是空)、DefaultIsActive(添加OPC項時,默認的激活狀態,初始值是真)、Count(集合對象的固有屬性。OPC項集合中的OPC項數)。方法:Item(返回OPC標簽集合中由集合索引指定的OPC標簽)、GetOPCItem(返回OPC項集合中由服務器句柄指定的OPC項)、Addltem(在OPC項集合中添加新的OPC項)、Remove(刪除指定的項)、Aalidate(檢查項創建的有效性)、SetActive(分別設置項為活動或非活動狀態)、SetClientHandles(設置

10、OPC項的客戶句柄)、SetDataTypes(設置OPC項要求的數據類型)。5OPCItem項對象表示與OPC服務器內某個數據的連接。各個項包含了數據值、質量標志以及采樣時間。數據值的類型為VARIANT。主要屬性:ClientHandle(客戶句柄是由客戶端程序指定的用于識別某個OPC組的長整型數。當OPC組事件發生時,服務器將這個客戶句柄和結果一起返回給OPC客戶程序)、ServerHandle(服務器句柄是有OPC服務器設置的用于識別某個OPC標簽的一個全局唯一長整型數)、AccessPath(返回OPC客戶程序指定的訪問路徑)、AccessRights(返回OPC項的訪問權)、Ite

11、mID(返回識別這個OPC項的標識符)、IsActive(用以控制OPC項的活動狀態)、RequestedDataType(獲取項的值的數據類型)、Value(返回從OPC服務器讀取的最新數據值)、Quality(返回從OPC服務器讀取的最新數據值的質量標志)、TimeStamp(時間戳)等。主要方法:Read(從服務器讀取OPC項的數值)、Write(向服務器寫入OPC項的數值)。6OPC瀏覽器對象OPCBrowser是OPC服務器名稱空間的枝和葉的集合,可以瀏覽服務器配置中項的名字,一個OPCServer對象實例中只能有一個OPCBrowser對象的實例。瀏覽器功能是選用功能,OPC服務器

12、不支持瀏覽器的時候,即使執行CreateBrowser也不生成這個對象。主要屬性:Organization(OPC服務器的名稱空間的類型,有平面型和樹型兩種類型)、Filter(使用ShowBrancher或ShowLeafs方法時的瀏覽對象過濾器,使用這個過濾器可以縮小被瀏覽的名稱范圍)、DataType(使用ShowLeafs方法時,希望瀏覽的標簽的數據類型)、Count(瀏覽結果中的瀏覽標簽數)。主要方法:Item(返回瀏覽結果中按集合索引ItemSpecifier指定的對象)、ShowBranches(將現在位置下的所有符合過濾條件的枝加入到瀏覽結果中)、ShowLeafs(將現在位置

13、下的所有符合過濾條件的葉加入到瀏覽結果中)、MoveUp(向現在位置的上一層移動)、MoveToRoot(向名稱空間的最上層移動)、MoveDown(向現在位置的下一層移動)、MoveTo(向瀏覽器的絕對位置移動)、GetItemID(由瀏覽標簽的名稱返回OPC標簽的標識符)。(1)建立新工程或項目,在“工程”菜單下選擇“引用”,如圖5-3所示。只有引用OPCDAAuoto.DLL后,在程序中才能創建服務器對象,然后進行一系列的操作。(2)在彈出的引用窗口里單擊“瀏覽(B)”按鈕,彈出添加引用窗口,選擇OPCDAAuoto.DLL文件。(3)在引用窗口里的OPCAutomation2.0前面打

14、鉤,按“確定”按鈕。(4)定義全局變量,這樣可以在窗體的任何方法的代碼內應用。變量類型應該指定為對象型。這些對象最好在窗體的通用部分聲明加上“OptionExplicit”語句,表示模塊里的所有變量都需要顯式聲明。由于OPC自動化接口的數組的索引要求必須從1開始,而系統默認是從0開始,為了避免錯誤最好在代碼的最初加上“OptionBase1”語句。為了使對象可以處理事件,必須將objTestGrp和objServer的聲明中加上“WithEvents”語句,表示聲明的對象可以響應事件。OptionExplicitOptionBase1 Dim WithEventsobjServer As OP

15、CServerDim objGroups As OPCGroups Dim WithEventsobjTestGrp As OPCGroupDim objItems As OPCItems(5)連接OPC服務器和建立OPC組考慮到代碼的可反復使用性,采用子程序進行編程。 SubConnect(strProgIDAsString,OptionalstrNodeAsString)If objServerIsNothing Then 建立一個OPC服務器對象SetobjServer=NewOPCServerEndIf服務器狀態ServerState屬性一共有OPCRunning、OPCFailed、

16、OPCNoconfig、OPCSuspended、OPCTest和OPCDisconnected六個值,分別表示正在運行、失敗、沒有配置、暫停、測試和沒有連接六種OPC服務器當前的狀態。如果OPC服務器沒有連接,我們才執行objServer.ConnectstrProgID,strNode語句。strProgID就是ProgID,strNode就是用于遠程通信的IP地址。If objServer.ServerState = OPCDisconnected Then連接OPC服務器objServer.Connect strProgID,strNodeEndIf在VisualBasic中,通過執行

17、一個Set操作實現調用其它接口的方法。If objGroupsIsNothing Then 建立一個OPC組集合Set objGroups = objServer.OPCGroupsEndIfIf objTestGrpIsNothing Then 添加一個OPC組 Set objTestGrp = objGroups.Add(Group) EndIf EndSub(6)添加OPC標簽對服務器進行訪問前,必須先在OPC組里添加要訪問的OPC標簽。 OPC客戶端程序要按照用戶指定的標簽或者從組態文件里讀取需要添加的OPC標簽。Sub AddItem()DimstrItemIDs(17) As St

18、ringDimlClientHandles(17) As LongDim lErrors () As Long DimI As IntegerIf ObjTestGrpIsNothing Then ExitSub EndIf If NotobjItemsIsNothing ThenIf objItems.Count0 Then ExitSub EndIf EndIf設置組活動狀態。只有處于活動狀態的OPC才進行定期的數據更新。非活動狀態的OPC組,除了在接到顯然的數據讀寫要求外,并不收集任何數據。If mnuSubscribtion.Checked = True Then objTestGrp

19、.IsActive = True Else objTestGrp.IsActive=False EndIf啟動組異步通知。進行訂閱的OPC組可以自動收到從服務器送來的數據變化通知。objTestGrp.IsSubscribed=True建立OPC項集合SetobjItems=objTestGrp.OPCItems生成從TAG1到TAG17的項標識符ForI=1To17strItemIDs(I)=Server.Group.TAG&IlClientHandles(I)=INext添加OPC項CallobjItems.AddItems(17,strItemIDs,lClientHandles,lSe

20、rverHandles,lErrors)EndSub(7)異步讀取代碼的實現在定時器事件內進行執行AsyncRead子程序的讀取代碼,而在讀取完成事件處理返回的數據訪問結果。SubAsyncRead()DimlErrors()AsLongIfobjTestGrpIsNothingThenExitSubEndIfIfobjTestGrp.OPCItems.Count0Then異步讀取lTransID_Rd=lTransID_Rd+1objTestGrp.AsyncRead17,lServerHandles,lErrors,lTransID_Rd,lCancelID_RdEndIfEndSubPr

21、ivateSubobjTestGrp_AsyncReadComplete(_ByValTransactionIDAsLong,ByValNumItemsAsLong,_ClientHandles()AsLong,ItemValues()AsVariant,_Qualities()AsLong,TimeStamps()AsDate,Errors()AsLong)Sub(8)在按鈕中執行AsyncWrite子程序,完成異步寫的操作。SubAsyncWrite(nIndexAsInteger,ByRefvtItemValues()AsVariant,_ByReflErrors()AsLong)Dim

22、lHandle(1)AsLongIfobjTestGrpIsNothingThenExitSubEndIfIfobjTestGrp.OPCItems.Count0ThenlHandle(1)=lServerHandles(nIndex)異步寫入lTransID_Wt=lTransID_Wt+1objTestGrp.AsyncWrite1,lHandle(),vtItemValues,_lErrors,lTransID_Wt,lCancelID_WtEndIfEndSub(9)斷開OPC服務器連接著OPC服務器的OPC客戶應用程序,在退出前必須斷開和OPC服務器的連接。因為OPC服務器并不知道O

23、PC客戶應用程序的退出。如果不先斷開連接,那么OPC服務器使用的計算機資源就不會被釋放。如果這樣的問題反復發生,久而久之,連續運轉的自動控制系統可能會計算機資源漸漸枯竭從而發生嚴重問題,可以顯式地把它設置為“Nothing”。SubDisconnect()DimlErrors()AsLongIfNotobjItemsIsNothingThenIfobjItems.Count0ThenobjItems.Remove17,lServerHandles,lErrors清除OPC項EndIfSetobjItems=NothingEndIfIfNotobjTestGrpIsNothingThenobjG

24、roups.RemoveGroup清除OPC組SetobjTestGrp=NothingEndIfIfNotobjGroupsIsNothingThenSetobjGroups=NothingEndIfIfNotobjServerIsNothingThenIfobjServer.ServerStateOPCDisconnectedThenobjServer.Disconnect斷開OPC服務器.EndIfSetobjServer=NothingEndIfEndSubWTOPCSvr.DLL作為一個快速開發OPC服務器的工具包,它封裝了所有關于COM和OPC的技術細節,將Microsoft公司的

25、OLE、COM、DCOM技術和OPC的技術細節隱藏起來,使開發OPC服務器的工作集中在特定的數據采集任務上來。利用DLL開發OPC服務器的開發者無需考慮許多涉及到底層接口實現方面的工作,開發者無須掌握ATL、COM/DCOM,也無須了解OPC技術的細節,只需具有基本的編程基礎即可快速上手。開發者的應用程序完全可以在一個較高層次上去描述OPC數據。利用這個DLL也可以很容易的實現對現有系統的改造,因為它可以很容易地集成到現有的應用系統中,而無需太多的工作。該工具包支持多個客戶端并發訪問服務器,并為每個客戶端創建一個獨立線程。WTOPCSvr.DLL工具包其實就是一個動態鏈接庫(DLL)。支持OP

26、Cl.0和OPC2.0數據存取規范定義的所有接口,包括實現了瀏覽器功能的接口。服務器應用程序通過傳遞一個名字和值給動態鏈接庫去創建過程標簽,動態鏈接庫記錄這個數據點,同時傳送給所有使用這個數據點的客戶。任何時候這個服務器應用程序都可以改變這個數據點的值,而所有使用這個數據點的客戶都會得到數據值改變的通報。一個連接到服務器的客戶改變任何過程標簽都會得到調用返回通報消息。動態鏈接庫還支持動態創建OPC標簽,如果一個客戶請求一個還沒有創建的標簽,則產生一個調用返回,應用程序就根據這個調用返回的信息創建一個標簽。使用這個動態鏈接庫(WTOPCSvr.DLL)可以迅速地開發OPC數據存取服務器,它提供了

27、一些把定制數據集成到OPC服務器的易于使用的API函數。另外這個動態鏈接庫可以很容易的集成到現有應用中,也可以集成到一個新的應用中。使用動態鏈接庫開發OPC服務器時,關鍵要求用戶對動態鏈接庫的各個API函數要熟悉,從而提高軟件開發的靈活性。這個動態鏈接庫包含五大功能塊:調用返回定義、初始化和注冊函數、OPC項函數、實時信息函數和輔助功能函數。1調用返回定義明確地定義了DLL用于返回給服務器程序的調用返回的具體含義,以實現客戶應用與服務器應用之間的數據交換,DLL提供了以下一些API函數。DeclareFunctionEnableUnknownItemNotificationLibWtOPCSv

28、rAlias_EnableUnknownItemNotification4(ByValCallbackAsLong)AsLong:這個函數的返回值表示一個客戶請求了一個沒有定義或是己經被暫停刷新的標簽,但無論客戶請求的標簽是否是己定義的標簽,這個函數都定義了一個從DLL返回的調用返回。當連接建立后,服務器應用可以使用這個調用返回對動態創建的標簽進行操作。DeclareFunctionEnableItemRemovalNotificationLibWtOPCSvrAlias_EnableItemRemovalNotification4(ByValCallbackAsLong)AsLong:當對一

29、個標簽的最后客戶引用釋放后,這個函數將定義一個來自DLL的調用返回,服務器應用程序可以刪除這個標簽或暫停這個標簽的刷新。DeclareFunctionEnableDisconnectNotificationLibWtOPCSvrAlias_EnableDisconnectNotification4(ByValCallbackAsLong)AsLong:當客戶應用請求斷開連接時,這個函數產生一個來自DLL的調用返回通知服務器應用斷開連接。DeclareFunctionEnableWriteNotificationLibWtOPCSvrAlias_EnableWriteNotification8(

30、ByValCallbackAsLong,ByValConvertToNativeAsLong)AsLong:當OPC客戶寫一個己定義的標簽時,這個函數產生一個來自DLL的調用返回。正常情況下,DLL將把值轉變成項的私有類型,但在某些情況下,它要求應用自己完成這個轉變過程。2初始化與注冊函數DeclareFunctionInitWTOPCsvrLibWtOPCSvrAlias_InitWTOPCsvr8(ByRefCLSID_SvrAsByte,ByValServerRateAsLong)AsLong:這個函數實現對DCOM的初始化和創建OPC服務器對象。其中參數CLSID_Svr是OPC服務器

31、的類標識(CLSID)用于OPC客戶連接服務器;參數ServerRate定義了客戶的數據刷新速率,其單位是毫秒。如果函數調用成功則返回TRUE,否則返回FALSE。DeclareFunctionUpdateRegistryLibWtOPCSvrAlias_UpdateRegistry16(ByRefCLSID_SvrAsByte,ByRefNameAsByte,ByRefDescrAsByte,ByRefExePathAsByte)AsLong:這個函數封裝了Windows注冊函數,用于OPC服務器的注冊。其中參數CLSID_Svr是OPC服務器的類標識(CLSID);參數Name定義了服務器

32、的名字;參數Descr可以是任何描述服務器的字符串,但常常包含一些版本信息;參數ExePath定義了可執行程序的完整的Windows路徑。如果函數調用成功則返回TRUE,否則返回FALSE。DeclareFunctionUnregisterServerLibWtOPCSvrAlias_UnregisterServer8(ByRefCLSID_SvrAsByte,ByRefNameAsByte)AsLong:這是一個服務器注銷函數,其參數CLSID_Svr是OPC服務器的類標識(CLSID);參數Name為服務器的名字。如果函數調用成功則返回TRUE,否則返回FALSE。3OPC項函數Decla

33、reFunctionCreateTagLibWtOPCSvrAlias_CreateTag28(ByRefNameAsByte,ByValValueAsVariant,ByValInitialQualityAsInteger,ByValIsWritableAsLong)AsLong:這是一個在動態鏈接庫里創建過程標簽的函數,參數Name定義了OPC客戶要訪問的過程標簽,這個名字字符串可以是服務器可接受的任何文本字符串,其中也可使用分層名字(使用“.”分隔符),這將導致動態鏈接庫創建OPC分層名字空間;參數Value定義了標簽的初始數據;參數InitialQuality定義了標簽的OPC屬性標志

34、;參數IsWriteable決定標簽是否是可寫標簽。如果標簽創建成功,函數返回數據點的句柄(HANDLE),否則返回INVALID_HANDLE_VALUE。DeclareFunctionUpdateTagLibWtOPCSvrAlias_UpdateTag24(ByValTagHandleAsLong,ByValValueAsVariant,ByValQualityAsInteger)AsLong:這個函數調用實現對過程標簽的數據刷新。Value就是來自現場硬件的數據。DeclareFunctionUpdateTagWithTimeStampLibWtOPCSvrAlias_UpdateTa

35、gWithTimeStamp32(ByValTagHandleAsLong,ByValValueAsVariant,ByValQualityAsInteger,ByValTimestampAsDouble)AsLong:這個函數允許應用改變一個己定義的標簽的值、屬性標志和時間標簽。如果應用沒有提供時間標簽(timestamp),則DLL將采用系統時間。參數TagHandle表示數據點;參數Value表示數據值;參數Quality表示新的屬性條件。如果函數調用成功則返回TRUE,否則返回FALSE。DeclareFunctionSetTagPropertiesLibWtOPCSvrAlias_S

36、etTagProperties28(ByValTagHandleAsLong,ByValPropertyIDAsLong,ByRefDescriptionAsByte,ByValValueAsVariant)AsLong:任何數量的OPC項屬性都可以用這個函數設置,DLL保持了所有已定義屬性的一個列表,OPC客戶可以訪問這些屬性。DeclareFunctionUpdateTagByNameLibWtOPCSvrAlias_UpdateTagByName24(ByRefNameAsByte,ByValValueAsVariant,ByValQualityAsInteger)AsLong:可以使用

37、這個函數來改變一個已定義過程標簽的值。DeclareFunctionSuspendTagUpdatesLibWtOPCSvrAlias_SuspendTagUpdates8(ByValTagHandleAsLong,ByValOnOffAsLong)AsLong:這個函數可以使服務器知道一個客戶描述的特殊標簽的調用返回。在多數情況下,服務器是隨著其接收數據的變化而刷新標簽的,DLL處理所有客戶請求、通報和刷新。在一定條件下,當客戶訪問一個項時,希望服務器僅僅刷新OPC標簽數據庫。通過暫停刷新功能,當客戶試圖訪問這個項時,DLL將處理一個未知項的調用返回,然后,服務器開始重新開始刷新標簽直到下一

38、個暫停刷新產生。TagHandle定義了暫停刷新的項。DeclareFunctionReadTagLibWtOPCSvrAlias_ReadTag8(ByValTagHandleAsLong,ByRefValueAsVariant)AsLong:這是一個讀標簽的函數。DeclareFunctionReadTagWithTimeStampLibWtOPCSvrAlias_ReadTagWithTimeStamp&16(ByValTagHandleAsLong,ByRefValueAsVariant,ByRefQualityAsInteger,ByRefTimestampAsFileTime)As

39、Long:應用程序使用這個函數去獲取一個標簽的當前值。參數Value表示了接收的數據值,參數Timestamp是標簽的當前時間標簽值。4實時信息DeclareFunctionStartUpdateTagsLibWtOPCSvrAlias_StartUpdateTags0()AsLong:開始刷新。DeclareFunctionUpdateTagToListLibWtOPCSvrAlias_UpdateTagToList24(ByValTagHandleAsLong,ByValValueAsVariant,ByValQualityAsInteger)AsLong:刷新標簽列表。DeclareFu

40、nctionEndUpdateTagsLibWtOPCSvrAlias_EndUpdateTags0()AsLong:上面三個函數必須一起使用,它們一起提供了一次刷新多個標簽的有效方式。首先調用StartUpdateTags,然后用UpdateTagToList代替UpdateTag()調用,當所有標簽都被刷新后再調用EndUpdateTags()結束此次刷新操作。5輔助功能函數DeclareFunctionRefreshAllClientsLibWtOPCSvrAlias_RefreshAllClients0()AsLong:服務器可以使用此函數對所有連接的客戶進行初始化。正常情況下,客戶應用數據是基于DLL中的異步時針刷新的,這個函數讓服務器可以刷新所有客戶數據。DeclareFunctionResetServerRateLibWtOPC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論