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

已锁定

Fscosa

西门子1847工业学习平台

  • 帖子

    25
  • 精华

    2
  • 被关注

    24

论坛等级:侠士

注册时间:2010-08-20

普通 普通 如何晋级?

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

6109

9

2018-11-20 00:54:38

star star

        一直在论坛逛,没发过帖子。今天整理文件的时候翻到几年前做的一个小工具,是用VBA批量组态WinCC中的一些基本对象以及对象中的一些常用属性,可以组态连接变量。

        以前做钢厂的项目经常需要在画面上显示传感器的状态,而往往传感器数量很多,一个一个组态费时费力还容易出错,后来就做了这个工具,这两年换了工作基本很少再用了。今天再看自己写的这个工具的VBA脚本也是一脸蒙逼,当时没写注释…今天分享出来,感兴趣的可以看看。

        工具的导入:打开WinCC的Graphics Designer—>Tools—>Macros打开VBA编辑器。选中GlobalTemplate(也可以导入到项目模板中),右键选择Import File导入附件中的两个文件. Frm文件即可。在Forms中双击“GraCS_generate”点击VBA工具栏上的运行按钮(或按F5)运行工具,如下图。

        工具左侧是对象的设置,只包含了一些基本对象“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个静态文本,文本的内容全部是“测试”

   

        2、批量导入文本

        还是创建100个静态文本,但是希望创建的文本显示的内容都不相同。此时需要创建1个表格存储每个文本的信息。

        按之前1)~5)的步骤设置好对象,在属性设置中勾选“从表格读取”。“表格路径”中设置了表格读取的路径。点击“生成对象”,如果当前路径下没有改Excel文件,会在该路径下自动创建表格。

        打开该Excel表格,在表格的“文本”列中填入需要导入的文本,这里我填1~100的数字。

        其他列可以不用管。

        


        再次点击“生成对象”,会创建100个静态文本,从上到下、从左到右静态文本的内容是1~100。

        


        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项目中,如果不存在会显示报警提示。

 


        回到开头说到的制作这个工具的初衷,如果我需要制作100个传感器(开关量)状态的监控画面。简单的,我可以用一个静态文(Static Text)本显示传感器的名称,用一个矩形框(Rectangle)显示传感器的状态1为绿色,0为灰色。这样在Excel表格中编辑好传感器静态文本的名称和矩形框需要关联的变量,设置好静态文本和矩形框的位置,只需要点击两次“生成对象”按钮就可以完成画面的制作,然后根据需要进行美化(工具可以批量选择对象)。只要表格对应好,创建的画面关联的变量和文本名称的对应关系是不会出错的。

        我想这就是使用VBA组态的意义所在。水平有限,功能比较单一。

         工具见附件:

GraCS_generateV1.7.rar


基于VBA的WinCC画面对象批量创建工具 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有30993条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。