第一步:安装软件
VS2017+PCSDK 2019.5 7.0.8721.594
分别在微软官网和ABB官网下载。

第二步:安装完软件后,找到PC SDK的安装目录,默认目录是C:\Program Files (x86)\ABB\SDK\PCSDK 2019。打开目录下的文件

在VS中添加引用。
将ABB.Robotics.Controllers.PC.dll和RobotStudio.Services.RobApi.dll两个DLL文件添加进来。
添加using指令。

第三步:程序实现,建立连接。

        public static ABB.Robotics.Controllers.RapidDomain.Task tRob1 = null;//
        private NetworkScanner scanner = null;private Controller controller = null;
ControllerInfoCollection controllers = null;
scanner = new NetworkScanner();
scanner.Scan();
controllers = scanner.Controllers;//扫描到的所有控制器
            if (scanner.Controllers.Count == 1)//只搜索到一个机械手的情况,{try{if (controllers[0].IPAddress.ToString() == "192.168.1.80"){controller = Controller.Connect(controllers[0], ABB.Robotics.Controllers.ConnectionType.Standalone, false);}}catch (Exception ex) { MessageBox.Show(ex.ToString()); }}
            if (controller != null){if (controller.Connected == true){controller.Logon(UserInfo.DefaultUser);tRob1 = controller.Rapid.GetTask("T_ROB1");}if (controller.Connected == true)//指示灯{pictureBox3.Image = imageList1.Images[3];}else{pictureBox3.Image = imageList1.Images[1];}}

第四步:向ABB坐标变量、位变量等写入或读取数据。
c# 写ABB布尔变量:

                        if (controller.IsMaster == false && controller.OperatingMode == ControllerOperatingMode.Auto){try{using (var m = Mastership.Request(controller)){if (controller.IsMaster == false) MessageBox.Show("ABB主机请求失败");var rd16 = controller.Rapid.GetRapidData("T_ROB1", "MainModule", "ABB_detection_star");                  rd16.Value = new Bool(true);}}catch (Exception ex){                                MessageBox.Show(ex.ToString());}                        }

C#读ABB布尔变量:

                                        RapidData rd4 = controller.Rapid.GetRapidData("T_ROB1", "MainModule", "ABB_safety_bit");if (rd4.Value is Bool){Bool rapidBool = (Bool)rd4.Value;}

C#读坐标变量:

                if (MAIN.tRob1 != null){MAIN.rd_repeat = MAIN.tRob1.GetRapidData("MainModule", "ABB_photo_data");RobTarget rgb1 = (RobTarget)MAIN.rd_repeat.Value;dataGridView2.Rows[2].Cells[1].Value = rgb1.Trans.X.ToString();dataGridView2.Rows[3].Cells[1].Value = rgb1.Trans.Y.ToString();dataGridView2.Rows[4].Cells[1].Value = rgb1.Trans.Z.ToString();}

C#写入坐标变量:

                                            using (var m = Mastership.Request(controller)){RapidData rx5 = controller.Rapid.GetTask("T_ROB1").GetModule("MainModule").GetRapidData("pPlaceA");RobTarget rgt5 = (RobTarget)rx5.Value;if (controller.IsMaster == false) MessageBox.Show("ABB主机请求失败2");rgt5.Trans.X = (float)79.25;;rgt5.Trans.Y = (float)83.29;rgt5.Trans.Z = (float)39.55;//rbg.FillFromString2("[[123.28,1029.42,573.04],[0.241743,-0.666781,0.280356,-0.64681],[0,-2,3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]");rx5.Value = rgt5;//在ABB指定位置写入坐标}

C#针对网线接触不良,ABB断电等可以加断开连接检测功能:

                if (controller != null)//实际测试验证好用,ABB断电,指示灯变为红灯,ABB再次上电,指示灯自动变为绿灯{try{if (controller.Connected == false){pictureBox3.Image = imageList1.Images[1];controller = null;//断开连接后,CONTROLLER给NULL值,方便程序自动重连。// MessageBox.Show("ABB断开连接");}else{pictureBox3.Image = imageList1.Images[3];}}catch (Exception ex){MessageBox.Show(ex.ToString());}}

到这基本基本可以实现C#与ABB通信兵控制ABB运动的各项基本功能。longtuodz@163.com
淘宝:https://shop58558941.taobao.com/

C#与ABB机械手建立通信,并控制机械手动作相关推荐

  1. 实现C# 与ABB机器人建立通讯,并对机器人进行实时的控制

    C# 与ABB机器人建立通讯 安装软件 VS2013+RobotStudio5.61+PC SDK5.61 注: 1.RobotStudio 和 PC SDK 可以去官网下载 .http://deve ...

  2. 九、stm32-蓝牙HC_05(接发通信、控制LED亮灭)

    目录 一.固件库模板 二.准备资料 三.简介 1. 引脚 2. AT: 设置工作模式 3. 基本配置(所有AT指令都必须换行) 4. AT命令的详细说明 四.实验 1.硬件设计 2.软件设计 2.1 ...

  3. ABB 机器人 DRVIO_1通信报警

    ABB 机器人DRVIO_1通信报警 2014.06.13 ABB1600弧焊机器人,从A地搬运到B地,到达B地后,机器人上电,报DRVIO_1通信故障,机器人进入故障停止模式. DRVIO_1为LO ...

  4. matlab 模糊pid mimo 对应,双关节机械手的模糊PID控制系统设计.doc

    双关节机械手的模糊 PID 控制系统设计 摘 要 为了实现高阶.非线性.强耦合的机械手运动系统的控制,本文选用能够充分 体现机械手特性并且结构较为简单的 2 自由度机械手--双关节机械手,作为被控 对 ...

  5. 罗克韦尔AB PLC 通过RSLinx Classic与PLC建立通信的具体方法步骤

    罗克韦尔AB PLC 通过RSLinx Classic与PLC建立通信的具体方法步骤 本次我们使用以太网通信的方式,通过RSLinx Classic实现与AB PLC的通信. 具体方法可参考以下内容: ...

  6. 电脑A和电脑B建立通信,这就是网络。IO、中断、缓冲区这都不是研究网络时该关心的事

    你是一台电脑,你的名字叫 A 很久很久之前,你不与任何其他电脑相连接,孤苦伶仃. 直到有一天,你希望与另一台电脑 B 建立通信,于是你们各开了一个网口,用一根网线连接了起来. 用一根网线连接起来怎么就 ...

  7. matlab控制机械手,单关节机械手最优轨迹控制算法优化

    1 概述 常见工业机器人就是利用对于机械手中的伺服电机进行控制,准确控制机械手自由端运行轨迹,常见类型有:直接坐标型.圆柱坐标型.球坐标型和关节型.如图1 所示,关节型机械手运行轨迹通过极坐标来研究. ...

  8. 大型三菱plcQ系列 四个QD77简易运动模块,通信总线控制 48 轴,程序八万步

    大型三菱plcQ系列 四个QD77简易运动模块,通信总线控制 48 轴,程序八万步,写法新颖,思路清晰!读性性和可移植性强,带远程I/O!以态网通信,视觉通信,伺服参数设置!程序虽然复杂,但分块编写, ...

  9. 多智能体协同传输的事件触发通信与控制的深度强化学习(ICRA-2021)

    摘要 本文探讨了一种多智能体强化学习方法来解决多智能体协作传输的通信和控制策略设计问题.典型的端到端深度神经网络策略可能不足以覆盖通信和控制;这些方法不能决定通信的时间,只能工作在固定速率的通信.因此 ...

最新文章

  1. report service常见处理办法
  2. php支付宝h5 app,H5网站接入支付宝的支付接口
  3. 厉害了,ES 如何做到几十亿数据检索 3 秒返回!
  4. slf4j介绍及配置详解
  5. 【C语言及程序设计】项目1-24-4:个人所得税计算器if语句版
  6. javascript中的错误处理机制
  7. Ubuntu下安装PHP的mongodb扩展操作命令
  8. 1250. Sea Burial
  9. Java生成CSV文件的方法
  10. HDU 1995 R-汉诺塔V
  11. 安徽省考计算机专业知识分值分布,安徽省考行测题型分布和分值
  12. Xposed反射大师脱壳教程
  13. 关于Arcgis runtime sdk for android加载本地.tpk报错Failed to open file. May not be a valid tile package的解决方法
  14. 【EndNote】-详细步骤-导入网页/电子文献及外网(IEEE)文献
  15. 硬盘接口IDE、SATA、SCSI
  16. 华为网吧服务器型号,网吧服务器推荐
  17. 1小时使用阿里云区块链服务创建一个区块链小游戏
  18. 【附源码】计算机毕业设计SSM献血管理系统
  19. 使用phpexcel导出excel常用函数
  20. 发现教课书中错误,谢希仁给我亲笔签名

热门文章

  1. NXP(imx8qxp)上android11的EG25-G(4G)模块调试记录
  2. PHP 数据库读写分离 2020
  3. windows补丁下载网站
  4. xp linux双系统引导修复工具下载,双系统引导修复工具下载
  5. oracle10漏洞补丁下载,Oracle漏洞修复工具
  6. ibm tivoli_使用IBM Tivoli Access Manager实施密码到期提醒
  7. 自动问题解答的一些基本知识
  8. 吐血推荐收藏的学位论文排版教程(完整版)
  9. 这样说期望薪资肯定没错!
  10. 快速搭建自己的 KMS 服务器