11.1 创建可视化界面
“添加对象”-->“可视化”,如图 11.2中的 a)所示。在弹出的视图对话框中输入可视化视图名称,如“Visualization”,如图 11.2 中的 b)所示。

图11.2 a:添加对象

图11.2 b:输入可视化名称
11.2 可视化工具
11.2.1 可视化工具箱
在可视化工具箱界面内,可以看到六类,基本的,通用控制、报警管理、测量控制、灯/开关/位图、特殊控制以及日期/时间控件(如下图11.3 可视化工具箱),各类别作用如表 11-1 所示。可以通过鼠标将这五大类下的元素拖拽至编辑区,既可以打开这个元素的属性编辑框来编辑各种属性。

图11.3 可视化工具箱
表11-1 常用工具箱的作用
| 工具分类 | 描述 |
| 基本工具 | 提供了如矩形框,圆框等 |
| 通用控制工具 | 通用控制工具 |
| 报警管理 | 报警显示工具 |
| 测量控制 | 提供了如电位器、液位表等显示工具 |
| 灯/开关/位图 | 提供了指示灯及不同类型的开关按钮工具 |
| 特殊控制 | 提供了特殊控制工具如趋势图,ActiveX插件等 |
| 日期/时间控件 | 提供了时间、日历等工具 |
11.2.2 基本操作
-
图片池
“添加对象”-->“图片池”,如图 11.4中的 a)所示。在弹出的视图对话框中输入图片池名称,如“ImagePool”,如图11.4 中的 b)所示。

图11.4 a:添加图片池

图11.4 b:输入图片池名称
双击“文件名”输入框,点击“
”进入“图片选择”界面,浏览并添加本地图片,配置文件处理与变更追踪配置(图11.4 c:图片选择),点击“确定”(图11.4 d:图片添加成功)。

图11.4 c:图片选择

图11.4 d:图片添加成功
双击ID 编辑栏可修改图片ID号,ID以及文件名不支持中文,否则在图片调用时会报错。
-
添加工具
可以通过“编辑区直接绘制工具”及“将工具拖拽到编辑区上”这两种方式添加工具。
-
编辑区直接绘制工具
在工具箱中选择要添加的工具,然后在画面编辑区选择要放置的位置,工件按指定的大小和位置添加到视图编辑区中。
-
将工具拖拽到编辑区上
在工具箱中电机要添加的工具并将其拖拽至画面编辑区上,工具以其默认大小添加到画面编辑区指定区域。
-
工具对齐
选中对齐的工具,鼠标右击选择“对齐”,选择对齐方式,对齐方式见图11.5。

图11.5 工具对齐
-
删除工具
删除工具的方式有两种。
方式1:选中相应工具,电机鼠标右键,选择“删除”;
方式2:选中工具,按下[Delete]键即可。
11.2.3 工具的使用
11.2.3.1 基本工具
基本工具主要包括一些常用的图形制作工具,可以用这些工具制作文本输入/显示框、颜色显示框及图像等,基本工具视图如 11.6 所示。

图11.6:基本工具
-
添加文本输入/显示框
在 MetaFacture 中没有独立的文本框,如要需要制作文本或者数值的显示/输入可以通过添加“矩形/圆角矩形/椭圆”框来实现,如图 11.7 所示。如下详细介绍矩形框的一些常用设置。

图 11.7:矩形/圆角矩形/椭圆
-
创建显示文本框
如要实现数据的显示,需要有两个步骤,步骤1:建立变量映射关系,步骤2:为显示的变量类型做设置,如下详细介绍了这两个步骤。
步骤1:建立变量映射关系
选中工具,通过设置属性中的“文本变量”,点击输入助手进行相关变量的映射。设置完成确认即可,如图 11.8所示。

图 11.8:变量映射
步骤2:显示类型
设置属性中的“文本”或者双击工具,如果在文本中包含%s,则在线模式时,该位置将被变量分类中的“文本”字段中的变量值所替代。除了“s”之外,还可以使用标准 C-库函数 sprintf 中相同的其他格式化字符串,如表11-2所示。
| 格式化输出命令 | 描述 |
| d,i | 十进制 |
| o | 无符号八进制 |
| x | 无符号十六进制 |
| u | 无符号十进制 |
| c | 单个字符 |
| s | 字符串 |
| f | 实数,格式:%.f,精度定义了小数点之后的个数(默认值:6) |
表11-2:文本显示命令
|
注意 如果想显示一个百分号%并与上面提到的格式化字符串进行组合,则必须输入“%%”,例如输入“Rate in %%:%s“,则在线模式时,将显示“Rate in %%:12“(加入文本显示的变量当前值为“12”)。 |
-
插入曲线
如果想在视图中插入曲线,可以通过选择基本控件中的行、折线、贝塞尔曲线和派进行添加,再通过选择曲线上的蓝色端点调整曲线形状,如图11.9所示。

图 11.9:曲线
-
插入图像
如果想要在视图中插入图像,可以将图像控件拖动到主页面。首先在类别栏中选择需要添加图像的类别,之后再选择具体的图像,最后点击“确定”即可,如图11.10所示。

图 11.10:插入图像
-
框架显示
框架用于显示一个或者多个已有的可视化视图,要在框架中插入一个或者多个可视化视图,需要把框架控件拖动到主界面。首先在左侧栏中选中一个已有的可视化视图,之后在右侧栏中点击“添加”即可将单个视图添加到框架,如果需要添加多个视图,只需要选择其他视图再次添加即可,最后点击“确定”即可完成在框架中添加可视化视图,如图11.11所示。

图 11.11:框架配置
11.2.3.2 通用控件
通用控制工具主要包括一些常用的图形制作工具,可以用这些工具制作标签、组合框、表格控制、按钮等,通用控制工具如 11.12 所示。

图11.12:通用控件
-
标签
标签主要用于标记可视化视图,可以通过拖动标签控件到主界面进行添加,并且可以在右侧属性栏中双击“文本”后的空格对标签名称进行修改,同时也可以在下面的“文本属性”栏中修改标签的字体大小、颜色、透明度等属性,如图11.13 所示。

图11.13:标签
-
组合框,整数
如果要创建“组合框,整数”,首先需要需要创建一个文本列表。右键点击“Application”,再点击“添加对象”,选择“文本列表”,如图11.14 所示。

图11.14:创建文本列表
双击新建的文本列表并向列表中添加数据的ID和对应的默认值,如图11.15 所示。

图11.15:文本列表设置
返回到可视化视图界面,将“组合框,整数”控件拖动到主界面,点击控件查看属性,双击“位置”中的“文本列表”的空白处,选择刚刚添加的文本列表“TextList”即可添加一个“组合框,整数”,如图11.16 所示。

图11.16:组合框,整数文本列表
之后进行变量绑定,在主程序定义一个变量:
VAR
iAmp:INT;
END_VAR
点击控件打开属性栏,双击“位置”中的“变量”右侧的空白处打开输入助手,如图11.17 所示。

图11.17:组合框,整数属性
在输入助手中,选择“Application\PLC_PRG\iAmp”,然后点击“确定”即可,如图11.18 所示。

图11.18:组合框,整数变量绑定
设置完成后,在组合框选择字符后会将对应的数值赋值给绑定的变量,例如在可视化界面选择字符“b”就会将b对应的索引2赋值给变量IAmp。运行结果如图11.19和图 11.20所示。

图11.19:可视化界面选择“b”

图11.20:程序中变量iAmp值
-
组合框,数组
“组合框,数组”将数组的值显示为列表框,当用户单击一个条目时,该条目的数组索引被写入一个整数变量。如果想要向 “组合框,数组”中添加一个数据数组,可以首先在主程序“PLC_PRG”中定义一个二维数组变量,并赋予相应的初值,并建立对应写入的行数据整形变量,具体如下:
VAR
nFactor:BYTE;
arrFactor: ARRAY [0..2, 0..4] OF STRING := ['BMW','Audi','Mercedes','VW','Fiat',
'150','150','150','150','100','blau','grau','silber','blau','rot'];
END_VAR
然后返回可视化界面,将“组合框,数组”控件拖动到可视化界面,点击控件配置属性,双击“位置”中的“数据数组”的空白处,点击
打开输入助手,如图11.21 所示。

图11.21:组合框,数组
在输入助手中选择路径“Application/PLC_PRG/arrFactor”,再次点击“确定”即可完成数据数组的添加,如图11.22所示。

图11.22:添加数据数组
同样的方式可以将变量nFactor绑定到组合框。
接下来设置数组列,该属性可以自动根据所链接的数组里来判断有多少个列,并将每个列的属性逐一显示,可以将其都使能。打开扩展“+”符号,可以设置其宽度等相关信息,如图11.23所示。

图11.23:设置列显示信息
完成上述步骤后,设置已经完成,执行程序,在可视化界面选择“Flat,100,rot”这组数据,相对应的数组是第5行元素,组号为4,结果如图11.24和图11.25所示:

图11.24:可视化界面选择“Flat,100,rot”

图11.25:程序中变量nFactor值
-
制表符
如果要使用制表符实现画面跳转,可以将“制表符”控件拖动到可视化主界面,在弹出的“框架配置”界面中添加已有的可视化视图,首先在左侧页面选择一个可视化视图,然后在右侧界面点击“添加”即可完成单个可视化视图的添加,重复操作即可添加多个可视化视图,最后点击“确定”,如图如图11.26所示。

图11.26:制表符中添加可视化视图
添加完成后,点击属性栏的“引用”展开,再次点击刚刚加入的视图名称为视图设置标题,如图11.27所示。

图11.27:标题设置
标题设置完成后,运行程序,点击标题即可跳转到标题的数字所对应的视图,如图11.28所示。

图11.28:运行结果图
-
按钮
如果要通过按钮控制变量,可以先在主程序定义一个需要控制的变量bIsTap,具体定义如下:
VAR
bIsTap : BOOL := FALSE;
END_VAR
将“按钮”拖动到可视化主界面,点击控件,点击右侧属性栏的“输入配置”选项,展开后点击“切换”,双击“变量”后的空白处,点击
选择输入助手,如图11.29所示。

图11.29:按钮属性
选择路径“Application\PLC_PRG\bIsTap”即可将变量绑定到按钮,当按钮按下时变量取反,最后点击“确定”,如图11.30所示。

图11.30:按钮变量绑定
-
组块
组块可以对可视化视图中的控件放入同一个组块进行分组,比如可以把按钮、输入框、指示灯放入同一个组块方便管理,如图11.31所示。

图11.31:组块示例
-
表格控件
表格控件主要用于在表中表示为数组的数据,因此变量的数据类型可以是:一维数组、最大二维数组、数据数组、结构数组或者数组功能块。要用表格控件显示数组,可以在主程序中定义如下数组:
VAR
aiTable : ARRAY[0..3, 0..4] OF INT :=[5(10),5(20),5(30),5(40)];
END_VAR
之后将表格控件拖动到可视化视图主界面,点击控件配置属性,双击右侧 “数据数组”后的空白处点击进入“输入助手”,如图11.32所示。

图11.32:表格控件属性
选择变量“Application\PLC_PRG\aiTable”,最后点击“确定”即可将数组绑定到表格控件,如图11.33所示。

图11.33:数组绑定到表格控件
数组绑定后,运行结果如图11.34所示。

图11.34:运行结果图
-
文本区域
文本区域可以静态输出文本,可以用来进行数据显示和数据修改,如果要显示修改一个浮点型数据,首先在主程序定义一个数据变量:
VAR
fValue : REAL :=1.2345;
END_VAR
之后将文本区域控件拖动到可视化视图的主界面,点击控件,在右侧属性栏的“文本”栏中输入变量的占位符类型:“%6.3f”,其中6代表输入框可以输入6位,3表示小数点后3位,f为浮点型。然后双击“文本变量”右侧空白处进入“输入助手”,如图11.35所示。

图11.35:文本区域属性设置
绑定变量“Application\PLC_PRG\fValue”,最后点击“确定”即可,如图11.36所示。

图11.36变量绑定到文本区域
如果要进行变量修改,可以在属性栏中点击“输入配置”,点击“OnMouseDown”后的“配置…”,如图11.37所示。

图11.37:鼠标按下输入配置
在输入配置中双击“写变量”,输入类型选择默认即可,最后点击确定配置完成,如图11.38所示。

图11.38:将写变量绑定到鼠标按下动作
完成上述步骤后,文本区域配置完成,运行结果如图11.39和图11.40所示。

图11.39:数据显示


图11.40:数据修改后的视图和程序运行值
-
滚动栏、滑块和进度栏
可以使用滚动栏或者滑块实现进度栏,首先定义一个整型变量iMovex:
VAR
iMovex : INT ;
END_VAR
首先拖动滚动栏、滑块和进度栏控件到可视化视图主界面,点击进度栏,在属性栏中双击“变量”右侧空白处,点击“输入助手”,如图11.41所示。

图11.41:进度栏属性设置
在输入助手中选择变量“Application\PLC_PRG\iMovex”,点击“确定”即可,如图11.42所示。

图11.42:进度栏变量绑定
然后对滚动栏进行变量绑定,点击滚动栏,在属性栏双击“值”右侧空白处进入输入助手如图11.43所示。

图11.43:滚动栏属性
在输入助手中选择变量“Application\PLC_PRG\iMovex”,与图11.40相同点击“确定”即可。
最后对滑块进行变量绑定,点击滑块,双击属性栏“位置”中“变量”后方的空白处,点击进入“输入助手”,如图11.44所示。

图11.44:滑块属性
在输入助手中选择变量“Application\PLC_PRG\iMovex”,与图11.40 相同点击“确定”即可。
设置完成后,运行结果如图 11.45所示。

图11.45:运行结果图
-
数值调节钮
数值调节钮可以定义变量的范围和间隔,并通过按钮按照间隔对变量增加或者减少,首先在主程序定义需要改变的变量:
VAR
iNum : INT :=0 ;
END_VAR
之后将“数值调节钮”控件拖动到可视化视图的主界面,点击控件,双击属性栏的“位置”中“变量”右侧的空白处进入输入助手如图11.46所示。

图11.46:数值调节钮属性
在输入助手中选择变量“Application\PLC_PRG\iNum”,点击“确定”即可,如图11.47所示。

图11.47:数值调节钮变量绑定
之后点击属性栏中的“位置”中的“间隔”设置变量调节的间隔大小,设置为10。设置完成后点击下方的“值范围”分别设置最小值和最大值分别为0和100,如图11.48所示。

图11.48:数值调节钮变量间隔和范围设置
设置完成后,运行结果如图 11.49所示。

图11.49:运行结果图
-
复选框
复选框用来表示是否选取了某个选项条件,常用于为用户提供具有是/否或真/假值的选项。要实现复选框的功能,首先需要在主程序定义变量:
VAR
bBool1,bBool2,bBool3:BOOL;
END_VAR
然后分别将3个复选框控件拖动到可视化视图主界面,双击控件名称,修改为:Var1、Var2、Var3。点击Var1,双击属性栏的“位置”中“变量”右侧的空白处进入“输入助手”,如图11.50所示。

图11.50:复选框属性设置
进入输入助手后,选择变量“Application\PLC_PRG_\bBool1”,之后点击“确定”即可将变量绑定到复选框,如图11.51所示。

图11.51:复选框变量绑定
同理也可以实现Var2、Var3和bBool2、bBool3的绑定,程序运行后,勾选Var1、Var2或者Var3即可将bBool1、bBool2和bBool3设置为True。
设置完成后,当在可视化视图中选择Var1时变量bBool1取反变为True,如图11.52所示。


图11.52:运行结果图
-
单选按钮
单选按钮为用户提供由两个或多个互斥选项组成的选项集,用户选中某个单选按钮时,同一组中的其他单选按钮将不能被同时选定。要设置单选按钮,需要首先在主程序中定义变量:
VAR
iSelect:INT;
END_VAR
然后将单选按钮控件拖动到可视化视图的主界面,双击属性栏“位置”中“变量”右侧的空白处打开“输入助手”,如图11.53所示。

图11.53:单选按钮属性
进入输入助手后,选择变量“Application\PLC_PRG_\iSelect”,之后点击“确定”即可将变量绑定到复选框,如图11.54所示。

图11.54:单选按钮变量绑定
接着依次点击属性栏中的“单选按钮设置/单选按钮/区域”,再点击“创建新的”来创建多个按键,将按键展开后分别设置对应的“文本”,如图11.55所示。

图11.55:单选按钮属性设置
运行后分别点击单选按键即可将iSelect赋值成为该按键名称对应的值,如按下“Audi”按键后iSelect变成1,运行结果如图11.56所示。


图11.56:仿真结果图
11.2.3.3报警管理
报警管理工具主要包括报警表格和报警条。报警管理工具视图如图11.57 所示。

图11.57 报警管理
-
报警表格
用户可以自定义可视化报警,但必须在MetaFacture 报警配置中预先进行定义。在可视化编辑器中,用户可以通过在工具箱中添加
, 将其拖拽至画面编辑区域;
故完成报警显示需要有两部分的设置,第一,需要在“Application” 中设置报警配置;第二,需要在可视化编辑器中进行设置。
-
“Application”添加报警配置
在配置可视化报警列表前需要先配置报警信息,先在“Application”中添加报警配置,右键选择添加对象,点击“报警配置”,点击确定,如图11.58所示。

图 11.58添加报警配置
所有的报警内容及触发机制均在该报警配置中进行设置,在“Alarm Configuration”中,如图11.59的(a)所示,右键选择“添加对象”,选择“报警类别”及“报警组”等信息,如图11.59的(b)示。

-
报警配置视图 (b) 添加报警配置对象
图11.59
-
设置故障类型
添加报警管理后,自动会将报警分为三类,分别为“Error”,“Info”和“Warning”。它们的主要区别在于报警的优先级及确认方式,配置界面如图11.60所示。
图11.60报警配置
-
Priority:定义想要显示的所有报警的优先级。允许的范围:0~255,最高优先级是“0”,最低有效优先级是“255”。较高或中等优先级的报警通常要求立即确认,而优先级非常低的报警则可能不作要求。尽管生成报警的条件可能已消失(例如,温度上升得过高,然后又降了下来),但在确认之前,报警本身并不会被认为已得到解决。
-
Acknowledgement:报警发生时,操作员(或系统)必须确认报警。确认只是表示有人注意到该报警。这与采取修正操作没有关系,后者可能不会立即发生。它同报警条件是否返回到正常也没有什么关系,有时即便没有任何外界干预,它也可能自行恢复正常,可供选择的确认方式如下所示:
-
REP: 移除导致的原因后报警不激活。
-
ACK: 确认后不激活。时间段确认方法。
-
REP_ACK: 经过(单个)修复和确认后报警不激活。
-
ACK_REP: 经过确认和修复后报警不激活。
-
ACK_REP_ACK: 接收、修复后经过选择性的确认报警不激活。
-
NO_ACK: 不确认。
-
Notification actions:报警动作有变量,执行和调用三种动作可供选择。
-
变量:选择“变量”后系统会自动弹出命令提示,针对该警报信息,用户可以设置对应的变量或表达式。
-
调用:输入要调用的“功能块实例”的名字。
-
执行:输入当报警出现时的“执行文件”名。在“Details”中,可直接输入任意参数调用。
-
报警组
鼠标选中“Alarm Configuration”, 右键选择添加“报警组”,可以对报警信息进行设置,可以在“Observation type”中 可以选择报警触发的类型,如图11.61所示。

图11.61 报警组界面
表3.6.3.1报警触发类型
| 触发类型 |
说明 |
| 数码 |
左侧输入要监视的表达式,右侧输入你要检查的表达式,中间选择想用的操作 符(=或)。 |
| 上限 |
同“数码”一样,但是对于比较操作符>或>=,有选择的使用“滞后%”的定义。 |
| 下限 |
同“数码”一样,但是对于比较操作符 |
| 内范围 |
输入要监视的表达式。“区域”:当监视的表达式到达定义的内范围值时,报警出现。在左侧输入表达式表示下极限,在右侧输入上极限。被监控的表达式显示在不可编辑区域。合理设置操作符,有选择的使用“滞后%”的定义。 |
| 外范围 |
输入要监视的表达式。“区域”:当监视的表达式到达定义的外范围值时,报警出现。在左侧输入表达式表示下极限,在右侧输入上极限。被监控的表达式显示在不可编辑区域。合理设置操作符,有选择的使用“滞后%”的定义。 |
| 更改 |
“表达式”:输入要监视的表达式。当它的值发生变化时报警出现。 |
| 事件 |
这种情况下报警通过应用触发,使用AlarmManager.library的函数。 |
可视化界面11.62所示为可视化编辑区中的报警表格。

图11.62报警表格视图
默认添加的报警表只有2列信息,用户可以根据实际需要添加更多的列,在属性中的 “列”信息中可以添加列,每加完一个列,可以打开列数组信息修改其宽度及列显示的名字,如图11.63所示。

图11.63 列信息修改
报警列表中显示的报警需要操作人员的确认,与确认相关的变量在控制变量中可以进行设置,如图11.64所示。

图11.64 控制变量
-
确认所选变量:如果变量为TRUE, 在报警列表中所选中的报警将会被确认。
-
确认所有可见变量:如果变量为TRUE, 位于警报表格中所有的警报都会被确认。
-
历史:如果变量为TRUE, 警报表格将会转化为历史模式。这意味着将会按照日期顺序将所有警报表格降序排列。任何新事件将会被添加到当前表格中。
-
冻结滚动位置:如果变量为TRUE, 在历史模式下滚动条的当前位置将会被锁定即使有新的警报被激活,滚动条的当前位置也将会被锁定。否则,在这种情况下滚动条会跳转到警报表格的第一行。
-
报警条
警报条是警报表格的简单版本。它只可用于报警组和类的单一的警报可视化,并且特殊 类别条元素属性的“警报配置”。
用户在工具箱中选择“AlarmBanner”,将其拖拽至画面编辑区域,即可实现报警条的工具 添 加 。
具体操作及设置可参考报警表格的设置。
11.2.3.4 测量控件
测量控制工具主要包括一些常用的图形指示工具,例如显示图像栏,仪表盘显示和直方图显示等。测量控制工具如图11.65 所示。

图11.65测量控件
-
显示图像栏
显示图像栏通常用于显示一个在固定区间活动的数值,如液位、压力、温度等变量,如果要使用显示图像栏进行显示,首先需要在主程序定义一个显示变量:
VAR
iOut:INT:=65;
END_VAR
然后,将显示图像栏控件拖动到可视化视图的主界面,点击控件,双击右侧属性栏中“值”右侧的空白处进入输入助手如图 11.66 所示。

图11.66 显示图像栏属性
在输入助手中选择变量“Application\PLC_PRG\iOut”,再点击“确定”即可将变量绑定到显示图像栏,如图 11.67所示。

图11.67 显示图像栏变量绑定
设置完成后,还可以设置显示图像栏的刻度起点、刻度末端、主刻度和子刻度。点击控件打开属性栏,点击展开“刻度”,分别对刻度参数进行设置,如图11.68所示。

图11.68 显示图像栏刻度设置
设置完成后,运行结果如图 11.69所示。

图11.69 运行结果图
-
仪表
仪表可以根据已设定的上限值、下限值对应的相对值、显示变量数值,有3种仪表盘可供选择:90°、180°和360°。接下来以90°仪表为例:
首先将仪表90°控件拖动到可视化视图主界面中,点击控件打开属性栏,双击“值”右侧的空白处打开输入助手,如图11.70所示。

图11.70 仪表属性
之后在输入助手中选择变量“Application\PLC_PRG\iOut”,之后点击确定即可,如图 11.71所示。

图11.71 仪表变量绑定
接下来可以设置仪表的刻度始端、刻度末端和子刻度,点击仪表控件打开属性栏,点击“刻度”展开,分别对刻度参数进行设置,如图 11.72所示。

图11.72 仪表刻度设置
设置完成后,运行结果如图 11.73所示。


图11.73运行结果图
-
电位器
电位器是当电刷沿电阻体移动时,在输出端即获得与位移量成一定关系电阻值或电压,在此,根据滑动的位置,将其转换为对应的数值。下面介绍电位器工具的基本使用方法。首先需要在主程序定义变量:
VAR
iInput:INT;
END_VAR
之后将电位器控件拖动到可视化视图的主界面,点击控件打开属性栏,双击“变量”右侧的空白处打开输入助手,如图 11.74所示。

图11.74电位器属性
在输入助手中选择“Application\PLC_PRG\iInput”,然后点击“确定”即可,如图 11.75所示。

图11.76 电位器变量绑定
接下来设置电位器的刻度始端、刻度末端、主刻度和子刻度,在属性栏中点击 “刻度”展开,分别对刻度属性进行设置,如图 11.77所示。

图11.77 电位器刻度设置
设置完成后,运行结果如图 11.78所示。


图11.78 运行结果图
-
直方图
直方图又称质量分布图,是一种几何形图表,柱状图,它是表示数据变化情况的一种主要工具。用直方图可以比较直观地看出产品质量特性的分布状态,对于分布状况一目了然,便于判断其总体质量分布的情况。下面介绍直方图工具的基本使用方法。
要创建一个直方图,首先需要定义一个数组数据:
VAR
aARRAY:ARRAY[0..8] OF INT:=[100,200,300,400,500,600,800,1000,1200];
END_VAR
然后将直方图控件拖动到可视化视图主界面,点击控件打开属性栏,双击“数据组”右侧空白处打开输入助手,如图 11.79所示。

图11.79 直方图属性
在输入助手中选择“Application\PLC_PRG\aARRAY”,然后点击“确定”即可,如图 11.80所示。

图11.80 直方图变量绑定
接下来设置直方图的刻度始端、刻度末端、主刻度和子刻度,在属性栏中点击 “刻度”展开,分别对刻度属性进行设置,如图 11.81所示。

图11.81 直方图刻度设置
设置完成后,运行结果如图 11.82所示。

图11.82 运行结果图
11.2.3.5 灯/开关/位图
灯/开关/位图控制工具主要包括一些常用的开关和指示灯。灯/开关/位图工具如图 11.83 所示。

图11.83 灯/开关/位图
-
开关
在工具箱中找到“灯/开关/位图”,在其中添加想要选择的接触开关,将其拖拽至画面编辑区域,由于开关的设置基本相同,在此不做重复介绍,只以其中的一种按钮做详细介绍,下文的介绍以拨码开关为例。首先,在主程序中定义开关变量:
VAR
bSwitch_1:BOOL;
END_VAR
将拨码开关拖动到可视化视图主界面,点击控件打开属性栏,双击“位置”中“变量”右侧的空白处打开输入助手,如图 11.84所示。

图11.84 拨码开关属性
在输入助手中选择“Application\PLC_PRG\bSwitch_1”,然后点击“确定”即可,如图 11.85所示。

图11.85拨码开关变量绑定
至此,拨码开关的基本设置已经完成。
-
指示灯
指示灯可以根据布尔型变量的 ON/OFF 使对应的指示灯亮/灭的功能。如果要使用指示灯,可以将指示灯控件拖动到可视化视图的主界面,点击控件打开属性栏,双击“位置”中“变量”右侧的空白处打开输入助手,如图 11.86所示。

图11.86指示灯属性
在输入助手中选择“Application\PLC_PRG\bSwitch_1”,然后点击“确定”即可,如图 11.87所示。

图11.87指示灯变量绑定
完成指示灯变量绑定后,基本设置已经完成,指示灯的颜色可以在属性栏中的“背景” -> “背景图像”进行修改,如图 11.88所示。

图11.88指示灯背景颜色修改
11.2.3.6 特殊控件
特殊控件工具主要包括一些常用的图形指示工具,例如趋势图、ActiveX 元素等。特殊控制工具如图 11.89 所示。

图11.89 特殊控件
-
跟踪
由于趋势图功能是跟踪功能的扩展,因此跟踪功能将和趋势图一同介绍。
-
趋势图
分析控制系统故障常常需要了解控制器数据的变化,有时数据变化是一闪而过的,不容易看出产生故障的原因,利用趋势图可以实现对数据的快速捕获。
-
在可视化编辑区添加趋势图插件
在工具箱中找到“特殊控制”,添加“Trend”, 左键鼠标将其选中,将其拖拽至画面编辑区,如图11.90所示。

图11.90添加趋势图
-
配置趋势图
在可视化编辑区添加趋势图后,会弹出趋势图配置的界面,如图11.91所示。

图11.91 趋势图配置
选中趋势图,单击鼠标右键,选择“编辑趋势记录”,单击后也可以进入趋势图配置界面,图11.92为趋势图的配置界面。该方法与添加趋势图时弹出的配置界面是一致的,如果添加趋势图后想要修改可以通过这种方法。

图11.92 趋势图配置
在趋势配置界面可以设置任务或者按照时间间隔记录,如图11.93(a)所示。选中Trace插件,单击鼠标右键,选择“配置趋势的显示设置”,单击后如图11.93(b)所示,可以设置XY轴以及添加变量。

-
跟踪设置 (b) 显示设置
图11.93 趋势配置
-
配置趋势图控制插件
选中趋势图,单击鼠标右键,选择“插入用于趋势控制的元素”,单击后进入趋势向导页面如图11.94所示。可以选择要添加的按钮及显示框,默认参数将所有控制按钮就选上,点击“OK”,系统自动弹出显示框,如图11.95所示。

图11.94 趋势向导
图11.95 加入插件后的趋势图
-
ActiveX元素
ActiveX 在可视化中可以现实ActiveX 控制,下面介绍ActiveX 元素的基本使用方法。
-
在可视化编辑区添加“ActiveX元素”插件
在“特殊控制”中添加“ActiveX元素”的插件,将其拖拽至可视化编辑区域;点击“属性”中的控件可以通过输入助手来选择不同的插件类型,如图11.96所示。

图11.96 选择插件类型
-
配置“AcctiveX元素”的属性
双击插入的元素可以查看属性,在“属性“中有三种调用方式——初始调用、循环调用及条件调用,如图11.97所示,三者具体区别如下所示。
-
初始调用:初始化时要进行调用的方法可以在这里进行定义,只在第一个周期进行处理。
-
循环调用:可视化中周期调用的方法可以在该属性下进行定义,可以在每个可视化执行周期事件中进行更新。
-
条件调用:附加的一个“条件调用”可以被关联。条件方法调用可以在可视化事件更新的时候进行调用。不同于初始或者循环调用,条件调用可以关联到属性方法。只在条件调用的上升沿进行处理。

图11.97 调用方式
-
进行变量映射
点击“创建新的”可以创建新的触发方式,当菜单展开后,将必要的参数填写至其中,如图11.98所示。

图11.98 变量映射
11.2.3.7 日期/时间控件
日期/时间控件工具主要包括一些常用的时间指示工具,例如日期,时间等。特殊控制工具如图 11.99 所示。

图11.99 日期/时间控件
-
日期/时间选择器
该控件允许可视化用户选择带有时间的日期(在日历中)。
-
在可视化编辑区添加“日期/时间选择器”插件
在工具箱中找到“日期/时间控件”,添加“日期/时间选择器”, 左键鼠标将其选中,将其拖拽至画面编辑区,如图11.100所示。

图11.100 添加日期/时间选择器
-
设置日期/时间选择器的属性
-
设置控件的位置
通过“属性”中的位置可以调整控件的位置和大小。这是基于笛卡尔坐标系的,原点位于窗口的左上角,正水平 X 轴向右延伸,正垂直 Y 轴向下延伸。
-
设置控件的字符串格式
点击“字符串格式”,即可进入输入助手修改不同的格式,如图11.101所示。
例如LTIME带有格式字符串的变量HH:mm:ss.ms.us.ns -->显示:08:15:12.780.150.360;例如LTIME具有限制格式字符串的变量HH:mm -->显示:08:15;例如DATE带有格式字符串的变量yyyy/MM/dd -->显示: 2015/12/17。

图11.101修改字符串格式
-
设计日期/时间选择器或日期选择器
设计日期/时间选择器和日期选择器有两种选项——从类型、明确的,如图11.102所示。从类型表示所有设置根据风格预先配置,而明确的表示设计设置属性可用,即可以自定义日历。

图11.102设计日期/时间选择器
-
模拟时钟
该控件可以显示当前时间,也可以显示随机时间。
-
在可视化编辑区添加“模拟时钟”控件
在工具箱中找到“日期/时间控件”,添加“模拟时钟”, 左键鼠标将其选中,将其拖拽至画面编辑区,如图11.103所示。

图11.103 添加模拟时钟
-
设置模拟时钟的属性
-
设置控件的位置
通过“属性”中的位置可以调整控件的位置和大小。坐标系与日期/时间选择器的控件一致,都采用笛卡尔坐标系。
-
设置时间显示
时间显示分为使用系统时间和变量两种,如图11.104所示。使用系统时间即为显示PLC的系统时间(本地时区),而变量即可设置映射变量来控制时间。

图11.104 时间显示
同时,如图11.104中的缩放类型也有两种:各向异性和各向同性。各向异性表示背景图像缩放到元素的大小高度和宽度相互独立缩放。各向同性表示背景图像被缩放到元素的大小,保持其比例。高度和宽度的比例是固定的。
-
时间范围选择器
该控件提供了用于将趋势显示的时间范围设置为定义时间的可配置按钮。在此过程中,前一次显示的结束时间保持不变,开始时间被调整。
-
在可视化编辑区添加“模拟时钟”控件
在工具箱中找到“日期/时间控件”,添加“时间范围选择器”, 左键鼠标将其选中,将其拖拽至画面编辑区,如图11.105所示。

图11.105添加时间范围选择器
-
设置时间范围选择器的属性
时间范围选择器控件在运行时提供的按钮被定义并配置为一个数组。属性中的“次数”的“提供全部选择”选项表示涵盖所有时间戳的时间间隔。
单击“创建新的”可以将另一个按钮添加到时间选择栏并将数组增加一个条目,如图11.106所示,添加了两个新的按钮。
时间范围选择器其他属性与日期/时间控件属性相似,可以参照上述步骤进行设置。

图11.106 设置次数
11.3 可视化示例
本章节会通过一些小的例程让读者了解到如何建立完整的视图。
11.3.1流水灯显示
要求:实现7位流水灯,通过在可视化界面显示灯量的显示情况;
-
PLC 主程序
在PROGRAM程序中定义灯的初始状态,定时器,时间间隔,位移方向,具体内容如下:
PROGRAM POU
VAR
Lights: BYTE := 16#01;
Timer: TON;
CycleTime: TIME := TIME#1MS;
Direction: BOOL := TRUE;
Light1 : BOOL;
Light2 : BOOL;
Light3 : BOOL;
Light4 : BOOL;
Light5 : BOOL;
Light6 : BOOL;
Light7 : BOOL;
Light8 : BOOL;
END_VAR
// 主逻辑
Timer(IN := NOT Timer.Q, PT := CycleTime);
IF Timer.Q THEN
IF Direction THEN
Lights := SHL(Lights, 1);
IF Lights = 0 THEN
Lights := 1;
END_IF;
ELSE
Lights := SHR(Lights, 1);
IF Lights = 0 THEN
Lights := 16#80;
END_IF;
END_IF;
Timer(IN := FALSE);
END_IF;
Light1 := (Lights AND 16#01) 0;
Light2 := (Lights AND 16#02) 0;
Light3 := (Lights AND 16#04) 0;
Light4 := (Lights AND 16#08) 0;
Light5 := (Lights AND 16#10) 0;
Light6 := (Lights AND 16#20) 0;
Light7 := (Lights AND 16#40) 0;
Light8 := (Lights AND 16#80) 0;
-
创建HMI 界面
方式一:使用“基本工具”控件
步骤1:在Visualization 编辑界面添加“基本控件”控件中选择控件“椭圆”,添加8个圆形控件,如下图:

步骤2:变量映射
a.选择控件设置属性“颜色变量”,通过输入助手,绑定变量POU 程序中的light1变量;
b.设置控件属性“颜色”,分别设置正常状态,告警状态填充颜色;

方式二:使用“灯/开关/位图”控件
步骤1:在Visualization 编辑界面添加“灯/开关/位图”控件中选择控件“灯”,添加灯数:8个,如下图:

步骤2:变量映射
a.选择控件灯设置属性“变量”,通过输入助手,绑定变量POU 程序中的light1变量;

b.修改控件灯的背景颜色。属性选择“背景”,下拉选择控件灯的背景图像颜色;

-
程序运行
完成以上步骤后,所有设置已完成。点击“登录”->"运行“,运行显示结果如下:
方式一:运行结果

方式二:运行结果

11.3.2 小车移动
要求:小车的左右移动,当按下“开始”按键时小车开始移动,按下“暂停”按键时小车停止,当小车移动到最大位置时,小车做往返移动;
-
PLC 主程序
在PROGRAM程序中定义按键,位移方向,小车位置,最远行驶位置,以及当前小车当前状态,具体内容如下:
PROGRAM MoveCar
VAR
bStart : BOOL; // 开始按钮
bPause : BOOL; //暂停按钮
bDirection : BOOL; // 移动方向,TRUE 表示向右,FALSE 表示向左 iPosition : INT := 0;//小车当前位置
iMaxPosition : INT := 1000; //小车最大位置
bMoving : BOOL := FALSE; //小车是否正在移动
END_VAR
//主程序
IF bStart AND NOT bMoving THEN
bMoving := TRUE;
ELSIF bPause AND bMoving THEN
bMoving := FALSE;
END_IF;
IF bMoving THEN
IF bDirection THEN
iPosition := iPosition + 1;
IF iPosition >= iMaxPosition THEN
bDirection := FALSE; //达到最大位置,改变方向
END_IF;
ELSE
iPosition := iPosition - 1;
IF iPosition
bDirection := TRUE; //返回初始位置,改变方向
END_IF;
END_IF;
END_IF;
-
创建HMI 界面
-
小车控件及属性设置
-
小车控件设置
在Visualization 编辑页面使用“基本工具”画出小车的轮廓。选中小车所有控件,右击鼠标选择“组",组成一个小车的图片,如下图;

-
小车属性设置
选中小车控件,设置属性“绝对运行”,通过输入助手将移动x轴 绑定变量“iPosition”,如下图:

-
Button 添加与属性设置
-
Button 添加与名成设置
使用“通用控件”添加两个Button,分别配置Button名称,如下图。

通过“文本属性”设置文本格式。
-
Button 控件变量映射
选中Button,设置属性“输入配置”->“切换”,通过输入助手将移变量 绑定“bStart/bPause”,如下图:

-
程序运行
完成以上步骤后,所有设置已完成。点击“登录”->"运行“,运行显示结果如下:
