工業(yè)實(shí)時(shí)數(shù)據(jù)采集傳送軟件開發(fā)設(shè)計(jì)_第1頁
工業(yè)實(shí)時(shí)數(shù)據(jù)采集傳送軟件開發(fā)設(shè)計(jì)_第2頁
工業(yè)實(shí)時(shí)數(shù)據(jù)采集傳送軟件開發(fā)設(shè)計(jì)_第3頁
工業(yè)實(shí)時(shí)數(shù)據(jù)采集傳送軟件開發(fā)設(shè)計(jì)_第4頁
工業(yè)實(shí)時(shí)數(shù)據(jù)采集傳送軟件開發(fā)設(shè)計(jì)_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

.OPCDataAccessCustomInterfaceSpecificationIOPCServer:GetStatus<>formoredetails.Whenyouaccessthisproperty,youwillgetthevaluethattheautomationserverhasobtainedfromthecustomserverviatheGetStatus<>interface.

AnerroroccursiftheclienthasnotconnectedtoaDataAccessServerviatheConnectmethod..ExampleDimServerStateAsLong

ServerState=AnOPCServer.ServerStateLocaleIDDescription<Read/Write>Thispropertyidentifiesthelocale,whichmaybeusedtolocalizestringsreturnedfromtheserver..ThisLocaleIDwillbeusedbytheGetErrorStringmethodonthisinterfaceSyntaxLocaleIDAsLongRemarksItshouldalsobeusedasthe‘default’LocaleIDbyanyotherserverfunctionsthatareaffectedbyLocaleID.AnerroroccursiftheclienthasnotconnectedtoaDataAccessServerviatheConnectmethod.Example‘<gettingtheproperty>:

DimLocaleIDAsLong

LocaleID=AnOPCServer.LocaleID

‘<settingtheproperty>:

AnOPCServer.LocaleID=LocaleID1介紹1.1背景用于多種數(shù)據(jù)源的一種標(biāo)準(zhǔn)。不管是在工廠車間,還是在控制室內(nèi)的數(shù)據(jù)庫或者設(shè)備的有機(jī)規(guī)范。標(biāo)準(zhǔn)機(jī)構(gòu)將包括針對允許的VisualBasic應(yīng)用程序,以及其他的自動化功能的應(yīng)用程序進(jìn)行通信,用在上述指定的數(shù)據(jù)源的標(biāo)準(zhǔn)自動化的接口。制造商需要從車間訪問數(shù)據(jù),并將其整合到他們現(xiàn)有的采集系統(tǒng)。制造商必須能夠利用現(xiàn)成的工具〔SCADA軟件包,數(shù)據(jù)庫,電子表格等,以組建一個系統(tǒng),來滿足他們的需求。關(guān)鍵是開放的,有效的通信架構(gòu)集中數(shù)據(jù)訪問和數(shù)據(jù)的不同類型。我們通過架構(gòu)并指定一個標(biāo)準(zhǔn)的自動化接,OPC數(shù)據(jù)訪問自定義接口,方便了使用自動化接口來訪問工廠底層數(shù)據(jù)的應(yīng)用程序來解決這方面的需求。1.2目的我們需要的是用于自動化應(yīng)用到從像裝置或數(shù)據(jù)庫中的任何數(shù)據(jù)源訪問數(shù)據(jù)的常用方法。OPC數(shù)據(jù)訪問自動化定義了一個標(biāo)準(zhǔn),其中自動化應(yīng)用程序可以訪問過程數(shù)據(jù)。該接口提供相同的功能的自定義界面。鑒于使用自動化來訪問其他軟件環(huán)境〔如:RDBMS,MSOffice應(yīng)用程序,WWW對象,該接口已針對緩解應(yīng)用程序的開發(fā),而不消除自定義接口定義的功能。下圖顯示了一個自動化客戶端調(diào)用到使用"包裝"DLL的OPC數(shù)據(jù)訪問服務(wù)器。由服務(wù)器和客戶端所需的自動化接口提供的自定義接口之間的這種包裝轉(zhuǎn)換。需要注意的是,一般的自動化客戶端與自動化服務(wù)器之間的連接是"在線連接",而自動化服務(wù)器和自定義服務(wù)器之間的連接可以是在工藝,本地或遠(yuǎn)程。1.3適用范圍該文件規(guī)定了OPC規(guī)范的1.0版本中指定的OLE自動化接口的修訂版。這些修訂最重要的是:?使界面更容易由VisualBasic程序員使用?運(yùn)用VisualBasic的新功能的優(yōu)勢〔如事件?允許創(chuàng)建一個共同的包裝DLL這可以通過所有的供應(yīng)商共享本文假設(shè)讀者熟悉設(shè)置在OPC數(shù)據(jù)訪問自定義接口規(guī)范的信息。該文提供的OPC功能的概述以及各種功能行為的詳細(xì)描述。1.4參考資料克雷格Brockschmidt,內(nèi)部OLE,第二版,微軟出版社,華盛頓州雷德蒙市,1995年。微軟系統(tǒng)雜志,Q&A,1996年4月,第89-101。OLE自動化編程參考,微軟出版社,華盛頓州雷德蒙德,1996。OLE2編程參考,卷.1,微軟出版社,華盛頓州雷德蒙市,1994年。OPC數(shù)據(jù)訪問自定義接口標(biāo)準(zhǔn),2.0版,1998OPC基金會。1.5讀者此規(guī)范是為OPC自動化客戶端所需要的OPC數(shù)據(jù)訪問自定義接口的開發(fā)的參考材料。開發(fā)人員將需要一些基本的自動化概念和一些術(shù)語知識。2構(gòu)架設(shè)計(jì)的基本目標(biāo)是,這個接口是通過自定義接口提供的功能對現(xiàn)有的OPC數(shù)據(jù)訪問自定義接口的服務(wù)器提供一個方便的自動化機(jī)制。2.1功能要求?自動化接口提供了幾乎所有的OPC數(shù)據(jù)訪問自定義接口的必需和可選接口的功能。自動化接口一般不支持在該自定義接口做同樣的方式和可選功能。如果底層的自定義接口省略了一些可選功能,那么相應(yīng)的自動化功能和屬性將在此文檔后面詳細(xì)描述的一些合理的默認(rèn)行為表現(xiàn)出來。?該接口完全支持VC++和VisualBasic5.0。他們允許其具有一個OLE自動化接口〔如VBVC++,并啟用VB應(yīng)用程序根據(jù)各應(yīng)用程序的限制來訪問OPC接口的任何應(yīng)用程序。?本說明書中描述的界面,以一個單獨(dú)的包裝來開發(fā),以適應(yīng)VBScript和Java腳本的需求。2.2OPC自動化服務(wù)器對象模型OPCOPC服務(wù)器OPC組對象〔集合OPC項(xiàng)對象OPC項(xiàng)OPC組OPC瀏覽器圖2-1自動化對象層次對象名說明OPC服務(wù)器OPC服務(wù)器對象在使用其他OPC對象前必須生成。OPC服務(wù)器自動含有一個OPC組集合對象,并可在其基礎(chǔ)上生成一個OPC瀏覽器對象OPC組集合OPC服務(wù)器中添加的所有的OPC組集合。OPC組OPC組對象是用于組的狀態(tài)管理以及利用項(xiàng)集合為單位的數(shù)據(jù)訪問。OPC標(biāo)簽集合在對OPC組中添加的所有的OPC標(biāo)簽集合。OPC標(biāo)簽含有OPC標(biāo)簽的定義,現(xiàn)在值,狀態(tài),以及最后更新時(shí)間等信息對象。OPC瀏覽器用于瀏覽OPC服務(wù)器的名稱空間對象。2.3OPC數(shù)據(jù)訪問自動化對象模型該OPCServe對象提供了一種以一組數(shù)據(jù)源來〔讀/寫訪問或通信,。在該服務(wù)器上執(zhí)行可用資源的功能。一個OPC自動化客戶端連接到OPC自動化服務(wù)器的通信,通過這里所描述的自動化對象提供功能的基礎(chǔ)數(shù)據(jù)源〔如:OPC數(shù)據(jù)訪問自定義服務(wù)器。該OPC服務(wù)器提供了一個〔OPCGroups自動化集合對象來保持OPCGroup對象的集合。該OPCGroup對象允許客戶組織他們想要訪問的數(shù)據(jù)。一個OPCGroup可作為一個單元激活和去激活。一個OPCGroup還提供了一種方法為客戶端"訂閱"項(xiàng)目的列表中,以便它可以發(fā)生變化時(shí)被通知。該OPCGroup對象提供OPCItems的OPCItem集合。該OPCItem對象提供的基礎(chǔ)數(shù)據(jù)源中單個數(shù)據(jù)項(xiàng)的連接。2.4數(shù)據(jù)同步一個要求,即VB的客戶端能夠讀取或接收數(shù)據(jù),使得所述值,質(zhì)量和時(shí)間戳信息保持同步?;旧?客戶端需要得到保證,該數(shù)據(jù)的質(zhì)量和所述時(shí)間戳的值匹配。如果客戶端獲得并且使用任何方法讀取它的值,時(shí)間戳和質(zhì)量屬性將與對方同步。如果客戶端通過注冊DataChange事件獲得的數(shù)據(jù),則該值,時(shí)間戳和質(zhì)量將是同步的事件處理程序的范圍之內(nèi)。如果客戶端混合這兩種方法就不可能實(shí)現(xiàn)客戶端,以保證該項(xiàng)目的屬性是完全同步的,因?yàn)樗淖兞丝蛻魴C(jī)訪問的各種屬性和時(shí)間之間可能發(fā)生的事件。2.5異常和事件簡述2.5.1異常這里描述的大多數(shù)屬性和方法與OPC定制服務(wù)器通信。在OLE自動化,有沒有簡單的方法訪問屬性時(shí)返回一個錯誤?解決這一問題的最佳方式是自動化服務(wù)器,如果基礎(chǔ)數(shù)據(jù)源中發(fā)生這樣的錯誤產(chǎn)生異常。這意味著客戶端需要具有異常邏輯就位來處理錯誤。設(shè)置屬性時(shí)發(fā)生的錯誤是使用標(biāo)準(zhǔn)的VisualBasic錯誤對象報(bào)告。2.5.2事件自動化接口支持被提供用VisualBasic5.0事件通知的機(jī)制。自動化服務(wù)器響應(yīng)異步刷新,異步讀取和寫入異步方法調(diào)用觸發(fā)的事件。此外,自動化服務(wù)器根據(jù)客戶端規(guī)范數(shù)據(jù)變化時(shí)觸發(fā)事件。實(shí)施自動化客戶端有能力處理這些事件。2.6數(shù)組按照慣例,OPC自動化接口假設(shè)數(shù)組是基于1。如果一個數(shù)組傳遞給一個函數(shù),比計(jì)數(shù)或Items的參數(shù)時(shí),只計(jì)算或Items的元素將被使用,開始于索引1。這僅適用于在自動化接口中的職能和活動參數(shù)。這不適用于項(xiàng)目值,其中該項(xiàng)目的值的數(shù)據(jù)類型本身是一個數(shù)組。為了避免錯誤故建議VB代碼使用"OptionBase1"。2.7集OLE自動化集合是支持計(jì)數(shù),項(xiàng)目,和隱藏屬性稱為_NewEnum對象。具有這些特性的接口的一部分的任何對象都可以稱為集合。在VB中,一個集合可以使用兩種語言迭代。第一種方法明確地使用次數(shù)和項(xiàng)目索引集合的元素。ForI=1Toobject.Count

element=object.Item<I> ‘or…element=object<I>

NextI通過使用隱藏_NewEnum功能的可用項(xiàng)目第二種方法迭代:ForEachelementInobject

‘dosomethingwithelement

Nextelement在對于迭代的集合中的每個方法比顯式Item方法更快。產(chǎn)品還可以用于訪問特定索引,如第〔3。它并不需要被一個循環(huán)內(nèi)使用。2.8可選參數(shù)可選參數(shù)由關(guān)鍵字"可選"表示。可選參數(shù)可以從一個方法調(diào)用,如果省略默認(rèn)行為是可以接受的。OLE自動化要求,可選參數(shù)的Dim'd為Variant,雖然他們可能持有一個字符串,數(shù)組,等等。2.9參數(shù)方法方法參數(shù)被假定為通過byval除非指定要為byref的byref參數(shù)得到填充并由該方法并傳回。2.10庫類型VB采用OPC自動化類型庫定義以下接口。確?!苍赩isualBasic5.0屬性|引用了"OPCAutomation2.0"檢查。3關(guān)于OPC數(shù)據(jù)訪問自動化包裝DLLOPC基金會提供的數(shù)據(jù)訪問自動化接口OPC基金會成員提供了一個自動化接口,OPC數(shù)據(jù)訪問自定義接口服務(wù)器使用的參考樣本。參考樣本是作為一個完整的DLL與VisualC++源代碼。供應(yīng)商可以直接提供DLL和他們的產(chǎn)品。選擇供應(yīng)商修改源代碼,甚至只是建立從源代碼〔不變之前包括或運(yùn)送DLL必須做到以下幾點(diǎn)。OPC自動化DLL的名字必須從OPCDAAuto.dll更改為一個特定供應(yīng)商的唯一的名稱。OPC自動化IDL〔opcauto.idl文件的名稱應(yīng)改為一個特定供應(yīng)商的唯一的名稱。在IDL文件中的helpstring〔"OPCAutomation2.0"必須改變,以反映您的特定供應(yīng)商的OPC自動化接口。這是顯示在自動化類型庫的名稱。使用您的供應(yīng)商構(gòu)建自動化的OPC接口DLLVisualBasic應(yīng)用程序?qū)―LL使用類型庫。所有的GUIDIDL文件必須改為使用GUIDGEN工具生成的新的工具。這是為了防止供應(yīng)商建立自動化界面庫被混淆內(nèi)置自動化庫或OPC基金會提供的自動化庫的另一個供應(yīng)商。賣方為鼓勵不改變現(xiàn)有的自動化接口。如果附加的功能是理想的,一個新的對象和接口應(yīng)該被添加,并應(yīng)復(fù)制將被加入到現(xiàn)有的對象的所有功能。OPC基金會還提供了一個演示數(shù)據(jù)訪問自動化接口的使用一個VisualBasic樣本。此示例的目的僅展示在OPC數(shù)據(jù)訪問自動化接口的功能。OPC數(shù)據(jù)訪問自動化對象和接口4.1OPCServe對象描述客戶端創(chuàng)建OPCServe自動化對象。然后客戶端"連接"到一個OPC數(shù)據(jù)訪問自定義接口〔參見"連接"的方法。該OPCServe對象現(xiàn)在可以用于獲得關(guān)于一個OPC服務(wù)器的一般信息以及創(chuàng)建和操縱OPCGroup對象的集合。OPCServe語句備注所述Withevents語法促使對象以支持在對特定對象的聲明的事件。對于OPC服務(wù)器,定義的唯一事件是ServerShutDown。所述OPCGroup〔后述具有所有與DataChange和以支撐OPCGroup對象的異步方法所需的事件相關(guān)聯(lián)的事件。舉例DimWithEventsAnOPCServerAsOPCServer

SetAnOPCServer=NewOPCServer4.1.1屬性摘要開始時(shí)間當(dāng)前時(shí)間更新時(shí)間主要版本次要版本建立次數(shù)供應(yīng)商信息服務(wù)器狀態(tài)區(qū)域ID組寬OPC組集合公用組名服務(wù)器名服務(wù)器節(jié)點(diǎn)客戶端名4.1.2方法綜述獲取OPC服務(wù)器連接斷開創(chuàng)建瀏覽器獲取錯誤字符查詢有效區(qū)域設(shè)置ID查詢可用屬性獲取項(xiàng)目屬性尋找項(xiàng)ID4.1.3事件摘要服務(wù)器關(guān)閉4.1.4OPC服務(wù)器屬性開始時(shí)間描述〔只讀返回服務(wù)器開始運(yùn)行的時(shí)間。這是客戶端已指定到連接到服務(wù)器的開始時(shí)間。連接到同一臺服務(wù)器多個客戶可以放心,每個客戶端會從服務(wù)器讀取此屬性的相同值。句法StartTimeAsDate備注自動化服務(wù)器預(yù)計(jì)使用自定義接口的getStatus〔,獲得的值對于該屬性,以及許多的定義為OPCServe屬性的其它性能。如果客戶端還沒有連接到服務(wù)器時(shí)發(fā)生錯誤。舉例DimAnOPCServerTimeAsDateAnOPCServerTime=AnOPCServer.StartTime當(dāng)前時(shí)間描述〔只讀返回服務(wù)器的當(dāng)前時(shí)間。當(dāng)你訪問這個屬性,你會得到的自動化服務(wù)器已經(jīng)從通過的getStatus〔接口的定制服務(wù)器獲得的值。句法CurrentTimeAsDate備注如果客戶端還沒有連接到,通過連接方法的數(shù)據(jù)訪問服務(wù)器時(shí)發(fā)生錯誤。舉例DimAnOPCServerTimeAsDate

AnOPCServerTime=AnOPCServer.CurrentTime最后刷新時(shí)描述〔只讀返回來自服務(wù)器的最后更新時(shí)間。當(dāng)你訪問這個屬性,你會得到的自動化服務(wù)器已經(jīng)從通過的getStatus〔接口的定制服務(wù)器獲得的值。句法LastUpdateTimeAsDate備注如果客戶端還沒有連接到通過連接方法的數(shù)據(jù)訪問服務(wù)器時(shí)發(fā)生錯誤,返回最后的時(shí)間數(shù)據(jù)從服務(wù)器發(fā)送到客戶端應(yīng)用程序。舉例DimAnOPCServerTimeAsDate

AnOPCServerTime=AnOPCServer.LastUpdateTime主要版本描述〔只讀返回服務(wù)器版本號的主要部分〔例如,在1.32版本的"1"。當(dāng)你訪問這個屬性,你會得到自動化服務(wù)器已經(jīng)從通過的getStatus〔接口定制服務(wù)器獲得的值。句法MajorVersionAsInteger備注如果客戶沒有通過Connect方法連接數(shù)據(jù)訪問服務(wù)器時(shí)發(fā)生錯誤舉例DimAnOPCServerMajorVersionAsString

AnOPCServerMajorVersion=Str<AnOPCServer.MajorVersion>次要版本描述〔只讀返回的服務(wù)器版本號〔1.32版本"32"的小部分。當(dāng)你訪問這個屬性,你會得到的自動化服務(wù)器已經(jīng)從通過的getStatus〔接口定制服務(wù)器獲得的值。句法MinorVersionAsInteger備注如果客戶端還沒有連接到通過連接方法連接的數(shù)據(jù)訪問服務(wù)器時(shí)發(fā)生錯誤。舉例DimAnOPCServerMinorVersionAsString

AnOPCServerMinorVersion=Str<AnOPCServer.MinorVersion>建立時(shí)間描述〔只讀返回服務(wù)器的版本號。當(dāng)你訪問這個屬性,你會得到的自動化服務(wù)器已經(jīng)從通過的getStatus〔接口定制服務(wù)器獲得的數(shù)值。句法BuildNumberAsInteger備注如果客戶端還沒有連接到通過連接方法連接的數(shù)據(jù)訪問服務(wù)器時(shí)發(fā)生錯誤。舉例DimBuildNumberasInteger

BuildNumber=AnOPCServer.BuildNumber版本號描述〔只讀返回服務(wù)器的版本號。當(dāng)你訪問這個屬性,你會得到的自動化服務(wù)器已經(jīng)從通過的getStatus〔接口定制服務(wù)器獲得的數(shù)據(jù)。句法BuildNumberAsInteger備注如果客戶端還沒有連接到通過連接方法連接的數(shù)據(jù)訪問服務(wù)器時(shí)發(fā)生錯誤。舉例DimBuildNumberasInteger

BuildNumber=AnOPCServer.BuildNumber供應(yīng)商信息描述〔只讀返回服務(wù)器的供應(yīng)商信息的字符串。當(dāng)你訪問這個屬性,你會得到的自動化服務(wù)器已經(jīng)從通過的getStatus〔接口的定制服務(wù)器獲得的值。句法VendorInfoAsString備注如果客戶端還沒有連接到通過連接方法連接的數(shù)據(jù)訪問服務(wù)器時(shí)發(fā)生錯誤。舉例DiminfoAsString

info=AnOPCServer.VendorInfo區(qū)域設(shè)置ID描述〔讀/寫該屬性標(biāo)識的區(qū)域設(shè)置,其可以用于從服務(wù)器返回字符串進(jìn)行本地化。。這的區(qū)域設(shè)置ID將這個接口上使用的GetErrorString方法句法LocaleIDAsLong備注如果客戶沒有通過Connect方法連接到數(shù)據(jù)訪問服務(wù)器時(shí)發(fā)生錯誤舉例DimLocaleIDAsLong

LocaleID=AnOPCServer.LocaleID

‘<settingtheproperty>:

AnOPCServer.LocaleID=LocaleID致謝隨著畢業(yè)日子的到來,畢業(yè)設(shè)計(jì)也接近了尾聲。經(jīng)過好幾周的奮戰(zhàn)我的畢業(yè)設(shè)計(jì)終于完成了。在沒有做畢業(yè)設(shè)計(jì)以前覺得畢業(yè)設(shè)計(jì)只是對這幾年來所學(xué)知識的單純總結(jié),但是通過這次做畢業(yè)設(shè)計(jì)發(fā)現(xiàn)自己的看法有點(diǎn)太片面。畢業(yè)設(shè)計(jì)不僅是對前面所學(xué)知識的一種檢驗(yàn),而且也是對自己能力的一種提高。通過這次畢業(yè)設(shè)計(jì)使我明白了自己原來知識還比較欠缺。自己要學(xué)習(xí)的東西還太多。通過這次畢業(yè)設(shè)計(jì),我才明白學(xué)習(xí)是一個長期積累的過程,在以后的工作、生活中都應(yīng)該不斷的學(xué)習(xí),努力提高自己知識和綜合素質(zhì)。在此特別要感謝趙正天趙老師對我畢業(yè)設(shè)計(jì)的指導(dǎo),當(dāng)遇到自己不能解決的問題時(shí),總是能悉心的指導(dǎo)我完成并且解決問題。是自己能順利的完成畢業(yè)設(shè)計(jì)。附錄DimcnAsNewADODB.ConnectPublicmydbconnAsNewADODB.ConnectionDimWithEventsOPCServerObjAsOPCServer'聲明OPC服務(wù)器DimWithEventsOPCGroupObjsAsOPCGroups'聲明OPC組集合DimWithEventsOPCGroupObjAsOPCGroup'聲明OPC組對象DimOPCItemsAsOPCItems'聲明OPC項(xiàng)集合DimOPCItemAsOPCItem'聲明OPC項(xiàng)對象DimOne<10>AsOPCItemPublicstrProgIDAsStringPublicstrNodeAsStringDimaServerhandle<10>AsLongPrivateFunctionDBInsert<ByVal現(xiàn)場數(shù)據(jù)采集AsString,ByRefShuXing<>AsString,ByRefShuXingZhi<>AsVariant>將數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫Dimsql<3>AsStringDimsqlAsStringDimiAsLongsql<0>="INSERTINTO"&現(xiàn)場數(shù)據(jù)采集&"<"Fori=1TonStep1sql<1>=sql<1>&ShuXing<i>Ifi=nThenElsesql<1>=sql<1>&","EndIfNextisql<2>=">VALUES<"Fori=1TonStep1sql<3>=sql<3>&"'"&ShuXingZhi<i>&"'"Ifi=nThensql<3>=sql<3>&">"Elsesql<3>=sql<3>&","EndIfNextisql=sql<0>&sql<1>&sql<2>&sqll<3>mydbconn.ExecutecolumnEndFunctionPrivateSubCombo1_Click<>'選擇opc服務(wù)器IfCombo1.ListIndex=0ThenstrProgID="OPC.SimaticNET"Command2.Enabled=TrueEndIfIfCombo1.ListIndex=1ThenstrProgID="RslinxOPCServer"Command2.Enabled=TrueEndIfEndSubPrivateSubCombo2_LostFocus<>'opc服務(wù)器的TCP/IP地址strNode=Combo2.TextEndSubPrivateSubCommand1_Click<>cn.ConnectionString="DSN=cigl;uid=sa;pwd=sa;"cn.ConnectionTimeout=10cn.OpenEndWithMsgBox"連接數(shù)據(jù)庫成功",,"提示"Command1.Enabled=FalseCommand5.Enabled=TrueEndSubPrivateSubCommand2_Click<>IfOPCServerObjIsNothingThenSetOPCServerObj=NewOPCServer'創(chuàng)建OPC服務(wù)器EndIfIfOPCServerObj.ServerState=OPCDisconnectedThenOPCServerObj.ConnectstrProgID,strNodeEndIfMsgBox"連接OPC服務(wù)器成功",,"提示"Command2.Enabled=FalseCommand3.Enabled=TrueText1.Enabled=TrueSetOPCGroupObj=OPCServerObj.OPCGroups.Add<"group">'添加OPC組對象OPCGroupObj.IsSubscribed=True'設(shè)置該組數(shù)據(jù)為后臺刷新OPCGroupObj.IsActive=True'設(shè)置該組為激活狀態(tài)OPCGroupObj.UpdateRate=1000'設(shè)置數(shù)據(jù)刷新時(shí)間為1000EndSubPrivateSubCommand3_Click<>Text1.Locked=FalseText2.Locked=FalseText3.Locked=FalseOPCServerObj.Disconnect'斷開OPC服務(wù)器SetOPCServerObj=NothingMsgBox"斷開OPC服務(wù)器",,"提示"Command3.Enabled=FalseCommand2.Enabled=TrueEndSubPrivateSubCommand4_Click<>讀現(xiàn)場數(shù)據(jù)將數(shù)據(jù)讀入Text<>IfText1.Locked=TrueThenSetOne<0>=OPCGroupObj.OPCItems<1>One<0>.ReadOPCCacheText5.Text=One<0>.ValueText6.Text=One<0>.QualityText7.Text=One<0>.TimeStampaServerhandle<0>=One<0>.ServerHandleEndIfIfText2.Locked=TrueThenSetOne<1>=OPCGroupObj.OPCItems<2>One<1>.ReadOPCCacheText8.Text=One<1>.ValueText9.Text=One<1>.QualityText10.Text=One<1>.TimeStampaServerhandle<1>=One<1>.ServerHandleEndIfIfText3.Locked=TrueThenSetOne<2>=OPCGroupObj.OPCItems<3>One<2>.ReadOPCCacheText11.Text=One<2>.ValueText12.Text=One<2>.QualityText13.Text=One<2>.TimeStampaServerhandle<3>=One<2>.ServerHandleEndIfEndSubPrivateSubCommand5_Click<>Setcncmd=NothingSetmydbconn=Nothingcn.CloseMsgBox"斷開數(shù)據(jù)庫成功",,"提示"Command5.Enabled=FalseCommand1.Enabled=TrueEndSubPrivateSubCommand6_Click<>數(shù)據(jù)賦值DimShuXingMing<4>AsStringDimShuXingZhi<4>AsVariantDimcont_nAsLongIfmydbconn.State=1Thencont_n=4ShuXingMing<1>="FUDIANSHU"ShuXingMing<2>="ZIFUCHUAN"ShuXingMing<3>="SHIJIAN"ShuXingMing<4>="ITEM"IfText1.Locked=TrueThenShuXingZhi<1>=Text5.TextShuXingZhi<2>=Text6.TextShuXingZhi<3>=Text7.TextShuXingZhi<4>=Text1.TextCallDBInsert<"CHARUBIAO",ShuXingMing<>,cont_n,ShuXingZhi<>>EndIfIfText2.Locked=TrueThenShuXingZhi<1>=Text8.TextShuXingZhi<2>=Text9.TextShuXingZhi<3>=Text10.TextShuXingZhi<4>=Text2.TextCallDBInsert<"CHARUBIAO",ShuXingMing<>,cont_n,ShuXingZhi<>>EndIfIfText3.Locked=TrueThenShuXingZhi<1>=Text11.TextShuXingZhi<2>=Text12.TextShuXingZhi<3>=Text13.TextShuXingZhi<4>=Text3.TextCallDBInsert<"CHARUBIAO",ShuXingMing<>,cont_n,ShuXingZhi<>>EndIfEndIfEndSubPrivateSubCommand7_Click<>EndSubPrivateSubForm_Load<>IfCombo1.ListIndexThenCommand2.Enabled=FalseCommand3.Enabled=FalseEndIfCommand5.Enabled=FalseText1.Enabled=FalseText2.Enabled=FalseText3.Enabled=FalseText4.Enabled=FalseEndSubPrivateSubLabel9_Click<>EndSubPrivateSubText1_LostFocus<>DimabItemIDsAsString'項(xiàng)標(biāo)識符DimabClientHandlesAsLong'客戶端句柄IfOPCServerObj.ServerState=1Thenitemcount=1abItemIDs=Text1.TextabClientHandles=1'

溫馨提示

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

最新文檔

評論

0/150

提交評論