logo资料库

C#中实现西门子通讯.pdf

第1页 / 共45页
第2页 / 共45页
第3页 / 共45页
第4页 / 共45页
第5页 / 共45页
第6页 / 共45页
第7页 / 共45页
第8页 / 共45页
资料共45页,剩余部分请下载后查看
1、概述
1.1 OPC介绍
1.2 OPC的读写方式
1.3 OPC访问接口方式
2、测试环境
2.1 硬件要求
2.2 软件要求
3、OPC Server端组态配置
4、采用自定义接口过程
4.1 同步读写
4.2 异步读写
5、采用自动化接口实现过程
6、OPCItem的数据类型
7、小结
8、代码
8.1 自动化接口
8.2 自定义接口同步读写
8.3 自定义接口异步读写
如何在 C#中实现 OPC 数据访问 How to accomplish data accessing through OPC by C# Getting-started Edition (2009 年 03 月) https://support.industry.siemens.com/cs/cn/zh/view/109481353
摘 要 本文主要讲述了在 C#语言环境下,编程实现通过 SimaticNet 提供的 OPC Server, 访问 PLC 中数据的步骤。此方法同样适用于 WinCC 作为 OPC Server 时的数据访问。 关键词 SimaticNet、C#、OPC、WinCC Key Words SimaticNet、C#、OPC、WinCC IA&DT Service & Support Page 2-45
如何在 C#中实现 OPC 数据访问 ............................................................................................... 1 1、概述 ............................................................................................................................... 4 1.1 OPC 介绍 .................................................................................................................. 4 1.2 OPC 的读写方式 ........................................................................................................ 5 1.3 OPC 访问接口方式 .................................................................................................... 6 2、测试环境 ........................................................................................................................ 7 2.1 硬件要求 .................................................................................................................... 7 2.2 软件要求 .................................................................................................................... 7 3、OPC Server 端组态配置 ................................................................................................ 7 4、采用自定义接口过程 ...................................................................................................... 9 4.1 同步读写 .................................................................................................................... 9 4.2 异步读写 .................................................................................................................. 12 5、采用自动化接口实现过程 ............................................................................................. 19 6、OPCItem 的数据类型 ................................................................................................... 23 7、小结 ............................................................................................................................. 23 8、代码 ............................................................................................................................. 23 8.1 自动化接口 .............................................................................................................. 23 8.2 自定义接口同步读写 ................................................................................................ 28 8.3 自定义接口异步读写 ................................................................................................ 34 IA&DT Service & Support Page 3-45
1、概述 1.1 OPC 介绍 OPC 是 Object Linking and Embedding(OLE)for Process Control 的缩写,它是微软 公司的对象链接和嵌入技术在过程控制方面的应用。OPC 以 OLE/COM/DCOM 技术为基 础,采用客户/服务器模式,为工业自动化软件面向对象的开发提供了统一的标准,这个标 准定义了应用 Microsoft 操作系统在基于 PC 的客户机之间交换自动化实时数据的方法,采 用这项标准后,硬件开发商将取代软件开发商为自己的硬件产品开发统一的 OPC 接口程 序,而软件开发者可免除开发驱动程序的工作,充分发挥自己的特长,把更多的精力投入 到其核心产品的开发上。 SimaticNet 是西门子全集成自动化系统中的一个重要组成部分,它为完善的工业自动化 控制系统的通讯提供部件和网络,同时提供多个 OPCServer,为数据的外部访问提供接 口,本文主要以 OPC.SimaticNET 为例说明。 图 1:SimatcicNet 提供的 OPCServer 采用不同的通信方式,通过 OPC.SimaticNET,现场数据可以方便地提供给用户: OPC Client …… OPC Client OPC.SimaticNET SNMP PNIO …… DP 图 2:多种数据提供方式 IA&DT Service & Support Page 4-45
1.2 OPC 的读写方式 在实际使用中,主要包括对现场数据的读写操作。 OPC 读数有三种方式:同步、异步、订阅。 同步通讯时,OPC 客户程序向 OPC 服务器进行请求时,OPC 客户程序必须等到 OPC 服务器对应的响应全部完成以后才能返回,在此期间 OPC 客户程序一直处于等待状态,若 进行读操作,那么必须等待 OPC 服务器响应后才返回。因此在同步通讯时,如果有大量数 据进行操作或者有很多 OPC 客户程序对 OPC 服务器进行读操作,必然造成 OPC 客户程序 的阻塞现象。因此同步通讯适用于 OPC 客户程序较少,数据量较小时的场合。 myGroup.SynchRead() client server Call Reply 图 3 OPC 同步读写服务器-客户端数据流图 异步通讯时,OPC 客户程序对服务器进行请求时,OPC 客户程序请求后立刻返回,不 用等待 OPC 服务器的响应,可以进行其它操作。OPC 服务器完成响应后再通知 OPC 客户 程序,如进行读操作,OPC 客户程序通知 OPC 服务器后离开返回,不等待 OPC 服务器的 读完成,而 OPC 服务器完成读后,会自动的通知 OPC 客户程序,把读结果传送给 OPC 客 户程序。因此相对于同步通讯,异步通讯的效率更高。 myGroup.AsyncRead( ) clien t serve r Cal Repl myGroup_AsyncReadComplete( 图 4 OPC 异步读服务器-客户端数据流图 IA&DT Service & Support Page 5-45
订阅方式时,OPC 客户程序对服务器进行请求时,OPC 客户程序操作后立刻返回,不 用等待 OPC 服务器的操作,可以进行其它操作, OPC 服务器的 Group 组在组内有数据发 生改变时,自动根据更新周期刷新相应的客户端数据,如下图,客户端只向 OPC 服务发送 一次请求,之后不再对服务器请求。 myGroup.IsSubscribed client server Subscribe myGroup_DataChange() myGroup_DataChange() Notify Notify 图 5 OPC 同步读服务器-客户端数据流图 OPC 写数有两种方式:同步、异步。区别与上面讲的机制一样,在生产应用中,如果写 数据参与控制,一般采用同步方式。 1.3 OPC 访问接口方式 OPC 主要包含两种接口:CUSTOM 标准接口和 OLE 自动化标准接口,自定义接口是 服务商必须提供的,而自动化接口则是可选的。 自定义接口是一组 COM 接口,主要用于采用 C++语言的应用程序开发; 自动化接口是一组 OLE 接口,主要用于采用 VB,DELPHI,Excel 等基于脚本编程语 言的应用程序开发。 图 6 自定义接口和自动化接口 IA&DT Service & Support Page 6-45
许多 OPC 服务器,包括 OPC.SimaticNet,是在 COM 平台开发的,从而对于基 于.NET 框架下的 C#语言,作为客户端程序语言访问 OPCServer,需要解决两个平台间无缝 迁移的问题。OPC 基金会对会员提供了 OpcRcw 动态链接库,OPC NET COM 包装器和 OPC NET API,将 OPC 复杂的规范封状成简单易用的 C#类 ,可以比较容易地实现数据访 问。 本文中通过实验,逐步讲解了通过 C#编写客户端程序,访问 OPC.SimaticNet,对 PLC 数据进行读写的实现过程。自定义接口及自动化接口都进行了测试,但基于 C#的语言 特性,建议采用自定义接口访问,同时有很多 OPCServer 服务商,对外是不提供自动化接 口的,西门子的 SimaticNet 及 WinCC 的 OPCServer 都提供自动化接口。 2、测试环境 2.1 硬件要求 采用 400 系列 PLC,通过以太网连接到安装有 simaticNet 的计算机上。 computer:windows 2003 server--------192.168.0.102 CPU:CPU414-3PN ------416-3FR05-0AB0--------192.168.0.1 2.2 软件要求 computer: ü Simatic.net 2007 ü Visual studio 2005 ü Step7 V5.4 SP4 3、OPC Server 端组态配置 IA&DT Service & Support Page 7-45
在 CPU 中定义 DB 块:DB10 配置 PC Station,参考 其它文档。 如上图建立连接 S7_connection_1,然后在 OPC Scout 测试连接的正确性。 IA&DT Service & Support Page 8-45
分享到:
收藏