2023年11月30日发(作者:)

OPC(OLE for process control)作为标准软件接口,可以使各个生产商的设备和应用程序就能以

统一的方式连接起来。WinCC 既可以用作 OPC 服务器提供数据,又可以作为 OPC 客户机访

问其他OPC 服务器中的数据。WinCC集成的OPC服务器使得过程数据可由其它应用程序(OPC

客户机)访问。在Excel中可以通过VBA脚本建立OPC 客户端,并通过OPC接口读取WinCC

中的数据,并将修改的数据写入WinCC

1 OPC规范及功能

OPC是一种一致的独立于制造商的软件接口。OPC 接口基于 Microsoft Windows COM(组

件对象模型)和 DCOM(分布式组件对象模型)技术。 另一方面,OPC XML 则基于 Internet

标准 XMLSOAP HTTP

> COM

COM 是位于同一计算机上且属于不同程序的对象之间进行通讯时采用的标准协议。服务端是提

供服务的对象,比如提供数据。客户端是使用由服务端提供的服务的应用程序。

> DCOM

DCOM 代表 COM 功能的扩展,从而允许对远程计算机上的对象的访问。

该接口允许在企业、管理办公室和生产的应用程序之间进行标准化的数据交换。以前,访问过程

数据的应用程序受限于通讯网络的访问协议。使用 OPC 标准软件接口,各个生产商的设备和

应用程序就能以一致的方式连接起来。

OPC 客户端是访问过程数据、消息和 OPC 服务端归档历史数据的应用程序。访问需要通过

OPC 软件接口。

OPC 服务端是一个程序,它为不同制造商的应用程序提供一个标准的软件接口。OPC 服务端

是在处理过程数据的应用程序、各种网络协议和用于访问这些数据的接口之间的中间层。

只有当设备的操作系统是基于 Windows COM DCOM 技术时,才能使用 OPC 软件接口进

行数据交换。 目前,Windows 2000Windows XPWindows 2003 Server Windows VISTA

具有这些软件接口。

> XML

通过 DCOM 的通讯仅限于局域网。通过 XML 的数据交换使用 SOAP(简单对象访问协议)

SOAP 是独立于平台的、基于 XML 的协议。SOAP 可用于允许应用程序依靠 HTTP(超文本

传送协议),通过 Internet 或在多机种计算机网络内相互进行通讯。

OPC 标准软件接口由 OPC 基金会定义。OPC 基金会是工业自动化领域中处于领先地位的各

公司的联盟。WinCC OPC 服务端支持下列规范。

OPC 数据访问 1.02.05a 3.0

OPC 历史数据访问 1.20

OPC 报警和事件 1.10

OPC XML 数据访问 1.01

OPC 数据访问 (OPC DA) 是针对管理过程数据的规范。 WinCC OPC DA 服务端符合 OPC

DA 规范 1.02.05a 3.0

OPC 历史数据访问 (OPC HDA) 是针对管理归档数据的规范。该规范是 OPC 数据访问规范

的扩充。 WinCC V6.2 或更高版本的 WinCC OPC HDA 服务端符合 OPC HDA 规范 1.20

OPC 报警和事件是发送过程报警和事件的补充规范。 WinCC V6.0 或更高版本的 WinCC

OPC A&E 服务端符合 OPC A&E 规范 1.10

OPC XML 标准支持通过 Internet 采用独立于平台的协议进行通讯。 客户端不再局限于

Windows 环境 (DCOM) 其它操作系统(如 LINUX)可以使用 HTTP 协议和 SOAP 接口

Internet 上监视和交换 OPC 数据。

要使用 WinCC OPC HDAWinCC-OPC-XML-DA 服务器和 WinCC OPC A&E 服务器,必须

购买Connectivity Pack“连通性软件包授权。 连通性软件包授权必须安装在用作 WinCC

OPC HDA 服务器、WinCC OPC XML DA 服务器或 WinCC OPC A&E 服务器的 WinCC

务器上。

2 Excel中通过OPC DA访问本地WinCC

WinCC OPC DA 服务器为其它应用程序提供 WinCC 项目的实时数据。 应用程序能够在同一

台计算机上运行或在已联网的远程计算机上运行。 以这种方法,将WinCC 变量的实时数据提

供给 Microsoft Excel

附件程序excel_opc .xls ( 44 KB ) Microsoft Excel 中用VBA脚本语言建立OPC 客户端,

并通过OPC接口读取WinCC中的数据,并将修改的数据写入WinCC通过OPC接口,Microsoft

Excel作为OPC 客户端发起通讯并发送读/写请求到OPC服务器,OPC服务器执行这些读/

请求。对于WinCC OPC DA 服务器功能,需要将WinCC项目运行系统激活即可。

为了能够运行Excel中的VBA宏脚本,首先需要调整安全性设置。如图1工具->->安全性

中,将Excel的安全级别设置为

1 安全性设置

打开文件excel_opc .xls,在安全警告中选择启用宏

2启用宏

A1单元格输入运行WinCC的计算机名称。A3/A4单元格输入WinCC中变量的名称。点击

按钮启动 WinCC OPC”对应WinCC变量的当前值即可读入到Excel单元格中。直接在B3/B4

单元格中修改数值,对应WinCC中的变量值也会随之修改。点击按钮停止 WinCC OPC”,停

ExcelWinCCOPC数据访问。

以下为Microsoft Excel 作为客户端的配置说明。

Excel中创建一个接口,在VisualBasic 编辑器中的工具->引用中,选中“Siemens OPC DA

Automation 2.0”组件,使VisualBasic能够识别OPC对象。

3 OPC引用组件

创建所需的所有对象,如:“MyOPCGroup”对象

Dim: 创建一个变量

WithEvents: 这个对象可以提供事件(如 DataChange)

MyOPCGroup: 对象名

As OPCGroup: 变量类型

4

Sub StartClient() ’Microsoft Excel建立与OPC服务器的连接;

Set MyOPCServer = New OpcServer ’“MyOPCServer”对象分配内存;

t ServerName, NodeName

ServerName WinCC OPC DA 服务器的名称为 ""

NodeName:激活WinCC运行系统的计算机名称

Set MyOPCGroupColl = ups

Microsoft ExcelOPC服务器的连接一旦建立,OPC组即被创建。这个通过集合对象来实现;

Set MyOPCGroup = (GroupName)

创建的组通过“MyOPCGroup”变量来寻址。设置cribed = True以便OPC

组能够提供DataChange等事件。

Set MyOPCItemColl = ms ’创建OPC

ms 2, ItemIDs, ClientHandles, ServerHandles, Errors

ItemIDs 存储在单元格A3/A4中,把指定的ItemIDs 传送给集合对象

"ms"

Private Sub MyOPCGroup_DataChange()

Microsoft Excel中,调用如下用于OPC组事件处理的程序,它是OPC服务器的DataChange

事件,DataChange()这个事件处理程序提供了许多参数,如ItemValue(OPC项的值),客户端

句柄等。通过DataChange事件,当OPC项的值变化时,数据会自动发送。OPC项的当前值

显示在单元格B3/B4中。读出值的质量代码和时间戳显示在C/D列单元格中。

Private Sub worksheet_change()

如果在Microsoft Excel的单元格B3/B4中输入一个值,通过函数ite

OPC项写入到WinCC,写入值和服务器句柄以参数形式传递给此函数。

Sub StopClient()

最后,断开与OPC服务器的连接。

3 Excel中通过OPC DA远程访问WinCC

可以通过DCOMOPC客户端远程访问OPC服务器WinCC OPC DA。但在A1单元格需要

输入的是远程激活WinCC运行系统的计算机名称。

5Excel中通过OPC DA远程访问WinCC

由于远程OPC的使用是作为一个DCOM在使用,所以OPC客户端可以在网络上任何一台计算

机运行,但是必须要配置DCOM的访问权限。一个简单的方法就是,在服务器与客户端都使用

相同的用户名与密码登录。如果想配置DCOM请参考DCOM配置的相关资料及下载中心文档:

A0265 如何配置OPC DCOM

/download/?searchText= A0265

WinCC在安装时提供了OPC的客户端控件: Siemens OPC DAAutomation

2.0( ),这个控件就是在VBA中引用到的控件。如果运行Excel的计算机上没

有安装WinCC,可以使用批处理文件reg opc ( 147 KB ) 注册dll文件。将整个文件夹 Reg

贝到C:盘下,双击reg opc即可。

关键词

趋势曲线、函数趋势控件、XY轴、C脚本、VBS脚本