SimpleClientServer

<< 点击显示目录 >>

主页  PVI通信 > PVI帮助信息 > 例程 >

SimpleClientServer

本例展示了如何在一个客户/服务器应用程序中使用BR.AN.PviServices组件。Server.exe实例化了一个进程变量,Client.exe实例化了一个指向该进程变量的链接变量。

Server.exe

1.创建一个新的Windows应用程序项目。

sample2_1

1.将BR.AN.PviServices.dll添加到你的项目引用中。

sample2_2

2.在你的表单中插入一个按钮和一个标签。

sample2_3

3.插入以下代码行。

using BR.AN.PviServices;

...

...

 

private Service service;

private Cpu cpu;

private Variable variable;

 

private void button1_Click(object sender, System.EventArgs e)

{

   service = new Service("Service");

   service.Error += new PviEventHandler(Error);

   service.Connect();

 

   cpu = new Cpu(service,"CpuName");

   cpu.Connection.DeviceType = DeviceType.Serial;

   cpu.Connection.Serial.Channel = 2;

   cpu.Connect();

 

   variable = new Variable(cpu,"ProcVar");

   variable.Address = "count";

   variable.Connect();

   variable.Active = true;

   variable.ValueChanged += new VariableEventHandler(ValueChanged);

}

 

private void Error(object sender, PviEventArgs e)

{

   label1.Text = String.Format("Error:{0}",e.ErrorText);

}

 

private void ValueChanged(object sender, VariableEventArgs e)

{

  if ( e.ErrorCode == 0 )

   {

       Variable var = (Variable)sender;

       label1.Text = var.Value.ToString();

   }

  else

       label1.Text = String.Format("Error: {0}",e.ErrorText);

}

}

4.启动你的应用

sample2_4

Client.exe

在客户端应用程序中,步骤1-3是相同的。

1.创建一个新的Windows应用程序项目。

2.将BR.AN.PviServices.dll添加到你的项目引用中。

3.在你的表单中插入一个按钮和一个标签。

4.插入以下代码行。

using BR.AN.PviServices;

...

...

 

private Service service;

private Cpu cpu;

private Variable variable;

 

private void button1_Click(object sender, System.EventArgs e)

{

   service = new Service("Service");

   service.Error += new PviEventHandler(Error);

   service.Connect("10.43.70.74",20000);

 

   variable = new Variable(service,"LinkVar");  

   variable.LinkName = "Service.CpuName.ProcVar";

   variable.Connect(ConnectionType.Link);

   variable.Active = true;

   variable.ValueChanged += new VariableEventHandler(ValueChanged);

}

 

private void Error(object sender, PviEventArgs e)

{

   label1.Text = String.Format("Error:{0}",e.ErrorText);

}

 

private void ValueChanged(object sender, VariableEventArgs e)

{

  if ( e.ErrorCode == 0 )

   {

       Variable var = (Variable)sender;

       label1.Text = var.Value.ToString();

   }

  else

       label1.Text = String.Format("Error: {0}",e.ErrorText);

}

}

1.启动应用程序

你在客户端得到相同的变量值

sample2_5