4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
新闻详情
如何在C#中实现OPC数据访问(西门子官方文档) - 开发实例、源码...
来自 : www.haolizi.net/example/view_6 发布时间:2021-03-24
【实例简介】
西门子官方文档。描述了如何连接西门子OPC服务器。对其它厂商OPC同样适用。
SIEMENS如何在C#中实现OPG数据访问1.1OPC介绍12OPC的读写方式1.3○PC访问接口方式2、测试环境2.1硬件要求22软件要求3、 OPC Server端组态配置111面国面4、采用自定义接过程445677779924.1同步读写4.2异步读写5、采用自动化接口实现过程…6、OPG|tem的数据类型81自动化接口82自定义接口同步读写8.3自定义接口异步读与lA DT Service SupportPage 3-47SIEMENS11OPc介绍OPG是 Object Linking and Embedding(OLE) for process control的缩写,它是徵软公司的对象链接和嵌入技术在过程控制方面的应用。OPC以 OLE/COM/DCOM技术为基础,采用客户/服务器模式,为丁业自动化软什面向对象的开发提供了统一的标准,这个标准定义了应用 Microsoft操作系统在基于PC的客户机之间交换自动化实时数据的方法,采用这项标准后,硬件开发商将取代软件开发商为自己的硬件产品开发统一的OPC接口程序,而软件开发者可免除开发驱动程序的工作,充分发挥自己的特长,把更多的精力投入到其核心产品的开发上SimaticNet是西门子全集成自动化系统中的一个重要组成部分,它为完善的工业自动化控制系统的通讯提供部件和网络,同时提供多个 OPCServer,为数据的外部访问提供接∏,本文主要以 OPC. SimatIcNET为例说明=B Local server[s]囗FEMLA OPC. SimaticNE LDP者0 PC. SimaticNELPDWinCCUPCServerbewinCt① PCSeverhd点WCC-Ed Remote Server[ sAdd remote图1: SimatcicNet提供的 OPCSe采用不同的通信方式,通过 OPC. SimaticNET,现场数据可以方便地提供给用户:OPC ClientOPC ClientOPC. SimaticNETDP SNMP PN|Q…图2:多种数据提供方式lA DT Service SupportPage 4-47SIEMENS12Pc的读写方式在实际使用中,主要包括对现场数据的读写操作。OPG客户端读取数据有三种方式:同步、异步、订阅。同步通讯时,OPC客户程序向OPC服务器进行请求时,OPC客户程序必须等到OPC服务器对应的响应全部完成以后才能返回,在此期间OPG客户程序一直处于等待状态,若进行读操作,那么必须等待OPC服务器响应后才返回。因此在同步通讯时,如果有大量数据进行操作或者有很多OPC客户程序对OPC服务器进行读操作,必然造成OPC客户程序的阻塞现象。因此同步通讯适用于OPC客户程序较少,数据量较小吋的场合clientservermy Group. SynchReadoReply图3OPC同步读写服务器客户端数据流图异步通讯时,OPC客户程序对服务器进行请求时,OPC客户程序请求后立刻返回,不用等待OPC服务器的响应,可以进行其它操作。OPC服务器完成响应后再通知OPC客户程序,如进行读操作,OPC客户程序通知○PC服务器后离开返回,不笭待OPC服务器的读完成,而○PC服务器完成读后,会自动的通知OPC客户程序,把读结果传送给OPC客户程序。因此相对于同步通讯,异步通讯的效率更高client servermy Group. ASynch ReadomyGroup_ AsyncRead Complete( Reply图4OPG异步读服务器客户端数据流图lA DT Service SupportPage 5-47SIEMENS订阅方式时,OPC客户程序对服务器进行请求时,OPC客户程序操作后立刻返同,不用等待OPC服务器的操作,可以进行其它操作,OPC服务器的 Group组在组内有数据发生改变时,自动根据更新期刷新相应的客户端数据,如下图,客户端只向○PC服务发送次请求,之后不再对服务器请求。clentservermy Group. Is SubscribedSubscribeNotifymy Group_Data ChangeoNotifymy Group_Data Changeo图5OPC同步读服务器客户端数据流图OPC写数有两种方式:同步、异步。区别与上面讲的机制样,在生产应用中,如果写数据参与控制,一般采用同步方式。13oPc访问接口方式OPC主要包含两种接口: CUSTOM标准接口和OLE自动化标准接口,自定义接口是服务商必须提供的,而自动化接口则是可选的。自定义接口是一组COM接口,主要用于采用C++语言的应用程序开发:;自动化接口是一组OLE接口,要用于采用ⅤB, DELPH,Exce|等基于胭本编程语言的应用程序开发。opC autonatOPC automationolationinterfacewrapperLecat or remoteOPC 5011a1Shared by mamry client)ApplcatonOPc CusTom InterfaceSevey Data cacheDeice图6自定义接口和自动化接口lA DT Service SupportPage 6-47SIEMENS许多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 102CPU:GPU4143PN--416-3FR050AB0----192.168.0.122软件要求computer:√ Simatic.net2007√ Visua| studio2005Step7 V5.4 SP43、 OPC Server端组态配置HOH[OJU网cPU416F3PNDP450789lA DT Service SupportPage 7-47SIEMENS在CPU中定义DB块:DB10Address Mane工 nitial ralueSTRUCTd Test D+2o Test Data4Test data500000e+000Ie三 t DataO.000000e+000+12.0 Test_DatarFALSE+12.1 Test Data8FALsEIG[10]+26.0 Test DatalQSTRING 101END STRUCT配置 PC Station,参考其它文档。E: NetPro-[OPCTest(Network)--F: (0PCTest]Network: Edit nsert PL(固h舀扈幽血创的!Ethernet (Indstrial EthernHPI(二)DEMOSERVERISIMATIC 400(1licr- IPROF-BUS(1)Local inPartner IDmn色=tian1SIYATIC 400(1),CPU 416F-3 PN/DP S7 cornectior.如上图建立连接S7 connection_1,然后在 OPC Scout测试连接的正确性。lA DT Service SupportPage 8-47SIEMENSItem Namesvalue Format Type Access Quality Stamp1 157 connection 1DB10]N TO 2 Original int16 Rw gocd 03: 18/2009B10T203|820093S7 S7 connection_ 1 [B10.REAL4 35 Original rsale Rwu3A182009457. 157 connection_1[B10.REALS 5.8 Original real RW gocd 03. 187/2009557. 57 connetion 1[B10STRING14 10 test Original3:182096 S: S7 connection 1[B10. TRING2E. 0 20081213 riginal string Rw gocd1820097 connection 1DB10X1200341/2057: 5/ connection 1DB10X12.False Original bool RY0318200从上面可以看到数据访问都是正常的4、采用自定义接口过程41同步读写建立同步读写项目: Sync_ RWvisual Studio installed templatesWet Control Libra y图 windows Service国Ept;测试中,对db10dbw0及db10dbw2读写操作,在Fom窗口做如下设计ControlButton Btn ConnConnButton Btn ReadButton Btn WriteButton: Btn DisConn dis ConnlA DT Service SupportPage 9-47SIEMENSTextBox: Txt R1 ValueTextBox: Txt_R1_ QualityTextBox: TXt_R1_Time StampTextBox:TxtR2∨alueTextBox: TXt_ R2_ QualityTextBox: TXt_R2 Time StampTextBox: Txt W1TextBox: Txt W2TextBox: Txt Write statusH sync rwdis ConnWrite第步,添加下面命名空间:(首先需要在项目中添加相应的引用)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组,并添加需要读写的temprivate void Btr Conn Click(object sender, Syst ell, EventArgs e)//定义变量lA DT Service SupportPage 10-47【实例截图】
【核心代码】

本文链接: http://opcla.immuno-online.com/view-686219.html

发布于 : 2021-03-24 阅读(0)
公司介绍
品牌分类
其他
联络我们
服务热线:4000-520-616
(限工作日9:00-18:00)
QQ :1570468124
手机:18915418616
官网:http://