首页 > 其他分享 >WINCCV7.5SP2使用VBA一次性修改多个IO域连接的变量

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

时间:2024-09-25 12:33:55浏览次数:7  
标签:Dim VBA WINCCV7.5 20 Sub SP2 objects IO Set

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

前几天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域。   如果有IO域名字叫做“IO1.2”,前面的脚本不能避开对这个IO域进行设置,这种情况就需要在开始往页面放置控件时,就对其名字进行合理设置。  

标签:Dim,VBA,WINCCV7.5,20,Sub,SP2,objects,IO,Set
From: https://www.cnblogs.com/fishingsriver/p/18431089

相关文章

  • EXCEL VBA 响应鼠标鼠标滚轮控制
    在vba中,我们在用户窗体中如果添加有combox控件,或者是listbox控件。正常情况下,combox和listbox是不响应鼠标滚轮事件的,且默认的VBA控件中,也没有提供响应鼠标滚轮事件的方法和入口。如此以来,我们在combox/listbox中操作选择目标选项,就只能使用滚动条来操作,严重影响了操作......
  • CSP2024-26
    2A题意:\(1\simn\)排在数轴上,定义\(con_{i,j}=[i,j\text{直接或间接连通}]\),当前局面的代价为\(\sum_{i<j}con_{i,j}\timesa_{j-i}\)。初始连满\(\frac{n(n-1)}{2}\)条边,求恰好删去\(0,1,\cdots,\frac{n(n-1)}{2}\)条边后的最小代价。\(n\le100,a_......
  • csp2024赛前集训
    2024-09-24开题顺序:ABDC时间分配:A:20min,B:30min,C:1.5h,D:30min,其余时间打摆。主观难度:绿蓝紫蓝set设\(f_{i,j}\)表示前\(i\)个数和为\(j\)的方案数,然后直接01背包,最后用快速幂把每种和的数量次方乘起来就行了。由于\(f\)最后要当指数,所以要\(mod(kM-1)\)。hire......
  • [Excel VBA办公]如何使用VBA批量删除空行
    在处理Excel数据时,空行可能会干扰数据分析和展示。以下是一个VBA代码示例,帮助你批量删除工作表中的空行。1.代码说明此代码将遍历指定工作表,删除所有空行,确保数据整洁。2.VBA代码'删除sheet1的空行SubDeleteEmptyRows()DimwsAsWorksheetDimlastRowAs......
  • 优秀的拆分(csp2020入门级1)
    一般来说,一个正整数可以拆分成若干个正整数的和。例如,1=1,10=1+2+3+4等。 对于正整数n的一种特定拆分,我们称它为“优秀的”,当且仅当在这种拆分下,n被分解为了若干个不同的2的正整数次幂。注意,一个数x能被表示成2的正整数次幂,当且仅当x能通过正整数个2相乘在一起得到。 例如,10......
  • CSP2024-24
    2A题意:给定长度为\(n\)的非负整数数组\(a\),求最小的\(r−l+1\)满足\(l≤r,\sum_{i=l}^ra_i\)是合数。考虑全是正数的情况,答案一定\(\le4\),考虑一下每个数的奇偶性即可。那么就把所有正数及其位置存下来,使得\(b_i=a_{p_i}\),暴力检查\(b\)中长度为2/3的段,和\(......
  • WINCCV7.5SP2做用户登陆注销记录
    某浪博客前两天忽然将访问量清零了,我觉得这是要赶人走了,我把那边写的学习笔记一点点搬运过来吧。原文地址:WINCCV7.5SP2做用户登陆注销记录_来自金沙江的小鱼_新浪博客(sina.com.cn)前两天领导要求对现场有一个控制系统的人机交互功能加密码功能,给不同用户不同权限,有些权限多个......
  • CSP2024 游记
    初赛\(\rmDay1\)上午到机房,但是啥也不想干,摆了一会。等有毒老师来了之后围观有毒老师下\(\rmchess\),虽然我不会下\(\rmchess\),但是看得很快乐,有毒老师超超快棋一路下到了\(\rmrating\800\),有实力的。看了一下\(\rmJ\)组题,发现不会格雷码,保单了。下午润去考初赛,在......
  • Proteus.Pro.8.17.SP2图文安装教程及下载
    ProteusDesignSuite8.17SP2包含多项新功能和改进,旨在增强电子设计自动化。此版本的主要更新包括:推挤布线编辑:这一功能允许动态移动导线和过孔,以创建更高效的布线路径,使PCB设计更加顺畅和直观。它支持推模式布线编辑操作,能够自动调整现有的布线以适应新的布线需求。Proteu......
  • VBA技术资料MF199:屏蔽单元格右键菜单复制剪切按钮
    我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解,从简单的入门、到入门后的提高、到数据库、到字典、到WordVBA的应用、到高级......