WINCC和EXCEL的OPC通讯

news/2024/11/6 15:30:04/

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(1) As Long
Dim ServerHandles() As Long
Dim Values(1) As Variant
Dim Errors() As Long
Dim ItemIDs(1) As String
Dim GroupName As String
Dim NodeName As String
'---------------------------------------------------------------------
’ Sub StartClient()
’ 目的:连接至OPC_server,创建组并且添加条目
'---------------------------------------------------------------------
Sub StartClient()
’ On Error GoTo ErrorHandler
'----------- 可以自由选择ClientHandle和GroupName
ClientHandles(1) = 1
GroupName = “MyGroup”
'----------- 从单元“A1”中得到ItemID
NodeName = Range(“A1”).Value
ItemIDs(1) = Range(“A2”).Value
'----------- 得到OPC服务器的实例
Set MyOPCServer = New OpcServer
MyOPCServer.Connect ServerName, NodeName
Set MyOPCGroupColl = MyOPCServer.OPCGroups
'----------- 为添加组设置缺省的激活状态
MyOPCGroupColl.DefaultGroupIsActive = True
'----------- 添加组至收集
Set MyOPCGroup = MyOPCGroupColl.Add(GroupName)
Set MyOPCItemColl = MyOPCGroup.OPCItems
'----------- 添加一个条目、返回ServerHandles
MyOPCItemColl.AddItems 1, ItemIDs, ClientHandles, ServerHandles, Errors
'----------- 用于接受不同的信息的组
MyOPCGroup.IsSubscribed = True
Exit Sub
ErrorHandler:
MsgBox "Error: " & Err.Des cription, vbCritical, “ERROR”
End Sub
'---------------------------------------------------------------------
’ Sub StopClient()
’ 目的:从服务器释放对象并且断开连接
'---------------------------------------------------------------------
Sub StopClient()
'----------- 释放组和服务器对象
MyOPCGroupColl.RemoveAll
'----------- 从服务器断开连接并且清除
MyOPCServer.Disconnect
Set MyOPCItemColl = Nothing
Set MyOPCGroup = Nothing
Set MyOPCGroupColl = Nothing
Set MyOPCServer = Nothing
End Sub
'---------------------------------------------------------------------
’ Sub MyOPCGroup_DataChange()
’ 目的:组中的数值、质量或时间标志改变时,该事件激活
'---------------------------------------------------------------------
'----------- 如果OPC-DA Automation 2.0被安装,使用:
Private Sub MyOPCGroup_DataChange(ByVal NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long, TimeStamps() As Date)
'----------- 设置数据表单元值为数值读
Range(“B2”).Value = CStr(ItemValues(1))
Range(“C2”).Value = Hex(Qualities(1))
Range(“D2”).Value = CStr(TimeStamps(1))
End Sub
'---------------------------------------------------------------------
’ Sub worksheet_change()
’ 目的:工作表改变时,该事件激活,因此可以写一个新的数值
'---------------------------------------------------------------------
Private Sub worksheet_change(ByVal Selection As Range)
'----------- 仅在单元“B3”改变时,写该值
If Selection <> Range(“B3”) Then Exit Sub
Values(1) = Selection.Cells.Value
'----------- 以不同的模式写新的数值
MyOPCGroup.SyncWrite 1, ServerHandles, Values, Errors
End Sub
OPC Automation 2.0


http://www.ppmy.cn/news/68075.html

相关文章

我的服务器被挖矿了,原因竟是。。。

「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 挖矿木马应急响应 一、什么是挖矿二、被挖矿主机现象三、挖矿木马处置思路1&#xff09;隔…

【Linux】RK3399平台开发系列——设备树的学习笔记

学习内容 RK3399平台开发系列讲解&#xff08;设备树篇&#xff09;设备树的详解 - 视频介绍 简介 设备树&#xff08;Device Tree&#xff09;是用于描述硬件设备和系统关系的树形数据结构&#xff0c;主要用于 Linux 操作系统中的设备驱动程序。在嵌入式系统中&#xff0c…

如何通过品牌矩阵号赋能品牌?

小红书作为年轻人的“消费决策”平台、逐步成为越来越多用户的消费指南&#xff0c;同时也变成众多品牌的营销基地。在小红书运营矩阵账号可以很好的树立品牌形象、增加粉丝粘性、节约广告成本&#xff0c;那么在搭建矩阵的过程中如何管理品牌矩阵号也成为众多品牌必须要思考的…

《程序员面试金典(第6版)》面试题 16.19. 水域大小(深度优先搜索,类似棋盘类问题,八皇后的简化版本,C++)

题目描述 你有一个用于表示一片土地的整数矩阵land&#xff0c;该矩阵中每个点的值代表对应地点的海拔高度。若值为0则表示水域。由垂直、水平或对角连接的水域为池塘。池塘的大小是指相连接的水域的个数。编写一个方法来计算矩阵中所有池塘的大小&#xff0c;返回值需要从小到…

KMP匹配算法

目录 一、暴力匹配法动画演示代码实现 二、KMP算法的概念三、KMP算法的应用题目代码实现 一、暴力匹配法 动画演示 时间复杂度为&#xff1a; O ( m ∗ n ) O(m * n) O(m∗n) 代码实现 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std;int…

前端架构师-week5-脚手架下载升级项目模版功能开发

目录 脚手架下载项目模版功能开发 通过 spinner 实现命令行 loading 效果 项目模版更新功能调试 脚手架下载项目模版功能开发 当作 npm 模块来处理&#xff0c;尝试对它进行下载。 commands/init/ 的 package.json 中注册 models/package/&#xff0c;并在命令行中执行 npm i…

怎样删除hao123(浏览器首页被篡改了)

有时候我们打开浏览器发现首页被hao123 ,或者2345 这些浏览器给篡改了 或者打开的时候直接打开2个.这个时候想要删除它们,其他它们本身就是网页的,没有应用 在卸载的地方就不用了,它们就嵌套你的浏览器里面,打开的时候启动了他们, 下面说下方法 1 查看浏览器在什么方法下载…

【软考数据库】第十一章 数据库设计

目录 11.1 数据库设计概述 11.2 系统需求分析 11.3 概念结构设计 11.4 逻辑结构设计 11.5 物理结构设计 11.6 实施阶段 11.7 运行与维护 11.7.1 数据库系统的运行 11.7.2 数据库系统的维护 11.7.3 数据库系统的管理 11.7.4 性能调整 前言&#xff1a; 笔记来自《文…