<< 点击显示目录 >> 主页 PVI通信 > PVI帮助信息 > PVI Services > Communication classes > Variable class > 连接一个变量对象 |
调用 "连接 "方法会激发一个连接指令。由于系统的异步性,只有在收到 "连接 "事件后才会确认连接成功。如果连接无法建立,那么用户会被错误事件告知(例如 "var_01 "不存在)。所有这些事件的功能将在本文稍后解释。
连接方法也使得建立一个 连接 到一个已经存在的变量对象的连接成为可能 。
// 创建服务和CPU对象
Service service = new Service("Service1");
service.Connect();
Cpu cpu = new Cpu(service,"Cpu1");
// 为一个串行连接设置连接属性
cpu.Connection.DeviceType = DeviceType.Serial;
cpu.Connection.Serial.BaudRate = 57600;
cpu.Connection.Serial.Channel = 1;
cpu.Connect();
...
...
// 连接全局变量对象
Variable globVar = new Variable(cpu,"var1");
globVar.Connect();
globVar.Connected += new PviEventHandler(Var_Connected);
...
...
private void Var_Connected(object sender, PviEventArgs e)
{
// 创建一个链接变量对象
Variable linkToGlobVar = new Variable(cpuObj,"linkVar");
linkToGlobVar.LinkName = "Service1.Cpu1.var1"; // 或globVar.FullName。
linkToGlobVar.Connect(ConnectionType.Link);
}
为了创建一个与已经存在的连接的链接, 链接变量对象的LinkName 属性必须被设置为要引用的变量对象(FullName),作为层次名称的值。 在调用连接方法时,还必须给出 链接连接 类型,以便 启用LinkName 属性。
当连接成功建立后,那么额外的过程变量信息, 如DataType、ArrayLength 和 Value 都被保存在变量对象中(更多信息见Value类)。
如果变量的数据类型是一个结构,那么完整的结构层次就会在变量对象中自动重建。
Members 属性表示一个结构变量的所有元素的列表。当这种类型的结构变量被连接时, 每个元素 都 会有一个变量对象被添加到 成员 列表中。由于这个列表中的每个元素都是变量类型的,所以它们有可能在自己的 Members 列表 中也包含额外的变量元素 。
调用 Disconnect 函数结束通信对象和过程变量之间的现有连接。 Disconnected 事件确认了这个指令已经成功执行了。
此外, UserTag 属性提供了在服务器对象上以字符串形式创建用户特定数据的可能性。引用它的变量对象(ConnectionType.Link)"继承 "了服务器对象的配置数据。这个属性允许来自服务器变量对象的数据分配给其客户对象。因此,连接时这个属性的变化不仅仅报告给服务器对象;它也会通过 PropertyChanged 事件报告给客户端对象 。