数据接口
一 概述
前面介绍了指令层面的内容,从本篇开始,准备介绍下怎么使用班特开放控制器平台的数据接口,这样就可以把自己的任务和控制卡内部的数据关联起来。
二 实现过程
我们在之前的介绍中已经提到,控制卡开放给客户5个任务,在user.c里面,其中第一个任务Task_user_1的执行频率最高,是100ms一次。因此,我们可以将数据获取的接口放在这个任务里面更新,具体代码为:
void Task_user_1(void)
{
static int i = 0;
Bant_get_vars(user_pos);
if(i%2 == 0)
{
//心跳指示
//bsp_LedToggle(1);
bsp_LedToggle(2);
}
i++;
}
其中,变量user_pos是一个含有3个元素的数组,分别代表xyz的位置,单位是mm
Bant_get_vars()函数就是控制器交付数据的接口,可以向外提供TCP的坐标。
三 结果测试
首先运行控制器,欢迎信息如下:
welcome to Bant Robot control: ver=10,bdtime=20240530
please select the mode S07 1 for simulation,S07 0 for run with motor
chip ID:32 aa 20 aa 9 47 33 31 31 34 38 31 auth=0
记住chip ID号,发送给授权人员,来开通使用权限,注意红色的auth部分,如果为0表示尚未激活,是无法使用的。
3.1 设置仿真模式S07 1
3.2 进入控制模式S04
此时,可以在调试窗口加入user_pos
可以看到,一开始位置是0
图1 起始位置
3.3 开始直线插补运动M02 -1000 3000 0 0 0 0 0
这个时候,机器人开始运动,并且数据窗口开始刷新变化
图2 直线运动过程中
过了一段时间,机器停止运动,可以用Q02指令来查看结果
robot_state = RO_STAND_STILL
sim_mode = 1
tick = 367
path=-10.000,30.000,0.000,-0.000
joint=-900.000,2700.000,0.000,0.000
vmax_lin=20.000,acc_lin=10.000,vmax_ang=20.000,acc_ang=10.000
结果表明,机器人已经运行到笛卡尔坐标10mm和30mm处,此时的位置窗口也刷新了。
图3 运动结束
好了,数据接口暂时介绍这么多,更多内容,后续添加。