www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 工業(yè)控制
[導(dǎo)讀]1 引言 VC(Visual C++)是功能強(qiáng)大的一種Windows應(yīng)用程序可視化軟件開(kāi)發(fā)工具。VC支持面向?qū)ο蟮脑O(shè)計(jì)方法,并可以使用功能強(qiáng)大的微軟基礎(chǔ)類庫(kù)MFC(Micro - soft foundation class)。并且由于Microsoft公司在操作市場(chǎng)

1  引言
VC(Visual  C++)是功能強(qiáng)大的一種Windows應(yīng)用程序可視化軟件開(kāi)發(fā)工具。VC支持面向?qū)ο蟮脑O(shè)計(jì)方法,并可以使用功能強(qiáng)大的微軟基礎(chǔ)類庫(kù)MFC(Micro - soft foundation class)。并且由于Microsoft公司在操作市場(chǎng)上的壟斷地位,用VC開(kāi)發(fā)出來(lái)的軟件穩(wěn)定性好、可移植性強(qiáng),而且軟件與硬件相互獨(dú)立[1],可以用來(lái)開(kāi)發(fā)控制系統(tǒng)的上層管理系統(tǒng)。RSView32是作為一種專門(mén)用于工業(yè)控制的組態(tài)軟件,不僅包含了大量圖形開(kāi)發(fā)工具和現(xiàn)成圖形庫(kù),使用戶能夠方便的進(jìn)行系統(tǒng)開(kāi)發(fā),而且還可以對(duì)報(bào)警、活動(dòng)記錄、事件、歷史趨勢(shì)等進(jìn)行組態(tài),是一個(gè)功能強(qiáng)大的工業(yè)自動(dòng)化產(chǎn)品[2],因此可以很方便地對(duì)下層設(shè)備進(jìn)行組態(tài)。在實(shí)際系統(tǒng)開(kāi)發(fā)時(shí),利用OPC技術(shù)把兩種工具有效的結(jié)合起來(lái),使上層的VC程序通過(guò)RSView32間接地與下層PLC進(jìn)行數(shù)據(jù)通信,以獲取令人滿意的結(jié)果。

2  OPC介紹
OPC(OLE for Process Control)是根據(jù)Microsoft的OLE(現(xiàn)在Active)、COM(部件對(duì)象模型)和DCOM(分布式部件對(duì)象模型)技術(shù)所要求的功能制定的一個(gè)開(kāi)放和互用式的用戶界面標(biāo)準(zhǔn),它保證了自動(dòng)化/控制應(yīng)用程序和區(qū)域系統(tǒng)/設(shè)備之間的互用。它以O(shè)LE/COM機(jī)制作為應(yīng)用程序級(jí)的通訊標(biāo)準(zhǔn),采用 CLIENT/SERVER模式,典型的OPC體系結(jié)構(gòu)如圖1所示:

圖1     典型的OPC體系結(jié)構(gòu)
OPC規(guī)范中提供了兩套接口方案,即定制接口和自動(dòng)化接口。定制接口效率高,通過(guò)該接口能夠發(fā)揮OPC服務(wù)器的最佳性能,采用C++語(yǔ)言的客戶一般采用定制接口方案;自動(dòng)化接口使解釋性語(yǔ)言和宏語(yǔ)言訪問(wèn)OPC服務(wù)器成為可能,采用VB等語(yǔ)言的客戶一般采用自動(dòng)化接口。
OPC 數(shù)據(jù)存取服務(wù)器由三類對(duì)象組成:服務(wù)器(Server)、組(Group)、數(shù)據(jù)項(xiàng)(Item)。服務(wù)器對(duì)象用于指出特定的OPC服務(wù)器應(yīng)用程序名,并作為組對(duì)象的容器;組對(duì)象存儲(chǔ)由若干Item組成的Group信息并邏輯組織數(shù)據(jù)項(xiàng);數(shù)據(jù)項(xiàng)對(duì)象()存儲(chǔ)具體的Item的定義、數(shù)據(jù)值、狀態(tài)值等信息,一個(gè) Item就代表一個(gè)具體的過(guò)程變量。OPC客戶應(yīng)用程序要獲取OPC服務(wù)器的數(shù)據(jù),必須事先指定服務(wù)器應(yīng)用程序所在的計(jì)算機(jī)名(服務(wù)器應(yīng)用程序和客戶應(yīng)用程序不在同一臺(tái)PC上)、OPC數(shù)據(jù)訪問(wèn)服務(wù)器名和該服務(wù)器提供的OPC項(xiàng)的定義。
建立OPC連接后,客戶應(yīng)用程序一般可以通過(guò)三種方式從OPC 服務(wù)器讀取數(shù)據(jù):使用同步接口IOPC- SyncIO,簡(jiǎn)單有效,適合于只讀取少量數(shù)據(jù)的客戶程序;使用接口IOPCCallback的“訂閱”的功能OnChange,每當(dāng)數(shù)據(jù)有變化時(shí),服務(wù)器自動(dòng)通知客戶;使用異步接口IOPCASyncIO2,可以直接與物理設(shè)備通訊,速度慢但數(shù)據(jù)精確度高。

3  RSView32作為OPC服務(wù)器
西門(mén)子專門(mén)用于工業(yè)控制的通用組態(tài)軟件之一RSView32支持OPC技術(shù),它可以用作一個(gè)OPC客戶和外部OPC服務(wù)器軟件通信,也可以作為一個(gè)OPC服務(wù)器和其它第三方支持OPC技術(shù)的軟件進(jìn)行連接。本文中RSView32作為服務(wù)器,VC應(yīng)用程序作為客戶端,采用C/S模式實(shí)現(xiàn)兩者之間的數(shù)據(jù)交換。
3.1  使RSView32作為OPC服務(wù)器[4]
用下列方法之一使RSView32作為OPC服務(wù)器:
(1) 選擇“啟動(dòng)”編輯器里“啟動(dòng)”頁(yè)上的“OPC/DDE服務(wù)器”復(fù)選框;
(2) 發(fā)出RTDataServerOn命令(從命令行或另一個(gè) RSView32組件里,使用RTDataServerOff命令可以取消此功能),這將允許其它應(yīng)用程序讀取數(shù)值但不能改變它;
(3) 發(fā)出RTDataWriteEnable命令(從命令行或另一個(gè)RSView32組件里,使用RTDataWriteDisable命令可以取消此功能),這允許從外部OPC應(yīng)用程序?qū)懭?,以改變RSView32的標(biāo)記值。
3.2  建立 OPC 客戶項(xiàng)目[4]
VC應(yīng)用程序要從RSView32取得數(shù)據(jù),必須使用下列信息:
服務(wù)器:RSI.RSView32OPCTagServer;
類型:本機(jī)/遠(yuǎn)程;
服務(wù)器計(jì)算機(jī)名或地址:如果客戶和服務(wù)器在同一計(jì)算機(jī)上,這項(xiàng)可以是空白。
訪問(wèn)路徑:項(xiàng)目名;
更新速率:一個(gè)以秒為單位的速率;
條目:標(biāo)記名??梢酝ㄟ^(guò)查看RSView32的標(biāo)簽數(shù)據(jù)庫(kù)獲得。

4  VC應(yīng)用程序作為OPC客戶端的程序?qū)崿F(xiàn)
在VC環(huán)境中使用定制接口開(kāi)發(fā)OPC客戶應(yīng)用程序,下面是程序?qū)崿F(xiàn)的關(guān)鍵步驟。
4.1  包含OPC頭文件
開(kāi)發(fā)OPC客戶應(yīng)用程序,除了需要OPC接口外,還需要在程序中包含OPC標(biāo)準(zhǔn)庫(kù)文件,可以從OPC基金會(huì)網(wǎng)站(網(wǎng)址:www.opcfoundation.org)下載這些文件:
#include "opcda_i.c"    OPC數(shù)據(jù)存取接口
#include "opcda.h"      OPC數(shù)據(jù)存取2.0頭文件
#include "opccomn_i.c"  OPC公共接口定義
#include "opccomn.h"    OPC公共頭文件
4.2  初始化COM支持庫(kù)
由于OPC是基于COM技術(shù)制定,所以在使用接口類之前必須首先使用CoInitialize(NULL)函數(shù)初始化COM庫(kù),如果成功,函數(shù)返回值等于S_ OK。
4.3  連接opc服務(wù)器
OPC 客戶能夠連接到OPC服務(wù)器上,并建立OPC組和OPC數(shù)據(jù)項(xiàng),這是OPC數(shù)據(jù)訪問(wèn)的基礎(chǔ),如果沒(méi)有這個(gè)機(jī)制,數(shù)據(jù)訪問(wèn)的其它機(jī)能不可能實(shí)現(xiàn)[4]。連接 OPC服務(wù)器,OPC客戶需要事先指定計(jì)算機(jī)名(如果OPC服務(wù)器和OPC客戶不在同一臺(tái)計(jì)算機(jī)上)和OPC數(shù)據(jù)訪問(wèn)服務(wù)器名 (RSI.RSView32OPCTagServer)。實(shí)現(xiàn)代碼如下:
ConnectToServer(/*in */LPOLESTR ProgID,/*in*/ BOOL IsRemote,/*out */ IUnknown **ppUnknown)
{
CLSID OPCCLSID;
HRESULT hRet=CLSIDFromProgID(ProgID,&OPCCLSID);
//將字符串ProgID轉(zhuǎn)換為唯一OPCCLSID
if(IsRemote)
//opc服務(wù)器和opc客戶不在同一臺(tái)計(jì)算機(jī)上
{  
COSERVERINFO ServerInfo;
memset(&ServerInfo,0,sizeof(ServerInfo));
ServerInfo.pwszName=T2OLE("ServerComouter");
MULTI_QI qi[1];
memset(qi, 0, sizeof(qi));
qi[0].pIID=&IID_IUnknown;
HRESULT hRet=CoCreateInstanceEx(OPCCLSID,NULL,CLSCTX_REMOTE_SERVER,
&ServerInfo,1,qi);
*ppUnknown=qi[0].pItf;
}
else
//opc服務(wù)器和opc客戶在同一臺(tái)計(jì)算機(jī)上
{
hRet=CoCreateInstance(OPCCLSID,NULL,CLSCTX_LOCAL_SERVER,IID_IUnknown,
(void **)ppUnknown);
}
}
4.4  創(chuàng)建OPC組
IOPCServer接口的AddGroup()方法可以創(chuàng)建一個(gè)有指定名稱和屬性的OPC組。在調(diào)用該方法之前,可以使用上一步得到的Iunknown接口指針,通過(guò)QueryInterface()方法請(qǐng)求IOPCServer接口指針。代碼如下:  
ppUnknown->QueryInterface(IID_IOPCServer,(void **)&pServer);
//得到IOPCServer接口指針
pServer->AddGroup(L"",TRUE,500,1235,&lTimeBias,&fTemp,0,&hOPCServerGroup,  &dwActualRate,IID_IOPCItemMgt,& pOPCItemMgt);
4.5  添加數(shù)據(jù)項(xiàng)
IOPCItemMgt接口的AddItem()方法可以添加具有特殊屬性的指定數(shù)量的數(shù)據(jù)項(xiàng)。
pOPCItemMgt->AddItems(ItemNumber,ItemArray,
(OPCITEMRESULT**)&pItemResult,(HRESULT **)&pErrors);
ItemArray 為OPCITEMDEF類型結(jié)構(gòu)數(shù)組,它包含數(shù)據(jù)項(xiàng)的詳細(xì)信息,客戶需要知道要進(jìn)行交換的數(shù)據(jù)在RSView32標(biāo)簽數(shù)據(jù)庫(kù)中的名稱、數(shù)據(jù)類型及作為 OPC服務(wù)器的RSView32項(xiàng)目名稱。添加數(shù)據(jù)項(xiàng)之前,要用這些數(shù)據(jù)項(xiàng)信息對(duì)ItemArray結(jié)構(gòu)數(shù)組進(jìn)行初始化。
4.6  數(shù)據(jù)交換
成功地增加完所需要的數(shù)據(jù)項(xiàng)后,OPC客戶(VC應(yīng)用程序)和OPC服務(wù)器(RSView32)就可以進(jìn)行數(shù)據(jù)交換了。在數(shù)據(jù)量不大的情況下,可以使用 IOPCSyncIO同步接口的Write()和Read()兩個(gè)方法進(jìn)行數(shù)據(jù)的讀寫(xiě)操作,從而實(shí)現(xiàn)OPC客戶(VC應(yīng)用程序)和OPC服務(wù)器 (RSView32)之間的數(shù)據(jù)交換。代碼如下:
ppUnknown->QueryInterface(IID_IOPCSyncIO,(void **)&pOPCSync);
//得到IOPCSyncIO接口指針
pOPCSync->Read(OPC_DS_CACHE,ReadNumber,hServerRead,&pItemValue,&pErrors);
//讀ReadNumber個(gè)數(shù)據(jù)
pOPCSync->Write(WriteNumber,hServerWrite,WriteValue,&pErrors);
//寫(xiě)WriteNumber個(gè)數(shù)據(jù)
4.7  釋放接口指針
在VC應(yīng)用程序停止運(yùn)行之前必須使用Release()方法刪除已創(chuàng)建的OPC對(duì)象并釋放內(nèi)存。

5  結(jié)束語(yǔ)
OPC技術(shù)規(guī)范把硬件供應(yīng)商和應(yīng)用軟件開(kāi)發(fā)者分離開(kāi)來(lái),使得雙方的工作效率都有了很大提高。軟件開(kāi)發(fā)商無(wú)需了解硬件的實(shí)質(zhì)和操作過(guò)程,就能訪問(wèn)OPC數(shù)據(jù)服務(wù)器中的數(shù)據(jù),尤其是開(kāi)發(fā)商在已使用了組態(tài)軟件進(jìn)行實(shí)時(shí)監(jiān)控的過(guò)程控制系統(tǒng)基礎(chǔ)上,用C++等高級(jí)語(yǔ)言開(kāi)發(fā)系統(tǒng)時(shí),大大簡(jiǎn)化了過(guò)去從設(shè)備傳輸數(shù)據(jù)的復(fù)雜過(guò)程。在某鋁廠的自動(dòng)配料系統(tǒng)開(kāi)發(fā)中,應(yīng)用OPC技術(shù)方便地實(shí)現(xiàn)了VC應(yīng)用程序和RSView32的數(shù)據(jù)交換,間接地實(shí)現(xiàn)了VC應(yīng)用程序PLC的通信,獲得了很好的結(jié)果。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

(全球TMT2022年10月17日訊)為全球技術(shù)基礎(chǔ)設(shè)施提供高速連接的企業(yè)Alphawave IP Group plc發(fā)布其截至2022年9月30日的三個(gè)月交易和業(yè)務(wù)更新文告。公司從2022年9月1日起整合了已收購(gòu)的O...

關(guān)鍵字: ALPHA IP GROUP PLC

據(jù)業(yè)內(nèi)信息,近日ADM的一份內(nèi)部報(bào)告顯示,ADM正在計(jì)劃降低其銳龍 7000 CPU的生產(chǎn)計(jì)劃。現(xiàn)階段全球市場(chǎng)PC的低迷和銷量下滑,再加上AM5平臺(tái)整體反響不佳等等一系列原因?qū)е翧DM采取這一行動(dòng)計(jì)劃。

關(guān)鍵字: PC ADM 銳龍 7000 CPU

摘要:隨著我國(guó)城鎮(zhèn)化進(jìn)程加快,汽車保用量劇增,土地資源緊缺,停車難問(wèn)題日益嚴(yán)重,提升車位空間的利用率是目前解決這個(gè)問(wèn)題的有效途徑之一。鑒于此,設(shè)計(jì)了一種基于PLC與小程序的自助立體停車庫(kù),以PLC為控制系統(tǒng)的核心,服務(wù)器...

關(guān)鍵字: 控制系統(tǒng) PLC 通信協(xié)議

憑借其全新的功能豐富的移動(dòng)交易應(yīng)用程序,屢獲殊榮的經(jīng)紀(jì)商HFM讓客戶實(shí)現(xiàn)觸手可及的全方位交易體驗(yàn)。 毛里求斯路易港2022年10月14日 /美通社/ -- 全球多資產(chǎn)經(jīng)紀(jì)商...

關(guān)鍵字: 應(yīng)用程序 FM 移動(dòng)應(yīng)用 ADI

倫敦2022年10月13日 /美通社/ -- Ubuntu Pro是擴(kuò)展式安全維護(hù)和合規(guī)訂閱服務(wù),目前針對(duì)數(shù)據(jù)中心和工作站已推出公開(kāi)測(cè)試Beta版本。Canonical將按照...

關(guān)鍵字: UBUNTU CANONICAL BSP 應(yīng)用程序

上海2022年10月11日 /美通社/ -- 日前,國(guó)際獨(dú)立第三方檢測(cè)、檢驗(yàn)和認(rèn)證機(jī)構(gòu)德國(guó)萊茵TUV大中華區(qū)(簡(jiǎn)稱"TUV萊茵")為寧波堅(jiān)鋒新材料有限公司...

關(guān)鍵字: 新材料 PC 可持續(xù)發(fā)展 ISO

你平時(shí)除了工作還會(huì)用電腦嗎?近日分析機(jī)構(gòu)Canalys發(fā)布了2022年第三季度全球PC出貨量報(bào)告,臺(tái)式機(jī)和筆記本電腦在第三季度的總出貨量同比下降18%至6940萬(wàn)臺(tái)。其中,筆記本電腦出貨量受影響最大,同比下降19%至54...

關(guān)鍵字: PC 臺(tái)式機(jī) 惠普 聯(lián)想

根據(jù)IDC全球個(gè)人計(jì)算設(shè)備季度追蹤的初步結(jié)果,2022第三季度,全球PC發(fā)貨量總計(jì)7420萬(wàn)臺(tái),傳統(tǒng)PC市場(chǎng)繼續(xù)下滑,需求降溫和供應(yīng)不平衡導(dǎo)致同比收縮15.0%。聯(lián)想出貨量1688萬(wàn)臺(tái),份額22.7%,比上年同期下降16...

關(guān)鍵字: 蘋(píng)果 PC IDC 華碩

為增進(jìn)大家對(duì)存儲(chǔ)器的認(rèn)識(shí),本文將對(duì)PLC內(nèi)部常用存儲(chǔ)器的使用規(guī)則予以介紹。

關(guān)鍵字: 存儲(chǔ)器 指數(shù) PLC

摘要:香煙在燃燒后產(chǎn)生的廢棄煙頭對(duì)環(huán)境是一大危害,因此對(duì)煙頭的收集及處理具有重要意義。針對(duì)城市煙頭收集問(wèn)題,設(shè)計(jì)了一種多功能煙頭收集器,利用三維軟件設(shè)計(jì)了收集器的整體結(jié)構(gòu)。采用光伏板將太陽(yáng)能轉(zhuǎn)化為電能給收集器提供電源,結(jié)...

關(guān)鍵字: 煙頭 結(jié)構(gòu)設(shè)計(jì) PLC

工業(yè)控制

13468 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉