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

第一步:安装软件
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运动的各项基本功能

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

  1. ABB机械手RobotStudio6.08 激活秘钥 和 激活方式

    robotstudio6.08激活办法如下 ABB机械手作为工业机械手四大品牌之一,无论是市场占用率还是品质服务都是非常优秀,值得学习. 注:仅供个人学习熟悉激活使用,购买机械手后,可找供应商提供激活 ...

  2. C#与ABB机械手建立通信,并控制机械手动作

    第一步:安装软件 VS2017+PCSDK 2019.5 7.0.8721.594 分别在微软官网和ABB官网下载. 第二步:安装完软件后,找到PC SDK的安装目录,默认目录是C:\Program ...

  3. abb机械手故障代码20082_ABB工业机器人常见的故障和如何处理这些故障的详细

    在什么情况下需要为工业机器人进行备份? 答: 1.新机器第一次上电后. 2.在做任何修改之前. 3.在完成修改之后. 4.如果工业机器人重要,定期1周一次. 5.最好在U盘也做备份. 6.太旧的备份定 ...

  4. abb机械手故障代码20082_ABB机器人报错代码:按事件日志进行故障排除报错代码1...

    5.3 1 xxxx 10002, 程序指针已经复位 说明 任务arg 的程序指针已经复位. 后果 启动后,程序将在任务录入例行程序发出第一个指令时开始执行. 请注意重新启动后机械手可能移动到非预期位 ...

  5. ABB机械手用RobotStudio 6.07启动虚拟控制器

    启动虚拟控制器 当没有系统可以选择,需要打开"安装管理器"新建一个系统. 正常为 选择系统后,确定,就可以启动虚拟示教器 新建虚拟控制器 打开安装管理器 新建虚拟控制器(需要注意在 ...

  6. halcon ABB机械手 手眼标定

    halcon的手眼标定是有例程的,我用的是手被固定在眼外. 首先是准备一块halcon的标定板,固定在ABB的法兰盘工具处,手动控制机械臂移动. 每固定一次,拍摄图片,记录当前机械臂姿态.记录姿态用: ...

  7. abb机械手故障代码20082_ABB变频器常见故障代码大全

    代码 显示 描述 1 OVEACURAENT 过流 负载太大 加速时间太短 ( 参数 2201 ACCELER TIME 1 和 2203 ACCELER TIME 2) 电机或电机电缆故障或连接错误 ...

  8. 上位机引导机械手、ABB机器人C#二次开发、PC SDK 开发项目。应用机器人喷涂或机器人搬运

    上位机引导机械手.ABB机器人C#二次开发.PC SDK 开发项目.应用机器人喷涂或机器人搬运. 提供运行环境:电脑端vs2019运行程序,ABB机器人端robotstudio6.08 提供源-程序: ...

  9. ABB机器人机械手DSQC328A DSQC509 3HAC5687-1 3HAC16831-1 DSQC540 3HAC14279-1 DSQC532B 3HAC023447-1/01

    ABB机械手是通过示教盒上的键控和显示功能,使操人员顺利实现对变位机运动的示教控制,并把位置信息反馈给操作人员,实现人机交互的功能.是ABB机器人操作必不可少的主要控制部件,ABB机器人示教盒摇杆,A ...

最新文章

  1. c# 关闭软件 进程 杀死进程
  2. kubernetes集群网络配置方案——flannel部署
  3. splunk的bucket组织目录——时间序列,按照时间来组织目录
  4. f(f(x)) = -x
  5. Android 之PackageManager框架
  6. Fiddler如何查找登陆的可用cookie用于其他请求?方式一
  7. 还债速度果然快,罗永浩限高令已再度解除
  8. Linux内核深入理解中断和异常(8):串口驱动程序
  9. C# Zip解压缩,规避 [content_types].xml 文件
  10. php论坛如何加评论表情,DEDECMS会员评论时添加多个表情
  11. MockServer 服务框架
  12. 高等数学(第七版)同济大学 习题1-5 个人解答
  13. 卸载掉WPS后安装Office文档图标显示异常
  14. 武汉大学 gps 计算机 陈冰,武汉大学2015届优秀毕业研究生名单.doc
  15. 【欣赏】一组伤感唯美的图片
  16. 2023年1月综合预订类APP用户洞察——旅游市场复苏明显,三年需求春节集中释放
  17. 一种很神奇但是也很有意思的分组方式
  18. NewStarCTF 公开赛赛道-WEEK1|REVERSE
  19. 父亲母亲-儿时的快乐
  20. Python Basic - readlines()方法

热门文章

  1. 是男人就下100层【第一层】——高仿微信界面(2)
  2. Linux 学习(6)之磁碟分割
  3. 卷积神经网络在图像识别上的应用介绍(一)
  4. 各大网站前端web服务器汇总-nginx居首
  5. Scratch3.0----列表
  6. 奔驰原厂柏林之声加装 成都蔚一名车汇
  7. 北京工商大学计算机考研资料汇总
  8. java mdb文件_java读取mdb文件
  9. 快速微课制作方法和技巧
  10. 第一章 为什么我们对机器学习感兴趣?(八)