摘要:在实际的项目运用里,一些关键数据的输入得先提示操作人员确认没有错误了,然后才能接着进行。就像下面这图展示的这样:
在实际的项目运用里,一些关键数据的输入得先提示操作人员确认没有错误了,然后才能接着进行。就像下面这图展示的这样:
当在输入/输出的区域里输入数值 99 然后按回车键之后,数据不会马上就输入到变量当中,而是会弹出一个确认的信息窗口。这时候要是选择“是”,那么数据就会输入到对应的变量里;要是选择“否”,相应的变量就会一直保持原来的数值不变。接下来就给您介绍怎么用 WinCC 的输入/输出域来实现这种功能。
1. 创建两个变量
前提条件要创建两个数据类型一样的变量,一个叫 DisplayValue,另一个叫 TempValue,其中 DisplayValue 是实际需要进行控制的变量,TempValue 就当作临时变量来用。就像下面这图显示的这样:
2. 输入/输出域的属性设置
在画面里新弄一个输入/输出域,然后打开属性的对话框。选属性→输出/输入→输出值,在动态的那部分用鼠标点右键,就像下面这图展示的这样:
把动态对话框打开。挑出需要控制的变量(在这个例子里变量是:DisplayValue),再配置好数据类型。就像下面这图显示的这样:
3. 输入/输出域的事件设置
3.1更改动作设置
挑同一个输入/输出域,把属性对话框打开。选事件→属性主题→输出/输入→输入值,在更改动作的那部分用鼠标点右键,就像下面这图展示的这样:
把直接连接对话框打开。来源的部分就保持默认的设置,目标的部分选择直接连接到临时变量(在这个例子里是:TempValue )。就像下面这图显示的这样:
3.2键盘释放动作设置
挑同一个输入/输出域,打开属性对话框。选择事件→键盘→释放,在动作部分用鼠标点右键,如下图所示:
图7
把 C 动作编辑器打开。编写能判断操作人员是不是输入完了并且按下回车键的代码。如下图所示:
详细代码如下:
int TempValue=GetTagWord("TempValue");
char szBuffer[20];
sprintf( szBuffer,"Input number:%d",TempValue);
if ( nChar==13 )//if press enter
{
int xRet = MessageBox(NULL,szBuffer,"确认窗口",MB_YESNO|MB_ICONQUESTION|MB_SYSTEMMODAL);//message
if ( xRet == IDYES )//confirm operate
{
SetTagWord("DisplayValue",TempValue);// set data
}
}
当系统运行起来之后,只要在这个输入/输出域里检测到回车的信号,系统就会弹出像图 1 那样的确认窗口。
西门子WINCC8.1带确认的输入/输出域 PLC论坛-全力打造可编程控制器专业技术论坛 -
来源:PLC技术玩