WINCCV7.5SP2使用VBA一次性修改多个IO域连接的变量

news/2024/9/25 12:42:07/文章来源:https://www.cnblogs.com/fishingsriver/p/18431089

某浪博客那边效率低下,学习笔记类型的也要审核多日,还做了访问量清零的事情。我把今天的学习笔记在这里也记录一遍。

前几天QQ群里面有哥们询问在WINCC中页面中一次性设定多个IO域连接变量,这些连接变量有规律。我以前没有用过VBA,尝试着弄了一下,现在把过程记录下来,当作学习笔记吧。

新建wincc项目,新建内部变量Real1至Real20共计20个,初始值分别10到200。新建页面VBAPage,上面添加IO域,名字叫做IO1,不连接任何变量,复制粘贴这个IO域19次,可以看到这20个IO域名字是IO1至IO20。下面使用VBA脚本来设定20个IO域连接的变量。
点击WINCC页面菜单工具-宏-VisualBasic编辑器,写下面的脚本。
Sub IOField_OutputValueTrigger()
Dim objects
Dim obj
Dim objdynamic
Dim i
Set objects = ActiveDocument.HMIObjects.Find("HMIIOField")
For i = 1 To objects.count
   Set objdynamic = objects.Item(i).OutputValue.CreateDynamic(hmiDynamicCreationTypeVariableDirect, "Real" & CStr(i))
Next
End Sub
保存脚本,运行一下,回到页面,就可以看到这20个IO域关联了Real1至Real20。
 
前面的练习属于初次练习,这一个稍微深入一下。假设页面上还有其他的IO域,其它IO域对象名字不是IO+数字的形式,我只是希望把对象名字叫做IO1至IO20这20个IO域进行批量修改,其它的IO域不做修改,那么需要写下面的脚本。
Sub IOField_OutputValueTrigger1()
Dim objects
Dim obj
Dim objdynamic
Dim i
Set objects = ActiveDocument.HMIObjects.Find(ObjectName:="IO*", objecttype:="HMIIOField")
For i = 1 To objects.count
   Set objdynamic = objects.Item(i).OutputValue.CreateDynamic(hmiDynamicCreationTypeVariableDirect, "Real" & CStr(i))
Next
End Sub
保存运行脚本,就可以只对IO1至IO20这20个IO域关联相应变量了。
 
在前面练习基础上,如果还有其他的IO域,名字也是IO加数字的形式,比如是IO22,那么只需要把脚本稍作修改,写成下面的形式即可
Sub IOField_OutputValueTrigger2()
Dim objects
Dim objdynamic
Dim i
Set objects = ActiveDocument.HMIObjects.Find(ObjectName:="IO*", objecttype:="HMIIOField")
For i = 1 To objects.count
If objects.Item(i).ObjectName <= "IO20" Then
   Set objdynamic = objects.Item(i).OutputValue.CreateDynamic(hmiDynamicCreationTypeVariableDirect, "Real" & CStr(i))
End If
Next
End Sub
保存运行脚本,就只会修改IO1到IO20这20个IO域。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/803450.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB 双活集群在运营商的实践

本文将着重分享某头部运营商订单中心在实现双活架构过程中的最佳实践,提供详细的技术细节和实际案例。通过介绍项目实施过程中的技术细节,提供类似场景需求的方案参考。在现代电信行业中,订单中心作为核心业务系统之一,承担着处理客户订单、管理订单状态、与各个业务系统进…

信创里程碑:TapData 与海量数据达成产品兼容互认证,共同助力基础设施国产化建设

测试结果显示,TapData LDP V3 与 Vastbase G100 V2.2 完全兼容,整体运行稳定高效,性能表现优秀,可为企业级客户提供可靠的中间件与数据库支撑。近日,深圳钛铂数据有限公司(以下简称钛铂数据)自主研发的钛铂实时数据平台(TapData Live Data Platform,TapData LDP)与北…

【日记】感觉自己已经魔怔了(817 字)

正文下午装档案的时候,无意间朝外看了一眼,发现自己视力衰退了好多。感觉两只眼睛都有散光了,看东西有重影。有些担心。兄长血检报告出来了,血红蛋白高,肌酐低。尿酸倒是正常了,但总体还是偏高。我觉得好奇怪,他降尿酸怎么这么难…… 更奇怪的是他说心电图时不紧张,但窦…

DNS正向解析和反向解析的区别

在网络世界中,域名系统(DNS)起着至关重要的作用,它就如同网络世界的导航地图,帮助我们在浩瀚的数字海洋中准确找到目标。而在DNS中,正向解析和反向解析是两个重要的概念,它们有着明显的区别。 首先,正向解析是将域名转换为IP地址的过程。当我们在浏览器中输入一个网址,…

DNS云解析和普通解析一样吗

在当今数字化时代,网络的稳定与高效运行至关重要。域名系统(DNS)作为互联网的基础设施之一,其解析服务的质量直接影响着用户的网络体验。近年来,DNS云解析逐渐兴起,与传统的普通解析相比,它们之间存在着显著的区别。 首先,在可靠性方面,DNS云解析具有明显优势。普通解…

【学习笔记】数学证明方法

持续更新中持续更新中最值定理前提条件: 函数 \(f(x)\) 在区间内是连续的在满足前提的情况下,设区间上界为 \(a\),下界为 \(b\) 那么函数 \(f(x)\) 一定能取到区间 \((a,b)\) 内的所有值介值定理前提条件: 函数 \(f(x)\) 在区间内是连续的当区间 \([a,b]\) 上界为 \(A\),下…

【YashanDB知识库】多表更新报错 YAS-04344 multi-table update is not supported

本文内容来自YashanDB官网,具体内容请见https://www.yashandb.com/newsinfo/7369204.html?templateId=1718516 【问题分类】功能使用 【关键字】YAS-04344,UPDATE,multi-table update,MERGE INTO 【问题描述】 在崖山环境执行类似以下语法进行多表更新报 YAS-04344 multi-…

解决方案 | ObjectARX开发版本对照表CAD1997-CAD2025,ObjectARX SDK版本、ObjectARX-Wizards版本、CAD版本、VS版本匹配表

众所周知,在一般情况下,需要ObjectARX SDK版本、ObjectARX-Wizards版本、CAD版本、VS版本版本匹配才能进行CAD二次开发。根据网络数据整理如下。 参考资料:https://blog.csdn.net/zhoufei95/article/details/121553501

【YashanDB知识库】查询YashanDB表空间使用率

本文转自YashanDB官网,具体内容请见https://www.yashandb.com/newsinfo/7369203.html?templateId=1718516 【问题分类】功能使用 【关键字】表空间,使用率 【问题描述】YashanDB使用过程中,如何查询表空间的使用率 【问题原因分析】需要查询相应的YashanDB系统表,计算表空…

QT C++ 自学积累 『非技术文』

QT C++ 自学积累 『非技术文』最近一段时间参与了一个 QT 项目的开发,使用的是 C++ 语法,很遗憾的是我之前从来没有接触过 C++ ,大学没有开过这堂课,也没用自己学习过,所有说上手贼慢,到现在为止其实也不是很清楚具体的开发技巧,毕竟是参与,东一复制西一粘贴的,就拉倒…

cameralink卡设计原理图:287-基于FMC接口的1路Base cameralink输入1路Base cameralink输出子卡

基于FMC接口的1路Base cameralink输入1路Base cameralink输出子卡 一、板卡概述 该板卡是我公司自主研发的1路Base cameralink输入,1路Base cameralink输出的FMC子卡,LPC-FMC连接器。FMC连接器是一种高速多pin的互连器件,广泛应用于板卡对接的设备中,特别是在xilinx公司的所…

Cannot open self /usr/local/bin/docker-compose or archive /usr/local/bin/docker-compose.pkg解决办法

安装docker-compose时候。出现错误 1、在线拉取太费劲。 最后使用的离线安装、、 参考内容。. github手动下载文件:https://github.com/docker/compose/releases/tag/1.25.0-rc4 选择-86版本的内容 将文件上传到/usr/local/bin/ 目录下,重命名为docker-compose,修改文件权限…