版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、關于OPC Client 編寫hapican 895 5 熱門 2014-02-23 20:14 昨天又有人問我 OPC Client 編寫,實際是他們不了解OPC 客戶端的工作原理,要想寫客戶端程序,必須知道OPC對象, OPC邏輯對象模型包括類對象:OPC server對象、OPC group對象、OPC item對象,每類對象都包括一系列接口。 OPC Server對象 主要功能為:1、創(chuàng)建和管理OPC Group對象;
2、60; 2、管理服務器內部的狀態(tài)信息; OPC Group對象 主要功能為:1、管理OPC Group對象的內部狀態(tài)信息; 2、創(chuàng)建和管理Items對象。 3、OPC服務器內部的實時數(shù)據(jù)存取服務(同步與異步方式)。 OPC組中有以下幾個主要屬性:Name :組的名字 ;Active:組的激
3、活狀態(tài)標志 ;Update Rate OPC:服務器向客戶程序提交數(shù)據(jù)變化的刷新速率;Percent Dead band:數(shù)據(jù)死區(qū),即能引起數(shù)據(jù)變化的最小數(shù)值百分比。 OPC ITEM 是非COM對象,在OPC標準中用來描述實時數(shù)據(jù),是客戶端不可見的對象。代表了與服務器中的數(shù)據(jù)的連接,它并不是數(shù)據(jù)源,而僅僅是與數(shù)據(jù)源的連接。每個項都有以下主要屬性: Active項的激活狀態(tài)、Value項的數(shù)值、類型為VARIANT、Quality項的品質,代表數(shù)值的可信度,類型為SHORT、TimeStamp時間戳,代表數(shù)據(jù)的存取時間。 你不管用什么開發(fā)語言
4、只要了解上面幾個對象,就會寫程序了 下面舉個VC的例子 HRESULT r1; CLSID clsid; LONG TimeBias = 0; FLOAT PercentDeadband = 0.0; DWORD RevisedUpdateRate; LPWSTR ErrorStr; char str100; CString szErrorText; m_pItem
5、Result = NULL; 客戶端程序必須對DCOM進行初始化設置,以保證OPC服務器端回調函數(shù)不會被堵塞。 r1 = CoInitialize(NULL); if (r1 != S_OK) if (r1 = S_FALSE) MessageBox("COM Library already initialized", "Error CoInitialize()", MB_OK+MB_
6、ICONEXCLAMATION); else szErrorText.Format("Initialisation of COM Library failed. Error Code= %4x", r1); MessageBox(szErrorText,"Error CoInitialize()", MB_OK+MB_ICONERROR); SendMessage(WM_CLOSE); return;
7、 通過OPC服務器的ProgID查詢注冊表中相關CLSID。每個COM服務器都有一個字符串型的ProgID,通過ProgID可以得到全球惟一的CLSID,使用CLSIDFromProgID( )函數(shù)實現(xiàn)ProgID到CLSID的轉換。 r1 = CLSIDFromProgID(L"OPC.SimaticNET", &clsid); if (r1 != S_OK) MessageBox("Retrival of CLSID failed",
8、60; "Error CLSIDFromProgID()", MB_OK+MB_ICONERROR); CoUninitialize(); SendMessage(WM_CLOSE); return; 連接OPC服務器,查詢對象的IID_IOPCServer接口。在連接OPC服務器前,OPC客戶端需要事先指定計算機名和OPC數(shù)據(jù)訪問服務器名,建立連接后,創(chuàng)建OPC組并添加OPC數(shù)據(jù)項。 r1 = CoCreateInstance (clsid, NULL, CL
9、SCTX_LOCAL_SERVER ,IID_IOPCServer, (void*)&m_pIOPCServer); if (r1 != S_OK) MessageBox("Creation of IOPCServer-Object failed", "Error CoCreateInstance()", MB_OK+MB_ICONERROR); m_pIOPCServer = NULL;
10、 CoUninitialize(); SendMessage(WM_CLOSE); return; 創(chuàng)建OPC組,查詢IOPCItemMgt接口。IOPCServer接口的AddGroup()方法可以創(chuàng)建一個有指定名稱和屬性的OPC組。 r1=m_pIOPCServer->AddGroup(L"grp1", / in group name TRUE, / in active
11、160; 500, / in request this Update Rate from Server 1, / in Client handle &TimeBias, / in no time interval to system UTC time &PercentDeadband, / in no de
12、adband, so all data changes are reported LOCALE_ID, / in Server uses English language for text values &m_GrpSrvHandle, / out Server handle to identify this group in later calls &RevisedUpdateRate
13、, / out the answer form the Server to the requested update rate IID_IOPCItemMgt, / in requested interface type of the group object (LPUNKNOWN*)&m_pIOPCItemMgt); / out pointer to the requested interface if (r1 =
14、OPC_S_UNSUPPORTEDRATE) szErrorText.Format ("Revised Update Rate %d is different from Requested Update Rate 500",RevisedUpdateRate ); AfxMessageBox(szErrorText); else if (FAILED(r1) MessageBox("Can't add Group to
15、Server!", "Error AddGroup()", MB_OK+MB_ICONERROR); m_pIOPCServer->Release(); m_pIOPCServer = NULL; CoUninitialize(); SendMessage(WM_CLOSE); return; 添加OPC數(shù)據(jù)項。使用IOPCItemMgt接口的AddItem()方法可以添加具有特殊屬性的指定數(shù)量的數(shù)據(jù)項。
16、 / define an item table with one item as in-paramter for AddItem m_Items0.szAccessPath = L"" m_Items0.szItemID = szItemID; / 影響數(shù)據(jù)類型 m_Items0.bActive = TRUE; m_Items0.hClient = 1; m_Items0.dwB
17、lobSize = 0; m_Items0.pBlob = NULL; m_Items0.vtRequestedDataType = 0; / defined by the item itself r1 = m_pIOPCItemMgt->AddItems(1, / in add one item m_Item
18、s, / in see above &m_pItemResult, / out array with additional information about the item &m_pErrors); / out tells which of the items was successfully added. / For
19、any item which failed it provides a reason 程序退出時 OPC連接斷開,釋放接口指針。當程序退出或停止服務器時,依次刪除Item(RemoveItems)、Group(RemoveGroups),釋放資源。 void CAsynOPCDlg:OnStop( ) 停止服務器。 h1=m_IOPCItemMgt->RemoveItems(1,phServer,&pErrors);刪除Items。 h1=m_IOPCServer->RemoveGroup(m_GrpSrvHandle,TRUE);刪除Group。 m_IOPCServer
20、->Release( );釋放服務器。 m_IOPCServer=NULL; CoUninitialize( );關閉COM庫。 覺得寫得很好,供大家參考 轉自1 RSLinx Classic Gateway 遠程連接(2012-05-16 16:45:18) 轉載標簽: rslinx分類: RSLinx 2 一、啟用Gateway功能在被連接和需要連接的主機上都要啟用Gateway功能,步驟如下:1、在這之前我已經(jīng)安裝好了RSLinx,并且安裝好了RSLinx的Gateway授權,重啟RSLinx。首先打開RSLinx,點選communications&g
21、t;Configure Gateway;2、在彈出的窗口中勾選Enable RSLinx Classic Gateway;3、點擊OK;4、在Client Access List(客戶端列表)標簽中勾選限制訪問;5、點擊Add New;6、輸入正確的客戶端IP;7、點擊應用;3 二、在需要連接的主機上建立TOPIC(主題)這里沒有寫被連接主機的設置,被連接主機的設置就是之前說過的RSLinx連接PLC的設置8、點擊DDE/OPC>Topic Configuration9、點擊New;10、輸入主題名;11、選擇主題名對應的CUP;12、點擊Apply;然后在點擊New,建好所有的主題后,
22、點擊Done;4 三、用RSI-OPC Test Client軟件測試連接是否成功在開始菜單>所有程序>Rockwell Software>RSLinx>Tools>OPC Test Client13、點擊Server>connect14、在彈出的窗口中選擇RSLinx OPC Server;15、點擊OK;16、點擊Group>Add Group17、在彈出的彈出的窗口中點擊OK;18、點擊Item>Add Item;19、電機加號可以瀏覽標簽,瀏覽標簽添加需要的標簽到左上角的的窗口中;20、點擊OK;21、瀏覽到了添加進來的標簽總結:這種方式
23、是通過RSLinx作為網(wǎng)關遠程訪問到PLC,還是在HMI服務器上用RSLinx建立并配置TOPIC,說到底這種連接方式也RSLinx直接與PLC連接相比只是網(wǎng)絡路徑不同,連接之后的效果是一樣的。5 不同類型 RSLinx Classic 的區(qū)別(2012-05-15 16:26:11) 轉載標簽: rslinx分類: RSLinx RSLinx Classic 共有五種版本,以滿足不同價格和功能需求。根據(jù)運行版本的不同, 某些功能不一定可用。有關具體版本的功能,請參閱以下部分。正在運行的 RSLinx Classic 版本信息顯示
24、在主窗口頂部的標題欄上。如果啟動RSLinx Classic 版本時沒有正確的激活文件,它將作為 RSLinx Classic Lite 運行。RSL INX C LASSIC 入門指南RSLinx Classic LiteRSLinx Classic Lite 提供了支持 RSLogix 和 RSNetWorx 所需的最基本功能。不單獨出售該版本,而是與僅需直接訪問 RSLinx Classic 網(wǎng)絡驅動程序的產(chǎn)品捆綁出售。該版本不支持 OPC、DDE 或已發(fā)布的 RSLinx Classic C 應用程序編程接口 (API) 。RSLinx
25、Classic Lite 適用于以下情況:· 使用 RSLogix 產(chǎn)品的梯形邏輯編程。 · 使用 RSNetWorx 配置與診斷網(wǎng)絡和設備。 · 配置以太網(wǎng)模塊/設備(例如,1756-ENET 、1756-DHRIO 等)。 · 使用 ControlFlash 升級固件。 · 瀏覽網(wǎng)絡并獲取固件版本等設備信息。 RSLinx Classic Single NodeRSLinx Classic Single Node 包括了為所有 Rockwell Software 產(chǎn)品提供通信服務的
26、必需功能。該版本支持 OPC 和 DDE 接口,但僅限于一個設備。它不支持為 RSLinx Classic C 應用程序編程接口 (API) 開發(fā)的應用程序或 HMI 應用程序的直接驅動程序。這些應用程序類型需要使用 RSLinx Classic OEM 或更高版本。RSLinx Classic Single Node 適用于以下情況:· 使用 OPC 或 DDE 將數(shù)據(jù)采集到一個設備上。包括 RSView32、Microsoft Office、Visual Basic 和網(wǎng)頁
27、等客戶端。 · 使用 RSLogix 產(chǎn)品的梯形邏輯編程。 · 使用 RSNetWorx 配置與診斷網(wǎng)絡和設備。 · 配置以太網(wǎng)模塊/設備(例如,1756-ENET 、1756-DHRIO 等)。 · 使用 ControlFlash 升級固件。 · 瀏覽網(wǎng)絡并獲取固件版本等設備信息。 RSLinx Classic OEMRSLinx Classic OEM 包括了為所有 Rockwell Software 產(chǎn)品提供通信服務的必需功能。同時支持任意數(shù)量設備的 OPC 和 DDE
28、; 客戶端。該版本還支持為 RSLinx Classic C 應用程序編程接口 (API) 開發(fā)的應用程序。RSLinx OEM 2.2 版和之前版本僅支持 AdvanceDDE 。RSLinx 2.3 版及之后版本支持除 FastDDE 以外的所有 DDE 類型。RSLinx Classic OEM 適用于以下情況:· 使用 OPC 或 DDE 將數(shù)據(jù)采集到任意數(shù)量的設備上。包括 RSView32 、Microsoft Office、Visual Basic 和網(wǎng)頁等客戶端。 · 使用 RSLogix
29、 產(chǎn)品的梯形邏輯編程。 · 使用 RSNetWorx 配置與診斷網(wǎng)絡和設備。 · 配置以太網(wǎng)模塊/設備(例如,1756-ENET 、1756-DHRIO 等)。 · 使用 ControlFlash 升級固件。 · 瀏覽網(wǎng)絡并獲取固件版本等設備信息。 RSLinx Classic GatewayRSLinx Classic Gateway 通過連接 TCIP/IP 網(wǎng)絡中的客戶端擴展了整個企業(yè)中基于RSLinx Classic 的通信能力。RSLogix 和 RSNetWorx 等編程和配置產(chǎn)品使用本地RSLinx Classic Lite 與 RSLinx Classic Gateway 通信,更好的情況則是使用配置了 Linx Gateway 驅動程序的遠程設備與 RSLinx Classic Gateway 通信。包括Microsoft Offi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北省黃岡市(2024年-2025年小學五年級語文)人教版隨堂測試(上學期)試卷及答案
- 從基礎到精通:2024年3dmax全方位培訓指南
- 海南省建筑工程竣工驗收資料2012
- 2024-2025學年七年級英語下冊Unit3SchoolLifeLesson16WeArewithYou同步練習新版冀教版
- 2024-2025學年高中歷史第五單元經(jīng)濟全球化的趨勢第23課戰(zhàn)后資本主義世界經(jīng)濟體系的形成教學教案岳麓版必修2
- 高中歷史第三章第二次世界大戰(zhàn)3.3東方戰(zhàn)線文本素材北師大版選修3
- G0培訓課件(2024版):培養(yǎng)未來建筑行業(yè)領軍人才
- 二年級語文下冊課文4語文園地五學案新人教版
- 五年級科學下冊第二單元熱6熱是怎樣傳遞的教案教科版
- 5S培訓教程與2024年漫畫集精講
- 2024江蘇省鐵路集團限公司春季招聘24人高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 2024術語工作適老化基本術語
- 2024軟件開發(fā)合作框架合同范本
- 安徽省A10聯(lián)盟2024-2025學年高三上學期開學考試生物試題(解析版)
- 2022-2023學年北京市海淀區(qū)中關村中學八年級(上)期中數(shù)學試卷【含解析】
- 2.1 認識自己 課件-2024-2025學年道德與法治七年級上冊(統(tǒng)編版2024)
- 5.5《方程的意義》(課件)-2024-2025學年人教版數(shù)學五年級上冊
- 2021新青島版六三制三年級上冊科學全冊知識點總結期末復習背誦資料
- 部編版二年級語文上冊看拼音寫詞語含答案
- 2024年浙江省應急管理行政執(zhí)法競賽題庫-上(單選、多選題)
- 四肢關節(jié)病癥推拿治療-梨狀肌綜合癥患者的推拿治療
評論
0/150
提交評論