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

全新的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
    评论
好的,以下是一个使用C#编写的ABB机器人SDK二次开发的DEMO示例: ```csharp using System; using ABB.Robotics.Controllers; using ABB.Robotics.Controllers.Discovery; using ABB.Robotics.Controllers.EventLogDomain; using ABB.Robotics.Controllers.FileSystemDomain; using ABB.Robotics.Controllers.RapidDomain; namespace ABBRobotDemo { class Program { static void Main(string[] args) { // 创建机器人控制器对象 ControllerInfoCollection controllers = ControllerInfoFactory.GetControllers(); ControllerInfo controllerInfo = controllers[0]; Controller controller = ControllerFactory.CreateFrom(controllerInfo); // 连接机器人控制器 controller.Logon(UserInfo.DefaultUser); // 获取机器人状态 State state = controller.State; Console.WriteLine("Robot State: " + state.ToString()); // 获取机器人位置信息 RobotPosition position = controller.MotionSystem.Position; Console.WriteLine("Robot Position: X=" + position.X + ", Y=" + position.Y + ", Z=" + position.Z); // 控制机器人移动到指定位置 RobotPosition targetPosition = new RobotPosition(); targetPosition.X = 100; targetPosition.Y = 100; targetPosition.Z = 100; targetPosition.Q1 = 0; targetPosition.Q2 = 0; targetPosition.Q3 = 0; targetPosition.Q4 = 1; controller.MotionSystem.Motion.MoveTo(targetPosition); // 断开机器人控制器连接 controller.Logoff(); } } } ``` 这个DEMO展示了如何使用C#编写ABB机器人SDK连接、获取机器人状态和位置信息,以及控制机器人移动到指定位置。这只是一个简单的示例,你可以根据自己的需求进行二次开发

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值