电工学习网

 找回密码
 立即注册
查看: 5715|回复: 1

基于VBA的WinCC画面对象批量创建工具

[复制链接]
发表于 2018-11-21 08:43:17 | 显示全部楼层 |阅读模式
今天整理文件的时候翻到几年前做的一个小工具,是用VBA批量组态WinCC中的一些基本对象以及对象中的一些常用属性,可以组态连接变量。
        以前做钢厂的项目经常需要在画面上显示传感器的状态,而往往传感器数量很多,一个一个组态费时费力还容易出错,后来就做了这个工具,这两年换了工作基本很少再用了。今天再看自己写的这个工具的VBA脚本也是一脸蒙逼,当时没写注释…今天分享出来,感兴趣的可以看看。
        工具的导入:打开WinCC的Graphics Designer—>Tools—>Macros打开VBA编辑器。选中GlobalTemplate(也可以导入到项目模板中),右键选择Import File导入附件中的两个文件. Frm文件即可。在Forms中双击“GraCS_generate”点击VBA工具栏上的运行按钮(或按F5)运行工具,如下图。
6367827125454228353149797.png
        工具左侧是对象的设置,只包含了一些基本对象“Button”、"Static Text"、"Bar"、"I/O Field"、"Ellipse"、"Rectangle"、"Graphic Object"、"RoundedRectangle"。

        工具的右侧是对象的属性设置,由于水平有限,工具只能批量处理对象的1个属性。右侧属性设置中还包括了该属性的动态链接的设置。
        工具的使用:
        以批量创建100个Static Text对象为例
        1、批量创建对象
        新建一个pdl文件。
        1)对象选择Static Text,
        2)“宽”和“高”设置静态文本的大小,
        3)初始位置(Left、Top)设置第一个对象的位置
        4)对象间隙(Left、Top)设置两个对象的间距,包括上下间距(Top)和左右间距(Left)
        5)设置对象生产的行数和列数如10行10列(使用的比较笨的方法)
        6)右侧属性选择Text属性,在下方的文本框中填入文本“测试”,点击“生成对象”按钮。
        画面会从上到下、从左到右按设置的行数和列数创建100个静态文本,文本的内容全部是“测试”
6367827138329063555482613.png
        2、批量导入文本
        还是创建100个静态文本,但是希望创建的文本显示的内容都不相同。此时需要创建1个表格存储每个文本的信息。
        按之前1)~5)的步骤设置好对象,在属性设置中勾选“从表格读取”。“表格路径”中设置了表格读取的路径。点击“生成对象”,如果当前路径下没有改Excel文件,会在该路径下自动创建表格。
        打开该Excel表格,在表格的“文本”列中填入需要导入的文本,这里我填1~100的数字。
        其他列可以不用管。
         6367827147333635798271187.png
        再次点击“生成对象”,会创建100个静态文本,从上到下、从左到右静态文本的内容是1~100。
         6367827149805479156753260.png
        3、批量连接变量
        还是创建100个静态文本,希望文本能够关联上变量,获取动态属性。
        1) 按之前步骤设置好对象。在“属性设置”中勾选“连接变量”,下方的动态链接设置激活。选择变量连接的方式(只支持DynamicDialog和Tag两种方式)此处,选择DynamicDialog。
        2) 在“DyDial”左侧根据变量类型选择合适的模式。其中“Analog”只支持5组参数。此处,选择Boolean。在“DyDial”右侧的Set和NotSet中分别填入想要的文本。
        3) 打开需要配置的Excel表格,在“变量名”列依次填入每个静态文本需要关联的变量名称。点击“生成对象”,会创建100个静态文本,每个静态文本都关联了变量,并设置了同样的动态属性。
        4) 如果在“DyDial”勾选“从表格读取”,在Excel的“Set”和“Not Set”列分别写入文本就可以为每个静态文本组态不同的动态文本。
        5) 如果在“属性设置”中勾选了“CheckTagExist”,工具会判断表格中的变量名称是否存在与WinCC项目中,如果不存在会显示报警提示。
6367827153997612997779453.png
        回到开头说到的制作这个工具的初衷,如果我需要制作100个传感器(开关量)状态的监控画面。简单的,我可以用一个静态文(Static Text)本显示传感器的名称,用一个矩形框(Rectangle)显示传感器的状态1为绿色,0为灰色。这样在Excel表格中编辑好传感器静态文本的名称和矩形框需要关联的变量,设置好静态文本和矩形框的位置,只需要点击两次“生成对象”按钮就可以完成画面的制作,然后根据需要进行美化(工具可以批量选择对象)。只要表格对应好,创建的画面关联的变量和文本名称的对应关系是不会出错的。
        我想这就是使用VBA组态的意义所在。水平有限,功能比较单一。 GraCS_generateV1.7.rar (14.78 KB, 下载次数: 2)
本文转载自:西门子工业技术论坛

评分

参与人数 1金币 +1 收起 理由
小臭臭同学 + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2020-9-27 23:02:39 | 显示全部楼层
谢谢分享,正在寻找

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-3-28 17:55

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表