四、任务实施

四、任务实施

1.完成数据库组态——在数据库中添加“点”

根据任务分析得知,需要在数据库中添加的“点”见表1-4-1。

表1-4-1 锅炉供水监控系统创建的数据库点

978-7-111-54974-1-Chapter01-42.jpg

添加“点”的步骤如下:

在工程项目导航栏中,双击“数据库组态”启动组态程序DbManager(如果没有看到导航栏窗口,激活Draw菜单命令“查看”→“工程项目导航栏”)。启动DbManager后出现如图1-4-1所示的DbManager主窗口。

单击菜单条的“点”选项选择新建或双击单元格,出现“请指定节点、点类型”向导对话框,如图1-4-1所示。

选择“模拟I/O点”,然后双击该点类型,出现如图1-4-2所示的对话框,在“点名(NAME)”输入框内输入点名“level”。其他参数如量程、报警参数等可以采用系统提供的默认值。单击“确定”按钮返回,在点名单元格中增加了一个点名“level”。

978-7-111-54974-1-Chapter01-43.jpg

图1-4-1 DbManager主窗口

用同样的方法分别添加其他4个“点”,需要注意的是在选择“点”的类型时,除了“level”之外其他3个点都是“数字I/O点”。

所有点添加完毕后,创建的点如图1-4-3所示。

2.建立数据库点与PLC控制器的I/O连接

本步骤就是要把组态软件中创建的“点”与实际控制器中的变量对应起来。这就需要ForceControl7.0来采集底层硬件中的数据。底层设备的类型有很多种(如PLC、DCS、智能仪表、智能模块、板卡等)。不同类型的硬件和不同厂商的产品需要的产品驱动也不同,它内嵌的I/O驱动程序负责力控与I/O设备的通信,它将I/O设备寄存器中的数据读出后,传送到力控的数据库,然后在运行系统的画面上动态显示。而组态软件的一个重要的特点就是通用性,力控现在支持多个厂家的上千种设

978-7-111-54974-1-Chapter01-44.jpg

图1-4-2 新增数据库“点”对话框

备,基本上常见的设备都能在力控中找到对应的驱动程序,实现数据的采集。对于力控目前暂不支持的设备,可委托力控开发部进行开发。

978-7-111-54974-1-Chapter01-45.jpg

图1-4-3 添加点之后的DbManager

要实现数据库点与PLC控制器的I/O连接,需要完成如下工作:首先需要新建I/O设备,其次在数据库中引用I/O设备。

新建I/O设备的主要操作如下:在开发系统DRAW导航器中选择项目“I/O设备组态”,双击“IO设备组态”,弹出I/O设备管理器IoManager。在IoManager导航器的根结点“I/O设备”下面按照设备大类、厂商、设备或协议类型等层次依次展开,找到所需的设备类型,直接双击设备类型或单击鼠标右键,选择右键菜单命令“新建”,在弹出的设备定义向导对话框中指定各个设备参数,设备创建成功后,会在右侧的项目内容显示区内列出已创建的设备名称和图标。

具体到本例中,由于使用的I/O设备是西门子的S7-200系列PLC,因此在IoManager导航器的根结点“I/O设备”下面找到“SIEMENS(西门子)”并单击打开,找到“S7-200(PPI)”,如图1-4-4所示,由于使用的是串口通信电缆,若使用的是USB口通讯电缆则选择“S7-200(PPI USB)”。双击“S7-200(PPI)”,则弹出设备配置对话框。“设备名称”即新建的逻辑I/O设备的名称,可以在“设备描述”添加上对该逻辑设备的描述。关键是“设备地址”和“通信方式”一定要正确,这里的“设备地址”对应物理设备(S7-200 PLC)的地址,若填写错误则会造成无法从物理设备中读取数据。实际使用的PLC的地址是9,则这里“设备地址”填写9,这样当通信电缆连接好后就可以实现力控中的逻辑I/O设备与物理I/O设备的对应。“通信方式”由于使用的串口通信电缆,因此这里使用默认的“串口(RS232/RS422/RS485)”即可。其他使用默认参数,单击下一步按钮,在图1-4-5所示的对话框中选择PC与PLC通信时使用的COM口即可,这里选择COM1,单击“下一步”按钮,单击“完成”按钮即可成功创建设备,在右侧的项目内容显示区内则列出已创建的设备名称和图标,如图1-4-6所示。在IoManager中选中该设备,右键单击选择“测试”,可以在弹出的测试对话框中进行测试,以验证该逻辑设备是否和物理设备通信成功。

978-7-111-54974-1-Chapter01-46.jpg

图1-4-4 设备配置

978-7-111-54974-1-Chapter01-47.jpg

图1-4-5 添加I/O设备时选择串口

978-7-111-54974-1-Chapter01-48.jpg

图1-4-6 新建的逻辑I/O设备

978-7-111-54974-1-Chapter01-49.jpg

图1-4-7 “I/O连接”对话框

接下来要在数据库中使用该I/O设备来采集PLC中的数据。打开数据库组态,在图1-4-3中,选择点“level”,双击“%IOLINK[I/O连接]”,弹出如图1-4-7所示的“I/O连接”对话框。可以看到刚才添加的I/O设备“S7200PLC”出现在“设备”栏中,接下来要做的是把PLC中的水位值采集上来,保存在点“level”的“PV”(测量值)这个参数中来,首先选中“PV”,然后单击“连接项”的“增加”按钮。

弹出如图1-4-8所示的对话框,由于水位的值在PLC中保存在VW400中,因此,这里选择“V变量内存”,地址为“400”数据格式为16位无符号整数。单击“确定”按钮,在数据库组态界面点“level”的“%IOLINK[I/O连接]”项中出现“PV=S7200PLC:V变量内存|400|US”字样,代表设置成功。I/O连接时必须对物理I/O设备中变量的内部存储地址非常了解,设置正确才能实现数据采集。本例中PLC内部的变量存储地址见表1-4-2。按照表1-4-2所标示的地址,分别为其他4个点添加I/O连接项,全部添加完后如图1-4-9所示。

978-7-111-54974-1-Chapter01-50.jpg

图1-4-8 设备组点对话框

表1-4-2 锅炉供水监控系统PLC内部变量存储地址

978-7-111-54974-1-Chapter01-51.jpg

注:pumb_button和auto_man都是PLC的输入变量,在PLC中的地址分别是M10.0和M10.1,而不是IX.X格式的I区数据,这是因为力控不能直接从内部寄存器I区读数,在PLC中只能把数据存储到内部寄存器M区之后,组态软件从M区才能访问到输入数据。

3.实现锅炉水位的控制功能(编写控制程序)

通过编写PLC控制程序来实现控制要求,这里通过西门子S7-200系列PLC来编写控制程序。程序调试无误后,连接通信线缆至监控PC,由PC通过力控ForceControl7.0来采集底层数据实现数据采集,进而在监控PC中实现监控画面的动画效果。参考的PLC控制程序如图1-4-10所示。

978-7-111-54974-1-Chapter01-52.jpg

图1-4-9 添加I/O连接项之后的DbManager

978-7-111-54974-1-Chapter01-53.jpg

图1-4-10 PLC控制程序

978-7-111-54974-1-Chapter01-54.jpg

图1-4-10 PLC控制程序(续)

我们经常碰到的情况是手头并没有真实的控制对象来进行控制程序的编写,那么在学习过程中可以利用ForceControl7.0来实现控制功能,主要通过脚本语言来实现对锅炉水位控制系统的模拟。在这种情况下,所有的数据库组态和I/O连接都不用进行任何改变,直接在脚本中修改变量的值,同样可以实现控制功能(同时实现了脚本功能的学习)。参考程序如下:在“工程项目导航栏”中依次点开“全局脚本”-“动作”-“应用程序动作”,在弹出的“脚本编辑器”中输入如下参考脚本程序:

在“进入程序”输入页中输入如下代码:

//进入程序默认水位为0,泵和阀都关闭。档位处于手动挡

978-7-111-54974-1-Chapter01-55.jpg

在“程序运行周期执行”输入页中输入如下代码即可实现水位的模拟和控制功能。

978-7-111-54974-1-Chapter01-56.jpg

978-7-111-54974-1-Chapter01-57.jpg

4.利用变量在组态界面中实现动画效果

组态界面中的动画效果添加主要是通过选中需要添加动画的对象,双击该对象,在弹出的“动画连接”对话框中来实现,如图1-4-11所示。

在“动画连接”对话框中把动画效果分为“鼠标相关动作”“颜色相关动作”“尺寸旋转动作”“数值输入显示”和“杂项”这五大项。在每一大项中又分别为若干小项,多种动画效果的使用,可以实现丰富的监控动画。下面就锅炉供水监控系统中涉及的动画效果来学习如何添加动画效果。

经过分析得知该系统要实现的动画效果如下:

(1)“数值输出”-“模拟”动画

需要在监控界面上实时显示锅炉水位的值。

(2)“颜色变化”动画

泵和水阀当开起时颜色为绿色,关闭时显示为灰色。

(3)“百分比填充”-“垂直”动画

在锅炉中能显示水位的高度动画。

978-7-111-54974-1-Chapter01-58.jpg

图1-4-11 “动画连接”对话框

(4)“触敏动作”-“左键动作”动画

水泵的“起动”和“关闭”按钮能单击,单击后能实现水泵的开起和关闭。

水阀的“打开”和“关闭”按钮能单击,单击后能实现水阀的打开和关闭。

实现“手动”和“自动”档位的选择。

(5)“杂项”-“禁止”动画

当档位选择为“自动”档时,泵和水阀的控制按钮不能单击。

这里需要注意的是当创建动画连接时,在连接生效之前,所使用的变量必须被创建。如果直接使用了尚未创建的变量,则当“确定”按钮被按下时,系统将提示进行定义,并可自动进入变量定义的对话框。

下面我们依次来实现上述动画效果:

(1)“数值输出”-“模拟”动画

数值输出连接能使文本对象(包括按钮)动态显示变量或表达式的数值。数值输出有模拟值输出、字符串输出和开关输出三大类。在“数值输出”中所连接的图形对象必须为文本或按钮,文本或按钮中的文字表明了输出格式,而文本的宽度即为输出文本的宽度。要实现水位显示动画,需要完成如下两步操作。

1)首先在监控界面上创建实时显示锅炉水位的对象。

在本例中在任务三已经创建了文本对象“####.##”。这里,第一个小数点前面的字符个数为整数部分的位数,后边的字符个数则为小数部分的位数,若没有小数点,则表示不显示小数部分。这里“####.##”代表最多可以显示四位整数和两位小数。

2)为对象关联变量。

双击“####.##”对象,在弹出的“动画连接”对话框中勾选数值输出框大项下面的“模拟”小项,弹出模拟值输出对话框,如图1-4-12所示。单击“变量选择”下拉按钮,弹出“变量选择”对话框,在对话框中直接选择要进行关联的变量即可。单击“确定”按钮后返回到“动画连接”对话框,可以继续创建其他动画效果,或者单击“返回”按钮完成本次操作。这里,在变量选择时选择“level.PV”,选择后在表达式输入栏中自动输入“level.PV”。若不使用变量选择按钮可以直接在表达式输入栏中输入“level.PV”。这样“####.##”将实时显示变量level的PV这个参数的值,把PLC中采集上来的锅炉水位值在进行I/O连接时存放到变量level的PV参数中,因此“####.##”就可以实现显示锅炉的水位值,实现了“数值输出”的动画效果。

978-7-111-54974-1-Chapter01-59.jpg

图1-4-12 模拟值输出对话框

(2)“颜色变化”动画

在颜色动画中要实现,泵和水阀当开起时颜色为绿色,关闭时显示为灰色。要实现该动画,需要把颜色动画与相应变量的值对应起来,经分析得知,泵和水阀颜色与变量值的对应关系见表1-4-3。

表1-4-3 泵、水阀颜色动画与变量值对应表

978-7-111-54974-1-Chapter01-60.jpg

接下来首先添加泵的颜色动画,双击泵的图标,在弹出的“动画连接”对话框中勾选“条件”,弹出“颜色变化”对话框,如图1-4-13所示,在表达式栏中输入“pumb.PV==1”,默认表达式值为真时颜色为绿色,值为假时颜色为红色。这里“==”为“比较操作符”,即比较“pumb.PV”和“1”的值,若“pumb.PV”和“1”的值相等即pumb.PV的值为1,则表达式“pumb.PV==1”的值为真(或为1或ture),若“pumb.PV”和“1”的值不相等即pumb.PV的值不为1,则表达式“pumb.PV==1”的值为假(或为0或false)。对话框中分别针对表达式为“真”或“假”设定了两种对象显示的颜色。可以通过单击颜色来更改默认的颜色。这里要求pumb.PV为1时为绿色,即表达式为真时泵颜色为绿色,要求pumb.PV为0时为灰色,即表达式为假时泵颜色为灰色。单击对话框中的“红色”色块,在弹出的颜色选择中选择“灰色”,单击“确定”按钮即可实现泵的颜色动画。

同样道理,双击水阀的图标,在弹出的“动画连接”对话框中勾选“条件”,弹出“颜色变化”对话框,如图1-4-14所示,在表达式栏中输入“valve.PV==1”,单击对话框中的“红色”色块,在弹出的颜色选择中选择“灰色”,单击“确定”按钮,即可实现水阀的颜色动画。

978-7-111-54974-1-Chapter01-61.jpg

图1-4-13 泵颜色变化对话框

978-7-111-54974-1-Chapter01-62.jpg

图1-4-14 水阀颜色变化对话框

(3)“百分比填充”-“垂直”动画

接下来要实现在锅炉中能显示水位的高度动画,即在锅炉上开一个观察窗,该窗体内能模拟显示水位的高度。这里需要利用动画连接中的“百分比填充”垂直填充动画来实现。垂直填充连接可以使具有填充形状的图形对象的填充比例随着变量或表达式值的变化而改变。例如:某变量值客观反映生产过程中某实际容器水位的变化,把此变量与一个填充图形进行垂直填充连接,这个填充图形的填充形状的变化就可以形象地表现容器水位的变化了。在本例中我们采用了在罐体上放置一个矩形来表示液位观察窗。这里我们要求罐体内没有液体时,观察窗内为黑色。当液体逐渐增加时逐渐出现蓝色的填充色(锅炉内液体为蓝色)。操作如下:

1)双击该矩形对象,在弹出的“动画连接”对话框中勾选“百分比填充”-“垂直”,弹出图1-4-15所示的对话框。

2)表达式/变量选择:变量名称或表达式为选择要进行连接的变量名称。这里选择“level.PV”,填充的百分比随“level.PV”而变化。

3)填充到最大时值:当变量或表达式达到此值时,图形对象的填充形状达到最大。填充最大时对应锅炉内水位最高点。level.PV的变化范围为0~5000mm决定了锅炉的水位范围为0~5000mm,最高为5000mm,当填充最大时即水位最高时level.PV的值为5000,因此这里填5000。

4)填充到最小时值:当变量或表达式达到此值时,图形对象的填充形状达到最小。填充形状达到最小时即水位最低时,水位最低时“level.PV”的值为0,因此这里填写0。

978-7-111-54974-1-Chapter01-63.jpg

图1-4-15 “垂直百分比填充”对话框

5)最大填充(%):图形对象的填充形状达到最大时填充高度与原始高度的百分比,输入范围为0~100。当水位最高时矩形对象填充颜色完全填满,因此这里填写100,即水位为5000时,矩形对象100%填充。

6)最小填充(%):图形对象的填充形状达到最小时填充高度与原始高度的百分比,输入范围为0~100。当水位最低时矩形对象没有填充颜色,因此这里填写0,即水位为0时,矩形对象0填充。

7)背景色:此项用于设定图形对象在运行时显示的背景颜色。单击颜色框内区域出现调色板窗口,选择一种颜色作为背景色。在运行时,填充过程采用图形对象原始颜色覆盖背景色的方式进行。这里要求没有填充即锅炉内没有水时矩形对象(观察窗)为黑色。因此,这里背景颜色选为黑色。同时,在运行时填充过程采用图形对象原始颜色覆盖背景色的方式进行,结合系统要求,有水时出现蓝色填充色,因此需要右键单击矩形对象,选择“对象属性”在“填充色”中选择蓝色。这样,当水位增加时蓝色的填充色逐渐覆盖黑色的背景色实现系统要求的动画效果。

8)参考点:对于垂直填充连接,参考点决定填充进行的方向,如果参考点为下面,参数或表达式值由小变大时,填充区域由下至上增大;如果参考点为上面,参数或表达式值由小变大时,填充区域由上至下增大。这里水位是从锅炉底部逐渐升高的,因此参考点选择“下面”。

(4)“触敏动作”-“左键动作”动画

在锅炉供水监控系统中,水泵的“起动”和“关闭”按钮要在被单击后能实现水泵的开起和关闭,在该系统中“pumb_button.PV”的值为1时是泵的起动信号,“pumb_button.PV”的值为0时是泵的关闭信号。因此只需要按下泵“起动”按钮后给“pumb_button.PV”赋值为1即可实现泵起动,按下泵“关闭”按钮后给“pumb_button.PV”赋值为0即可实现泵关闭。而按下按钮给变量赋值的功能可以通过按钮对象的“动画连接”对话框中“触敏动作”-“左键动作”动画来实现。

1)双击水泵“起动”按钮,在弹出的“动画连接”对话框中勾选“触敏动作”-“左键动作”,在弹出的“脚本编辑器”对话框中的“按下鼠标”文本框中输入脚本语句“pumb_button.PV=1”,如图1-4-16所示,即可实现按下“起动”按钮发出泵起动的信号。

2)同样道理双击水泵“关闭”按钮,在弹出的“动画连接”对话框中勾选“触敏动作”-“左键动作”,在弹出的“脚本编辑器”对话框中的“按下鼠标”文本框中输入脚本语句“pumb_button.PV=0”,即可实现按下“关闭”按钮发出泵关闭的信号。

3)要在水阀的“打开”和“关闭”按钮被单击后能实现水阀的打开和关闭动画效果,其步骤可以参考水泵的“起动”和“关闭”动画的实现,与水泵“起动”和“关闭”动画唯一不同的是水阀的“打开”和“关闭”是由变量“valve.PV”来控制的。在水阀“打开”按钮的左键动作脚本编辑器中需要输入“valve.PV=1”,在“关闭”按钮的左键动作脚本编辑器中需要输入“valve.PV=0”。

4)要实现“手动”和“自动”档位选择的动画效果,步骤与上述两种对象不同,因为这里选择的手自动模式切换开关对象是一个智能单元,智能单元中已经包含了一些动画效果,这里要做的只是把填入需要关联的变量。手自模式切换开关对象的初始状态如图1-4-17a所示,该对象已经包含了开关的切换动画,可以从“ON”档位切换到“OFF”档位,在“ON”档位时把关联的变量赋值为1,在“OFF”档位时把关联的变量赋值为0。我们需要做的只是把变量和该对象关联起来,同时加入合适的标注,本例中手自模式开关对应的变量为“auto_man.PV”。要关联该变量,双击该对象,弹出如图1-4-17c所示的“开关向导”对话框中,在变量名中输入“auto_man.PV”或者通过“…”按钮来选择该变量。然后分别在“标题文本”“开文本”和“关文本”中分别输入“手自模式选择”“自动”和“手动”,单击“确定”按钮后该开关对象就如图1-4-17b所示,用分别用“手自模式选择”“自动”和“手动”文本取代了原有的“LABEL”“ON”和“OFF”文本。这样设置结束后,当档位打到“自动”档,则“auto_man.PV”被自动赋值为1;当档位打到“手动”档则“auto_man.PV”被自动赋值为0,实现了需要的控制效果。

978-7-111-54974-1-Chapter01-64.jpg

图1-4-16 左键动作脚本编辑器

978-7-111-54974-1-Chapter01-65.jpg

图1-4-17 手自模式切换

(5)“杂项”-“禁止”动画

当档位选择为“自动”档时,要求泵和水阀的控制按钮不能被单击,除非档位被再次选择为“手动”档。这里需要用到泵和水阀的控制按钮的“杂项”-“禁止”动画。泵和水阀的控制按钮各有开、关两个,总共4个控制按钮,需要分别在这4个按钮上加入“禁止”动画。加入的步骤完全一样,这里以水泵的“起动”按钮为例进行说明。

首先双击水泵“起动”按钮,在弹出的“动画连接”对话框中勾选“杂项”-“禁止”动画,弹出如图1-4-18所示的对话框,在该对话框中需要进行两处设置:“表达式”和“何时禁止”。在表达式中输入“auto_man.PV==1”;对何时禁止,若选择“表达式为真”,则当表达式成立时,禁止操作该图形对象,若选择“表达式为假”,则当表达式不成立时,禁止操作该图形对象。这里选择“表达式为真”,即当“auto_man.PV==1”的表达式为真时,auto_man.PV的值为1,档位选择为“自动”,自动时禁止该对象的操作,因此可以实现系统要求的效果。同样可以给其他泵和水阀的控制按钮添加相同的禁止效果,依次完成即可。

978-7-111-54974-1-Chapter01-66.jpg

图1-4-18 “允许/禁止定义”对话框

上述动画全部添加完成后对系统进行保存,单击“文件”-“进入运行”即可以看到系统的整体运行效果,对照系统控制要求逐一进行验证,验证无误后系统开发就全部完成。

注意:在系统调试时,若有改动,需要保存改动之后,重新启动监控系统才能看到改动之后的效果。重启时不仅仅是关闭View进程,而是需要通过进程管理器来重启,通过单击任务栏“监控”-“停止”或“退出”,来关掉所有进程,再进入运行状态,才是真正意义上的重启,否则,内存中运行的进程,使用的仍是改动之前的系统,造成改动无法生效。