Wincc 二次弹窗确认 不用MessageBox,通过父窗口的变量前缀来实现。

        客户要求实现输入框二次弹窗的确认。但是不用“MessageBox”函数,因为MessageBox弹出后,不点击 “确认”或“取消”的话,背后画面中的按钮就操作不了。特别是在CS架构中,客户端和服务器都在操作同一个按钮和输入框的时候。

       目前的办法是通过画面窗口去实现二次弹窗的确认,通过解析父窗口的变量前缀,然后拼接成实际的变量名称实现二次弹窗的确认。

一:IO域名的组态:

   1 此IO域的组态_输出/输入组态:

2 此IO域名的对象名称组态:

此IO域名的对象名称和输出值关联变量一致,便于将对象名取出后,进行拼接实际变量A1_HV01_MAN。

3 此IO域名的键盘释放的事件脚本:

二 :二次弹窗的组态:

1 二次弹窗的画面打开脚本:

以上脚本执行完后,实现的效果是将IO域输入的50.0,在二次弹窗打开的时候,这个50.0传递到二次弹窗打开后的IO域“IOConfirm”里边。效果如下图所示:

2 二次弹窗的IO域“IOConfirm”的组态:

二次弹窗的IO域“IOConfirm”没有组态,只是为了传递数据用。

3 二次弹窗的确认按钮的组态:

上图中的红色标注1~7是通过GetParentPicture和GetParentPictureWindow获得三级窗口的前缀,最终为了获得最终需要修改的变量A1_HV01_MAN

第8句是触发自定义报警记录,报警编号12000000

第9句是将二次弹窗的IO域“IOConfirm”的值赋值到tag5,也就是实际变量A1_HV01_MAN

三级窗口的父子关系:

    如上图所示,最里边的Confirm_IO_2.Pdl就是二次确认弹窗。相邻外围的IO域

是运行时,需要输入修改值的地方。例如在此IO域输入50.0并确认后,就会弹出二次确认弹窗Confirm_IO_2.Pdl,在二次弹窗里边再去确认或取消。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值