向过程变量写值

<< 点击显示目录 >>

主页  PVI通信 > PVI帮助信息 > PVI Services > Communication classes > Variable class >

向过程变量写值

变量类的Value属性再次被调用,以向处理变量写值。

Variable variable = new Variable(cpu,"count");
variable.Connect();
...
// 在接收到 "连接 "事件后设置变量的值
variable.Value = 27;
variable.ValueWritten += new PviEventHandler(variable_ValueWritten);
...
private void Var_ValueWritten(object sender, PviEventArgs e)
{
  this.tbStatus.Text = "Variable written";
}

在前面的例子中,值27被直接给了过程变量。当  收到 ValueWritten 事件 时,成功的写入指令被确认  。为了防止这种类型的直接写入,也可以使用 WriteValueAutomatic 属性来自动写入一个值。

在大多数情况下,这个属性的值是True。为了防止自动写入,这个值应该设置为False。

然后,只有当 WriteValue 函数被调用时,才会执行写入指令  。

如果只用一条写指令就能为结构或数组元素分配几个值,这一点尤其明智。

Variable structVar = new Variable(cpuObj,"stVar" );
structVar.Connect();
...
// 在接收到 "连接 "事件后设置结构元素的值
structVar.WriteValueAutomatic = false;
// 设置结构元素值
structVar.Value["elem_BOOL"] = true;
structVar.Value["elem_SINT"] = 15;
structVar.Value["elem_DINT"] = 345578;
// 写出完整的结构变量
structVar.WriteValue();
// 重置属性
structVar.WriteValueAutomatic = true;