5. PLC 程序块+WINCC Unified 工厂视图
前面介绍的几种对象化工程方式都是以PLC程序为主导,然后再加上HMI的对象画面从而完成一个对象的完整控制。通过可选软件SIVARC可以自动生成与PLC程序层级相类似的HMI画面层级和变量层级。这种工厂控制层级只是体现到了离线项目中,在线的HMI画面不能体现对象的控制层级,例如通过概览画面可以查看工厂层级中不同控制对象的状态,点击单个对象,可以查看该对象的详细视图。从TIA 博途V16开始,可以通过“工厂视图”控件在HMI中浏览和监控工厂中不同层级的控件,该控件只能在WINCC Unified PC中使用。大家可能对系统诊断有些印象,如果一个模块的一个通道故障,在网络上该站点会出现故障提示符号,通过一级一级的故障提示,可以顺藤摸瓜地找到故障的源头并得到详细的诊断信息,HMI“工厂视图”的功能与该功能类似,由于不是系统已经搭建好的层级,所以需要工程师手动创建工厂层级并分配工厂对象。
一个项目通过“设备”和“工厂对象”标签划分为两个功能区,如图23所示。设备区大家已经属性(V16版本前没有工厂对象区),工厂对象区用于配置工厂层级和对象,在该区创建对象的画面和变量同样在设备区可见。
图23
① 面向对象组态的“工厂对象” 区域
② 工厂对象特定的选项卡,如“接口” 和“可视化”等。
③ 用于为工厂对象组态报警和日志的选项卡
④ 所选对象的属性区域。
⑤ “工厂对象类型”任务卡
与PLC的FB块一样,先有对象类型才能实例化对象,在区域⑤中生成工厂对象类型,然后将对象类型拖放到区域①中实例化不同的控制对象。区域②③④是区域①⑤对象类型或者对象的特定选项和属性,对象类型和对象的选项、属性一样,但是内容不一样,例如接口选项(图23中为“界面”,使用“接口”比较恰当),如果是对象类型,设置的是数据类型;如果是对象,则需要为数据类型赋值实际PLC变量。
下面还是以上面相同的示例介绍工厂对象功能的使用。参考图15,需要在HMI中显示这些控制对象。可以是一幅画面也可以是两幅画面分产线显示,示例选择按产线分两幅画面显示。操作分三部分执行。
(一)创建对象面板
步骤如下:
1) PLC 程序块已经完成并调用。
2) 打开项目库,在类型中选择“添加新类型”。在弹出的对话框中选择“面板”并指定设备为“Unified Comfort Panel/Wincc Unified PC”,名称为“电机”,如图24所示。
图24
3) 打开创建的面板,在“变量接口”标签栏新建两个变量“电流”和“转速”。如图25所示。
图25
4) 在“可视化”标签栏中插入两个I/O域,用于显示电流和转速,并将I/O域的过程值分别连接到接口变量“电流”和“转速”,如图26所示。这样一个电机的面板就创建完成。
图26
(二)创建工厂对象类型
对象面板创建完成后,就需要创建工厂对象类型了,参考图15,示例中对象类型有两个,分别的“数字化生产线”和“电机”。这样就需要在工厂类型栏中创建两个类型。步骤如下:
1) 在项目树下选择“工厂对象”标签,然后点击“显示工厂对象类型”图标或者点击顶层的“工厂对象”,右键选择“显示工厂对象类型”条目,这样才能在任务栏中显示“工厂对象类型”标签。然后在区域⑤中(参考图23)添加两个工厂对象类型,修改名称为“数字化生产线”和“电机”,如图27所示。
图27
2) 双击“点击”对象类型,在区域②的接口标签(参考图23,图中实为界面)中添加该对象类型与外部的接口变量,这个接口变量就相当于FB块的输入/输出接口。接口变量可以是需要连接S7-1500 PLC的外部变量,也可以是内部变量,这里的内部变量就是WINCC的内部变量,仅用于WINCC内部使用。这里需要强调一下,这里所有的参数化都是基于WINCC 的画面对象,所以变量都是WINCC的变量。示例中变量为“电机”,在PLC变量栏选择PLC的数据类型“电机参数”,如图28所示。这里也可以是FB的接口参数。
图28
3) 点击接口变量中的元素“故障”,在下面的“离散量报警”标签栏中可以添加一个报警信息,如图29所示。如果选择非BOOL变量,触发变量将会以红色标记异常。
图29
4) 点击接口变量中的元素“转速”,在下面的“模拟量报警”标签栏中可以添加多个报警信息,如图30所示。
图30
5) 可以给接口变量创建变量记录,用于归档和显示。
注:
上面介绍的是某个变量的离散量报警和模拟量报警,相当于一个变量的属性,而与接口标签同级别的“离散量报警”和“模拟量报警”标签栏中显示的是该对象类型的所有报警信息。
6) 点击“可视化”标签栏,将项目库中创建的HMI对象面板拖放到“将面板拖放在此处”,如图31所示。这样将一个对象面板分配给了工厂对象类型“电机”。然后关联面板接口变量到对象类型的接口变量。
图31
7) 以相同的方式创建对象类型“数字化生产线”。该类型只连接了接口变量,用于显示生产线的状态,所以没有创建HMI对象面板。
注:
必须为对象类型创建接口变量,否则编译将报错。
这样所有的工厂对象类型创建完毕,可以看到对象类型中包含报警信息、画面和变量归档。这里的对象类型相当于PLC中的FB块,类型创建完后就可以对实际的对象进行实例化了。
(三)工厂对象的实例化
1) 点击“工厂对象”下面的“添加新的工厂视图”条目,创建一个工厂视图,例如“工厂视图”,然后可以通过添加节点的方式进行层级的划分,例如添加节点“生产线”。将对象类型“数字化生产线”拖放到节点“生产线”下,修改名称为“数字化生产线A”,以相同的方式添加“数字化生产线B”。然后将对象类型“电机”按实际安装情况拖放到“数字化生产线A/B”下并修改对象名称,如图32所示。
图32
2) 点击图32中的“工厂视图”层级名称,右键选择“分配HMI设备”,这样将工厂层级视图分配给需要显示的WINCC Unified PC。
3) 双击对象“电机_A1”,在区域②(参考图23)的接口标签中为实际对象分配HMI变量。对象类型中只是创建了一个数据类型,这里需要连接实际的变量。变量连接后,报警的触发变量和归档的变量都与实际的PLC变量关联了。
4) 在“可视化”标签栏中,添加新的画面,画面名为“电机_A1”,双击打开该画面,将对象拖放到画面中,如图33所示。
图33
5) 以相同的方法为其它的电机连接PLC变量并创建对象画面。
6) 双击“数字化生产线A”对象,连接PLC变量,在“可视化”标签栏中,添加新的画面,画面名为“数字化生产线A”。双击打开画面,在画面中分别添加“工厂视图”、“报警控件”和“画面窗口”控件,如图34所示。
图34
7) 点击控件“工厂视图”,在设置属性参数。导航至“其它”->“接口”,设置“根节点”为“*::工厂视图/生产线/数字化生产线A”,表示监控对象的范围只是基于数字化生产线A,如果没有设置,则工厂视图将会显示配置的所有对象。
8) 在“伙伴控制”中添加“报警控件”和“画面控件”,并选择“控制参考”为画面中的其它两个控件,如图35所示。这样在控件“工厂视图”中操作相关对象时可以直接调用与之相关的报警和对象画面。
图35
9) 点击“报警控件”,在属性中设置过滤器为“*::工厂视图/生产线/数字化生产线A”,如图36所示,这样该报警控件中只显示与数字化生产线A相关的报警。
图36
10) 以相同的方式添加画面“数字化生产线B”。后期可以将两个画面再与设备总览画面进行关联,例如画面的跳转等,这里不再介绍。
11) 运行画面,如图37所示。点击电机A1,则显示与A1相关的报警信息和画面对象。
图37
工厂视图控件的总结:
工厂视图控件给使用者提供了一个工厂对象层级管理的方法,这个方法是基于HMI画面的,所以对PLC的程序没有过多的要求,但是对于一个项目的管理和程序的持续完善,PLC对象化的编程方式也是必须的。
【声明:本文/视频版权归西门子1847工业学习平台所有,未经允许,不得转载。】