PC SDK并未提供ABB机器人实际运行速度绝对值的输出接口。
可以利用机器人系统输出TCPSpeed,关联相关模拟量输出信号。上位机利用Signal Value Changed事件订阅该信号的变化并关联到图形化控件。
创建虚拟模拟量输出信号ao_speed,如下图。并关联该信号到系统输出TCP Speed上,
为更好的显示速度变化,可以采用HslCommunication的UserGaugeChart控件,如文首的仪表盘。可以在Visual Studio中的NuGet管理器中下载HslCommunication,或者在下图打开程序包管理器控制台,并且输入Install-Package HslCommunication进行安装。安装完毕后,在当前项目对应文件夹的Package文件夹下找到HslCommunication.dll,拖入Visual Studio的工具箱。
在窗体程序中,拖入UserGaugeChart控件,并设置相应最大最小数据,报警数据,单位等(此处假设机器人最大速度为1000mm/s)。上位机侧,在机器人登录机器人控制器后,添加对ao_speed信号的订阅,代码如下。机器人启动后,可以看到机器人实时速度变化。
voidsubscribe()
{
Signal sigspeed =controller.IOSystem.GetSignal("ao_speed");
sigspeed.Changed += newEventHandler
}
privatevoidsig_Changed(object sender,SignalChangedEventArgs e)
{
this.Invoke(new EventHandler(UpdateGUIsig), sender, e);
//为了避免界面线程和主线程冲突,采用委托方式
}
privatevoid UpdateGUIsig(object sender,System.EventArgs e)
{
Signal s = (Signal)sender;
userGaugeChart1.Value =Math.Round(s.Value*1000);
//TCP Speed输出为 m/s,此处转化为mm/s,即乘以1000。显示数据取整。
}