<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > 基于Visual C#的OPC客戶(hù)端實(shí)現

基于Visual C#的OPC客戶(hù)端實(shí)現

作者: 時(shí)間:2009-04-28 來(lái)源:網(wǎng)絡(luò ) 收藏

摘 要:是連接數據源(服務(wù)器)和數據的使用者(應用程序)之間的軟件接口標準。這里以C#為開(kāi)發(fā)工具,按照OPC技術(shù)的規范標準,將OPC技術(shù)應用到虛擬儀器顯示組件中。具體實(shí)現了OPC客戶(hù)端數據訪(fǎng)問(wèn)服務(wù)器的過(guò)程,接口步驟及其讀寫(xiě)數據的方法,并根據OPC服務(wù)器提供的數據,最終在虛擬儀器顯示組件中生成了虛擬的正弦波、方波、鋸齒波、三角波等。
關(guān)鍵詞:OPC;OPC接口;OPC服務(wù)器;C#

本文引用地址:http://dyxdggzs.com/article/195893.htm


0 引 言
隨著(zhù)計算機技術(shù)和數字信號處理技術(shù)的發(fā)展,人們可以用計算機軟件替代傳統的硬件實(shí)現的一些功能,將計算機硬件和軟件有機的融合為一體,這就是所謂的虛擬儀器。近年來(lái),世界各國的虛擬儀器公司開(kāi)發(fā)了不少基于LabVIEW,Matlab,VC++,VB等虛擬儀器開(kāi)發(fā)平臺軟件,當硬件操作的設備驅動(dòng)改變時(shí),軟件開(kāi)發(fā)人員需要修改大量的驅動(dòng)程序來(lái)連接此設備,因此使得虛擬儀器開(kāi)發(fā)平臺開(kāi)發(fā)難度大、通用性差。為此,提出了基于OPC技術(shù)的虛擬儀器,它是由硬件供應商和軟件開(kāi)發(fā)商之間建立一套完整的“規則”,只要遵循這套規則,數據交互對兩者來(lái)說(shuō)都是透明的,硬件供應商無(wú)需考慮應用程序的多種需求和傳輸協(xié)議,軟件開(kāi)發(fā)商也無(wú)需了解硬件的實(shí)質(zhì)和操作過(guò)程。


l OPC技術(shù)
OPC(OLE Process Contro1)是OPC基金會(huì )組織倡導的工業(yè)控制和生產(chǎn)自動(dòng)化領(lǐng)域中使用的硬件和軟件的接口標準,以便有效地在應用和過(guò)程控制設備之間讀寫(xiě)數據,具體的功能實(shí)現要由開(kāi)發(fā)商根據需要自主的進(jìn)行研究與開(kāi)發(fā)。換句話(huà)說(shuō)OPC規范是一套公共的軟件標準,任何OPC開(kāi)發(fā)人員所開(kāi)發(fā)的OPC軟件都要符合這個(gè)標準。
OPC技術(shù)的特點(diǎn)可概括為如下3個(gè)方面:開(kāi)放性(Openness)、產(chǎn)業(yè)性(Productivity)和“即插即用”的互聯(lián)性(Connectivity),因此可以說(shuō),“OPC=Openness+Productivity+Connectivity”,這也是對OPC優(yōu)點(diǎn)最概括的描述。因此OPC在短時(shí)間內取得了飛速的發(fā)展。
1.1 OPC服務(wù)器的組成
OPC標準采用C/S模式,OPC服務(wù)器負責向OPC客戶(hù)端不斷的提供數據。OPC服務(wù)器包括3類(lèi)對象(Object):服務(wù)器對象(Server)、組對象(roup)和項對象(Item)。3類(lèi)對象都包括一系列接口,關(guān)系如圖1所示。

OPC服務(wù)器對象維護有關(guān)服務(wù)器信息,并作為OPC組對象的包容器,它提供了對數據源進(jìn)行讀/寫(xiě)和通信的接口方法,可以動(dòng)態(tài)地創(chuàng )建或釋放組對象。
OPC組對象由客戶(hù)端定義和維護,它維護有關(guān)其自身的信息,提供包容OPC項對象的機制,從邏輯上實(shí)現對OPC項的管理。
OPC項對象包含在OPC組中,可由客戶(hù)端定義和維護。項代表了與數據源的連接,所有的OPC項的操作都是通過(guò)包容此項的OPc組對象完成的。
1.2 OPC的接口方式
OPC服務(wù)器通常支持兩種類(lèi)型的訪(fǎng)問(wèn)接口:自定義接口(The OPC Custom Interfaces)和自動(dòng)化接口(The OPC Automation Interfaces),它們分別為不同的編程語(yǔ)言環(huán)境提供訪(fǎng)問(wèn)機制。
自定義接口是任何OPC服務(wù)器所必須實(shí)現的接口,它描述了OPC組件對象的接口和其實(shí)現的方法,適合C++語(yǔ)言設計,并可實(shí)現最佳運行性能的客戶(hù)應用程序。
自動(dòng)化接口是可選接口(Optional Interface),它提供了自動(dòng)配置和存取過(guò)程控制數據的接口,方便了 Basic,Delphi,C#及其他可以使用自動(dòng)化服務(wù)器應用程序接口的高級商業(yè)軟件使用。自動(dòng)化接口實(shí)際上是定制接口上的自動(dòng)化封裝,OPC規范通過(guò)提供一套標準的自動(dòng)化接口包裝器來(lái)實(shí)現這一功。
1.3 OPC通信方式
OPC規范規定了兩種通信方式:同步通信方式和異步通信方式。
同步通信時(shí),OPC客戶(hù)程序對OPC服務(wù)器進(jìn)行讀寫(xiě)操作時(shí),OPC客戶(hù)程序必須等到OPC服務(wù)器對應的操作全部完成以后才能返回,在此期間OPC客戶(hù)程序一直處于等待狀態(tài)。如果有大量數據進(jìn)行操作或者有大量OPC客戶(hù)程序對OPC服務(wù)器進(jìn)行讀寫(xiě)操作,必然造成OPC客戶(hù)程序的阻塞現象。因此同步通信適用于OPC客戶(hù)較少,數據量較小時(shí)的場(chǎng)合。
異步通信時(shí),OPC客戶(hù)程序對服務(wù)器進(jìn)行讀寫(xiě)操作時(shí),OPC客戶(hù)程序操作后立刻返回,不用等待OPC服務(wù)器的操作,可以進(jìn)行其他操作。當0PC服務(wù)器完成操作后再通知OPC客戶(hù)程序。因此,相對于同步通信和異步通信的效率更高,適用于多客戶(hù)訪(fǎng)問(wèn)同一OPC服務(wù)器和大量數據的場(chǎng)合。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: Visual OPC

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>