改善HMI(HumanMachineInterface)终端性能可降低车辆控制系统操作的复杂性,也可提...
西门子触摸屏一个弹出窗口控制多个相同设备
在很多场合中, 存在着大量的同类设备需要在 HMI 中通过子画面进行设备参数的显示以及控制。如果在 HMI 中为每一个设备都绘制一个子画面, 将会带来大量的重复性工作, 并且也会使得 HMI 程序变得冗长。
那么为同类设备在 HMI 程序中绘制一个面板( Faceplate),然后通过弹出画面加载同一个面板来分别显示不同设备的参数,将使得组态工作量大大减少。本例将介绍如何通过在弹出画面中调用同一个面板来分别显示 3 组设备的 PID 调节参数和设备启停信号参数,以及通过开关按钮对 Bool 变量进行置位/复位操作的方法。
步骤
1. 在 HMI 中创建多个同类设备的相关参数变量( PID 数据类型为 PLC 程序中定义的 UDT PLC 数据类型) ,如图 01 。

2. 在 HMI 中创建连接为内部变量的指针索引变量和指针化变量,如图 02 。

3. 为指针化变量设置索引变量, 并将索引值对应到实际变量。如图 03 。

当索引变量 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 。

5. 在面板中添加动态属性, 如图 05 。

6. 在面板中添加用于参数显示和输入的 I/O 域,并将 I/O 域的过程值关联至对应的动态属性,如图 06 。

7. 添加“启动/停止”开关,用于置位/复位 Bool 类型变量以达到启动/停止设备的效果。 对于启用了指针化的变量来说,不支持使用函数对该类变量进行操作,例如无法使用“设置变量”、“置位位”、“取反位”等函数。 因此需要通过开关来实现对Bool 类型变量的置位及复位。而开关对于 Bool 类型变量的操作,实际进行的是取反操作,因此只需要添加一个开关即可实现对设备的启动/停止操作。但是一些客户希望通过 2 个按钮将启动与停止的操作区分开来,因此以下将介绍两种方法来实现 1 个按钮和 2 个按钮进行启动/停止操作。实际应用时用户根据需要选择其中一种方法即可。
添加 1 个开关,并关联变量到面板类型属性“Start”,将模式设置为“通过文本切换”,设置 ON 文本为“停止”,设置 OFF 文本为“启动”。如图 07 。

再添加 2 个开关, 按照图 07 做相同操作。只是其中一个开关的 ON、 OFF 文本均设置为“启动”,另一个开关的 ON、 OFF 文本均设置为“停止”,如图 08 。

选中“开关_2”,添加动画,选择“可控性”,设置如图 09 。

选中“开关_3”,添加动画,选择“可控性”,设置如图 10 。

完成以上操作后,在面板类型编辑器中点击“发行版本”。
8. 在 HMI 画面管理下的弹出画面中添加新的弹出画面命名为“PID_Popup”,调整画面为合适的大小,并从项目库的类型中添加“PID_FP”到该弹出画面中,如图11 。

9. 在面板实例的接口选项页中关联动态属性到指针化变量, 如图 12 。

10. 在弹出画面中添加“关闭”按钮,并在“单击”事件中添加“显示弹出画面”函数,如图13 。

11. 在主画面中添加按钮用于打开弹出画面, 在按钮的单击事件添加函数, 如图 14 。

实际运行效果

相关文章
发表评论