一直在论坛逛,没发过帖子。整理文件的时候翻到几年前做的一个小工具,是用VBA批量组态WinCC中的一些基本对象以及对象中的一些常用属性,可以组态连接变量。
以前做钢厂的项目经常需要在画面上显示传感器的状态,而往往传感器数量很多,一个一个组态费时费力还容易出错,后来就做了这个工具,这两年换了工作基本很少再用了。再看自己写的这个工具的VBA脚本也是一脸蒙逼,当时没写注释…分享出来,感兴趣的可以看看。
工具的导入:打开WinCC的GraphicsDesigner—>Tools—>Macros打开VBA编辑器。选中GlobalTemplate(也可以导入到项目模板中),右键选择ImportFile导入附件中的两个文件.Frm文件即可。在Forms中双击“GraCS_generate”点击VBA工具栏上的运行按钮(或按F5)运行工具,如下图。
工具左侧是对象的设置,只包含了一些基本对象“Button”、"StaticText"、"Bar"、"I/O Field"、"Ellipse"、"Rectangle"、"GraphicObject"、"RoundedRectangle"。
工具的右侧是对象的属性设置,由于水平有限,工具只能批量处理对象的1个属性。右侧属性设置中还包括了该属性的动态链接的设置。
工具的使用:
以批量创建100个StaticText对象为例
1、批量创建对象
新建一个pdl文件。
1)对象选择StaticText,
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”和“NotSet”列分别写入文本就可以为每个静态文本组态不同的动态文本。
5)如果在“属性设置”中勾选了“CheckTagExist”,工具会判断表格中的变量名称是否存在与WinCC项目中,如果不存在会显示报警提示。
回到开头说到的制作这个工具的初衷,如果我需要制作100个传感器(开关量)状态的监控画面。简单的,我可以用一个静态文(StaticText)本显示传感器的名称,用一个矩形框(Rectangle)显示传感器的状态1为绿色,0为灰色。这样在Excel表格中编辑好传感器静态文本的名称和矩形框需要关联的变量,设置好静态文本和矩形框的位置,只需要点击两次“生成对象”按钮就可以完成画面的制作,根据需要进行美化(工具可以批量选择对象)。只要表格对应好,创建的画面关联的变量和文本名称的对应关系是不会出错的。
我想这就是使用VBA组态的意义所在。水平有限,功能比较单一。
中央处理单元(CPU)19标准型 CPU�技术规范(标准型CPU 312至CPU 317-2 DP) (续)型号CPU312CPU 314CPU 315-2 DPCPU 317-2 DP订货号6ES7 312-1AE13-0AB06ES7314-1AG13-0AB06ES7 315-2AG10-0AB06ES7317-2AJ10-0AB0嵌套深度-每个优先级88816-在一个错误处理OB中增加4444CPU/处理时间 • 位指令,小0.2µs0.1 µs0.1 µs0.05 µs• 字指令,小0.4 µs0.2 µs0.2 µs0.2 µs• 整数运算,小5 µs2µs2 µs0.2 µs• 浮点数运算,小6 µs3 µs3 µs1 µs• 定时/计数指令,小定时器/计数器及其保持特性S7计数器-数量128256256512• 其中无电池可保持-可调节√√√√• 保持性-可调节√√√•计数范围-可调节√√√√-下限0000-上限999999999999IEC计数器-可用性√√√√-类型SFB,没有数量限制(只受工作存储器限制)SFB,没有数量限制(只受工作存储器限制)SFB,没有数量限制(只受工作存储器限制)SFB,没有数量限制(只受工作存储器限制)