ABB 机器人虚拟示教器基础操作教程

ABB 机器人虚拟示教器基础操作教程

一、基础操作界面与模式

1. 操作模式切换

  • 手动模式:用于编程、调试和手动操作

自动模式:用于程序自动运行(需满足安全条件)

2. 动作模式选择(手动模式下)

  • 单轴模式:单独控制每个关节轴(1-6轴)
    • 优点:最直观,与坐标系无关
    • 用途:调整机器人姿态,避免奇异点
  • 线性模式:TCP沿直线运动
  • 重定位模式:TCP位置不变,只改变工具姿态

点击示教器左上角

进入菜单栏

3. 坐标系选择(线性/重定位模式下)

四个可选坐标系:

  • 大地坐标系:机器人安装的基础坐标系
  • 基座坐标系:机器人底座中心为原点(多数基本选择)
  • 工件坐标系:用户自定义的工作平面
  • 工具坐标系:以工具末端为原点

二、三大核心数据设置

1. 工具数据(tooldata)

定义:描述工具(如夹爪、吸盘)的尺寸、重量和姿态

设置步骤

  1. 主菜单 → 程序数据 → tooldata → 新建
  2. 定义工具坐标系(tframe):
    • 方法1:四点法(X方向点1-2,Y方向点1-3,原点)
    • 方法2:直接输入偏移量
  3. 关联有效载荷(load)
  4. 设置robhold = TRUE(机器人持有工具)

这是在菜单下点击程序数据后进入到的界面

这是我的项目程序中的几个数据,随便点击进入一个查看数据,进行参考。这里点击tGrip

参数解释:

  1. trans.z = 215.3
    • 表示从机器人法兰盘中心工具末端(TCP) 的距离是215.3毫米
    • 这是工具的实际物理长度
  2. mass(质量)的值是 1,单位是公斤(kg)
  3. 与载荷重心的关系
    • 工具长度(TCP位置):z = 215.3 mm
    • 载荷重心位置:z = 100 mm
    • 这意味着:重心在工具法兰盘往末端方向100mm处
    • 计算方式:从法兰盘开始算,100mm处是重心,215.3mm处是工具末端

关键点

  • 每个工具都需要独立设置
  • 工具坐标系原点应在工具末端工作点

2. 工件数据(wobjdata)

定义:描述工作台或工件的坐标系

设置步骤

  1. 主菜单 → 程序数据 → wobjdata → 新建
  2. 定义工件坐标系:
    • 三点法:原点、X方向点、Y方向点
  3. 设置工件坐标系相对于大地坐标系的偏移

关键点

  • 每个工作位置建议设置独立的工件坐标
  • 便于程序移植和位置调整

3. 有效载荷(loaddata)

定义:描述工具携带的负载特性

必须设置的参数

  • mass:负载质量(kg)
  • cog:重心坐标(相对于工具坐标系原点,单位mm)
    • cog.x, cog.y, cog.z
  • inertia:惯性矩(可选,复杂负载需要)

重要性

  • 直接影响机器人动力学计算
  • 设置错误会导致:
    • 过载报警
    • 轨迹偏差
    • 机械损坏
  • 即使空载也要设置小质量(如0.1kg)

三、操纵杆控制技巧

1. 基本操作

  • 握住操纵杆,按下使能键(Enabling Device)
  • 轻微移动操纵杆控制速度和方向

2. 锁定功能

如果操纵杆“斜着走”(有不需要的运动分量):

  • 锁定键(通常在示教器上)
  • 选择锁定方向:
    • 锁定水平分量(只允许垂直运动)
    • 锁定垂直分量(只允许水平运动)
    • 锁定旋转分量

3. 增量模式

  • 小增量:微动模式,移动速度最慢,精度最高
  • 中增量:中等速度
  • 大增量:常规速度
  • 无增量:连续运动

应用场景

  • 精确定位时用小增量
  • 快速移动时用大增量无增量

四、程序编辑器结构

1. 层级结构

任务(Task)── 模块(Module) ├── 程序(PROC) ├── 功能(FUNC) └── 中断(TRAP)

2. 程序类型

类型特点用途
程序(PROC)可执行的主程序动作序列、逻辑控制
功能(FUNC)有返回值计算、转换、判断
中断(TRAP)触发式执行紧急停止、信号响应

3. 常用程序数据

数据类型用途示例
clock计时、计算周期时间
intnum中断标识,处理外部中断
loaddata有效载荷参数
num数值存储、计算
robtarget机器人目标位置(含坐标和姿态)
speeddata运动速度(vmax, fine等)
string文本信息
tooldata工具参数
wobjdata工件坐标系

4. 存储类型

  • 变量(VAR):程序内局部变量,值不保留
  • 可变量(PERS):永久存储,程序重启后值保留
    • 用于需要修改的目标点位
    • 用于程序计数状态标志
  • 常量(CONST):不可更改的固定值

五、运动指令要点

1. 基本指令

MoveJ pHome, vmax, z50, tool1; // 关节运动 MoveL pPick, v500, fine, tool1\WObj:=wobj1; // 直线运动 MoveC p1, p2, v500, z10, tool1; // 圆弧运动

2. 关键参数

  • 速度:vmax(最大速度),v500(500mm/s),自定义speeddata
  • 区域数据
    • fine:精确到达
    • z50:区域半径50mm(近似到达)
  • 工具:必须正确定义载荷
  • 工件坐标:\WObj:=wobj1(可选,默认大地坐标系)

3. 常用函数

  • RelTool():相对工具坐标系偏移
  • CalcRobT():计算目标点

Offs():位置偏移

MoveJ Offs(pPick, 0, 0, 100), vmax, z50, tool1;

六、中断处理(基于仿真经验)

1. 中断设置步骤

  1. 定义中断数据:VAR intnum int1;
  2. 连接中断信号:CONNECT int1 WITH tRoutine;
  3. 启用中断:ISignalDI di1, 1, int1;
  4. 编写中断程序:TRAP tRoutine
  5. 在中断程序中处理响应

2. 输入输出监控

  • 主菜单 → 输入输出 → 视图
  • 可实时查看数字输入/输出(DI/DO)状态
  • 可模拟触发信号进行测试

七、编程规范与建议

1. 命名规范

  • 变量名:小写字母开头,有含义
    • 例如:pHome(回原点位置),gripOpen(夹爪打开状态)
  • 程序名:r开头表示例行程序
    • 例如:rPickPartrPlacePart

2. 程序结构

MODULE MainModule ! 常量定义 CONST num height:=100; ! 可变量定义(保留值) PERS robtarget pCurrent; ! 程序数据定义 VAR speeddata slow:=v200; PROC main() ! 初始化 rInitialize; WHILE TRUE DO ! 主循环 rPickPart; rPlacePart; ENDWHILE ENDPROC PROC rInitialize() ! 回原点 MoveJ pHome, vmax, fine, tool0; ENDPROC ENDMODULE

3. 安全注意事项

  1. 运动前:确认工具、载荷、工件坐标设置正确
  2. 调试时:先低速测试,逐步提高速度
  3. 自动运行时:确保工作区域安全
  4. 修改位置后:先单步运行测试

八、快速排错指南

问题现象可能原因检查点
机器人不动使能键未按下/模式错误状态栏、使能键
轨迹偏差工具/工件坐标错误tooldata, wobjdata
过载报警有效载荷未设置/错误loaddata中的mass和cog
位置不准增量模式设置太小增量模式选择
程序报错语法错误/变量未定义程序编辑器错误提示

九、学习路径建议(基于本人浅薄的经验,仅供参考)

  1. 第一阶段(基础)
    • 掌握单轴/线性/重定位操作
    • 学会设置工具、工件、载荷数据
    • 理解三种坐标系差异
  2. 第二阶段(编程)
    • 学会创建简单运动程序
    • 掌握常用程序数据类型
    • 理解变量/可变量/常量的区别
  3. 第三阶段(应用)
    • 实现完整搬运/装配流程
    • 使用中断处理信号
    • 优化程序结构和效率

以上只是对ABB有一个简单的认识,具体还要实操来进行巩固。


最重要原则:机器人是精密设备,操作前务必确认工具、载荷、工件坐标设置正确,从低速开始测试,安全第一!

Read more

python迭代器和生成器

1.迭代器 1.1 可迭代对象         可迭代对象指的是 实现了__iter__方法的对象,可以被for循环遍历的容器,比如一个列表,自定义的链表等。使用 iter() 方法获取它的迭代对象(可以理解为链表的指针) 1.2 迭代器         迭代器是指实现了 __iter__ 和 __next__方法对象,__iter__返回它本身,确保每个单独的节点都是可以被迭代的,满足链表可以从第n个元素开始访问的需求;__next__返回它的下一个节点,如果已经遍历完毕则抛出StopIteration异常。 # 实现了__iter__方法,是一个可迭代对象,可以理解为是一个整的链表,但此时还不能单独访问其中的元素 class Node: def __init__(self, data): self.data = data self.next: Node | None

By Ne0inhk
初始Python篇(8)—— 异常

初始Python篇(8)—— 异常

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-ZEEKLOG博客 所属专栏: Python 目录 异常介绍 异常的处理 try-except  try-except-else  try-except-else-finally 异常的抛出  常见的异常类型   异常介绍 在学习异常之前,先了解bug的概念。简单理解就是程序运行不起来或者运行起来之后,输出的结果不符合我们的预期。有了bug肯定是要去解决的。而解决bug就离不开异常的处理。 如果是程序运行出错,有两种情况:1、程序本身就存在问题;2、对于存在输入型程序来说,可能是用户的输入导致程序报错。 第一种情况,就需要我们自己去排查,看是哪里出现了语法错误。 第二种情况,就需要用到我们今天学习的异常处理。 如果是程序运行之后,结果不符合我们的预期,这就需要用到调试工具了。 异常的处理 try-except  Python中对于异常的处理是通过 try-except 语句来捕获异常的。 语法: try: ... // 可能出现异常的代码 except 异常

By Ne0inhk
Python操作国产金仓数据库(KingbaseES)全流程:从环境搭建到实战应用

Python操作国产金仓数据库(KingbaseES)全流程:从环境搭建到实战应用

Python操作国产金仓数据库(KingbaseES)全流程:从环境搭建到实战应用 Python操作国产金仓数据库(KingbaseES)全流程:从环境搭建到实战应用,大家好,我是 xcLeigh。现在国产化数据库越来越普及,金仓数据库(KingbaseES)作为一款超实用的企业级关系型数据库,在政府、金融、能源这些关键领域用得特别多。今天我就带大家从零开始,一步步学会用Python操作金仓数据库,从环境准备、连接数据库,到CRUD核心操作、事务处理,再到常见问题排查,内容全是干货,代码拿过去就能用,就算是新手也能很快上手! 前言     中电科金仓(北京)科技股份有限公司(以下简称“电科金仓”)成立于1999年,是成立最早的拥有自主知识产权的国产数据库企业,也是中国电子科技集团(CETC)成员企业。电科金仓以“提供卓越的数据库产品助力企业级应用高质量发展”为使命,致力于“成为世界卓越的数据库产品与服务提供商”。     电科金仓自成立起始终坚持自主创新,专注数据库领域二十余载,具备出色的数据库产品研发及服务能力,核心产品金仓数据库管理系统KingbaseES(简称“KES”

By Ne0inhk
使用 Python 脚本一键上传图片到兰空图床并自动复制链接

使用 Python 脚本一键上传图片到兰空图床并自动复制链接

个人博客:材料与逻辑 对于博客作者、开发者或任何经常需要处理图片的人来说,图床是绕不开的工具。兰空图床(Lsky Pro)凭借其强大的功能和现代化的界面,成为了许多自建图床用户的首选。 但是,传统的“打开浏览器 -> 登录 -> 拖拽上传 -> 点击复制链接”的流程在需要频繁插入图片时显得格外繁琐,严重打断写作或开发的思路。 今天,我将分享一个简单的 Python 脚本,它能彻底改变你的图片上传体验。 核心功能:快,准,狠 这个脚本旨在实现一个目标:以最快速度将本地图片转换为可用的网络链接。 它具备以下核心特性: 1. 完全脱离浏览器:直接在终端(命令行)通过一条命令完成上传。 2. 基于文件名传参:无需复杂的配置,只需告诉脚本你要传哪个文件。 3. 自动复制到剪切板:这是灵魂功能!上传成功后,图片

By Ne0inhk