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

abb配件专营店

产品:98    
联系我们
您当前的位置:首页 » 新闻中心 » 上位机实时记录ABB机器人扭矩——ABB机器人配件
产品分类
新闻中心
上位机实时记录ABB机器人扭矩——ABB机器人配件
发布时间:2020-12-17        浏览次数:564        返回列表
 

 

 

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机器人配件


分享到: 


 

联系热线:13701751775   联系人:黄真真 联系地址:上海市嘉定区南翔镇众仁路399号B栋20层2007-2012

技术和报价服务:星期一至星期六8:00-22:00 abb配件专营店