Skip to main content

实现全过程

 
图片

JZGKCHINA

工控技术分享平台


 

一

图片

概述

项目中如果相同控制方式的阀门和泵比较多,且界面尺寸和数量有限,这时就要用到公共弹出窗口;可以完成相同窗口的反复调用;如果不使用公共弹出窗口,就要对每一个泵和阀门制作对应的弹出界面,界面编辑和制作就需要较多的工作量,且对后期维护造成困扰。本文就对公共弹出窗口的制作过程做一个示例演示。

二

图片

需要的软件

1

编程软件

博途V20编程软件(本次使用的软件版本)

2

仿真软件

S7-PLCSIM V20(本次使用的软件版本)

三

图片

具体实现过程

1

建立DB块

建立DB块,创建测试变量。

2

建立FC块,并在OB1中调用

图片

3

在FC块中创建测试程序

图片

4

设置项目允许仿真

图片

在项目名称上右键点击-属性-保护;弹出以上界面,勾选支持在块编译过程中进行仿真,这一步非常重要,否则不支持仿真。

5

触摸屏加载

图片

添加触摸屏并建立连接,直接选择CPU网口进行拖曳,连接到HMI网口即可。

图片

可以看到触摸屏组态-连接界面已经出现关联组态。

6

触摸屏变量建立

图片

直接打开PLC的DB块,选中需要的变量,直接复制;然后在HMI变量表粘贴即可。

7

创建索引变量

图片

创建Bump_index(INT)内部变量作为调用其他指针变量的中间变量。这个变量主要作为其它内部公用变量的中介。

图片

创建AM(BOOL)内部公用变量作为调用1#泵和2#泵手自动状态的中间变量,这个变量需要设置指针,关联1#泵和2#泵的手自动状态变量。

图片

可以看到AM内部公用变量关联索引变量Bump_index成为了选择指针的媒介。

A_Feekback电流反馈(Real),control泵的启停(BOOL),HZ_Setting频率设置(Real)和AM相同,都是内部变量,设置指针化,通过索引变量Bump_index关联对应泵的相应参数。

8

添加面板

在博途软甲右侧找到库选项,在项目库的类型菜单,添加新类型。

图片

鼠标双击新类型菜单

图片

设置名称Bump(这里以泵为示例),选择面板-指定设备。选定设备后,弹出以下界面,这里是公共界面的组态窗口。

图片

9

动态属性添加变量

图片

这里是面板组态的变量位置,添加每个泵需要公共窗口调用的内部变量,这里的变量仅在此窗口有用。

图片

根据实际需求拖入IO域,文本,开关。


 


 

需要注意的是,这里不能使用按钮,按钮测试下来,关联实际变量时会报错,开关没有这个问题。如果一定要使用按钮功能,可以在程序中编写复位程序,按钮的作用实现后,复零即可。


 


 

图片

选定频率设定的I/O域,右键-属性,在属性界面关联动态属性中的相应变量,设置类型为输入输出模式,显示格式为十进制,格式样式为保留一位小数(根据实际需求来)。

图片

选定电流反馈的I/O域,右键-属性,在属性界面关联动态属性中的相应变量,设置类型为输出模式,显示格式为十进制,格式样式为保留一位小数(根据实际需求来)。

图片

选定手自动开关,右键-属性,在属性界面关联动态属性中的相应变量,设置模式为通过文本切换,文本ON为自动,OFF为手动。

图片

在手自动开关的动画界面,添加外观动画,关联相应变量,类型设置为范围,添加0-0时和1-1时开关颜色显示。

图片

启停和手自动类似,选定启停开关,右键-属性,在属性界面关联动态属性中的相应变量,设置模式为通过文本切换,文本ON为启动,OFF为停止。

图片

在启停开关的动画界面,添加外观动画,关联相应变量,类型设置为范围,添加0-0时和1-1时开关颜色显示。

图片

编辑好动态属性,组态好界面,关联变量后就会看到关联的完成的状态。

图片

这是编辑完还没发布的样子,会显示开发中的字样。

图片

右键-属性-发布版本,弹出以上对话框,设置类型名称,点击发布。

图片

发布完成后,可以看到,界面状态变为绿色,显示默认字样,此时可以确认已经发布成功。

10

创建弹出窗口

图片

在右侧项目树-画面管理-弹出画面-创建弹出画面。

图片

再属性-常规里设置弹出画面的名称及背景颜色

图片

在属性-布局里设置弹出画面大小(根据内容和需要)

图片

将右侧库中,建立的面板拖入弹出画面窗口

图片

选定拖入的面板,在面板的接口中关联前面建立的带有指针的中间变量;这样就关联了面板内部的动态属性,实现真实变量的关联。

图片
图片

在项目树中选择文本和图形列表,建立bump的文本列表,用来显示弹出窗口中的设备名称。

图片
图片

创建bump_name内部变量用来作为关联文本列表的媒介;在弹出窗口拖入符号I/O域,关联变量bump_name;模式选择输出,内容-文本列表选择建立的bump对应的文本。

图片

可以看到bump文本列表的内容,选定后点击下端的对号就可以了。到这里就完成了公共弹出窗口文本显示的组态。

图片

公共画面还有最后一步,打开后需要关闭按钮完成关闭的动作,创建关闭按钮,在事件-单击事件,添加显示弹出画面的函数,关联弹出画面名称,显示模式设置为关即可。这样在弹出窗口打开后,就可以关闭弹出画面,方便后面其它画面调用。

11

公共窗口调用组态

图片

在项目树-画面下创建控制界面

图片


 

在界面右侧-工具箱-图形库中拖入我们想要的设备图片.

图片

这里做了一个泵的图形视图和按钮的组合,按钮放在泵视图中间,用来单击调用弹出窗口,以上是按钮的事件组态,

在按钮单击事件中设置索引变量Bump_index为0,代表调用所有1#泵的指针变量0位关联值,也就是关联1#泵的所有变量;

调用显示弹出画面函数调用泵的弹出界面,X,Y坐标主要是设置弹出界面的位置显示,显示模式开即打开弹出界面,

第二个设置变量函数是解决弹出界面名称显示问题,这里关联调用文本显示的媒介bump_name,因为在弹出界面增加了符号I/O域,符号I/O域关联了文本,设置bump_name的值,就可以调用文本显示。

图片

增加泵的手自动,运行状态显示,方便直观的在界面查看泵的状态;拖入矩形,关联外观动画,通过颜色的改变分辨泵的工作状态,AM为手自动状态,ST为泵的运行状态。

图片

增加外观动画,连接手自动变量。

图片

增加外观动画,连接控制变量。

这里以1#泵的组态和调用为示例;2#泵是一样的,相关连接关联2#泵的变量就行;这里不在重复。

12

仿真演示

图片

这是手动启动时,程序的运行;启动开关变为蓝色,文字变成启动字样,ST标识也变成蓝色;并且弹出窗口打开后,标题名字变成文本的中1对应名称,整体功能实现。

图片

这是自动时的程序运行,自动开关变为蓝色,AM标识也变成蓝色;文字变成自动字样,并且弹出窗口打开后,标题名字变成文本的中1对应名称,整体功能实现。

图片

设置频率后,DB块变量也跟着变成设置的数值,设置频率成功。

图片

DB块设置电流反馈值,界面上出现相应值,且数值一致,反馈至显示成功。

最后一项,点击关闭,弹出窗口关闭;关闭按钮也没问题。

到这里整个功能全部实现。


 


 

整体思路是在库中建立面板,在面板内部组态共用界面,并建立内部动态参数,通过面板接口连接外部对应的指针变量,以赋值的方式,通过索引变量调取指针变量的实际连接,这样就实现了公共弹出界面的多设备调用功能。


 


 

图片

打开1#泵弹出窗口,不关闭,点击2#泵的调用按钮,窗口位置不变,实际上已经成为2#泵的控制界面。

图片

或者使用结束后1#泵的弹出窗口,打开2#泵的调用按钮,弹出界面就会出现在2#泵所组态的坐标位置。

到此这篇文章介绍的多设备调用同一界面的功能全部实现。


 

作者:

网名禅主,80后,2015年开始从事环保行业自控及电气系统设计,调试工作,已有10年时间;先后从事过污泥处理,工业废水处理,污水处理,市政泵站,调蓄池相关工作。

图片

2026年11月