各 SiVArc 规则定义不同的生成任务:
• 画面和文本列表规则用于链接生成模板与控制指令。通常是由PLC或者库中功能块触发的,比如FC或者FB.使其连接某些规则
• 变量规则用于控制 SiVArc 所生成 HMI 变量的存储结构。
• 复制规则可触发生成以下 HMI 对象(基于主副本或类型):
o 画面
o C 和 VB 脚本
o 文本列表
o 变量表
更改 SiVArc 规则后,基于该规则生成的对象将在下次生成期间被覆盖。删除规则后,与该规则相关联的已生成对象将在下一次生成时自动删除。
变量规则
变量组层级,就是HMI这边生成变量表后的文件夹规则,
HmiTag.DB.FolderPath:就是和PLC侧DB块一样的文件夹结构
HmiTag.DB.SymbolicName:就是使用PLC侧DB块一样的文件名称
HmiTag.SymbolicName:就是变量表中单个变量的名称。
常用的变量表结构就这两种,当然如果你不想使用文件夹结构,可以将变量组层级留空。
条件中,可以加入该规则限制的生成条件,需要注意的是,加入了限制条件,不符合条件限制的其实最终还是生成了变量表,只不过被规划到了“默认变量表”中,所以PLC中的变量最终是否会通过Sivarc生成HMI的变量表,是由一下决定的
只要勾选即最终会生成变量
此外还需要说明的是,我们在做HMI变量表的时候,如果不希望按照PLC的结构来,而是希望重新定义HMI变量表结构,那么我们也可以这样操作
“”双引号内定义变量表的结构,同时利用条件来进行筛选,即可达到目的,实际生成效果如下:
再具实际意义些的例子
这里看第二条,筛选条件变为了查找变量名称以“_fix2”结尾,这样的话,我们在PLC规划过程中就可以加入HMI变量表的考虑,想让其最终放入那个变量表,就将其变量名称命名为以“_fix2”结尾,如下图
这样最终将生成如下HMI变量表
可见fix2中的包含两个变量,都是以“_fix2”结尾。
另外说明,如果变量规则中不存在符合条件要求的,比如
第三条,实际PLC中并没有设计_fix3结尾的变量,就是说虽然有这条规则,但是却没有实际意义,最终HMI也不会生成fix3的空变量表。这样,我们就可以放心去规划变量规则了(可以规划很多),而不用过度关心当前项目中是否有满足条件的实际变量。
还可以加入规则组,规则组内的所有成员使用同一种条件,而且组内成员还可以单独细化条件。
新的一个问题,当一块HMI同时连接由多个PLC的时候,如果存在变量名称一致的情况,则很大可能在使用SiVArc生成变量表的时候会出现由于变量名称冲突而造成的生成出错的情况。那这时我们应该怎样解决?
这样的话生成的变量名就会以PLC名称作为前缀,就不会出现问题了
此外,不允许在变量表生成规则中使用自定义变量,比如在PLC中的SiVArc中定义了变量
副本规则
其实这个名字翻译的有问题,看英文是什么
最简单粗暴的生成方式,copy, 可以从全局库或者项目库中直接将master copies复制到HMI项目中,这对于一些全局画面,模板文本,标准的页面(系统诊断画面、用户画面、系统工具画面等)直接复制到Sivarc项目中。注意全局画面是不能作为master copies 元素的。
与其他规则不同,复制规则不支持 SiVArc 表达式或条件。虽然从复制规则创建的 HMI 对象与用户程序无关,但与其它生成的对象一样,它们仍然具有到 SiVArc 的链接。因此,如果需要,复制的对象在下一次生成期间再次收集并进行更新。如果您使用的主副本从库中删除,则其之前生成的对象将从项目树中删除。