中国科技论文在线
http://www.paper.edu.cn
基于 OPC 技术的 PC 与 S7-300PLC 的实时通
信#
权国通,周斌*
(中国矿业大学机电工程学院,江苏 徐州 221008)
摘要:本文主要介绍了 OPC 技术,分析了 OPC 对象的结构,以采煤机远程控制系统为例,采
用西门子 OPC 自定义接口,使用 c#语言编写客户端通信程序,实现 PC 机与 S7-300PLC 之间
的数据通信。实验结果表明,采用 OPC 技术能够快速,稳定的获得 S7-300PLC 的实时数据。
关键词:OPC 技术;数据访问;PC
中图分类号:TP393 文献标识码:A
Real-time Communication between PC and S7-300PLC
Based on OPC Technology
Quan Guotong, Zhou Bin
(College of Mechanical and Electronic Engineering of CUMT,JiangSu XuZhou 221008)
Abstract: This paper introduces OPC technology, analyzes the structure of the OPC object. Take
Shearer remote control system as a example, using Siemens OPC custom interface, use the c# language
client communications programs to achieve real-time communication between PC and S7-300PLC.
Experiment results show that it is fast and stable to access real-time S7-300PLC data using OPC
technology.
Keywords:OPC technology;Data Access;PC
0 引言
西门子 S7-300/400 PLC 通信接口只有多点接口 MPI 和分布式外设接口 DP,分别使用
MPI 协议和 Profibus 协议。但是这两种协议都不公开, 使得该系列 PLC 与 PC 机通信实现
变得困难[1]。因此采煤机远程监控系统中,如何采集数量和种类不断增多的现场信息以及解
决通信兼容是其关键技术之一。由于不同的厂商提供的协议不同,甚至同一厂商的不同类型
设备和计算机通信的协议也不相同[2]。在计算机系统中,不同的编程语言对驱动程序的接口
有不同的要求,所以每一个客户的应用程序在从数据源读取数据时,由于软件或硬件的不一
致性,对于不同的设备都要开发不同的驱动程序,这就导致了软件开发商的大量重复性劳动
[3],并且由于可能存在多个应用程序同时访问同一设备带来访问冲突,导致系统崩溃。OPC
技术的出现,很好的解决这一问题。
1 OPC 技术
OPC 建立在 OLE 规范之上,它为工业控制领域提供了一种标准的数据访问机制。OPC
规范包括 OPC 服务器和 OPC 客户端两个部分,其实质是在硬件供应商和软件开发商之间建
立了一套完整的“规则”,只要遵循这套规则,数据交互对两者来说都是透明的,硬件供应
商无需考虑应用程序的多种需求和传输协议,软件开发商也无需了解硬件的实质和操作过
程。
基金项目:国家“863”高技术计划重点资助项目:(2008AA062202)
作者简介:权国通(1987-),男,在校硕士研究生,机械设计及理论. E-mail: qgt555@163.com
- 1 -
中国科技论文在线
1.1 OPC 规范
http://www.paper.edu.cn
OPC 规范主要包括:DA (Data Access) 规范、AE(Alarm and Event) 规范、HAD (History
data access) 规范、Batch 规范、Security 规范以及 XML - DA 规范等。目前应用最为广泛
的是 OPCDA 规范,该规范提供了服务器和客户端之间实时数据的存取方法[4]。
1.2 OPC 主要包含两种接口
OPC 主要包含两种接口:CUSTOM 标准接口和 OLE 自动化标准接口。自定义接口是一
组 COM 接口,主要采用 C++语言的应用程序开发。自动化接口是一组 OLE 接口,主要采
用 VB, DELPHI, Excel 等基于脚本编程语言的应用程序开发[5,6]。本采用 c#语言进行开发。
1.3 OPC 数据访问方式
OPC 客户端与OPC 服务器交互包括两个方面:一个是客户端程序从服务器读取数据;一
个是客户端向服务器写入数据. 客户端程序读取数据有四种基本方法:同步读、异步读、订阅
和刷新;客户端向服务器写数据有两种方式:同步写和异步写. 也就是说,OPC 服务器与 OPC
客户端的交互存在 4 种方式:同步、异步、订阅和刷新[2]。
同步通讯时,OPC 客户端向 OPC 服务器进行请求时,OPC 客户端必须等到 OPC 服务
器对应的响应全部完成以后才能返回,在此期间 OPC 客户端一直处于等待状态,若进行读
操作,那么必须等待 OPC 服务器响应后才返回。因此在同步通讯时,如果有大量数据进行
操作或者有很多 OPC 客户端对 OPC 服务器进行读操作,必然造成 OPC 客户端的阻塞现象。
因此同步通讯适用于 OPC 客户端较少,数据量较小时的场合。如图 1 所示:
图 1 同步通讯示意图
Fig1 Synchronous Communication Schematic Diagram
异步通讯时,OPC 客户端向 OPC 服务器进行请求时,OPC 客户端程序请求后立刻返回,
不用等待 OPC 服务器的响应,可以进行其他操作。OPC 服务器完成响应后再通知 OPC 客
户端程序。若进行读操作, OPC 客户端程序通知 OPC 服务器后立刻返回,不等待 OPC 服
务器的读完成,而 OPC 服务器读完成后,会自动通知 OPC 客户程序,把读结果传给 OPC
客户程序。因此相对于同步通讯,异步通讯的效率更高。如图 2 所示:
- 2 -
图 2 异步通讯示意图
Fig2 Asynchronous Communication Schematic Diagram
订阅方式时,OPC 客户端程序对服务器进行请求时,OPC 客户端程序操作后立刻返回,
中国科技论文在线
http://www.paper.edu.cn
不用等待 OPC 服务器的操作,可以进行其他操作,OPC 服务器的 Group 组在组内的有数据
发生改变时,自动根据更新周期刷新相应的客户端数据。客户端向 OPC 服务器发送一次请
求,之后不再对服务器请求。
图 3 订阅方式示意图
Fig3 Subscription Schematic Diagram
刷新方式时订阅的一种特殊情况,刷新时强制调用所有处于活动状态的项,他的处理过
程与订阅相似。
2 PC 与 PLC 的通信设计
采煤机远程监控系统如图 4 示:
图 4 采煤机制系统图
Fig4 Shearer Remote Control System Diagram
在采煤机远程控制系统中,PC 机通过 OPC 与 S7-300PLC 进行通信, 利用传感器对采
煤机的位置,液压缸位移等信息进行采集,然后将采集到的数据通过 OPC 提供给 PC 机,
由现场操作人员针对 PLC 传上来的数据进行实时处理,从而实现对采煤机的远程监控。此
监控系统可实现数据实时监测,历史归档,图表显示及报警等多项功能。
本文通过 C#编写客户端程序,对 PLC 上的数据进行读写,但基于 C#语言的特性,本
文采用自定义接口访问。其流程图如图 5 所示。
- 3 -
中国科技论文在线
http://www.paper.edu.cn
图5 服务器流程图
Fig.2 Server Flow Chart
部分代码实现
(1)引用连接库
using OpcRcw.Comn;
using OpcRcw.Da;
(2)创建 OPC 相关对象:
OpcRcw.Da.IOPCServer S7ServerObj;
(3)建立与 OPC 服务器的连接
S7OpcServer.Connect("OPC 服务器名", "ip 地址");
(4)创建 OPC 组
S7OpcGroup = S7OpcServer.OPCGroups.Add("所要添加组的名称");
(5)添加 OPC 数据项
S7OpcItem1 = S7OpcGroup.OPCItems.AddItem("所要读取 PLC 的地址", 1);
(6)OPC 的数据项读写
读取到目标地址 = ItemValues.GetValue(1).ToString();
(7)断开 OPC 连接
S7OpcServer.Disconnect();
3 结论
本文以采煤机远程控制为例,对 OPC 技术及其使用进行了介绍,对 OPC 数据访问方式
进行了详细的说明,同时也详细介绍了在 c#环境下对 OPC 的数据访问,实验结果说明,具
有很高的实时性和可靠性及稳定性。相信 OPC 技术在工控通信方面会发挥越来越大的作用。
[参考文献] (References)
[1] 张俊彪, 王鸿辉, 何长安. 基于 OPC Server 的 PC 与 S7 - 300 / 400 的通信[J]. 电力自动化设备: 2007.04
[2] 周新民,徐铮. 基于 OPC 技术的PC 与 S7200 PLC 的实时通信[J]. 武汉理工大学学报(交通科学与工程版):
2008.04
[3] 张志, 杜亚江, 朱德桥. 基于 OPC 技术的上位监控机与 PLC 的通信程序设计[J]. 兰州交通大学学报:
2009.6
- 4 -
中国科技论文在线
http://www.paper.edu.cn
[4] 金蓉, 卢建军, 王晓路. 煤矿远程监控系统中 OPC 客户端的设计与实现[J]. 煤炭学报: 2010.01
[5] 刘莉. 用 VB 编写 OPC 客户端程序的方法[J]. 工业控制计算机: 2005.05
[6] 凌志浩,陈伟彬,马欣等. 基于 OPC 数据存取规范的服务器研究与实现[J]. 东理工大学学报: 2004.06
- 5 -