四、任务实施

四、任务实施

1.按钮动作和显示

在任务一中我们已经把按钮、锁定图标和文字显示对象创建完毕,图标如下:978-7-111-54974-1-Chapter02-116.jpg978-7-111-54974-1-Chapter02-117.jpg,图标有3种对象构成:按钮、锁定解锁图标、文字指示。这里我们需要一进步处理来完成动画连接。我们以中区生活水泵1为例来说明要实现的效果,效果如下:

1)若当前处于自动模式下,则手动按钮不可单击,同时呈现锁定图标,代表按钮被锁定不能单击。若泵运行则显示“ON”,按钮显示“关”,泵停止则显示“OFF”,按钮显示“开”。

2)手动模式下,呈现解锁图标,表示按钮可以单击。若泵运行则显示“ON”,按钮显示“关”,此时,按下按钮泵停止运行,同时文字显示“OFF”,指示当前状态,按钮显示“开”表示,再次单击按钮则泵起动。

实现方法概述:这里实现效果的3种对象中,按钮、锁定解锁图标、文字指示分别都有两个,以按钮为例,一个泵我们新建了两个按钮,分别在对象属性中把显示字符修改为978-7-111-54974-1-Chapter02-118.jpg978-7-111-54974-1-Chapter02-119.jpg,同时调整两个按钮大小一致、中心对齐,这样对外我们看到的只有一个按钮,要么“开”按钮,要么“关”按钮。我们利用动画连接中“杂项”中的“隐藏”动画来实现,当按下“开”按钮之后,泵起动,同时通过动画连接设置让“开”按钮隐藏,这样置于“开”按钮下方的“关”按钮就呈现出来。当按下“关”按钮之后,泵停止运行,同时让“关”按钮隐藏,“开”按钮隐藏的条件不满足,“开”按钮重新出现。

同样道理我们可以让解锁和锁定图标分别大小一致、中心对齐,也利用“隐藏”动画来实现图标随着模式变化而显示不同的图标。同样道理,泵的运行指示文字也是一样的实现原理。

(1)按钮的隐藏

由上述分析我们得知,当泵运行时,“开”按钮隐藏,监控画面上只有“关”按钮,单击“关”按钮,泵停止。当泵停止时,“关”按钮隐藏,监控画面上只有“开”按钮,单击“开”按钮,泵运行。而泵运行的判断条件是PLC中I0.0信号为1,泵停止的判断条件是I0.0信号为0,而PLC中I0.0对应力控数据库中的点参数pump1_state.PV。因此,只要pump1_state.PV==1,则泵运行,“开”按钮隐藏;只要pump1_state.PV==0,则泵停止,“关”按钮隐藏。

我们选中“开”按钮,双击,在弹出的“动画连接”对话框中勾选“隐藏”后自动弹出“可见性定义”对话框,如图2-4-1所示,单击“变量选择”按钮,在弹出的“变量选择”对话框(见图2-4-2)中选择点“pump1_state”,选择参数“PV”,单击“选择”按钮,则“可见性定义”对话框中自动出现“pump1_state.PV”,我们把条件写上,即“pump1_state.PV==1”,在何时隐藏中点选“表达式为真”,即可。这样当表达式“pump1_state.PV==1”为真,则“开”按钮隐藏。

978-7-111-54974-1-Chapter02-120.jpg

图2-4-1 “可见性定义”对话框

978-7-111-54974-1-Chapter02-121.jpg

图2-4-2 变量选择

同样道理我们选中“关”按钮,双击,在弹出的“动画连接”对话框中勾选“隐藏”后自动弹出“可见性定义”对话框,单击“变量选择”按钮,在弹出的“变量选择”对话框中选择点“pump1_state”,选择参数“PV”,单击“选择”按钮,则“可见性定义”对话框中自动出现“pump1_state.PV”,我们把条件写上,即“pump1_state.PV==0”,在何时隐藏中点选“表达式为真”,即可。这样当表达式“pump1_state.PV==0”为真,则“关”按钮隐藏。

添加完一个泵的起停按钮后添加其他泵的起停按钮的隐藏效果,操作步骤相同,唯一的区别就是表达式中的变量不同。泵2对应的是“pump2_state.PV”,泵3对应的是“pump3_state.PV”,泵4对应的是“pump4_state.PV”,其他完全相同。

(2)按钮的动作

手动模式下当鼠标左键按下“开”按钮后泵起动,当鼠标左键按下“关”按钮后泵停止。为了实现该效果我们需要给按钮添加“触敏动作”中的“左键动作”。以泵1为例,当泵要运行,则PLC中“泵1起动按钮M”有一个脉冲信号即可。当泵要停止运行则PLC中“泵1停止按钮M”有一个脉冲信号即可停止。这里“泵1起动按钮M”信号对应力控数据库中的点参数“pump1_run.PV”这里“泵1停止按钮M”信号对应力控数据库中的点参数“pump1_stop.PV”

因此,我们在“开”按钮的左键动作中添加脚本,让“pump1_run.PV”=1,在“关”按钮的左键动作中添加脚本“pump1_stop.PV”=1,即可实现手动控制效果。

具体步骤如下:

选中中区生活水泵1“开”按钮,双击,在弹出的“动画连接”对话框中勾选“左键动作”后自动弹出“脚本编辑器”,我们在默认的“按下鼠标”编辑区中输入“pump1_run.PV=1”即可实现开泵的效果,这里的变量也可通过工具栏上的978-7-111-54974-1-Chapter02-122.jpg变量选择按钮来选择,避免输入错误。

同样道理,选中中区生活水泵1的“关”按钮,双击,在弹出的“动画连接”对话框中勾选“左键动作”后自动弹出“脚本编辑器”,我们在默认的“按下鼠标”编辑区中输入“pump1_stop.PV=1”即可实现关泵的效果。

泵1的“开”“关”按钮的动作添加完之后,泵2、泵3、泵4的动作添加与此类似,唯一的不同是对应变量分别为pump2_run.PV、pump2_stop.PV、pump3_run.PV、pump3_stop.PV、pump4_run.PV、pump4_stop.PV。

(3)按钮的锁定

自动模式下,手动按钮应该被锁定,无法单击。该动画效果由“动画连接”中“杂项”中的“禁止”动画来实现。自动模式下PLC中的手自动切换按钮的输入I1.5有信号,I1.5为1。该信号通过实时数据库中的“数据连接”已经采集到man_auto.PV中,因此只要man_auto.PV的值为1则运行模式即为自动模式。下面我们以泵1的起停按钮为例介绍。

选中中区生活水泵1的“开”按钮,双击,在弹出的“动画连接”对话框中勾选“禁止”后自动弹出“允许/禁止定义”对话框。在该对话框中进行设置即可,如图2-4-3所示。

1)单击“变量选择”后的下拉按钮,选择变量man_auto,点参数选择PV,单击“确定”按钮则表达式中自动出现“man_auto.PV”。

2)在表达式输入框中补充为完整的表达式为“man_auto.PV==1”。

3)在何时禁止选项中点选“表达式为真”即可。

978-7-111-54974-1-Chapter02-123.jpg

图2-4-3 “允许/禁止定义”对话框的表达式设置

中区生活水泵1“关”按钮的操作步骤和表达式内容与“开”按钮的处理方式完全一致。

同样道理可以为其他3个泵添加禁止条件,步骤一样和表达式都一样。

(4)锁定解锁图标的显示和隐藏

解锁图标978-7-111-54974-1-Chapter02-124.jpg和锁定图标978-7-111-54974-1-Chapter02-125.jpg可以非常直观地显示出当前按钮的锁定状态,在出现解锁图标时表示按钮可以单击,当出现锁定图标时表示当前处于自动模式下,按钮无法单击。要实现该效果我们也是利用对象“动画连接”中的“隐藏”动画来实现。这两个图标叠放在一块,当自动模式下,解锁图标隐藏,锁定图标出现。当手动模式下,解锁图标出现,锁定图标隐藏。我们以中区生活水泵1为例来说明具体操作。

选中中区生活水泵1解锁图标978-7-111-54974-1-Chapter02-126.jpg,双击,在弹出的“动画连接”对话框中勾选“隐藏”后自动弹出“可见性定义”对话框,如图2-4-4所示,单击“变量选择”后面的下拉按钮,在弹出的“变量选择”对话框中选择点“man_auto”,选择参数“PV”,单击“选择”按钮,则“可见性定义”对话框中自动出现“man_auto.PV”,我们把条件写上,即“man_auto.PV==1”,在何时隐藏中点选“表达式为真”,即可。这样当表达式“man_auto.PV==1”为真,则解锁图标隐藏。

同样道理我们选中锁定图标978-7-111-54974-1-Chapter02-127.jpg,双击,在弹出的“动画连接”对话框中勾选“隐藏”后自动弹出“可见性定义”对话框,如图2-4-5所示,单击“变量选择”后面的下拉按钮,在弹出的“变量选择”对话框中选择点“man_auto”,选择参数“PV”,单击“选择”按钮,则“可见性定义”对话框中自动出现“man_auto.PV”,我们把条件写上,即“man_auto.PV==0”,“man_auto.PV==0”

978-7-111-54974-1-Chapter02-128.jpg

图2-4-4 解锁图标的可见性定义表达式

978-7-111-54974-1-Chapter02-129.jpg

图2-4-5 锁定图标的可见性定义表达式

代表当前模式为手动控制模式,在何时隐藏中点选“表达式为真”,即可。这样当表达式“man_auto.PV==0”为真,则锁定图标隐藏。

(5)泵运行文字指示的显示和隐藏

泵运行文字指示对象978-7-111-54974-1-Chapter02-130.jpg978-7-111-54974-1-Chapter02-131.jpg分别是由一个矩形和文本对象两个对象构成的一个组合对象,在画面组态中我们通过“打成组”操作已经把两个对象打成了一个对象。当泵运行时978-7-111-54974-1-Chapter02-132.jpg出现进行指示。当泵停止时978-7-111-54974-1-Chapter02-133.jpg出现进行指示。界面上每次只能出现一个文字指示。该效果我们同样可以让两个对象叠放,每次只显示一个,让另一个隐藏来实现。

这里我们仍以泵1为例,PLC中泵1的运行状态数据采集由I0.0来完成,当I0.0有信号即I0.0为1,表示泵1运行,当I0.0无信号即I0.0为0,表示泵1停止运行。由任务三中的数据库点表我们知道,泵1的运行状态信号力控采集到数据库点pump1_state的点参数PV中。这里I0.0为1,则pump1_state.PV为1,I0.0为0,则pump1_state.PV为0,因此,“pump1_state.PV==1”表示泵1在运行,“pump1_state.PV==0”表示泵1停止。

接下来我们完成泵运行文字指示对象的隐藏动画,实现步骤可以参考本任务中“按钮的隐藏”部分,唯一不同的是隐藏条件中“表达式”不一样。

我们选中泵运行指示对象978-7-111-54974-1-Chapter02-134.jpg,双击,在弹出的“动画连接”对话框中勾选“隐藏”后自动弹出“可见性定义”对话框,单击“变量选择”右侧下拉按钮,在弹出的“变量选择”对话框中选择点“pump1_state”,选择参数“PV”,单击“选择”按钮,则“可见性定义”对话框中自动出现“pump1_state.PV”,我们把条件写上,即“pump1_state.PV==0”,在何时隐藏中点选“表达式为真”,即可。这样当表达式“pump1_state.PV==0”为真,即泵停止运行时,泵运行图标隐藏。

我们选中泵运行指示对象978-7-111-54974-1-Chapter02-135.jpg,双击,在弹出的“动画连接”对话框中勾选“隐藏”后自动弹出“可见性定义”对话框,如下图所示,单击“变量选择”右侧下拉按钮,在弹出的“变量选择”对话框中选择点“pump1_state”,选择参数“PV”,单击“选择”按钮,则“可见性定义”对话框中“表达式”中自动出现“pump1_state.PV”,我们把条件写上,即“pump1_state.PV==1”,在何时隐藏中点选“表达式为真”,即可。这样当表达式“pump1_state.PV==1”为真,即泵运行时,泵停止图标隐藏。

泵2、泵3、泵4的运行停止文字指示实现的方式与此相同,不同的是表达式中的变量分别为pump2_state.PV、pump3_state.PV和pump4_state.PV。

按钮动作和显示的所有设置完成后,需要把按钮、图标、文字指示分别设置为大小相等、中心对齐,这样才能显示出每次只显示一种状态的动画效果。

2.泵运行状态颜色显示

上位机监控要求实现当泵运行时泵体为绿色,泵停止时泵体为红色,当泵故障时泵体红色闪烁。以上这些泵运行状态显示的效果,可以通过对象“动画连接”中的“颜色动画”来实现。以泵1为例,我们进行介绍。

泵1故障的信号由PLCI0.1来采集,故障时I0.1为1,泵正常时I0.1为0。由任务三中的数据库点表我们知道,泵1的故障信号力控采集到数据库点pump1_fault的点参数PV中。因此,泵1故障时“pump1_fault.PV==1”为真。

经过按钮动作和显示动画效果实现的分析中我们知道pump1_state.PV==1时泵1运行,pump1_state.PV==0时泵1停止。以上分析是我们设置动画效果的前提和基础。下面我们来具体实现泵运行状态颜色显示动画。

(1)泵运行停止颜色指示

选中泵1978-7-111-54974-1-Chapter02-136.jpg,双击,在弹出的“动画连接”对话框中勾选“条件”后自动弹出“颜色变化”对话框,如图2-4-6所示,单击“变量选择”右侧下拉按钮,在弹出的“变量选择”对话框中选择点“pump1_state”,选择参数“PV”,单击“选择”按钮,则“颜色变化”对话框中“表达式”中自动出现“pump1_state.PV”,我们把条件写上,即“pump1_state.PV==1”默认“值为真时颜色”为红色,“值为假时颜色”为绿色。修改“值为真时颜色”为绿色,“值为假时颜色”为红色,表示“pump1_state.PV==1”成立时即泵运行时泵颜色为绿色,不成立时为红色。要修改颜色,只需要单击对话框中的颜色块,在弹出的颜色选择框中选择需要的颜色即可,如图2-4-7所示。

978-7-111-54974-1-Chapter02-137.jpg

图2-4-6 颜色变化表达式

978-7-111-54974-1-Chapter02-138.jpg

图2-4-7 选择颜色

(2)泵故障颜色指示

选中泵1978-7-111-54974-1-Chapter02-139.jpg,双击,在弹出的“动画连接”对话框中勾选“闪烁”后自动弹出“闪烁”对话框,如图2-4-8所示,单击“变量选择”右侧下拉按钮,在弹出的“变量选择”对话框中选择点“pump1_fault”,选择参数“PV”,单击“选择”按钮,则“闪烁”对话框中“条件”框中自动出现“pump1_fault.PV”,我们把条件写上,即“pump1_fault==1”。

978-7-111-54974-1-Chapter02-140.jpg

图2-4-8 “闪烁”对话框

闪烁有两种实现方式,一种是闪烁时泵忽隐忽现,对应对话框中“或隐或现”选项;另一种是闪烁时泵本身不消失,只是泵本身的填充颜色在有规律地突变,形成闪烁效果,对应对话框中“颜色变化”选项。这里我们选择“颜色变化”。

填充颜色默认为绿色,这里修改为红色。闪烁频率有“慢、适中、快”3种速度可选,我们选择适中,单击“确定”按钮即可完成泵运行状态颜色显示效果的添加。

同样道理我们可以为泵2、泵3、泵4添加泵运行状态颜色显示效果,步骤相同,修改“闪烁”对话框中“条件”框中变量的名称即可。泵2、泵3、泵4故障对应的数据库点参数分别为“pump2_fault.PV”“pump3_fault.PV”和“pump4_fault.PV”。

3.液位显示

PLC中我们采集了中、高区水箱和生活水箱3个水箱的液位值分别为存放在VD32、VD36和VD40中,单位为米,在力控数据库中点参数mid tank level.PV、high tank lev-el.PV和tank level.PV分别采集PLC中VD32、VD36和VD40的值。我们在进行液位显示时只要把mid_tank_level.PV、high_tank_level.PV和tank_level.PV的值在监控画面中显示出来就能实现水箱液位的实时显示。由于液位值是模拟量,因此,在实现时我们通过对象“动画连接”中的“数值输出→模拟”来实现。

以中区水箱液位为例。液位显示的对象为“##.##”,选中该对象,双击,在弹出的“动画连接”对话框中勾选“数值输出→模拟”,在自动弹出的“模拟值输出”对话框(见图2-4-9)中选择要显示的变量值即可。这里我们选择mid_tank_level.PV,单击“确定”按钮即可完成液位显示动画的添加。

978-7-111-54974-1-Chapter02-141.jpg

图2-4-9 “模拟值输出”对话框

添加高区水箱和生活水箱的液位显示动画与中区水箱的添加步骤和过程一样,只不过在变量选择时要分别选择high_tank_level.PV和tank_level.PV。

4.报警液位显示和输入

以中区水箱为例,中区水箱的4个报警液位HH、HI、LO、LL的初始值如下:HH=2.6m(溢流水位),HL=2.0m(生活泵停泵水位),LO=1.0m(生活泵起泵水位),LL=0.8m(水位过低)。这里我们要实现的动画效果是,在监控画面中能实时看到水箱的报警液位值,同时可以实现手动修改这些报警值,若要修改HH为2.4m,则界面中应可以直接输入。

3个水箱液位的报警液位值分别由数据库点high_tank_level、mid_tank_level和tank_level的点参数HH、HL、LO、LL来采集和保存,因此,这里要实现报警液位的显示和输入,只需要显示液位点参数HH、HL、LO、LL的值即可。要修改报警液位的值也只需要修改这些点参数的值即可实现报警液位的修改。

这里实现每个报警液位的显示和输入使用两个对象来实现,一个文本对象“##.##”和一个矩形对象,让两者中心对齐。文本对象负责数值输出,矩形对象负责数值输入。

这里以中区水箱的报警液位为例进行说明。

首先添加HI液位的显示值,双击“##.##”选中该对象,双击,在弹出的“动画连接”对话框中勾选“数值输出→模拟”,在自动弹出的“模拟值输出”对话框中选择要显示的变量值即可。这里选择mid_tank_level.HI,单击“确定”按钮即可完成液位显示动画的添加。接下来选中矩形对象,双击,在弹出的“动画连接”对话框中勾选“数值输入→模拟”,在自动弹出“数值输入”对话框中选择要改变的变量值即可。这里选择mid_tank_level.HI,同时勾选“带提示”,这样“提示信息”栏就由灰色变为可编辑,输入“请输入停泵水位”,单击“确定”按钮即可。保存修改,运行系统后,我们单击矩形输入框,可以看到弹出“数值输入”对话框,如图2-4-10所示,输入新的报警液位设定值即可。

同样道理,可以添加HH、LO、LL液位的显示和输入动画效果。

完成中区生活水箱后,接续添加高区水箱和底层生活水箱的报警液位显示和输入动画即可,步骤相同,需要注意的是要正确输入液位显示和输入的变量。

978-7-111-54974-1-Chapter02-142.jpg

图2-4-10 “数值输入”对话框

5.泵运行时间显示

监控画面中要能实时监测到4个水泵的运行时间,需要把PLC中计算的泵运行时间分别显示在监控画面中,从任务三中的数据库点表中知道,力控实时数据库中的点参数pump1_hour.PV、pump2_hour.PV、pump3_hour.PV和pump4_hour.PV分别保存着4个泵的运行时间,单位为小时,只要把这4个值在界面中显示出来即可。由于泵的运行时间是模拟量,因此实现过程与本章第3节中液位显示的实现过程类似。

这里泵的运行时间显示是通过对象“######.###”来实现的,为该对象添加“数值输出→模拟”动画效果即可,在变量选择时分别为4个泵选择

pump1_hour.PV、pump2_hour.PV、pump3_hour.PV和pump4_hour.PV即可。

6.工作模式显示动画

工作模式显示动画要求在监控画面中能正确显示当前的运行模式,这里要求既要有模拟开关的指示,又要有文字的指示,文字指示是指当处于自动模式时有文字指示“自动”,当处于手动模式时有文字指示“手动”。模拟开关指示是指,利用图库中的开关图标978-7-111-54974-1-Chapter02-143.jpg来指示,当处于自动模式时开关打到“自动”档,当处于手动模式时开关打到“手动”档。

(1)工作模式模拟开关指示

选中开关对象,双击,在弹出的“开关向导”对话框如图2-4-11所示中的“变量名”中选择变量man_au-to.PV,其他选项的设置已经在任务一中完成。需要注意的是,这里开关向导中的开对应变量的值为1,关对应变量的值为0,在本项目中man_auto.PV为1时为自动模式,为0时为手动模式,因此在“开文本”中填写的是“自动”,“关文本”中填写的是“手动”。

978-7-111-54974-1-Chapter02-144.jpg

图2-4-11 开关向导

(2)工作模式文字指示

用文字来正确指示当前的工作模式需要一个转换,因为采集到的是数值,man_auto.PV为1时为自动模式,为0时为手动模式,而要在界面中显示文本,因此,这里需要定义一个字符型中间变量,通过判断采集到的不同的值来给该中间变量赋不同的字符来实现,最后在监控画面中显示该字符型变量的值即可。操作步骤如下:

1)新建字符型中间变量。

在工程项目导航栏“项目→变量→中间变量”中双击中间变量,弹出如图2-4-12所示的“变量定义”对话框,分别填入变量名“man_auto_ind”、说明文本框中填“手自模式文字指示”,类型选择“字符型”,类别选择“中间变量”,其他使用默认配置即可。

2)编写转换脚本。

在工程项目导航栏“项目→全局脚本→动作”中双击“应用程序动作”,在弹出的脚本编辑器的“程序运行周期执行”编辑区中输入如下语句,编译保存即可。

//把手自模式的0和1转换为文字指示。

978-7-111-54974-1-Chapter02-145.jpg

978-7-111-54974-1-Chapter02-146.jpg

图2-4-12 “变量定义”对话框

3)添加显示动画。

在界面中通过“#####”对象来显示当前工作模式的文字指示。让该对象显示字符型中间变量“man_auto_ind”的值即可。

双击“#####”对象,在“动画连接”对话框中勾选“数值输出→字符串”,在弹出的“字符输出”对话框(见图2-4-13)中选择变量“man_auto_ind”,在“变量选择”对话框中要点选“全局→中间变量”才能看到该变量,因为在“实时数据库”中没有该变量。

7.管道中水流模拟动画

管道中有水流流动时应该有动画效果,显示水流在流动,这里主要通过动画连接中的“流动属性”来实现。我们用泵运行的信号来作为是否有水流的判断标志,若泵运行则管道中水流动画开始动作。管道这里使用矩形来模拟。由数据库对照表得知泵1运行状态指示信号是pump1_state为1,停止状态指示信号为pump1_ state为0。泵2运行状态指示信号是pump2_state为1,停止状态指示信号为pump2_state为0。

978-7-111-54974-1-Chapter02-147.jpg

图 2-4-13

a)“字符输出”对话框 b)“变量选择”对话框

这里需要注意的细节是泵1起动和泵2起动时水流动的路径不同,如图2-4-14所示,虚线所示的管道1和管道2只有在泵2运行时才有水流动,管道3和管道4只有在泵1运行时才有水流动,而其余部分管道泵1和泵2任一个运行时都有水流动。分析后得知管道中的不同部分动画效果的条件不同,因此,在条件不同的管道中需要用多个矩形来构成,若只用一个矩形来模拟管道无法实现上述动画效果。需要针对任务一中组态的画面进行局部修改以适用动画效果的要求,把水平的主管道5和竖向的主管道6用两个矩形对象来表示。

我们选中管道3中的一个矩形对象,双击,在弹出的“动画连接”对话框中勾选“流动属性”,弹出“流动属性”对话框,在“流动属性”对话框中我们要填写“条件”“流体外观”“流动速度”“流动方向”以及“只有流动时显示”。

1)条件:用于设定流动启动的条件判断语句。其值为真时管道中才有流动效果。

如图2-4-14所示管道3和管道4只有在泵1运行时才有水流动,因此管道3和管道4的条件为“pump1_state.PV==1”。管道1和管道2只有在泵2运行时才有水流动,同理管道1和管道2的条件为“pump2_state.PV==1”。

而对于管道5和管道6,只要泵1和泵2任一个运行时都有水流动,因此条件应该填写为“pump1_state.PV==1||pump2_state.PV==1”。

高区水箱的管道水流属性的条件可以参照中区水箱的管道水流属性的条件进行设置,这里不再进行表述。

设置完毕后的运行的效果如图2-4-15和图2-4-16所示。

978-7-111-54974-1-Chapter02-148.jpg

图2-4-14 水流流动路径分析

978-7-111-54974-1-Chapter02-149.jpg

图2-4-15 泵1流动效果

978-7-111-54974-1-Chapter02-150.jpg

图2-4-16 泵2流动效果

2)流体外观:可以设定流体颜色、高度、宽度和流体间距。

在管道中水流动画是通过在管道中设置移动的流体来实现,但流体的颜色、高度、宽度和各个流体之间的间距是可以手动设置的。设置合理可以非常逼真地模拟水流效果。若设置数值不合适则会造成流体外观与管道不匹配、流体粘连在一起无法模拟水流效果等问题,设置流体外观时首先要了解管道对象的高度和宽度等参数。

①颜色一般根据管道中流体的颜色和温度等性质来选择,这里管道中流动的是常温饮用水,因此选择蓝色即可。

②以管道5为例说明流体外观的设置。查看管道5的属性得知管道5高16像素,宽112像素,因此设置流体对象的高为7,宽为17,间距为10。这里参数不是唯一的,只要显示的流动效果与管道相适应就是合适的流体外观。流体外观中高、宽、间距的含义见图2-4-17所示。

978-7-111-54974-1-Chapter02-151.jpg

图2-4-17 “流体外观”对话框中高度、宽度、间距的含义

3)流体速度:有慢、适中和快3种选择。

流体速度有慢、适中和快三档可选,一般根据管道中液位的流速来确定,这里选择“适中”即可。

4)流动方向:可以选择从左到右/从上到下和从右到左/从下到上。

在流动方向中可以选择管道中水流的流动方向,若管道是水平的则有“从左到右”和“从右到左”两个方向可选;若管道是竖向放置的则有“从上到下”和“从下到上”两个方向可选。这里为中区供水区的管道选择合适的水流流动方向即可。

5)只有流动时才显示:流动条件成立时显示该对象。

如图2-4-18所示,该条件是一个勾选项,若选择“只有流动时才显示”,则当有水流流动时管道中有流体的动画,若无水流动则管道中的流体消失,不显示。若不勾选该项,则当无水流动时管道中的流体不消失,只不过有移动状态变为静止状态,我们可以根据具体情况来选择。这里勾选该项。

8.水箱中的液位动画

3个水箱中的液位分别存放在数据库中的点mid_tank_level、high_tank_level和tank_level的点参数PV中。这里要实现当水箱中液位值发生变化时,监控画面中能显示水箱中液位变化的动画,简单地说就是监控画面中水箱液位随控制器中实际液位采集值而变化。这里主要通过动画连接中的颜色相关动作中的“百分比填充→垂直填充”来实现,以中区水箱为例进行说明。

978-7-111-54974-1-Chapter02-152.jpg

图2-4-18 流动属性

(1)预处理

1)拆开组。

水箱使用的图库中的现有对象,在该对象中,液位显示窗口和罐体是一体的,因此需要把液位显示窗口和罐体分离,具体操作是选中中区水箱右键“组合拆分→拆开组”。

2)解开智能单元。

选中水箱中的液位显示窗口,双击,在弹出的“动画连接”对话框(见图2-4-19)中发现“百分比填充”动画是灰色的无法勾选,无法进行动画设置。主要是因为该液位显示窗口对象是一个智能单元,选中该对象,单击右键,选择“组合拆分→解开智能单元”,即可对该对象中的每一个构成对象进行动画设置。

3)调整液体对象尺寸。

这里调整液体对象的高度,让液体对象与观察窗的尺寸相等即可,这样在液位变化时能看到液位在水箱中变化的完整动画效果。

978-7-111-54974-1-Chapter02-153.jpg

图 2-4-19

a)“动画连接”对话框 b)观察窗和液体对象

(2)设置液位动画

预处理完成后,选中液体对象,双击,在“动画连接”对话框中勾选“百分比填充→垂直填充”,在弹出的“垂直百分比填充”对话框中设置合适的参数即可,如图2-4-20所示。

1)表达式/变量选择:变量名称或表达式,选择要进行连接的变量名称。

这里选择“mid_tank_level.PV”,表示该对象的垂直百分比填充量随着该变量的值变化而变化。

2)填充到最大时值:当变量或表达式达到此值时,图形对象的填充形状达到最大。

中区水箱的液位最大值为3m,因此这里填写3,表示当表达式的值为3时,对象的填充形状达到最大。

978-7-111-54974-1-Chapter02-154.jpg

图2-4-20 百分比填充

3)填充到最小时值:当变量或表达式达到此值时,图形对象的填充形状达到最小。

中区水箱的液位最小值为0,因此这里填写0,表示当表达式的值为0时,对象的填充形状达到最小。

4)最大填充(%):图形对象的填充形状达到最大时填充高度与原始高度的百分比,输入范围为0~100。

这里填写100,表示当图像填充形状最大时填充高度完全填满整个图形。

5)最小填充(%):图形对象的填充形状达到最小时填充高度与原始高度的百分比,输入范围为0~100。

这里填写0,表示当图像填充形状最小时填充高度为0。

6)背景色:此项用于设定图形对象在运行时显示的背景颜色。

单击颜色框内区域出现调色板窗口,选择一种颜色作为背景色。在运行时,填充过程采用图形对象原始颜色覆盖背景色的方式进行。

7)参考点:对于垂直填充连接,参考点决定填充进行的方向。

如果参考点为下面,参数或表达式值由小变大时,填充区域由下至上增大。如果参考点为上面,参数或表达式值由小变大时,填充区域由上至下增大。这里液位是由小自上逐渐增加的,因此选择参考点为“下面”。

中区水箱液位动画设置完成后,分别设置高区水箱和生活水箱的液位动画,步骤一样,唯一需要注意的是填充最大值的处理上,由于生活水箱液位的最大值为5m,因此生活水箱的填充最大值为5。