ABB机器人设置安全区(案例版)
ABB机器人设置安全区、中断(案例版)
1.概述
在如今机器人中普遍会设置机器人的安全区域,也可以理解为工作范围。主要目的是为了机器人运行时的安全性和可靠性。ABB机器人也不例外,下面我们就讲讲ABB机器人安全区域的设定。
2.设置安全区基本知识
第一步:定义该全局变量的类型:长方体(WZBoxDef)、圆柱(WZCylDef)、球形(WZSphDef)
第二步:定义启动全局区域:带输出(WZDOSet)、启动临时全局区域(WZEnable)
第三步:停用临时全局区域监控(WZDisable)、擦除临时全局区域监控(WZFree)
注意事项:1.在电动机开启的状态下,固定全局区域始终有效,且仅通过重启来擦除。不可能通过RAPID指令来禁用、启用或擦除固定全局区域
2.一旦定义和启用,临时的全局区域可通过WZDisable禁用,通过WZEnable再次启用以及通过WZFree擦除。自动擦除运动任务中的所有临时全局区域,并将运动任务中的所有wztemporary类数据对象设置为0。
3.ABB机器人实际案例1
3.1.案例概述:
安全区:“绘制”一个临时全局有安全区域,当TCP运行到安全区内,将信号(D652_DO01_Pick)置为,如果在安全区外信号自动复位。
中断:当机器人接受到信号为1时产生中断,机器人停止运行并且回到Home点等待。当信号为0时,机器人回到原工作点,启动机械臂继续运行
1 MODULE ZCheShiMouKuai //模块名称
2 //定义一个中断获取点目标点(辅助作用)
3 var robtarget PZhongDuang:=[[16.33,205.77,4.47],[0.00422709,0.709453,-0.704723,0.00484291],[-1,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
4 //定义一个安全区中心点
5 var robtarget C1_AQD:=[[409.82,-38.93,234.96],[0.015194,0.0221478,-0.999442,0.0198559],[0,0,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
6 //定义一个中断识别号
7 VAR intnum intno1;
8 //定义一个临时全局变量
9 VAR wztemporary roll;
10 //全局区域形状数据
11 VAR shapedata volume;
12 //本次用到安全去形状为圆柱,C1圆心、R1半径、H1高度
13 VAR pos C1:=[0,0,0];
14 CONST num R1:=100;
15 CONST num H1:=200;、
16
17 PROC Init_ZD() //中断初始化
18 IDelete intno1; //取消中断
19
20 //将中断与软中断程序相连
21 CONNECT intno1 WITH TingZhi;
22 //将中断与信号相连接,当DI00置1时产生中断
23 ISignalDI DN_DI00_Place , 1 , intno1;
24 //启用中断,系统默认启动
25 IWatch intno1;
26 ENDPROC
27
28 PROC Init_AnQQ() //安全区初始化
29 //获取C1_AQD目标点的X、Y、Z进行赋值,相当于该目标点为原点
30 C1.x := C1_AQD.trans.x;
31 C1.y := C1_AQD.trans.y;
32 C1.z := C1_AQD.trans.z;
33 //定义圆柱形全局区域
34 WZCylDef \Inside , volume , C1 , R1 , H1;
35
36 //启用全局区域,设置数字信号输出
37 //Temp:临时全局区域 临时区域变量名称为roll
38 //Inside:在圆柱区内,触发信号。
39 WZDOSet \Temp , roll , \Inside , volume , D652_DO01_Pick , 1; //注意:开机后不可运行第二次
40 ENDPROC
41
42 PROC main_3()
43 Init_ZD;
44 Init_AnQQ;
45 WHILE TRUE DO
46 MoveJ Offs(C1_AQD,0,0,0), v1000, z50, tool1;
47 MoveL Offs(C1_AQD,100,0,50), v1000, z50, tool1;
48 MoveL Offs(C1_AQD,-100,30,30), v1000, z50, tool1;
49 MoveL Offs(C1_AQD,10,150,100), v1000, z50, tool1;
50 MoveL Offs(C1_AQD,30,-150,200), v1000, z50, tool1;
51 MoveL Offs(C1_AQD,60,0,30), v1000, z50, tool1;
52 MoveL Offs(C1_AQD,-130,50,0), v1000, z50, tool1;
53 ENDWHILE
54 WZFree roll; //擦除临时全局区域监控
55 ENDPROC
56
57 TRAP TingZhi //中断程序
58 StopMove\Quick; //停止机械臂的移动
59 StorePath; //发生中断时,存储路径
60 PZhongDuang := CRobT(\Tool:=tool1,\WObj:=wobj0);
61 HOME_r; //回Home点
62 TPErase;
63 TPWrite "Abort, return to Home and stop running";
64 WaitDI DN_DI00_beishuliandaowei , 0; //当信号为0时继续运行
65 Movel PZhongDuang, v300, fine, tool1\WObj:=wobj0;
66 RestoPath; //中断之后,恢复路径
67 StartMove; //启动机械臂的移动
68 TPWrite "The signal is off and running";
69 ENDTRAP
70
71 PROC HOME_r()
72 rob_home_PP:=CRobT(\Tool:=tool1,\WObj:=wobj0);
73 rob_Home_PP.trans.z:=Rob_Home.trans.z;
74 Movel Offs(Rob_Home_PP,0,0,0), v300, fine, tool1\WObj:=wobj0;
75 MoveJ Offs(Rob_Home,0,0,0), v1000, fine, tool1\WObj:=wobj0;
76 ENDPROC
77 ENDMODULE
第一次写的不咋样,请理解!
ABB机器人设置安全区(案例版)的更多相关文章
- Learning ROS for Robotics Programming - Second Edition(《ROS机器人编程学习-第二版》)
Learning ROS for Robotics Programming - Second Edition <ROS机器人编程学习-第二版> ----Your one-stop guid ...
- ABB机器人添加串口模块后无法使用的解决办法
[环境] ABB机器人1520,IRC5,RobotWare5.6,Win10 64bits,RobotStudio6.0 [过程和表现] 由于项目需要和机器人通信,DeviceNet又不能满足要求, ...
- ROS(indigo)ABB机器人MoveIt例子
ROS(indigo)ABB机器人例子 参考网址: 1 http://wiki.ros.org/Industrial 2 http://wiki.ros.org/abb 3 https://gi ...
- 阿里云云主机swap功能设置实战案例
阿里云云主机swap功能设置实战案例 阿里云提供的云服务器(Elastic Compute Service,简称 ECS),是云主机的一种,当前采用的虚拟化驱动是Xen(这一点可以通过bios ven ...
- ABB机器人基础培训资料整理与总结
之前对机械臂了解较少,这方面知识比较匮乏.只使用过PowercCube六自由度机械臂. 感谢ABB公司何老师的耐心指导. 学习资料汇总:(最重要的ABB Robot 官网就不列出了,这里以中文资料为主 ...
- ABB机器人故障处理指南
ABB工业机器人常见故障处理 1. 开机示教器显示如下 1) 如果机器人开机,示教器一直显示connecting to the robot controller,如上图(robotware版本是白 ...
- 图灵机器人API调用 C++版
这是一个非常简单的例子,作为新手的我是拿来练手的,当然也可以给和我一样的朋友一些参考. 而且图灵官网没有给出C的例子,网上一搜也是各种Java.C#甚至易语言实现,不要歧视C++好不好●︿●,就算不如 ...
- 用ajax写机器人聊天的案例
HTML 中的文档 <body> <h3>简单的Ajax实例</h3> <div class="chatbox"> <!-- ...
- SkiaSharp 之 WPF 自绘 拖曳小球(案例版)
感谢各位大佬和粉丝的厚爱和关心( 催更),我会再接再厉的,其实这也是督促自己的一种方式,非常感谢. 刚写了一篇万字长文,自己也休养生息(低调发育)了一段时间,接下来来几个小案例. 拖曳小球 WPF的拖 ...
随机推荐
- 宝塔面板配置阿里云SSL证书流程
阿里云SSL证书申请过程就不在这里说了 1 先下载阿里云成功申请的SSL证书 解压后 有3个文件 2 找到宝塔面板的 站点设置 找到SSL设置 3 找到其他证书 用文本打开.key文件 复制里面 ...
- ARCGIS10.5安装教程(附完整安装包和汉化包)
2017年7月,Esri公司发布了arcgis10.5.1版本,该版本的整体界面风格延续了10.0版本的界面风格,新功能介绍详见 http://www.3snews.net/column/252000 ...
- PHP等值判断中,常量与变量在左在右的区别
在平时写代码过程中,经常会用到判断变量与常量相等的情况,比如if($a==1){…..} 或者if(1==$a) ,从执行效率上来说,1==$a比 $a==1的效率更高. 这个写法的另一个好处,当使用 ...
- Spring中@Value注解使用——一种新的直接读取配置文件的方式
1.@Value注解作用 该注解的作用是将我们配置文件的属性读出来,有@Value(“${}”)和@Value(“#{}”)两种方式. 2.@Value注解作用的两种方式 场景 假如有以下属性文件de ...
- 目标检测faster rcnn error == cudaSuccess (2 vs. 0) out of memory
想尝试 更深更强的网络,或者自己写了一个费显存的层,发现1080 ti的11G显存不够用了,老师报显存不够怎么办? Check failed: error == cudaSuccess (2 vs. ...
- Json.Net(Newtonsoft)系列教程 4.Linq To JSON
转自:https://www.cnblogs.com/sczmzx/p/7813834.html 一.Linq to JSON是用来干什么的? Linq to JSON是用来操作JSON对象的.可 ...
- POI--各种样式的XSSFCellStyle的生成
//背景色.フォント色.枠線より各種XSSFCellStyleの作成して.cellStyleMapに保存する private HashMap<String, XSSFCellStyle> ...
- Python中函数和方法的区别
方法是一种特殊的函数属于某个类的的函数叫方法不属于某个类的函数叫函数 转自csdn https://blog.csdn.net/weixin_40380298/article/details/7825 ...
- python学习Day10 函数的介绍(定义、组成、使用)
今日学习内容: 1.什么是函数 :函数就是一个含有特定功能的变量,一个解决某问题的工具 函数的定义:通过关键字def + 功能名字():代码体(根据需求撰写代码逻辑) 2.为什么要用函数:可以复用:函 ...
- 项目(七)SVN版本管理与大型代码上线方案
SVN介绍 Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统.Svn版本管理工具管理着随时间改变的各种数据.这些数据放置 ...