实现全过程
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月