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

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

更新1:UI界面整体更新,整体风格选用蓝色主题界面边框显示

更新2:新增运行模式设定,支持和示教器一样的运行操作模式,单周运行、连续运行,需要停止后再启动生效。
更新3:新增步进模式,单步运行,持续运行,跳过执行,跳至下一个运作指令执行功能。和示教器操作一致,不熟悉可以看下截图。
更新4:新增手自动模式选择,可在虚拟示教器中控制手自动模式。

更新5:新增电机上电断电功能,模拟实际控制器中的Moto_On按钮功能。
更新6:新增控制机器人运行速度条功能,并实时显示。

功能7:新增右键删除Log和复制Log上的信息属性。
附上部分源码:

//设置机器人速度
        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            int num = trackBar1.Value;
            textBox1.Text = num.ToString();
            try
            {
                this.controller.MotionSystem.SpeedRatio = num;
            }
            catch (Exception)
            {
                return;
            }
        }
        //设置自动模式
        private void AutoradioButton_CheckedChanged(object sender, EventArgs e)
        {


            try
            {
                if (this.listView1.SelectedIndices.Count < 1)
                {
                    MessageBox.Show("请连接控制器");
                    return;
                }
                if (AutoradioButton.Checked)
                {
                    List<string> result = new List<string>();
                    Change_Mode = ControllerOperatingMode.Auto;
                    Robot_Control.Operating_Mode(controller, out result, Change_Mode);
                    List<string> log_info = new List<string>();
                    errLog = Robot_Control.errLogger(errLog, "[msg]\t请去示教器去确认自动模式");
                    richTextBox1.Lines = errLog.ToArray();
                }


                
            }
            catch
            {
                MessageBox.Show("请连接控制器", "警告");
            }
        }
        //电机上电
        private void Motor_Onbutton7_Click(object sender, EventArgs e)
        {
            List<string> result = new List<string>();
            if (this.listView1.SelectedIndices.Count < 1)
            {
                MessageBox.Show("请连接控制器");
                return;
            }
            if (controller.State != ControllerState.MotorsOff)
            {
                result.Add("[warning]    当前状态是".Insert(18,controller.State.ToString()) );
                errLog = Robot_Control.errLogger(errLog,result[0]);
                richTextBox1.Lines = errLog.ToArray();
                return ;
            }
            if (controller.OperatingMode != ControllerOperatingMode.Auto)
            {
                result.Add("[warning]    需要等待确认自动模式");
                errLog = Robot_Control.errLogger(errLog, result[0]);
                richTextBox1.Lines = errLog.ToArray();
                return;
            }
            else
            {
                try
                {
                    controller.State = ControllerState.MotorsOn;
                    result.Add("[msg]    电机上电".Insert(9, " "+curr_control_name));
                    errLog = Robot_Control.errLogger(errLog, result[0]);
                    richTextBox1.Lines = errLog.ToArray();
                }
                catch (Exception ex)
                {
                    result.Add("[error]" + ex.ToString());
                }
            }
        }
        //单周运行
        private void RegainMode_ItemCheck(object sender, ItemCheckEventArgs e)
        {
            if (this.RegainMode.CheckedItems.Count > 0)
            {
                for (int i = 0; i < this.RegainMode.Items.Count; i++)
                {
                    if (i != e.Index)
                    {
                        this.RegainMode.SetItemCheckState(i, System.Windows.Forms.CheckState.Unchecked);
                        
                    }
                }

                if (RegainMode.SelectedItem.ToString() == "单周运行")
                {
                    cycle = ExecutionCycle.Once;
                }
                else
                {
                    cycle = ExecutionCycle.Forever;
                }
                Execution_Status = RegainMode.SelectedItem.ToString();
            }
            
        }

视频操作介绍

上位机整体界面:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
喜欢的朋友,关注下公众号,谢谢!
在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值