ABB机器人多任务详解
目录
1、多任务概念
2、多任务配置
2.1、确认机器人控制器已安装613-1 Multitasking选项包
2.2、添加613-1 Multitasking选项包(没有的情况下)
2.3、创建后台任务Task
2.4、任务类型区别
2.5、查看后台任务
3、任务间数据通信
3.1、创建变量
任务一:T_ROB1
任务二:Task1
3.2、示例程序
任务一:T_ROB1—在任务一中编写一个自加1的程序
任务二:Task1—在任务二中编写当flag1大于10时复位
3.3、运行程序
任务一:T_ROB1
任务二:Task1
3.4、后台运行
1、多任务概念
ABB机器人支持同时运行多个独立(程序),通过并行处理提高生产效率。任务间可通过共享数据实现协同,但需遵守资源分配规则。
运动指令唯一性:每台机器人本体同时仅允许1个运动任务(包含MoveL、MoveJ等指令),其他任务为常规任务(无运动指令)。
任务数量上限:系统最多支持20个任务并行运行(含1个运动任务+19个常规任务)。
任务类型 | 描述 | 典型应用场景 |
---|---|---|
运动任务(Motion Task) | 唯一可控制机器人运动的程序,优先级高,确保运动实时性。 | 轨迹规划、焊接、搬运等需要精确运动的任务。 |
常规任务(Normal Task) | 执行非运动逻辑(如I/O控制、数据处理),可并行运行多个。 | 传感器监控、数据记录、与PLC通信等。 |
半静态任务(Semi-static Task) | 常规任务的子类,开机自动启动,适合长期运行的后台逻辑。 | 设备状态监控、定时触发事件等。 |
2、多任务配置
ABB机器人多线程任务,就是在机器人后台创建一个与主程序同时运行的后台程序。ABB机器人实现多任务必须启用613-1 Multitasking选项包。
2.1、确认机器人控制器已安装613-1 Multitasking选项包
2.2、添加613-1 Multitasking选项包(没有的情况下)
2.3、创建后台任务Task
方式一:在机器人示教器中配置
配置步骤:示教器——控制面板——配置(配置系统参数)——主题(Controller)——Task——新建
当“Type”设置为 Normal 模式时,系统上电后不会自动执行任务程序,此时用户可对程序进行自由修改。若选择其他两种模式,系统上电后将立即自动执行任务程序,且在此模式下无法进行程序修改。待程序调试修改完毕后,可将模式切换为其他类型以启用自动执行功能。
方式二:在RobotStudio中配置
配置步骤:RobotStudio——控制器——配置——Controller——Task——新建Task(右键)
当“Type”设置为 Normal 模式时,系统上电后不会自动执行任务程序,此时用户可对程序进行自由修改。若选择其他两种模式,系统上电后将立即自动执行任务程序,且在此模式下无法进行程序修改。待程序调试修改完毕后,可将模式切换为其他类型以启用自动执行功能。
2.4、任务类型区别
在ABB机器人多任务系统中,Normal、Semi-static和Static是三种不同的任务类型,它们在任务创建、运行方式、资源管理以及应用场景上有显著区别。
特性 | Normal Task | Semi-static Task | Static Task |
---|---|---|---|
创建方式 | 用户通过RAPID定义 | 用户通过RAPID定义+配置自动启动 | 系统预定义,不可创建 |
启动方式 | 手动或程序触发 | 开机自动启动 | 系统启动时自动运行 |
资源管理 | 动态分配/释放 | 初始化时分配,退出时释放 | 永久分配 |
优先级 | 低 | 低(可配置) | 高(系统核心) |
适用场景 | 灵活逻辑、并行处理 | 长期后台监控、定时任务 | 系统底层功能、运动控制 |
典型用例 | I/O控制、数据交换 | 状态监控、日志记录 | 运动插补、安全检测 |
2.5、查看后台任务
创建完后台任务后,重启系统后就可以看到有2个任务了,点击示教器配置,可以看到两个任务,勾选哪个,哪个就执行。
3、任务间数据通信
在多任务编程环境中,任务之间可通过程序数据实现高效的数据交换。具体实现方式为:在需要进行数据交互的各个任务中,定义存储类型为可变量(VAR_GLOBAL 或其他支持跨任务共享的变量类型,具体依编程环境而定)且名称相同的程序数据变量。
当某一任务对该共享变量进行数值修改时,由于所有任务引用的均为同一内存地址的变量,因此其他任务中名称相同的变量值会实时同步更新,无需额外调用数据传输指令或函数。这种机制确保了任务间数据的一致性和实时性,特别适用于需要协同工作的多任务场景。
3.1、创建变量
前台和后台都要建数据,存储类型必须是可变量,类型一样,名称一样。
任务一:T_ROB1
任务二:Task1
3.2、示例程序
任务一:T_ROB1—在任务一中编写一个自加1的程序
任务二:Task1—在任务二中编写当flag1大于10时复位
3.3、运行程序
任务一:T_ROB1
首先运行任务一,查看创建的flag1变量的变化。
任务二:Task1
运行任务二,继续观察flag1的变化。
3.4、后台运行
测试没问题,进入配置界面,把Task1的任务类型改为Semi-static,设置程序入口,重启系统后,就可以看到Task1已经开机自动运行了。