<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于FF現(xiàn)場總線的先進控制算法的應用研究

          基于FF現(xiàn)場總線的先進控制算法的應用研究

          作者: 時間:2013-02-22 來源:網(wǎng)絡 收藏


          2.1 OPC服務器

          選用中科院沈陽自動化研究所提供了OPC服務器MicroCyber .FFServer.1,服務器的地址空間由服務器可讀寫的所有數(shù)據(jù)項組成,可以根據(jù)需要得到數(shù)據(jù)項的全稱對其進行相關(guān)操作。圖4為OPC服務器的地址空間圖。使用OPC技術(shù)實現(xiàn)用VB6.0編寫的客戶端程序與OPC服務器的通訊,服務器中液位的實時值IF-PID-PV.VALUE,以及自定義變量如液位設定值IF-PID-SP.VALUE,然后進行算法控制,得到控制量,將控制量寫入OPC服務器的項FI-PID-OUT.VALUE,從而控制受控系統(tǒng)。

          newmaker.com
          圖 4 OPC服務器的地址空間圖

          2.2 OPC自動化接口標準

          2.2.1自動化接口

          OPC基金會為方便用戶在各種環(huán)境下軟件開發(fā),為數(shù)據(jù)訪問規(guī)范提供兩類接口:自動化接口和定制接口?;诙ㄖ平涌诘拈_發(fā),需要用到較深的COM/DCOM知識,比較晦澀難懂,而運用自動化接口則有以下優(yōu)點:客戶程序可以很容易地應用接口,而無需了解接口的詳細內(nèi)部機理;可以運用事件觸發(fā)機制;可以生成一個通用的動態(tài)鏈接庫(DLL)或控件供所有客戶端應用程序使用。

          2.2.2自動化接口的通信機制

          OPC客戶程序通過封裝的OPC自動化接口動態(tài)鏈接庫訪問OPC服務器[7],如圖5所示。該動態(tài)連接庫將OPC服務器的定制接口翻譯成OPC客戶程序希望的自動化接口,以供客戶程序調(diào)用。OPC客戶程序和動態(tài)鏈接庫是進程內(nèi)的通信,而動態(tài)鏈接庫和OPC服務器的通信則基于COM/DCOM,既可以是進程內(nèi)或本地的連接,又可以是遠程連接。封裝的動態(tài)鏈接庫解決了定制接口的解釋和二者的通信,從而大大簡化了OPC客戶程序的開發(fā)。

          newmaker.com
          圖 5 OPC客戶程序與服務器的通迅

          2.2.3自動化對象模型

          OPC客戶程序的開發(fā)關(guān)鍵在于搞清該動態(tài)鏈接庫的封裝結(jié)構(gòu),也即自動化接口標準。該標準可以用圖6所示的自動化對象模型表示。它主要由6類對象組成:①OPCServer:OPC服務器的一個實例。只有創(chuàng)建了 OPCServer 對象以后才能獲得 OPC服務器的信息,它包括 OPCGroups 的搜索以及 OPCBrowser 對象的創(chuàng)建;②OPCGroups:能夠自動搜集到 OPCServer 范圍內(nèi)客戶端創(chuàng)建的所有的 OPCGroup對象;③OPCGroup:OPCGroup 對象的一個實例。 它包含所有的狀態(tài)信息,并且為 OPCGroup 中所涉及的 OPCItems提供必要的服務;④OPCItems :能夠自動搜集到 OPCServer 范圍內(nèi)客戶端創(chuàng)建的對應相應的 OPCGroup中的所有的 OPCItem 對象;⑤OPCItem :一個自動化對象,它包含“位號”的定義,當前值,狀態(tài)信息,最后更新時間;⑥OPCBrowser:瀏覽服務器中所有“位號”名稱的對象。對于每個 OPCServer只能創(chuàng)建一個 OPCBrowser 對象。


          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();