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。

附件程序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”,停止Excel与WinCC的OPC数据访问。

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

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

图3 OPC引用组件

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

Dim: 创建一个变量

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

MyOPCGroup: 对象名

As OPCGroup: 变量类型

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运行系统的计算机名称。

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

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

http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText= A0265

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

opc 多点位一次性读_如何使用Excel通过OPC访问WinCC的实时数据相关推荐

  1. meteor构建app程序_在Meteor.js中构建Slack克隆:实时数据

    meteor构建app程序 This is the second of a five-part series on building a Slack clone using Meteor. The a ...

  2. aws数据库同步区别_了解如何通过使用AWS AppSync构建具有实时数据同步的应用程序

    aws数据库同步区别 AWS AppSync automatically updates the data in web and mobile applications in real time, a ...

  3. 怎么把好几行弄成一行_怎么把excel表格里多行变成一行数据|excel表格中让多行内容变成为一行...

    excel怎么把多行数据变成一行 F1=INDEX($A$1:$E$21,ROUNDUP(COLUMN()/5,0),COLUMN()-5*(ROUNDUP(COLUMN()/5,0)-1))向后拉 ...

  4. python做地图导航_(源代码)用Python制作疫情的实时数据地图(PS:全国以及每个省)...

    Welcome to巧乐希 Jion us!学习Python! 小溪流 终将汇成大海 作者:小溪流(爱好科技教育的工程师.) 像孩子一样学习Python. 疫情的每日数据变化牵动着千万人的心,我多么希 ...

  5. php英文怎么读,100的英文怎么读_单词及读音

    100的英文怎么读_单词及读音 最开始学数字的英文单词时,你是否也是从1到100这个范围开始学起呢?以下是小编给大家带来100的英文读音,以供参阅. 100的英文读音 hundred英 [ˈhʌndr ...

  6. mysql 中的脏读与幻读_一文带你理解脏读,幻读,不可重复读与mysql的锁,事务隔离机制...

    首先说一下数据库事务的四大特性 1 ACID 事务的四大特性是ACID(不是"酸"....) (1) A:原子性(Atomicity) 原子性指的是事务要么完全执行,要么完全不执行 ...

  7. opcua客户端实现断线重连_虹科教您|实现OPC UA C/S快速部署及数据采集

    想获取更多IIOT干货 请点击蓝字,关注我们 虹科HMI解决方案 高性能 高防护 宽温 ★★★★★ 简介 边缘HMI需要实现的主要功能包括连接到该边缘HMI的边缘设备的数据采集,实现边缘计算.提供人机 ...

  8. 合作式智能运输系统 车用通信系统应用层及应用数据交互标准 第二阶段_为什么一定要了解OPC UA TSN——未来的工业通信标准...

    ↑ 点击上方 "智能制造之家" 关注我们 写在面前 前面我们介绍了很多OPC UA的相关知识: OPC UA-面向未来的工业通讯规范 OPC UA服务器和客户端的安全机制你明白吗? ...

  9. 语言认知偏差_我们的认知偏差正在破坏患者的结果数据

    语言认知偏差 How do we know if we are providing high-quality care? The answer to this question is sought b ...

最新文章

  1. Docker核心技术之仓库
  2. Linux:命令执行控制与||
  3. 【Linux】一步一步学Linux——df命令(79)
  4. 阿帕奇跨域_阿帕奇齿轮泵
  5. 第七十期:IT技术人员的自我修养
  6. Zeppelin SDK :Flink 平台建设的基石
  7. 微型计算机技术 论文,微型计算机技术课程设计论文报告微机交通灯控制系统_毕业论文.docx...
  8. 数据库设计:范式与反范式
  9. 电商促销后台设计,写得太好了!
  10. 三菱plc232数据线驱动下载_失易得安卓恢复v5.3.5.0-失易得安卓恢复PC版下载
  11. 科密t1消费管理系统_科密A1\T1登录密码获取软件-科密A1\T1登录密码获取工具1.0.0 安卓版-东坡下载...
  12. MySQL的日志 - relay log
  13. 互联网盈利模式研习笔记 1:流量变现
  14. Fightting for your youth
  15. linux用户禁止登录,Linux限制用户登录
  16. 人工智能细分领域受关注|人工智能|领域|智能
  17. Ubuntu16.04 终端命令行 文件重命名
  18. Java 编程问题:十一、并发-深入探索
  19. cf 985E Pencils and Boxes
  20. 分享10个红色警戒2经典MOD

热门文章

  1. 沉迷Link-Cut tree无法自拔之:[BZOJ2594][Wc2006]水管局长数据加强版
  2. Android Activity 生命周期
  3. 10-20C#基础---一维、二维数组冒泡排序
  4. 反思 大班 快乐的机器人_幼儿园大班音乐优秀教案《小青蛙找家》含反思
  5. 安装erlang没有bin文件夹_RabbitMQ安装教程
  6. 计算机辅助设计工业产品cad竞赛试题,2017工业产品设计CAD比赛试题
  7. mysql运用索引写出高效sql_从SQL Server到MySql(5) : 高性能的MySql 索引策略
  8. python开发网络程序教程_python3编写C/S网络程序实例教程
  9. python支持向量机 股票_小蛇学python(4)利用SVM预测股票涨跌
  10. git21天打卡day15-添加提交修改文件