西门子KTP系列HMI用户自定义弹窗-多弹窗共用
接上一个文章内容《西门子KTP系列HMI用户自定义弹窗》西门子KTP系列HMI用户自定义弹窗-CSDN博客
当我需要别的操作并且需要弹窗时,整个弹窗的内容和变量都需要重复重新绑定;如下图所示:
由上图可看出当前的自定义弹窗有以下缺点:
1、重复绑定弹窗变量,增加枯燥重复的工作量;
2、每个弹窗只有标题及内容不一样,每次修改都需要取消组合,修改,在组合,步骤繁琐;
弹窗共同点:
1、基本的按键
2、布局样式
弹窗不同点:
- 标题
- 内容
优化方案:
只需要绘制一个弹窗,不同的弹窗内容根据实际操作切换并显示,避免重复性工作,减小开发时间,提高效率;由于西门子HMI不支持直接显示中文字符串,那么以下优化方式,将结合西门子HMI的《符号I/O域》控件进行更改。
具体步骤:
1、工程文件接上一个文章内容《西门子KTP系列HMI用户自定义弹窗》
西门子KTP系列HMI用户自定义弹窗-CSDN博客
2、添加用户数据类型UDT
3、新建HMI_DB,关闭优化快速访问;新增变量,数据类型选择刚才创建的用户数据类型;
4、SCL编写如下代码;
根据HMI设置的弹窗号进行弹窗数据类型的赋值,弹窗的具体内容使用则根据弹窗号索引进行绑定到具体使用的程序内;如下图所示:索引1的弹窗序列变量绑定到设置伺服的相关操作,索引2的弹窗序列变量绑定到设置视觉的相关操作,最后直接根据HMI触发的变量进行操作,即可完成一对多的变量操作。
5、HMI添加:文本和图形列表,弹窗标题、弹窗描述;具体如下:
6、新增HMI页面,添加《符号I/O域》控件用于覆盖弹窗标题和弹窗内容
标题控件设置
内容设置
7、添加弹窗设置按钮,分别设置弹窗的值
8、仿真测试
结论:根据指定弹窗按钮,加载指定弹窗按钮的文本;同时根据弹窗号进行变量赋值,实现一对多操作。