資源簡介
西門子官方文檔。描述了如何連接西門子OPC服務器。對其它廠商OPC同樣適用。
SIEMENS 如何在C#中實現OPG數據訪問 概述 1.1OPC介紹 12OPC的讀寫方式 1.3○PC訪問接口方式 2、測試環境 2.1硬件要求 22軟件要求 3、 OPC Server端組態配置 111面國面 4、采用自定義接過程 44567777992 4.1同步讀寫 4.2異步讀寫 ::= 5、采用自動化接口實現過程… E豐面 19 6、OPG|tem的數據類型 .23 7、小結 23 8、代碼 23 81自動化接口 23 82自定義接口同步讀寫 28 8.3自定義接口異步讀與 .34 lA&DT Service Support Page 3-47 SIEMENS 1、概述 11OPc介紹 OPG是 Object Linking and Embedding(OLE) for process control的縮寫,它是徵軟 公司的對象鏈接和嵌入技術在過程控制方面的應用。OPC以 OLE/COM/DCOM技術為基 礎,采用客戶/服務器模式,為丁業自動化軟什面向對象的開發提供了統一的標準,這個標 準定義了應用 Microsoft操作系統在基于PC的客戶機之間交換自動化實時數據的方法,采 用這項標準后,硬件開發商將取代軟件開發商為自己的硬件產品開發統一的OPC接口程 序,而軟件開發者可免除開發驅動程序的工作,充分發揮自己的特長,把更多的精力投入 到其核心產品的開發上 SimaticNet是西門子全集成自動化系統中的一個重要組成部分,它為完善的工業自動化 控制系統的通訊提供部件和網絡,同時提供多個 OPCServer,為數據的外部訪問提供接 ∏,本文主要以 OPC. SimatIcNET為例說明 =B Local server[s] 囗FEML A OPC. SimaticNE LDP 者0 PC. SimaticNELPD 口PC WinCC UPCServerbewinCt ① PCSeverhd點WCC -Ed Remote Server[ s Add remote 圖1: SimatcicNet提供的 OPCSe 采用不同的通信方式,通過 OPC. SimaticNET,現場數據可以方便地提供給用戶: OPC Client OPC Client OPC. SimaticNET DP SNMP PN|Q… 圖2:多種數據提供方式 lA&DT Service Support Page 4-47 SIEMENS 12Pc的讀寫方式 在實際使用中,主要包括對現場數據的讀寫操作。 OPG客戶端讀取數據有三種方式:同步、異步、訂閱。 同步通訊時,OPC客戶程序向OPC服務器進行請求時,OPC客戶程序必須等到OPC 服務器對應的響應全部完成以后才能返回,在此期間OPG客戶程序一直處于等待狀態,若 進行讀操作,那么必須等待OPC服務器響應后才返回。因此在同步通訊時,如果有大量數 據進行操作或者有很多OPC客戶程序對OPC服務器進行讀操作,必然造成OPC客戶程序 的阻塞現象。因此同步通訊適用于OPC客戶程序較少,數據量較小吋的場合 client server my Group. SynchReado Call Reply 圖3OPC同步讀寫服務器客戶端數據流圖 異步通訊時,OPC客戶程序對服務器進行請求時,OPC客戶程序請求后立刻返回,不 用等待OPC服務器的響應,可以進行其它操作。OPC服務器完成響應后再通知OPC客戶 程序,如進行讀操作,OPC客戶程序通知○PC服務器后離開返回,不笭待OPC服務器的 讀完成,而○PC服務器完成讀后,會自動的通知OPC客戶程序,把讀結果傳送給OPC客 戶程序。因此相對于同步通訊,異步通訊的效率更高 client server Call my Group. ASynch Reado myGroup_ AsyncRead Complete( Reply 圖4OPG異步讀服務器客戶端數據流圖 lA&DT Service Support Page 5-47 SIEMENS 訂閱方式時,OPC客戶程序對服務器進行請求時,OPC客戶程序操作后立刻返同,不 用等待OPC服務器的操作,可以進行其它操作,OPC服務器的 Group組在組內有數據發 生改變時,自動根據更新期刷新相應的客戶端數據,如下圖,客戶端只向○PC服務發送 次請求,之后不再對服務器請求。 clent server my Group. Is Subscribed Subscribe Notify my Group_Data Changeo Notify my Group_Data Changeo 圖5OPC同步讀服務器客戶端數據流圖 OPC寫數有兩種方式:同步、異步。區別與上面講的機制樣,在生產應用中,如果寫 數據參與控制,一般采用同步方式。 13oPc訪問接口方式 OPC主要包含兩種接口: CUSTOM標準接口和OLE自動化標準接口,自定義接口是 服務商必須提供的,而自動化接口則是可選的。 自定義接口是一組COM接口,主要用于采用C++語言的應用程序開發:; 自動化接口是一組OLE接口,要用于采用ⅤB, DELPH,Exce|等基于胭本編程語 言的應用程序開發。 opC autonat OPC automation olation interface wrapper Lecat or remote OPC 5011a1 Shared by mamry client) C++ Applcaton OPc CusTom Interface Sevey Data cache Deice Data 圖6自定義接口和自動化接口 lA&DT Service Support Page 6-47 SIEMENS 許多OPC服務器,包扦OPc. SimaticNet,是在COM平臺開發的,從而對于基 于NET框架下的C#語言,作為客戶端程序語言訪問○ PCServer,需要解決兩個平臺間無縫 遷移的問題。OPC基金會對會員提供了 Opc RcW動態鏈接庫, OPC NET COM包裝器和 OPC NET AP|,將OPC復雜的規范封狀成簡單易用的G#類,可以比較容易地實現數據訪 本文中通過實驗,逐步講解了通過C#編寫客戶端程序,訪問OPC. SimaticNet,對 PLC數據進行讀寫的實現過程。自定義接∏及自動化接∏都進行了測試,但基于C#的語言 特性,建議采用自定義接丨1訪問,同時有很多 OPCServer服務商,對外是不提供自動化接 口的,西門了的 SimaticNet及 WinCC的 OPCServer都提供自動化接口 2、測試環境 21硬件要求 采用400系列PLC,通過以太網連接到安裝有 simaticNet的計算機上。 computer: windows 2003 server--------192 168.0 102 CPU:GPU4143PN--416-3FR050AB0----192.168.0.1 22軟件要求 computer: √ Simatic.net2007 √ Visua| studio2005 Step7 V5.4 SP4 3、 OPC Server端組態配置 HOH[OJU 網cPU416F3PNDP 450789 lA&DT Service Support Page 7-47 SIEMENS 在CPU中定義DB塊:DB10 Address Mane ype 工 nitial ralue STRUCT d Test D +2o Test Data4 Test data5 REAL 00000e+000 Ie三 t Data O.000000e+000 +12.0 Test_Datar FALSE +12.1 Test Data8 FALsE IG[10] +26.0 Test DatalQ STRING 101 END STRUCT 配置 PC Station,參考其它文檔。 E: NetPro-[OPCTest(Network)--F: (0PCTest] Network: Edit nsert PL( 固h舀扈幽血創的! Ethernet ( Indstrial Ethern HPI(二) DEMOSERVERI SIMATIC 400(1 licr- I PROF-BUS(1) Local in Partner ID mn色=tian1 SIYATIC 400(1),CPU 416F-3 PN/DP S7 cornectior. 如上圖建立連接S7 connection_1,然后在 OPC Scout測試連接的正確性。 lA&DT Service Support Page 8-47 SIEMENS Item Names value Format Type Access Quality Stamp 1 157 connection 1DB10]N TO 2 Original int16 Rw gocd 03: 18/2009 2s7 B10T2 03|82009 3S7 S7 connection_ 1 [B10.REAL4 35 Original rsale Rw u3A182009 457. 157 connection_1[B10.REALS 5.8 Original real RW gocd 03. 187/2009 557. 57 connetion 1[B10STRING14 10 test Original 3:18209 6 S: S7 connection 1[B10. TRING2E. 0 20081213 riginal string Rw gocd 182009 7 connection 1DB10X120 0341/20 57: 5/ connection 1DB10X12. False Original bool RY 0318200 從上面可以看到數據訪問都是正常的 4、采用自定義接口過程 41同步讀寫 建立同步讀寫項目: Sync_ RW aX 日UdC visual Studio installed templates Wet Control Libra"y 圖 windows Service 國Ept; ok 測試中,對db10dbw0及db10dbw2讀寫操作,在Fom窗口做如下設計 Control name Button Btn ConnConn Button Btn Read Read Button Btn Write Button: Btn DisConn dis Conn lA&DT Service Support Page 9-47 SIEMENS TextBox: Txt R1 Value TextBox: Txt_R1_ Quality TextBox: TXt_R1_Time Stamp TextBox:TxtR2∨alue TextBox: TXt_ R2_ Quality TextBox: TXt_R2 Time Stamp TextBox: Txt W1 TextBox: Txt W2 TextBox: Txt Write status H sync rw dis Conn Read Write 第步,添加下面命名空間:(首先需要在項目中添加相應的引用) using UpcRcW la 第二步,定義OPC相關變量, 0) pcCw.Da. l(P(Server Srver(b.;//定義 PCServer對象 OpcReW.Da. IOPCSync I0 IoPSynC IO2Oh=nl;/同步讀對象 pcCw.Da. lOPCGroupst at e Mgt. lOPCGroupStat eMgt()hj=nl1;//管理 OPCGGroup組對象 internal const int Locale id=0x407;// OPCServer語言碼-英語 0 bject Myob jGroup1=mu1l;// OPCGroup對象 [] ItemServerhandle;/Item句柄數組 int pSvrGroupHandle=0;// OPCGroup句枘 第三步,連接○ PCServer,建立相應 OPCGroup組,并添加需要讀寫的tem private void Btr Conn Click(object sender, Syst ell, EventArgs e) //定義變量 lA&DT Service Support Page 10-47
代碼片段和文件信息
評論
共有 條評論