请问我想实现这样一个功能,一般情况wincc的输入域内输入数据 回车后,所输入的数据就会生效,这样有时候我会产生误操作,我想在输入数据然后回车出现一个确认框,等确认后才可以使输入数据生效,否则不生效。应该如何实现,请各位帮帮我,谢谢!
最佳答案
1。首先,在WinCC的“Tag Management(标签管理器)”→“Internal tags(内部标签)”里定义一个内部变量(例如:名称为Init,类型为Unsiged 32-bit value);
2。之后,将内部变量Init分配给WinCC的“I/O Field”数据控件对应的I/O Field属性(Properties)中;
3。然后,在分配了内部变量Init的“I/O Field”数据控件属性(Properties)的WinCC编辑画面中放入一个按钮控件(Button),在Button控件的属性(Properties)窗口中,选择“Event(事件)”标签,找到“Mouse(鼠标)”节点后,选择“Mouse Click(鼠标单击)”项;
4。最后,在“Mouse Click(鼠标单击)”项里,用“C Action”方式写入以下C脚本代码:
#pragma code("kernel32.dll")
{
if (MessageBox(NULL, "您确定要将输入或更改后的数据写入PLC中吗?", "数据操作", MB_YESNO | MB_ICONEXCLAMATION | MB_SETFOREGROUND|MB_SYSTEMMODAL) == IDYES)
{SetTagFloat("BAKING/Curve",GetTagFloat("Init")); }
}
其中:变量“BAKING/Curve”是在WinCC“Tag Management(标签管理器)”中定义与PLC连接的过程变量名称;而变量“Init”则只是在WinCC中的定义内部变量(Internal tags)名称。
5。因此,以上C脚本代码的作用就是在弹出的对话框中,确认是否需要将暂存于WinCC内部变量“Init”中的数据改写入PLC中去。
提问者对于答案的评价:
可以实现,谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc272208.html