代码编织梦想

1.1开发背景

ABB(Asea Brown Boveri)机器人是工业领域中广泛应用的自动化解决方案之一。这些机器人在生产线上执行各种任务,如装配、焊接和搬运,极大地提高了生产效率和产品质量。然而,尽管ABB机器人拥有出色的性能,但在某些特定应用场景中,我们可能需要进一步定制和优化机器人的行为以满足特定需求。

C#作为一种强大的编程语言,具有丰富的库和框架,为开发人员提供了灵活性和便利性。通过利用C#进行二次开发,我们可以在ABB机器人的基础上添加新的功能,优化其运行效率,甚至实现与其他系统的集成,从而更好地满足特定生产要求。

1.2 开发环境

Visual Studio 2022,基于.net Framework 4.8进行开发,SDK使用ABB PC SDK 2019.

废话不多说直接展示:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics.Eventing.Reader;
using System.Drawing;
using System.Linq;
using System.Reflection.Emit;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ABB.Robotics.Controllers;//控制器
using ABB.Robotics.Controllers.Discovery;//搜索控制器
using ABB.Robotics.Controllers.MotionDomain;
using ABB.Robotics.Controllers.RapidDomain;//控制相关
using Adapters;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;

namespace abb
{
    public partial class Form1 : Form
    {
        
        //机器人网络扫描器NetworkScanner类实例化对象Scanner
        private NetworkScanner scanner = new NetworkScanner();  //构造函数

        //机器人控制器Controller类实例化对象contrillerll
        private ABB.Robotics.Controllers.Controller controller1 = null;

        //机器人控制器RapidTask类实例化对象为数组tasks
        private ABB.Robotics.Controllers.RapidDomain.Task[] tasks = null;

        //机器人程序数据rapidData类实例化对象p10Ra
        private RapidData P10Ra;

        //机器人程序Robtarget类实例化对象P10Ro
        private RapidData P10Ro;

        public Form1()
        {
            InitializeComponent();
        }

扫描机器人

private void button1_Click(object sender, EventArgs e)
        {
            if (scanner == null)
            {
                scanner = new NetworkScanner();
            }
            scanner.Scan();
            ControllerInfoCollection controls = scanner.Controllers;
            this.listView1.Items.Clear();
            foreach (ControllerInfo info in controls)
            {
                ListViewItem item = new ListViewItem(info.SystemName);
                item.SubItems.Add(info.IPAddress.ToString());//显示IP地址
                item.SubItems.Add(info.Version.ToString());//显示robotware版本
                item.SubItems.Add(info.IsVirtual.ToString());// 显示是否为虚拟控制
                item.SubItems.Add(info.ControllerName.ToString());//显示控制器名称
                item.Tag = info;
                this.listView1.Items.Add(item);
            }
        }

连接机器人

 private void listView1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            if (this.listView1.Items.Count > 0)
            {
                ListViewItem item = this.listView1.SelectedItems[0];
                if (item != null)
                {
                    ControllerInfo info = (ControllerInfo)item.Tag;
                    if (info.Availability == Availability.Available)
                    {
                        if (controller != null)
                        {
                            controller.Logoff();
                            controller.Dispose();
                            controller = null;
                        }
                        controller = ControllerFactory.CreateFrom(info);
                        controller.Logon(UserInfo.DefaultUser);
                        //激活定时器事件
                        timer1.Enabled = true;
                        MessageBox.Show("已经登录控制器" + info.SystemName);

                    }
                }


            }
        }

上电

   private void button_MotroOn_Click(object sender, EventArgs e)
        {
            try
            {
                //判断控制器是否为自动模式
                if (controller.OperatingMode == ControllerOperatingMode.Auto)
                {
                    //电机上电
                    controller.State = ControllerState.MotorsOn;
                }
                //不是自动模式
                else
                {
                    MessageBox.Show("请切换到自动状态");
                }
            }
            //当发生上电异常时的处理
            catch (System.Exception ex)
            {
                MessageBox.Show("异常处理:" + ex.Message);
            }
        }

好了本期分享就到这里,有疑问的欢迎留言。下期介绍软件登录系统制作。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_50493484/article/details/134497384

abb机器人二次开发环境-爱代码爱编程

一、软件安装: 1、robotstudio6.08直接安装 2、robotstudio SDK直接安装        3、PC SDK安装                                                                  下载后有两个安装文件ABB Robot Communication Runtim

ABB机器人二次开发(C#)- 二更-爱代码爱编程

ABB机器人二次开发(C#)- 二更 3 编程学习篇3.1 PC SDK学习3.2 代码阅读和学习3.3 代码编写3.4 小结 3 编程学习篇 创作背景在上一篇文章中写过,此处不再赘述。作者之前学过VB,还算是系统学习,用VB.Net写过软件,C#与VB.Net很相似,好像.Net的框架都比较类似,上手快。大概翻了C#的相关书籍,开始规划界面

ABB机器人二次开发:基于Screen Maker功能的I/O信号监控画面设计-爱代码爱编程

目录 功能介绍 安装示教器二次开发SDK包 机器人系统选项配置 打开仿真软件 I/O信号配置 创建新Screen Maker项目 示教器画面设计 连接机器人控制器 控件I/O信号连接 项目编译部署 运行测试 本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号:IndRobSim),欢迎关注! 功能介绍 ABB机器人示教器

C#ABB机器人二次开发记录(1)-爱代码爱编程

文章目录 前言一、环境配置二、功能实现 1.连接机器人2.读入数据总结 前言       记录下学习的过程,欢迎各位大佬交流学习。 一、环境配置         首先在ABB机器人官网找到ABB机器人SDK二次开发包,我也会放在文后的资源中,与我之前在网上下载学习的几个案例一起打包上传,案例对机器人功能开发非常

-爱代码爱编程

ABB机器人二次开发 C#读取和写入数据,可以获取点位信息及写入点位信息。 自己写的ABB机器人类,机器人常规操作功能都有,非常适合进行二次开发。 ABB机器人二次开发与C#读写数据操作 随着工业自动化的发展,机器人技术已经广泛应用于各个领域。ABB公司作为全球领先的机器人制造商,其机器人产品被广泛应用于各种生产线上。在实际应用中,有时需要对ABB机器

abb机器人c#二次开发:读写数据、获取与写入点位信息,全面扩展常规操作功能_c#读取abb机器人扭矩-爱代码爱编程

ABB机器人二次开发 C#读取和写入数据,可以获取点位信息及写入点位信息。 自己写的ABB机器人类,机器人常规操作功能都有,非常适合进行二次开发。 YID:3717635959328320 最后一只烤鸭

abb机器人二次开发:利用c#读写数据,轻松获取和更新点位信息_abb机器人支持哪些编程语言二次开发-爱代码爱编程

ABB机器人二次开发 C#读取和写入数据,可以获取点位信息及写入点位信息。 自己写的ABB机器人类,机器人常规操作功能都有,非常适合进行二次开发。 YID:3717635959328320 最后一只烤鸭