您好!欢迎光临工博士商城

ABB工业机器人服务商

产品:75    
联系我们
联系方式
  • 联系人:王青慧
  • 电话:18616260662
  • 邮件:wqh@gongboshi.com
  • 手机:18616260662
新闻分类
首页 > ABB机器人新闻中心 > 上位机实时记录ABB机器人扭矩
ABB机器人新闻中心
上位机实时记录ABB机器人扭矩
发布时间:2021-01-26        浏览次数:543        返回列表

ABB机器人

1. 上位机实时采集机器人各轴扭矩,如何实现?

2. PCSDK未提供直接读取扭矩接口,但RAPID中可以通过指令

GetJointDataMechUnit:=ROB_1,1Torque:=reg1,读取1轴的扭矩并存储于reg1

3. 可以在RAPID创建后台程序,实时读取各轴扭矩。

4. 上位机根据选择,读取对应各轴扭矩数值并以曲线形式显示。

5. 机器人创建后台任务,并编写代码。编写完毕将后台任务设为semistatic,即开机自启动

 

var num axis_tor_arr{6}:=[0,0,0,0,0,0];

   PROC main()

       WHILETRUEDO

           FOR i FROM 1 TO 6 DO

               GetJointDataMechUnit:=ROB_1,iTorque:=axis_tor_arr{i};

               !将各轴扭矩存储于数组中

           ENDFOR

           waittime 0.1;

       ENDWHILE

ENDPROC

 

6. 为方便以曲线形式显示数据,这里使用HSLcomponent库中的user_curve控件(HSLcomponent获取方式见 上位机仪表盘实时显示机器人速度)

7. 在上位机插入user_curve控件,做相应设置。

8. 启动记录按钮创建代码如下:

 

Timer timer;

//通过定时器定时获取当前各轴扭矩

bool t_record = false;

  privatevoid button2_Click_1(object sender, EventArgs e)

       {

    if (t_record == false)

           {

               userCurve1.SetLeftCurve("A", newfloat[] { }, Color.Tomato);

               //创建空曲线

               timer.Tick += (sender1, e1) =>

               {

              RapidData rd = controller.Rapid.GetRapidData("t2", "module1", "axis_tor_arr");

             //获取任务t2下的module1下的axis_tor_arr数组

                   if (rd.IsArray)

                   {

                       ArrayData ad = (ArrayData)rd.Value;

                     //转化数组

                       float t1 = Convert.ToSingle(ad[comboBox1.SelectedIndex].ToString());

                    //根据选择的comboBox1序号,显示对应轴扭矩

                       if (comboBox1.SelectedIndex > 2)

                       {

                           userCurve1.ValueMaxLeft = 10;

                           userCurve1.ValueMinLeft = -10;

                       }

                      //调整Chart的显示上下限

                       else

                       {

                           userCurve1.ValueMaxLeft = 300;

                           userCurve1.ValueMinLeft = -300;

                       }

                  userCurve1.AddCurveData("A", t1);

                  //将当前数据填入

                   }

               };

              timer.Start();

               t_record = true;

               button2.Text = "停止记录扭矩";

           }

           else

           {

               timer.Stop();

               t_record = false;

               button2.Text = "开始记录扭矩";

           }

   }

更多资讯:ABB机器人




 

联系热线:18616260662 联系人:王青慧 联系地址:上海市宝山区富联一路98弄6号

技术和报价服务:星期一至星期六8:00-22:00 ABB工业机器人服务商

返回
顶部