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

时间:2023-03-17作者:佚名

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 标准 XML、SOAP 和 HTTP。
> COM
COM 是位于同一计算机上且属于不同程序的对象之间进行通讯时采用的标准协议。服务端是提供服务的对象,比如提供数据。客户端是使用由服务端提供的服务的应用程序。
> DCOM
DCOM 代表 COM 功能的扩展,从而允许对远程计算机上的对象的访问。
该接口允许在企业、管理办公室和生产的应用程序之间进行标准化的数据交换。以前,访问过程数据的应用程序受限于通讯网络的访问协议。使用 OPC 标准软件接口,各个生产商的设备和应用程序就能以一致的方式连接起来。
OPC 客户端是访问过程数据、消息和 OPC 服务端归档历史数据的应用程序。访问需要通过 OPC 软件接口。
OPC 服务端是一个程序,它为不同制造商的应用程序提供一个标准的软件接口。OPC 服务端是在处理过程数据的应用程序、各种网络协议和用于访问这些数据的接口之间的中间层。
只有当设备的操作系统是基于 Windows COM 和 DCOM 技术时,才能使用 OPC 软件接口进行数据交换。 目前,Windows 2000、Windows XP、Windows 2003 Server 和 Windows VISTA 具有这些软件接口。
> 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
OPC XML 数据访问 1.01
OPC 数据访问 (OPC DA) 是针对管理过程数据的规范。 WinCC OPC DA 服务端符合 OPC DA 规范 1.0、2.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 HDA、WinCC-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。
在Microsoft Excel 中用VBA脚本语言建立OPC 客户端,并通过OPC接口读取WinCC中的数据,并将修改的数据写入WinCC。通过OPC接口,Microsoft Excel作为OPC 客户端发起通讯并发送读/写请求到OPC服务器,OPC服务器执行这些读/写请求。对于WinCC OPC DA 服务器功能,需要将WinCC项目运行系统激活即可。
为了能够运行Excel中的VBA宏脚本,首先需要调整安全性设置。如图1在“工具->宏->安全性”中,将Excel的安全级别设置为“中”。

如何使用Excel通过OPC访问WinCC的实时数据
图1 安全性设置

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

如何使用Excel通过OPC访问WinCC的实时数据
图2启用宏

在A1单元格输入运行WinCC的计算机名称。A3/A4单元格输入WinCC中变量的名称。点击按钮“启动 WinCC OPC”,对应WinCC变量的当前值即可读入到Excel单元格中。直接在B3/B4单元格中修改数值,对应WinCC中的变量值也会随之修改。点击按钮“停止 WinCC OPC”,停止Excel与WinCC的OPC数据访问。
以下为Microsoft Excel 作为客户端的配置说明。
在Excel中创建一个接口,在VisualBasic 编辑器中的“工具->引用”中,选中“Siemens OPC DA Automation 2.0”组件,使VisualBasic能够识别OPC对象。

如何使用Excel通过OPC访问WinCC的实时数据
图3 OPC引用组件

创建所需的所有对象,如:“MyOPCGroup”对象
Dim: 创建一个变量
WithEvents: 这个对象可以提供事件(如 DataChange)
MyOPCGroup: 对象名
As OPCGroup: 变量类型

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

图4

Sub StartClient() ’Microsoft Excel建立与OPC服务器的连接;
Set MyOPCServer = New OpcServer ’为“MyOPCServer”对象分配内存;
 MyOPCServer.Connect ServerName, NodeName
ServerName :WinCC OPC DA 服务器的名称为 "OPCServer.WinCC"
NodeName:激活WinCC运行系统的计算机名称
Set MyOPCGroupColl = MyOPCServer.OPCGroups
Microsoft Excel与OPC服务器的连接一旦建立,OPC组即被创建。这个通过集合对象来实现;
Set MyOPCGroup = MyOPCGroupColl.Add(GroupName)
创建的组通过“MyOPCGroup”变量来寻址。设置MyOPCGroup.IsSubscribed = True,以便OPC组能够提供DataChange等事件。
Set MyOPCItemColl = MyOPCGroup.OPCItems ’创建OPC项
MyOPCItemColl.AddItems 2, ItemIDs, ClientHandles, ServerHandles, Errors
ItemIDs 存储在单元格A3/A4中,把指定的ItemIDs 传送给集合对象"MyOPCItemColl.AddItems"
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中输入一个值,通过函数MyOPCGroup.SyncWrite将OPC项写入到WinCC,写入值和服务器句柄以参数形式传递给此函数。
Sub StopClient()
最后,断开与OPC服务器的连接。
3 在Excel中通过OPC DA远程访问WinCC
可以通过DCOM从OPC客户端远程访问OPC服务器WinCC OPC DA。但在A1单元格需要输入的是远程激活WinCC运行系统的计算机名称。

如何使用Excel通过OPC访问WinCC的实时数据
图5在Excel中通过OPC DA远程访问WinCC

由于远程OPC的使用是作为一个DCOM在使用,所以OPC客户端可以在网络上任何一台计算机运行,但是必须要配置DCOM的访问权限。一个简单的方法就是,在服务器与客户端都使用相同的用户名与密码登录。如果想配置DCOM,请参考DCOM配置的相关资料及下载中心文档:A0265 如何配置OPC DCOM。
WinCC在安装时提供了OPC的客户端控件: Siemens OPC DAAutomation 2.0( SOPCDAAuto.dll),这个控件就是在VBA中引用到的控件。如果运行Excel的计算机上没有安装WinCC,可以使用批处理文件注册dll文件。将整个文件夹 Reg拷贝到C:盘下,双击reg opc即可。

相关阅读

电工“三把斧”?有时不过是瞎折腾

在这个充满电器设备的现代世界里,电工们常常被视为“神奇的救星”,他们手中据说有着“三把斧头”——断电、重启、换件。然而,有时候这所谓的&l...
2024-09-20
电工“三把斧”?有时不过是瞎折腾

一种陶瓷贴片电容失效率以及寿命的评估方法

1. 陶瓷电容发展现状与趋势 陶瓷电容自诞生以来,就朝着小尺寸、大容量的趋势发展。近年来,0201和0402封装已成为行业主流,这两种封装的需求量已超过总需求的70%;01005、008004等更...
2023-03-31

如何将220V交流电变成12V直流电

不用变压器,如果功率要求不高,比如几十毫安那种,利用一些阻容和稳压二极管之类的器件就可以实现降压变成12伏左右了,当然都要先整流了,然后再滤波降压,这种场合一般用来...
2023-10-20
如何将220V交流电变成12V直流电

基于LM317的15A可调电源电路图

该可调电源电路提供可在 1.5 至 15 伏之间调节的输出电压源,并提供 15 安培的电流。 如接线图所示,15 A 可调电源通过四个功率晶体管的并行工作提供相似的电流量,这些功率晶体管必...
2023-08-16
基于LM317的15A可调电源电路图

电能表电表型号 标识含义 接入方式 规格尺寸 电表电费识读与计算 单相表 三相表直接或经互感器接线图

认识电子电能表 智能电子式电能表样式,示例如下: 上图是住宅居民家庭常用的单相电表,图示中重要参数的解析如下: 智能电表有一个液晶屏,会显示总有电量和剩余电量等数据;显示屏上...
2024-08-21
电能表电表型号 标识含义 接入方式 规格尺寸 电表电费识读与计算 单相表 三相表直接或经互感器接线图

热销商品

手术衣一次性防护服打农药防尘实验服参观服加厚透气无纺布隔离衣

手术衣一次性防护服,作为一种重要的医疗防护用品,广泛应用于医院、实验室等场所。它采用加厚透气无纺布制成,具有优良的防尘、防污、防病毒能力,能有效保护医护人员免...
14

欧普照明led灯泡e27/e14大小螺口超亮家用节能灯螺旋暖白光球泡

欧普照明LED灯泡,适用于E27和E14两种常见螺口,是您家用照明的理想选择。这款灯泡采用先进LED技术,亮度超群,瞬间点亮,无需等待,为您提供明亮舒适的光环境。同时,它节能环...
3.59

LED柜内照明灯 AC220V 4W 7W配电箱导轨式 LL10-W 高压柜内照明灯

LED柜内照明灯AC220V 4W/7W配电箱导轨式LL10-W是一款专为高压柜、配电箱等封闭电气设备设计的紧凑型照明产品。采用高效LED光源,功耗低(4W/7W可选),亮度高,寿命长,节能...
7

密封胶条包邮耐磨耐高温耐腐蚀圆柱棒丁晴/氟胶实心硅胶胶条红色

本品采用优质丁腈橡胶(NBR)或氟橡胶(FKM)及实心硅胶材质制成,呈红色圆柱棒状,具备卓越的耐磨、耐高温(-40℃至+200℃以上,氟胶可达250℃)、耐腐蚀性能,适用于酸、碱、油类等...
1

小木锤木锤子实木木榔头圆头木锤实木棰木头锤子木柄锤黄檀手工锤

小木锤采用优质黄檀木精心打造,通体实木结构,质地坚硬、纹理细腻,手感温润舒适。圆头设计兼顾敲击与整形功能,适用于木工、雕刻、家具组装及日常维修等场景。木柄经精...
3.4

网站栏目