西门子触摸屏 | 一个弹出窗口如何显示多组PID调节参数?
在很多场合中, 存在着大量的同类设备需要在 HMI 中通过子画面进行设备参数的显示以及控制。如果在 HMI 中为每一个设备都绘制一个子画面, 将会带来大量的重复性工作, 并且也会使得 HMI 程序变得冗长。那么为同类设备在 HMI 程序中绘制一个面板( Faceplate),然后通过弹出画面加载同一个面板来分别显示不同设备的参数,将使得组态工作量大大减少。本例将介绍如何通过在弹出画面中调用同一个面板来分别显示 3 组设备的 PID 调节参数和设备启停信号参数,以及通过开关按钮对 Bool 变量进行置位/复位操作的方法。步骤1. 在 HMI 中创建多个同类设备的相关参数变量( PID 数据类型为 PLC 程序中定义的 UDT PLC 数据类型) ,如图 01 。https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/79c2b3261ebe4f2fbb6e6dfae0836921~tplv-tt-shrink:640:0.image?from=2091602832&traceid=202309022305518852EB21799DE66472EF&x-expires=2147483647&x-signature=n9ypZY32ZB3Qk5wWNuPtxXoUZ9E%3D
2. 在 HMI 中创建连接为内部变量的指针索引变量和指针化变量,如图 02 。https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/19ff26cfbded4df5ae6b009d9304bbb5~tplv-tt-shrink:640:0.image?from=2091602832&traceid=202309022305518852EB21799DE66472EF&x-expires=2147483647&x-signature=gwYKS7%2B1EBNYlFKpyijYtBd58ss%3D
3. 为指针化变量设置索引变量, 并将索引值对应到实际变量。如图 03 。https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/b9777e68981e44b6aae3cc56c8dc67d9~tplv-tt-shrink:640:0.image?from=2091602832&traceid=202309022305518852EB21799DE66472EF&x-expires=2147483647&x-signature=Y6ut4j47SfR%2FS6s9bWbk2iTh7X4%3D
当索引变量 PID_index 为 0 时, P_Common 为变量 PID_DB_PID1.P 的值;当索引变量 PID_index 为 1 时, P_Common 为变量 PID_DB_PID2.P 的值;当索引变量 PID_index 为 2 时, P_Common 为变量 PID_DB_PID3.P 的值。为指针化变量 “I_Common”、 “D_Common”及“Start_Common”做相同设置,并将索引值对应到各自实际变量上。4. 在库中创建面板, 如图 04 。https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/7624cb34f5f54239b522bf2978f81449~tplv-tt-shrink:640:0.image?from=2091602832&traceid=202309022305518852EB21799DE66472EF&x-expires=2147483647&x-signature=sgqBiAWrETxiY5VS71J00ziFBFE%3D
5. 在面板中添加动态属性, 如图 05 。https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/44929adf8fd74618bb3d5a6621943ccc~tplv-tt-shrink:640:0.image?from=2091602832&traceid=202309022305518852EB21799DE66472EF&x-expires=2147483647&x-signature=UX0cDJA%2BlIOWc%2BWVv0n%2BcqGJ%2BxY%3D
6. 在面板中添加用于参数显示和输入的 I/O 域,并将 I/O 域的过程值关联至对应的动态属性,如图 06 。https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/8eefc24271e34d2d970ad3657c874733~tplv-tt-shrink:640:0.image?from=2091602832&traceid=202309022305518852EB21799DE66472EF&x-expires=2147483647&x-signature=pADe0XkY4RpzUVGbkNrC6%2FfDb2o%3D
7. 添加“启动/停止”开关,用于置位/复位 Bool 类型变量以达到启动/停止设备的效果。 对于启用了指针化的变量来说,不支持使用函数对该类变量进行操作,例如无法使用“设置变量”、“置位位”、“取反位”等函数。 因此需要通过开关来实现对Bool 类型变量的置位及复位。而开关对于 Bool 类型变量的操作,实际进行的是取反操作,因此只需要添加一个开关即可实现对设备的启动/停止操作。但是一些客户希望通过 2 个按钮将启动与停止的操作区分开来,因此以下将介绍两种方法来实现 1 个按钮和 2 个按钮进行启动/停止操作。实际应用时用户根据需要选择其中一种方法即可。添加 1 个开关,并关联变量到面板类型属性“Start”,将模式设置为“通过文本切换”,设置 ON 文本为“停止”,设置 OFF 文本为“启动”。如图 07 。https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/ffe794fdc919480293bfce1f32bbbadf~tplv-tt-shrink:640:0.image?from=2091602832&traceid=202309022305518852EB21799DE66472EF&x-expires=2147483647&x-signature=Kp1T%2FxWG1SOM5C6RfLImu2ZTel8%3D
再添加 2 个开关, 按照图 07 做相同操作。只是其中一个开关的 ON、 OFF 文本均设置为“启动”,另一个开关的 ON、 OFF 文本均设置为“停止”,如图 08 。https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/61361c2a17e14e9b9ba741f502ff1278~tplv-tt-shrink:640:0.image?from=2091602832&traceid=202309022305518852EB21799DE66472EF&x-expires=2147483647&x-signature=jqaKxZpS6KILauXSpfbTKN93pzA%3D
选中“开关_2”,添加动画,选择“可控性”,设置如图 09 。https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/2d90570d692241e88fc91366107389ec~tplv-tt-shrink:640:0.image?from=2091602832&traceid=202309022305518852EB21799DE66472EF&x-expires=2147483647&x-signature=%2FDRS4AyTrOuKM%2BVswBIdeCMq%2FqU%3D
选中“开关_3”,添加动画,选择“可控性”,设置如图 10 。https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/568aec8904d949efa39ae7921d704768~tplv-tt-shrink:640:0.image?from=2091602832&traceid=202309022305518852EB21799DE66472EF&x-expires=2147483647&x-signature=KSJ4zH%2FQEYc8HkCZJSPsY8ySEdg%3D
完成以上操作后,在面板类型编辑器中点击“发行版本”。8. 在 HMI 画面管理下的弹出画面中添加新的弹出画面命名为“PID_Popup”,调整画面为合适的大小,并从项目库的类型中添加“PID_FP”到该弹出画面中,如图11 。https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/adbb88c003604d5598d1c6e31551c1e2~tplv-tt-shrink:640:0.image?from=2091602832&traceid=202309022305518852EB21799DE66472EF&x-expires=2147483647&x-signature=PHK4Z%2BqpXqs6hLlkAEhlrRByVZw%3D
9. 在面板实例的接口选项页中关联动态属性到指针化变量, 如图 12 。https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/70e9555494634f788128a79d3f8bd1e7~tplv-tt-shrink:640:0.image?from=2091602832&traceid=202309022305518852EB21799DE66472EF&x-expires=2147483647&x-signature=8cVOA06655ak%2FiCz8bUFB%2F6h%2F8s%3D
10. 在弹出画面中添加“关闭”按钮,并在“单击”事件中添加“显示弹出画面”函数,如图13 。https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/3a0f03b7b68d4ca894b9efe996980f07~tplv-tt-shrink:640:0.image?from=2091602832&traceid=202309022305518852EB21799DE66472EF&x-expires=2147483647&x-signature=%2FKUqesgH%2BZAJu1nsYZmL%2F1%2B0224%3D
11. 在主画面中添加按钮用于打开弹出画面, 在按钮的单击事件添加函数, 如图 14 。https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/f3113d2123bc4e22810ce28c99631c88~tplv-tt-shrink:640:0.image?from=2091602832&traceid=202309022305518852EB21799DE66472EF&x-expires=2147483647&x-signature=6EGnJWAGJnhwfe7Xf7loMatEfHA%3D
实际运行效果https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/edbf9ae4f046428d99cc5dd5f93c132f~tplv-tt-shrink:640:0.image?from=2091602832&traceid=202309022305518852EB21799DE66472EF&x-expires=2147483647&x-signature=IoqEXbaSsS0SfsU1UFWuyHJM5WA%3D
画面感太强了,仿佛身临其境! 原来还有这种操作,长见识了! 我先占个楼,等下再慢慢看~ 理性围观,感觉大家说的都有道理~ 这逻辑绝了,分析得太到位了吧 蹲个后续,楼主记得更新呀,在线等挺急的~ 水个经验,楼主加油,支持你~ 占个楼慢慢看,先马克一下
楼主辛苦啦,期待下一篇分享 这波反向操作,我属实没想到!