输入变量值

当一个值从人机界面输入到所选变量时,输入变量值触发条件运行该操作。

即使输入值和当前值相同,也会发生该触发条件。

文本

onVariableInput(VARIABLE, ()=>{
                   1
});

1: 变量

注:

  • 当值不是从面板,而是直接从外部设备的设备地址输入到外部变量时,触发条件不运行。

  • 当外部变量的质量状态不是很好时,即使向外部变量输入了值,触发条件也不会运行。您可以从源属性 (<变量名称>.Quality) 监控变量质量状态。
    变量

(示例)

  1. 创建两个数值显示对象。
  2. 在变量编辑器中添加两个变量 DINT1DINT2
  3. DINT1 分配给第一个数值显示对象,将 DINT2 分配给第二个数值显示对象。
  4. 添加输入变量值触发条件并将 DINT1 设置为变量。
  5. 添加一个值更改操作,并将 DINT2 分配为对象,[AddTo]分配到[Value Change],20 分配到参数。
    → 在人机界面中,每次在第一个数值显示对象中输入值时,第二个数值显示对象中的值将递增 20。即使您输入和之前输入相同的值,第二个数值显示中的值仍会增加 20 后显示。
文本

onVariableInput(DINT1, ()=>{
DINT2 += 20;

});

[Input Variable Value] 和 [Value Change] 触发条件之间的区别

您也可以使用 [Value Change] 触发条件,其功能与 [Input Variable Value] 触发条件类似。如果 [Input Variable Value] 触发条件不能满足您的要求,请考虑使用 [Value Change] 触发条件。

下面介绍两种触发条件的区别。

  [Input Variable Value] [Value Change]
触发条件的目标 仅限变量 变量和源属性
当数值从设备地址直接输入到外部变量时: 触发条件不运行。 触发条件运行。
当输入与当前值相同的数值时: 触发条件运行。 触发条件不运行。

为 [Input Variable Value] 触发条件和连接块分配相同变量的注意事项

当您使用相同的外部变量,而非将从属设备驱动程序分配到 [Input Variable Value] 触发条件和连接块时,从连接块引用的可能不是输入值,而是当前值。

文本

onVariableInput(Var1, ()=>{

$GraphicObject.NumericDisplay2.CurrentValue = Var1;

});

变量类型 驱动程序 使用异步类型操作 *2 来自连接块的引用变量值
内部变量 - 输入值
输入值
外部变量 从属设备驱动程序 *1 输入值
输入值
非从属设备驱动程序 输入值
当前值 (输入值之前)

*1 从属设备驱动程序包括:

*2 在 [输入变量值] 触发条件和目标操作之间插入异步类型操作的情况下。

文本

onVariableInput(Var1, ()=>{

exportAlarmData(false, false, $Enums.AlarmMode.Log);

$GraphicObject.NumericDisplay2.CurrentValue = Var1;

});

关于异步类型操作的更多细节,请参阅以下内容。
操作块

如果您遇到表格底部的项目,请考虑是否可以使用 [Value Change] 触发条件而不是 [Input Variable Value] 触发条件。
关于 [Value Change] 触发条件和 [Input Variable Value] 触发条件之间区别的更多细节,请参考本主题中 "[Input Variable Value] 和 [Value Change] 触发条件之间的区别"。
关于 [Value Change] 触发条件的详细信息,请参阅以下内容。
值更改