当前位置:首页 > 机械智慧 > 正文

如何使用Excel通过OPC访问WinCC的实时数据空白模板

WinCC集成的OPC服务器使得过程数据可由其它应用程序(OPC客户机)访问。在Excel中可以通过VBA脚本建立OPC客户端,并通过OPC接口读取WinCC中的数据,并将修改的数据写入WinCC。1.OPC规范及功能OPC是一种一致的独立于制造商的软件接口。OPC接口基于MicrosoftWind...

WinCC集成的OPC服务器使得过程数据可由其它应用程序(OPC客户机)访问。在Excel中可以通过VBA脚本建立OPC客户端,并通过OPC接口读取WinCC中的数据,并将修改的数据写入WinCC。1......

WinCC集成的OPC服务器使得过程数据可由其它应用程序(OPC客户机)访问。在Excel中可以通过VBA脚本建立OPC客户端,并通过OPC接口读取WinCC中的数据,并将修改的数据写入WinCC。

1.OPC规范及功能

OPC是一种一致的独立于制造商的软件接口。OPC接口基于MicrosoftWindows的COM(组件对象模型)和DCOM(分布式组件对象模型)技术。另一方面,OPCXML则基于Internet标准XML、SOAP和HTTP。

COM

COM是位于同一计算机上且属于不同程序的对象之间进行通讯时采用的标准协议。服务端是提供服务的对象,比如提供数据。客户端是使用由服务端提供的服务的应用程序。

DCOM

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

该接口允许在企业、管理办公室和生产的应用程序之间进行标准化的数据交换。以前,访问过程数据的应用程序受限于通讯网络的访问协议。使用OPC标准软件接口,各个生产商的设备和应用程序就能以一致的方式连接起来。

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

OPC服务端是一个程序,它为不同制造商的应用程序提供一个标准的软件接口。OPC服务端是在处理过程数据的应用程序、各种网络协议和用于访问这些数据的接口之间的中间层。

只有当设备的操作系统是基于WindowsCOM和DCOM技术时,才能使用OPC软件接口进行数据交换。目前,Windows2000、WindowsXP、Windows2003Server和WindowsVISTA具有这些软件接口。

XML

通过DCOM的通讯仅限于局域网。通过XML的数据交换使用SOAP(简单对象访问协议)。SOAP是独立于平台的、基于XML的协议。SOAP可用于允许应用程序依靠HTTP(超文本传送协议),通过Internet或在多机种计算机网络内相互进行通讯。

OPC标准软件接口由OPC基金会定义。OPC基金会是工业自动化领域中处于领先地位的各公司的联盟。WinCC的OPC服务端支持下列规范。

OPC数据访问1.0、2.05a和3.0

OPC历史数据访问1.20

OPC报警和事件1.10

OPCXML数据访问1.01

OPC数据访问(OPCDA)是针对管理过程数据的规范。WinCCOPCDA服务端符合OPCDA规范1.0、2.05a和3.0。

OPC历史数据访问(OPCHDA)是针对管理归档数据的规范。该规范是OPC数据访问规范的扩充。或更高版本的WinCCOPCHDA服务端符合OPCHDA规范1.20。

OPC报警和事件是发送过程报警和事件的补充规范。或更高版本的WinCCOPCAE服务端符合OPCAE规范1.10。

OPCXML标准支持通过Internet采用独立于平台的协议进行通讯。客户端不再局限于Windows环境(DCOM)。其它操作系统(如LINUX)可以使用HTTP协议和SOAP接口在Internet上监视和交换OPC数据。

要使用WinCCOPCHDA、WinCC-OPC-XML-DA服务器和WinCCOPCAE服务器,必须购买ConnectivityPack“连通性软件包”授权。“连通性软件包”授权必须安装在用作WinCCOPCHDA服务器、WinCCOPCXMLDA服务器或WinCCOPCAE服务器的WinCC服务器上。

2.在Excel中通过OPCDA访问本地WinCC

WinCCOPCDA服务器为其它应用程序提供WinCC项目的实时数据。应用程序能够在同一台计算机上运行或在已联网的远程计算机上运行。以这种方法,将WinCC变量的实时数据提供给MicrosoftExcel。

附件程序excel_(44KB)在MicrosoftExcel中用VBA脚本语言建立OPC客户端,并通过OPC接口读取WinCC中的数据,并将修改的数据写入WinCC。通过OPC接口,MicrosoftExcel作为OPC客户端发起通讯并发送读/写请求到OPC服务器,OPC服务器执行这些读/写请求。对于WinCCOPCDA服务器功能,需要将WinCC项目运行系统激活即可。

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


图1安全性设置

打开文件excel_,在“安全警告”中选择“启用宏”。


图2启用宏

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

在Excel中创建一个接口,在VisualBasic编辑器中的“工具-引用”中,选中“”组件,使VisualBasic能够识别OPC对象。


图3OPC引用组件

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

Dim:创建一个变量

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

MyOPCGroup:对象名

AsOPCGroup:变量类型


SubStartClient()’MicrosoftExcel建立与OPC服务器的连接;

SetMyOPCServer=NewOpcServer’为“MyOPCServer”对象分配内存;

,NodeName

ServerName:WinCCOPCDA服务器的名称为""

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

SetMyOPCGroupColl=

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

SetMyOPCGroup=(GroupName)

创建的组通过“MyOPCGroup”变量来寻址。设置=True,以便OPC组能够提供DataChange等事件。

SetMyOPCItemColl=’创建OPC项

,ItemIDs,ClientHandles,ServerHandles,Errors

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

PrivateSubMyOPCGroup_DataChange()

在MicrosoftExcel中,调用如下用于OPC组事件处理的程序,它是OPC服务器的DataChange事件,DataChange()这个事件处理程序提供了许多参数,如ItemValue(OPC项的值),客户端句柄等。通过DataChange事件,当OPC项的值变化时,数据会自动发送。OPC项的当前值显示在单元格B3/B4中。读出值的质量代码和时间戳显示在C/D列单元格中。

PrivateSubworksheet_change()

如果在MicrosoftExcel的单元格B3/B4中输入一个值,通过函数将OPC项写入到WinCC,写入值和服务器句柄以参数形式传递给此函数。

SubStopClient()

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

3.在Excel中通过OPCDA远程访问WinCC

可以通过DCOM从OPC客户端远程访问OPC服务器WinCCOPCDA。但在A1单元格需要输入的是远程激活WinCC运行系统的计算机名称。


图5在Excel中通过OPCDA远程访问WinCC

由于远程OPC的使用是作为一个DCOM在使用,所以OPC客户端可以在网络上任何一台计算机运行,但是必须要配置DCOM的访问权限。一个简单的方法就是,在服务器与客户端都使用相同的用户名与密码登录。如果想配置DCOM,请参考DCOM配置的相关资料及下载中心文档:A0265如何配置OPCDCOM。

WinCC在安装时提供了OPC的客户端控件:(),这个控件就是在VBA中引用到的控件。如果运行Excel的计算机上没有安装WinCC,可以使用批处理文件regopc(147KB)注册dll文件。将整个文件夹Reg拷贝到C:盘下,双击regopc即可。

最新文章