如何使用EXCEL访问WinCC中的实时数据实现报表

embedded/2024/9/20 9:18:54/ 标签: WINCC

如果项目已经做好了,不想改动现有项目。那么可以使用 EXCEL 通过 OPC 方式访问 WinCC 项目的数据。预先定义好 EXCEL 表格样式,通过以下方式实现。通过以下步骤打开 EXCEL 中的 VB 编辑器

图片

引用 WinCC 提供的 OPC 客户端 Control 控件: Siemens OPC DAAutomation 2.0( SOPCDAAuto.dll)

图片

图片

图片

编程实现

‘变量声明

Option Explicit 

Option Base 1 

Const ServerName = "OPCServer.WinCC" 

Dim WithEvents MyOPCServer As OPCServer 

Dim WithEvents MyOPCGroup As OPCGroup 

Dim MyOPCGroupColl As OPCGroups 

Dim MyOPCItemColl As OPCItems 

Dim MyOPCItems As OPCItems 

Dim MyOPCItem As OPCItem 

Dim ClientHandles(10) As Long 

Dim ServerHandles() As Long 

Dim Values(1) As Variant 

Dim Errors() As Long 

Dim ItemIDs(10) As String 

Dim GroupName As String 

Dim NodeName As String 

Dim fxItemValue(10) As Variant 

‘在按钮“启动 OPC 客户端”中添加以下代码

'--------------------------------------------------------------------- 

' 目的:连接到 OPC_server,创建组并添加条目

'--------------------------------------------------------------------- 

 ' 发生错误则转到 ErrorHandler 

 '----------- 可以自由选择 ClientHandle 和 GroupName 

Dim i As Integer 

‘On Error GoTo HANDLEeRROR 

 For i = 1 To 7 

 ClientHandles(i) = i 

 ' 先配置名柄索引 这将在读取 OPC 标签值时可要用到

 Next i 

 ' ClientHandles(1) = 1 

 GroupName = "MyGroup" 

 '----------- 从窗口对话框中取得 ItemID 

 NodeName = txtNoteName.Value 

 ItemIDs(1) = Range("j5").Value’从 EXCEL 表格 j5 中读取变量名称

 ItemIDs(2) = Range("j6").Value 

 ItemIDs(3) = Range("j7").Value 

 ItemIDs(4) = Range("j8").Value 

 ItemIDs(5) = Range("j9").Value 

 ItemIDs(6) = Range("j10").Value 

 '----------- 取得 OPC-Server 实例

 Set MyOPCServer = New OPCServer 

 MyOPCServer.Connect ServerName, NodeName 

 Set MyOPCGroupColl = MyOPCServer.OPCGroups 

 '----------- 设置用于添加组的默认活动状态

 MyOPCGroupColl.DefaultGroupIsActive = True 

 '----------- 将我们的组添加到集合中

 Set MyOPCGroup = MyOPCGroupColl.Add(GroupName) 

 Set MyOPCItemColl = MyOPCGroup.OPCItems 

 '----------- 调价一个条目,即返回 ServerHandle 

 MyOPCItemColl.AddItems 10, ItemIDs, ClientHandles, ServerHandles, Errors 

 '----------- 订阅的组收到异步通知

 MyOPCGroup.IsSubscribed = True

'--------------------------------------------------------------------- 

 '----------- 释放组和服务器对象

 MyOPCGroupColl.RemoveAll 

 '----------- 断开与服务器的连接并清除

 MyOPCServer.Disconnect 

 Set MyOPCItemColl = Nothing 

 Set MyOPCGroup = Nothing 

 Set MyOPCGroupColl = Nothing 

 Set MyOPCServer = Nothing 

‘创建实时刷新数据的函数

' 目的:组中的数值、质量或时间标志改变时,该事件激活

'----------- 如果安装了 OPC-DA Automation 2.1,使用:

Private Sub MyOPCGroup_DataChange(ByVal TransactionID As Long, ByVal 

NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long, 

TimeStamps() As Date) 

 '----------- 将数据表单元格的值设置为读取的数值

 Dim ii As Integer 

 For ii = 1 To NumItems 

fxItemValue(ClientHandles(ii)) = ItemValues(ii) 

Next ii 

 Range("A5").Value = CStr(TimeStamps(1)) 

 Range("B5").Value = CStr(fxItemValue(1)) 

 ' Range("C5").Value = Hex(Qualities(1)) 

 Range("C5").Value = CStr(fxItemValue(2)) 

 Range("D5").Value = CStr(fxItemValue(3)) 

 Range("E5").Value = CStr(fxItemValue(4)) 

 Range("F5").Value = CStr(fxItemValue(5)) 

 Range("G5").Value = CStr(fxItemValue(6))

End Sub 

‘打印预览的代码

UserForm.Hide 

Sheet1.PrintPreview 

‘退出画面

UserForm.Hide 

打开 EXCEL 激活宏。运行的界面如下,在服务器名称中输入相应的计算机节点名称,

点击“启动 OPC 客户端”。就能得到相应的数据。

图片

至此完成了使用 EXCEL 通过 OPC 方式访问 WinCC 项目中数据的方法。

JL 跳转指令的理解

西门子PLC无线通讯解决方案

数据丟了--WinCc历史数据丢失怎么办

巨控无线通讯模块在带式输送机行业的应用

MMC 卡数据的读写

如何快速切换 WinCC V7.5 Runtime 的显示模式,如进行日间、夜间显示模式切换?

WinCC激活故障排除及解决思路

Wincc在手机端监控_巨控OPC560解决方案

PROFINET通讯中断如何分析和解决

PLC之间的Profibus 通讯

WinCC中的画面模板

怎么远程控制国外的PLC

远程上下载西门子1200PLC程序,在线调试

WinCC激活故障排除及解决思路

使用循环中断和读取循环时间作为定时器

单个S7-1200做服务器,和多个客户端做Modbus TCP通讯

使用STARTER软件使用同一套参数下载多台G120变频器

wincc如何实现远程监控1200PLC


http://www.ppmy.cn/embedded/85462.html

相关文章

Spring MVC笔记

Java 版本: JDK17 Eclipse: eclipse-jee-2023-12-R-win32-x86_64.zip Tomcat 10 JDK17采用springframework 6 *必须考虑兼容性问题&#xff0c;所以JDK 和spring framework不要乱搭配 初步创建Maven Project 安装包 修改poem.xml <dependency><groupId>org.sprin…

Varjo XR-4系列现已获得达索3DEXPERIENCE平台官方支持

近日&#xff0c;全球领先的工业虚拟和混合现实解决方案提供商Varjo宣布&#xff0c;Varjo XR-4系列现已获得达索3DEXPERIENCE平台的本地支持。这种集成为工程师和设计师带来了先进的虚拟和混合现实功能&#xff0c;他们可以通过沉浸式技术创新并简化他们的3D工作流程。 在达索…

微信小程序面试题汇总

面试题 1. 请简述微信小程序主要目录和文件的作用&#xff1f; 参考回答&#xff1a; 微信小程序主要目录和文件的作用&#xff1a;&#xff08;1&#xff09;project.config.json&#xff1a;项目配置文件&#xff0c;用的最多的就是配置是否开启https校验 &#xff08;2&am…

sql注入的专项练习 sqlilabs(含代码审计)

在做题之前先复习了数据库的增删改查&#xff0c;然后自己用本地的环境&#xff0c;在自己建的库里面进行了sql语句的测试&#xff0c;主要是回顾了一下sql注入联合注入查询的语句和sql注入的一般做题步骤。 1.获取当前数据库 2.获取数据库中的表 3.获取表中的字段名 一、sql…

TypeScript核心

常用操作方式 1、类型推断 ts会根据变量存放的初始值来进行变量类型限定。 如上&#xff1a;开始str是字符串&#xff0c;则此变量以后就只能存字符串值。 开发中的意义&#xff1a;变量分配字符串值&#xff0c;后期可能会书写一些字符串功能、方法等相关的操作&#xff0c;如…

Python入门------pycharm加载虚拟环境

pycharm虚拟环境配置&#xff1a; 在按照前面的办法&#xff0c;配置好虚拟环境后,如果我们需要到虚拟环境开发&#xff0c;就需要给编译器配置虚拟环境 1.打开编译器&#xff0c;点击右下角的interpreter选项 2. 点击ADD Interpreter,添加虚拟环境 3. 因为我们使用的是原始…

Kylin Cube构建日志分析:洞察大数据构建过程的窗口

Kylin Cube构建日志分析&#xff1a;洞察大数据构建过程的窗口 Apache Kylin是一款为Hadoop优化的开源分布式分析引擎&#xff0c;它通过构建数据立方体&#xff08;Cube&#xff09;来实现对大数据的快速查询。在维护和优化Cube的过程中&#xff0c;构建日志分析是一个重要的…

Spring事件机制

文章目录 一、Spring事件二、实现Spring事件1、自定义事件2、事件监听器2.1 实现ApplicationListener接口2.2 EventListener2.3 TransactionalEventListener 3、事件发布4、异步使用 三、EventBus1、事件模式2、EventBus三要素3、同步事件3.1 定义事件类3.2 定义事件监听3.3 测…

睿抗2024省赛----RC-u4 章鱼图的判断

题目 对于无向图 G(V,E)&#xff0c;我们将有且只有一个环的、大于 2 个顶点的无向连通图称之为章鱼图&#xff0c;因为其形状像是一个环&#xff08;身体&#xff09;带着若干个树&#xff08;触手&#xff09;&#xff0c;故得名。 给定一个无向图&#xff0c;请你判断是不…

文字描边效果

文字描边效果可以通过text-shadow来实现&#xff0c;也可以通过-webkit-text-stroke来实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, i…

MySQL作业五

1. 创建表goods&#xff0c;orders 2. 向商品表中插入商品记录 3. 触发器操作 3.1 建立触发器&#xff0c;订单表中增加订单数量后&#xff0c;商品表商品数量同步减少对应的商品订单出数量,并测试 3.2 建立触发器&#xff0c;实现功能:客户取消订单&#xff0c;恢复商品表对应…

ESP8266用AT指令实现连接MQTT

1准备工作 硬件&#xff08;ESP8266&#xff09;连接电脑 硬件已经烧入了MQTT透传固件 2实现连接 2-1&#xff08;进入AT模式&#xff09; 打开串口助手发送如下指令 AT 2-2&#xff08;复位&#xff09; ATRST 2-3&#xff08;开启DHCP&#xff0c;自动获取IP&#x…

Python爬虫实战案例(爬取图片)

爬取图片的信息 爬取图片与爬取文本内容相似&#xff0c;只是需要加上图片的url&#xff0c;并且在查找图片位置的时候需要带上图片的属性。 这里选取了一个4K高清的壁纸网站&#xff08;彼岸壁纸https://pic.netbian.com&#xff09;进行爬取。 具体步骤如下&#xff1a; …

【STM32 HAL库】DMA+串口

DMA 直接存储器访问 DMA传输&#xff0c;将数据从一个地址空间复制到另一个地址空间。-----“数据搬运工”。 DMA传输无需CPU直接控制传输&#xff0c;也没有中断处理方式那样保留现场和恢复现场&#xff0c;它是通过硬件为RAM和IO设备开辟一条直接传输数据的通道&#xff0c…

Spring boot 配置文件

一&#xff0c;springboot配置文件是什么 springboot定义了配置文件的格式&#xff0c;也规范了其他框架集成到spingboot的目的。 很多项目的配置信息也放在这里&#xff0c;就比如&#xff1a; 项目的启动端口&#xff08;就比如8080&#xff0c;如果被占用&#xff0c;就可…

Web前端知识视频教程分享(四) jQuery

资料下载地址: https://545c.com/f/45573183-1334618723-883dfe?p7526 (访问密码: 7526)

大润发超市卡怎么用?

大润发的超市购物卡好像线上线下都能用 但是感觉超市买的好多东西都不如网购便宜 完了前两天我朋友给我送了几张大润发的超市卡&#xff0c;我又不想用&#xff0c;最后在收卡云上卖掉了&#xff0c;价格也不错&#xff0c;到账也快&#xff0c;还不用担心卡在手里过期的情况…

【Linux】微基准测试

1、基准测试和微基准测试 1.1 定义 1)基准测试(Benchmark Testing): 基准测试是一种用于衡量计算机系统、软件应用或硬件组件性能的测试方法。它通过运行一系列标准化的任务场景来测量系统的性能表现,旨在帮助评估系统的各种指标,如响应时间、吞吐量、延迟、资源利用率…

数学建模——快递包裹装箱优化问题(2023年长三角数学建模A题问题一、问题二)

快递包裹装箱优化问题 2022 年&#xff0c;中国一年的包 裹已经超过1000 亿件&#xff0c;占据了全球快递事务量的一半以上。近几年&#xff0c;中国每年新增包裹数量相当于美国整个国家一年的包裹数量&#xff0c;十年前中国还是物流成本最昂贵的国家&#xff0c;当前中国已经…

不同业务场景下通过mars3d实现绕点旋转效果

1.鼠标单击地图某一处就对该点进行绕点旋转效果 相关代码&#xff1a; 1.相关绕点旋转的初始化代码&#xff1a; const rotatePoint new mars3d.thing.RotatePoint({direction: false, // 方向 true逆时针&#xff0c;false顺时针time: 50 // 给定飞行一周所需时间(单位 秒)&…