• 大小: 0.80M
    文件类型: .pdf
    金币: 1
    下载: 0 次
    发布日期: 2021-03-27
  • 语言: C#
  • 标签: c#  

资源简介


西门子官方文档。描述了如何连接西门子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

资源截图

代码片段和文件信息

评论

共有 条评论