ABB_利用C#SDK二次开发V2.1

本次更新推出了全新的V2.1版本,重点加强了机器人监控和用户交互体验。新增了程序指针运行行号显示、按钮互锁功能,避免误操作。同时,增加了实时监控机器人模式、电机状态、运行状态和坐标信息等功能,确保操作的安全性和效率。源码展示了如何获取并显示机器人坐标信息。
摘要由CSDN通过智能技术生成

全新的V2.1版本发布了,根据实际需要后面会完善基本功能,并开发出更实用的功能模块,欢迎小伙伴们留言。详细更新内容介绍如下:

更新1:新增显示程序指针运行行号,方便了解程序执行到哪一行。

更新2:新增按钮互锁功能,模拟现实示教器操作步骤,并防止不懂机器人的操作的小伙伴误操作。

更新3:在查看所有例行程序名的下拉框基础上,新增程序指针移至该例行程序。。

更新4:新增底部状态栏显示,实时监控机器人的模式、电机状态、运行状态。

更新5:新增机器人位置信息栏,实时刷新当前机器人大地坐标、关节坐标

更新6:新增机器人位置信息栏,实时刷新当前机器人工具坐标,工件坐标系。

更新7:界面优化,限定界面大小,按钮位置等等。

按照国际惯例 附上部分源码:

        private void timer_get_pose_Tick(object sender, EventArgs e)
        {
            //定时任务1s获取机器人坐标
            double rx;
            double ry;
            double rz;
            JointTarget aJointTarget = controller.MotionSystem.ActiveMechanicalUnit.GetPosition();
            aRobTarget = controller.MotionSystem.ActiveMechanicalUnit.GetPosition(CoordinateSystemType.Base);
            Tool tool = controller.MotionSystem.ActiveMechanicalUnit.Tool;
            WorkObject workobj = controller.MotionSystem.ActiveMechanicalUnit.WorkObject;
            ToolData t = (ToolData)tool.Data;
            WobjData wobj = (WobjData)workobj.Data;

            string s1 = "";
            s1 = "当前工具:" + tool.Name + " ";
            s1 = s1 + t.Tframe.ToString() + "\r\n";
            s1 = s1 + "当前工件坐标系:" + workobj.Name + " ";
            s1 = s1 + "Uframe " + wobj.Uframe.ToString() + " ";
            // 跨线程访问
            Action action = () =>
            {
                string CoordinateName = PoseShowcomboBox1.Text;
                if (CoordinateName == "大地坐标系")
                {
                    aRobTarget = controller.MotionSystem.ActiveMechanicalUnit.GetPosition(CoordinateSystemType.World);
                }
                else if (CoordinateName == "基座标系")
                {
                    aRobTarget = controller.MotionSystem.ActiveMechanicalUnit.GetPosition(CoordinateSystemType.Base);
                }
                else if (CoordinateName == "工件坐标系")
                {
                    aRobTarget = controller.MotionSystem.ActiveMechanicalUnit.GetPosition(CoordinateSystemType.WorkObject);
                }
                textBoxX.Text = aRobTarget.Trans.X.ToString(format: "#0.00");
                textBoxY.Text = aRobTarget.Trans.Y.ToString(format: "#0.00");
                textBoxZ.Text = aRobTarget.Trans.Z.ToString(format: "#0.00");
                aRobTarget.Rot.ToEulerAngles(out rx, out ry, out rz);
                textBoxRX.Text = rz.ToString(format: "#0.00");
                textBoxRY.Text = ry.ToString(format: "#0.00");
                textBoxRZ.Text = rx.ToString(format: "#0.00");
                textBoxJ1.Text = aJointTarget.RobAx.Rax_1.ToString(format: "#0.00");
                textBoxJ2.Text = aJointTarget.RobAx.Rax_2.ToString(format: "#0.00");
                textBoxJ3.Text = aJointTarget.RobAx.Rax_3.ToString(format: "#0.00");
                textBoxJ4.Text = aJointTarget.RobAx.Rax_4.ToString(format: "#0.00");
                textBoxJ5.Text = aJointTarget.RobAx.Rax_5.ToString(format: "#0.00");
                textBoxJ6.Text = aJointTarget.RobAx.Rax_6.ToString(format: "#0.00");
                textBoxq1.Text = aRobTarget.Rot.Q1.ToString(format: "#0.00000");
                textBoxq2.Text = aRobTarget.Rot.Q2.ToString(format: "#0.00000");
                textBoxq3.Text = aRobTarget.Rot.Q3.ToString(format: "#0.00000");
                textBoxq4.Text = aRobTarget.Rot.Q4.ToString(format: "#0.00000");
                TemprichTextBox.Clear();
                TemprichTextBox.Text = s1;
            };
            this.Invoke(action);
       

观看视频地址

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值