文档说明

项目

本例取值

说明

控制器 / RobotWare

V250XT + RobotWare 7.12.0

RobotStudio 中的虚拟控制器,使用新版示教器(FlexPendant)界面

机器人

IRB 4600 IRB4600 20kg 2.50m

工作站 IRB4600_20_250,虚拟控制器 IRB4600_20_250_C_01,全仿真无实际运动

必需选项

3114-1 Multitasking

多任务功能,没有它无法新建第二个任务(第 4 步)

I/O 选项

3029-1 DeviceNet Single Channel

本例 I/O 板卡采用 DeviceNet 的 DSQC 652

任务划分

T_ROB1(前台,Normal)+ A(后台,Static)

前台程序周期性地置位/复位 DO0,后台任务 A 监视 DO0 并同步 DO1

一、原理速览

1.1 多任务(Multitasking)是什么

ABB 控制器在安装了 3114-1 Multitasking 选项后,可以在同一个控制器内并行运行多个 RAPID 任务:每个任务有自己独立的程序指针、模块和变量,任务之间通过 I/O 信号、共享变量(全局数据)或 RMQ 通信。本例只用两个任务:负责主逻辑的 T_ROB1 和负责监视信号的 A。

1.2 前台任务与后台任务

ABB 操作员手册把任务分为前台任务(正常)和后台任务(准静态 / 静态):前台任务跟随系统起停、占用示教器主界面;后台任务在控制器上电后自动激活,能在前台程序停止后继续运行,适合做常驻的信号监视、通信握手、状态上报。本教程要实现的效果就是:机器人开机后,后台任务 A 自动运行,持续把 DO0 的状态同步到 DO1。

1.3 任务类型对比

Type

中文

启动与运行

典型用途

Normal

正常

随主任务一起启动/停止;只有正常任务可以被激活或禁用

主控程序 T_ROB1;后台程序调试阶段的临时任务

Semistatic

准静态(半静态)

系统上电后自动激活;程序停止后仍在后台运行

通信、视觉等常驻后台服务

Static

静态

系统上电后自动运行,独立于前台任务和程序启停;切到手动模式也不会自动停止

需要长期监视信号/状态的后台逻辑(本例第 14 步选择)

信任级别(TrustLevel):取值为 NoSafety、SysFail、SysHalt 或 SysStop,只有当准静态/静态任务的信任级别为 NoSafety 时,才允许手动启动和停止它们;非 NoSafety 的后台任务连控制器都不能替代其安全逻辑来停止。

生效条件:任务名、类型、入口例程等都属于控制器配置,修改后必须重启控制器才会生效(第 8、15 步)。

1.4 本例的信号时序

时刻

T_ROB1(前台)

任务 A(后台)

DO0 / DO1

0 s

PP 位于 A:,WaitTime 5

循环监视 DO0

0 / 0

5 s

Set DO0

检测到 DO0=1 → Set DO1

1 / 1

11 s

Reset DO0

检测到 DO0=0 → Reset DO1

0 / 0

16 s

GOTO A 回到标签,周期性重复

继续循环

循环

前台程序一个周期为 11 秒(DO0 置位后保持 6 秒、复位后保持 5 秒),后台任务在这两个状态之间自动跟随,因此第 18 步可以在示教器 I/O 页面直接看到 DO0 与 DO1 同步变化。

1、建立工作站-点击创建。

图 1-1 RobotStudio 新建项目:Project1、IRB 4600 / 20kg 2.50m、RobotWare 7.12.0、控制器 V250XT

【说明】本例用“新建项目”一次性创建带虚拟控制器的工作站,勾选了“包括机器人和虚拟控制器”。RobotWare 版本决定后续选项名称和示教器界面(本例为新版示教器);若在真机上实施,可改用“从布局创建系统”或“从备份创建”,避免重复配置。

2、等待工作站生成。

【说明】工作站生成期间 RobotStudio 会创建并启动虚拟控制器,界面右下角“控制器状态”变为绿色 1/1 即代表就绪,通常需要 1~3 分钟;此时机器人尚未配置任何 I/O 与任务。

3、修改控制器安装。

图 3-1 生成的工作站与虚拟控制器;图 3-2 控制器右键菜单 → 修改安装…

【说明】新增选项、修改语言都通过“修改安装…”完成,路径:控制器右键 → 修改安装… → 选项卡“功能”。所有改动在“应用并重置”后生效,并会重置虚拟控制器(RAPID 程序与配置被删除、恢复出厂默认,见图 4-4 的提示)。因此改选项之前,建议先右键控制器 → 创建备份…。

注意:真机上增加选项需要用 RobotWare 选项包(授权)安装,不能像虚拟控制器这样直接勾选。

4、功能选择。

图 4-1~4-4 依次为:默认语言选 Chinese;勾选 3029-1 DeviceNet Single Channel;勾选 3114-1 Multitasking;变更汇总后点击“应用并重置”

【说明】本例共勾选三项:

· System Options → Default Language = Chinese:示教器切换为中文界面。

· Industrial Networks and Fieldbuses → 3029-1 DeviceNet Single Channel:本例 I/O 板卡用 DeviceNet;真机若使用 PROFINET / EtherNet-IP 板卡,请对应勾选 3020-x / 3024-x 系列选项。

· RAPID Program Features → 3114-1 Multitasking:多任务功能,是本教程的核心选项,没有它无法新建第二个任务。

注意:图 4-4 的提示框明确说明“应用新配置时,虚拟控制器 RAPID 程序和配置数据将被删除并重置为出厂默认设置。如果要保存 RAPID 程序和数据,请先创建备份。”——工程实践中先备份再改选项。

5、配置IO板卡。

图 5-1~5-2 I/O System → DeviceNet Device → 新建 DeviceNet Device…;实例编辑器中填写 DSQC 652 参数

【参数】路径:控制器 → 配置 → I/O System → DeviceNet Device → 右键“新建 DeviceNet Device…”。实例编辑器中的关键取值如下:

参数

取值

说明

Name

d652

设备名,RAPID 与信号配置中引用它

Connected to Industrial Network

DeviceNet

总线类型

Address

10

DeviceNet 站号,必须与硬件拨码一致

Vendor ID / Product Code / Device Type

75 / 26 / 7

DSQC 652 的识别参数,可点“使用来自模板的值”自动填入

Connection Type

Change-Of-State (COS)

状态变化上报,比轮询更省总线带宽

PollRate

1000

轮询间隔(ms)

Connection Output / Input Size

2 / 2 bytes

DSQC 652 为 16 入 / 16 出,即 2 字节输入 + 2 字节输出

Quick Connect

Deactivated

本例不使用快速连接

真机提示:DSQC 652 的 DeviceNet 地址由板卡拨码开关决定,必须与 Address 一致;板卡需接入 24 V 电源,总线两端加终端电阻,否则会出现“设备未连接”告警。

6、建立两个DO输出。

图 6-1~6-2 I/O System → Signal → 新建 Signal…;定义 DO0 为数字输出并映射到 d652

【说明】为每个信号点新建条目:Type of Signal = Digital Output,Assigned to Device = d652,Device Mapping 是板卡上的物理位号(本例 DO0 → 0,DO1 → 1)。

参数

DO0

DO1

说明

Type of Signal

Digital Output

Digital Output

数字输出

Assigned to Device

d652

d652

归属设备

Device Mapping

0

1

对应 DSQC 652 的输出位 0 / 1

Access Level

All

All

保证前台任务与后台任务都能读写

Default Value

0

0

上电默认值

提示:教程沿用了 DO0 / DO1 这种通用命名;实际项目建议按功能命名(如 doLampGreen、doVisionTrig),必要时可用 Cross Connection 做信号映射,而不用改程序。

7、配置后台运行程序。

图 7-1~7-2 Controller → Task → 新建 Task…;任务 A:Type=Normal、Main Entry=main、Motion Task=No

【参数】本例新建任务 A 的取值:Task=A;Type=Normal(先按普通任务调试,第 14 步再改静态);Main Entry=main;Check Unsolved References=Yes;Motion Task=No;Use Mechanical Unit Group 留空;RMQ Type=None;RMQ Mode=Interrupt。

【说明】后台任务只处理信号,不控制机器人运动,所以 Motion Task 必须为 No,不占用机械单元;“Task in Foreground”留空,表示它不是任何前台任务的从属任务。任务名(A)会直接显示在示教器的任务列表里。

注意:新建任务属于控制器配置,重启控制器后才会出现在示教器和 RobotStudio 的任务列表中。

8、重启示教器。

图 8-1 控制器工具栏上的“重启”按钮,重启后新增的 I/O 与任务配置生效

【说明】重启前确认机器人处于安全状态,重启会中断当前运行的程序并断开与示教器的连接(约 1~2 分钟)。RobotStudio 中也可以右键控制器 → 重启 → 重启控制器。

9、启动示教器-切换手动模式。

图 9-1 示教器首页与控制面板:模式(自动/手动)、电机开关、速度倍率、重置程序(PP 移至 Main)

【说明】新版示教器的控制面板集中了模式切换、电机上下电、速度倍率与程序指针重置。示教点位与手动调试用“手动”模式;运行程序时需要“自动”模式并开启电机(见第 17 步)。

注意:静态 / 准静态后台任务不会因为你切到手动模式而自动停止,只有信任级别为 NoSafety 时才能手动停止它们。调试带实际输出的程序前,务必先确认后台任务的状态,避免信号误动作。

10、选择A我们建立的Task多任务程序。

【说明】示教器“代码”页左上角的“任务”列表会同时列出普通任务(T_ROB1)和后台任务(A),并显示各自的类型与状态(就绪 / 启动 / 已停止)。点选 A 即进入后台任务的程序编辑界面。

11、程序模板。(程序解释:当DO0触发时,运行DO1,当DO0复位时,复位DO1。)

图 11-1~11-2 代码 → 任务列表选择 A 并“加载程序”;A 的 MainModule / main 程序

【逐行解释】DO0 为 1 时置位 DO1;DO0 为 0 时复位 DO1,即 DO1 始终跟随 DO0。两个 IF 等价于一个 IF / ELSE 结构。

12、返回选择T_ROB1建立前端程序。

图 12-1 切回任务 T_ROB1,模块列表中有 BASE(系统模块)与 Module1(程序模块)

【说明】前台程序写在 T_ROB1 下新建的 Module1 里。T_ROB1 是控制器自带的主任务,负责机器人运动与主流程;它和后台任务 A 通过 DO0 / DO1 交换状态。

13、程序模板。(程序解释:A为跳转标签,第一行等待时间为5,第二行运行DO0,第三行等待时间6,第四行复位DO0,第五行GOTO A 跳转到A继续运行。)

图 13-1 T_ROB1 的 Module1 / main:标签 A:、WaitTime 5、Set DO0、WaitTime 6、Reset DO0、GOTO A

【逐行解释】A: 是 RAPID 跳转标签(与任务名 A 同名但没有任何关系);WaitTime 5 等待 5 秒;Set DO0 置位 DO0;WaitTime 6 再等 6 秒;Reset DO0 复位 DO0;GOTO A 跳回标签 A,形成周期约 11 秒的循环。

【目的】这段程序的作用是人为制造一个周期性变化的信号源,用来验证后台任务 A 是否能自动跟随。

14、修改Task为静态模式。

图 14-1~14-2 右键任务 A → 编辑 Task…;把 Type 由 Normal 改为 Static

【说明】这是把普通任务变成后台任务的关键一步:Type 下拉可选项为 Normal / Semistatic / Static。

可选类型

含义

本例适用性

Normal

正常任务,随主任务起停

仅用于编写与调试阶段

Semistatic

准静态,程序停止后仍在后台运行

通信/视觉类后台服务的常用做法(如 Mech-Mind 标准接口)

Static

静态,控制器上电即自动运行

本例选择:要求“开机后后台常驻”

注意:只有 TrustLevel 为 NoSafety 的后台任务才允许手动启动/停止;控制器安全系统不能被后台任务替代,涉及安全信号时请使用安全板卡与安全回路(如 DSQC 1042),不要用普通 DO 代替。

生效条件:修改 Task 类型后必须重启控制器(下一步)。

15、重启示教器。

图 15-1 再次重启控制器,使静态任务类型生效

【说明】重启后任务 A 会自动激活并开始运行,不需要手动点“开始”——这正是后台任务与普通任务的差别:只能激活和禁用正常任务,后台任务始终自动被激活。

16、启动示教器后查看A变为启动状态。我们进入T_ROB1运行程序。

图 16-1 重启后任务列表:A 的类型为 Static、状态为“启动”,T_ROB1 为“就绪”

【验证】看到 A 的状态为“启动”即说明后台任务已经在运行。若仍显示“就绪”,通常是 Type 未生效(未重启控制器)或程序指针未设置。

17、先将PP移至MAIN,点击开始运行。

图 17-1~17-2 T_ROB1 程序与 PP 位置;点“重置程序”后确认“在所有普通任务中将 Pp 移动到 Main 例程”

【说明】运行前台程序的顺序:任务列表切到 T_ROB1 → 重置程序(PP 移至 Main)→ 确认对话框选“是”→ 控制面板开启电机、确认为自动模式 → 点“开始”。

提示:“重置程序”只作用于普通任务,不会重置后台任务 A;后台任务保持独立运行。

18、监控I/O信号,当DO0为1时DO1也为1,当DO0为0时,DO1也为0.

图 18-1~18-2 I/O 页面监视 d652 上的 DO0 / DO1:运行前均为 0,运行后同时变为 1

【验证】示教器 I/O 页面(I/O 设备上的信号: d652)可实时看到 DO0、DO1 的值与开关状态。程序运行后:DO0=1 时 DO1=1,DO0=0 时 DO1=0(图 18-2),说明后台任务 A 正在实时响应前台任务写出的信号,多任务后台运行验证成功。

扩展验证:虚拟控制器上还能用 RobotStudio 的“仿真”功能或 I/O 模拟器强制 DO0,观察 DO1 是否跟随;真机上可用万用表或指示灯测量 DSQC 652 的对应输出位(DO0 → 位 0,DO1 → 位 1)。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐