3. 机器人I/O信号与数据联动基础

在 RobotStudio 数字孪生中,要让虚拟控制器里的机器人动作与外部设备、PLC、传感器乃至上层数据系统产生联动,第一步不是写逻辑,而是把“信号层”搭清楚。信号层是数据联动的地基:机器人动作靠信号触发,外部状态靠信号回传,数据联动本质上就是“信号在正确的时间被正确的人读写”。本节围绕数字量/模拟量信号定义、信号与机器人动作的绑定、I/O 板卡配置、信号监控与强制操作四条主线展开,最终落到“为数据联动建立信号层基础”这一目标上。

一、数字量与模拟量:两类信号的本质区别

RobotStudio 的 I/O 信号按数据类型分为数字量(Digital)和模拟量(Analog),它们对应不同的物理对象和不同的联动方式。

数字量信号只有两个稳定状态:0 和 1,对应“断开/接通”“未到位/到位”“停止/运行”。常见类型包括 DI(数字输入)、DO(数字输出)、DGI(数字输入组)、DGO(数字输出组)。数字量适合表达开关、按钮、限位、气缸到位、夹具夹紧、安全门状态等离散事件。例如一个夹爪的“夹紧到位”信号,用 DI 表达最自然:0 表示未夹紧,1 表示已夹紧。

模拟量信号是连续量,用整数或浮点数表达一个范围内的数值,常见类型为 AI(模拟输入)和 AO(模拟输出)。模拟量适合表达压力、温度、速度倍率、位置偏移、力矩限值等连续变化量。例如焊接电流给定值可以用 AO 输出,范围设定为 0~32000 对应 0~320 A,那么输出 16000 就代表 160 A。

两类信号在联动中的角色不同:数字量负责“事件触发”,模拟量负责“数值传递”。在建立信号层时,应先判断每个联动点属于哪一类,再决定信号类型,而不是先建信号再想用途。

二、信号与机器人动作的绑定

信号本身不会让机器人动,必须通过 RAPID 程序把信号与动作绑定。绑定方式主要有三种:

  • 等待信号:用 WaitDI、WaitGI 等指令让程序暂停,直到某个输入信号满足条件。例如 WaitDI di_GripOK, 1; 表示等待夹爪夹紧到位后再继续。
  • 输出信号:用 SetDO、SetGO、SetAO 等指令在动作前后置位输出。例如在机器人移动到取件点前 SetDO do_VacuumOn, 1; 打开真空。
  • 条件判断:用 IF 语句读取信号值参与逻辑判断,例如根据 gi_Mode 的值选择不同轨迹。

绑定的关键是“时序”:信号必须在动作的正确时刻出现。以“机器人抓取工件”为例,合理的绑定顺序是:机器人到达取件点 → 置位 do_GripClose → 等待 di_GripOK 为 1 → 机器人抬升。如果先抬升再等夹紧信号,就会出现工件掉落或碰撞。因此在信号层设计时,应把每个动作拆成“动作前输出、动作中等待、动作后确认”三段,再逐一分配信号。

三、I/O 板卡配置

信号要真正可用,必须挂载到 I/O 板卡上。RobotStudio 中通过“控制器”选项卡下的“I/O System”进行配置,典型流程如下:

  1. 在 Configuration → I/O System → Industrial Network 中定义网络,例如选择 PROFINET 或 EtherNet/IP,设置 IP 地址与设备名称。
  2. 在 Device 中添加从站设备,例如一个远程 I/O 模块,指定其设备地址与输入输出字节长度。
  3. 在 Signal 中逐条定义信号,填写信号名称、类型(DI/DO/AI/AO)、所属设备、位地址或字地址、量程与单位。
  4. 在 Cross Connection 中建立信号与物理点的映射,确保虚拟信号与真实地址一致。

配置完成后,信号会出现在“I/O”面板中,可在线查看和操作。一个常见的教学示例是:定义 di_Start(DI,地址 0)、do_Run(DO,地址 0)、ai_Pressure(AI,地址 0,量程 0~1000 kPa)。配置时要注意地址不要冲突,模拟量要正确设置量程,否则联动时数值会整体偏移。

四、信号监控与强制操作

信号层建好后,必须能“看得见、改得动”。RobotStudio 提供两种主要手段:

信号监控:在“I/O”面板或“仿真”选项卡中打开信号列表,实时观察每个信号的当前值。数字量显示 0/1,模拟量显示数值。监控时重点关注三类异常:信号一直为 0(可能未配置或未触发)、信号抖动(可能时序竞争)、模拟量超量程(可能量程设置错误)。

强制操作:在仿真调试阶段,可以手动强制某个信号为 0 或 1,或给模拟量赋一个固定值,用来验证逻辑分支。例如强制 di_GripOK 为 1,观察机器人是否继续执行后续动作。强制操作是排查“信号绑定是否正确”的最快方法,但要注意:强制值会覆盖真实输入,调试结束后必须取消强制,否则会掩盖真实问题。

建议在信号层建立后,先做一次“信号自检”:逐个强制每个输入信号,观察对应输出和机器人动作是否符合预期,确认无误后再接入真实设备或上层数据。

五、为数据联动建立信号层基础

当数字量/模拟量定义清楚、信号与动作绑定正确、板卡配置无误、监控与强制可用之后,信号层就具备了“可读、可写、可观测、可干预”四个基本能力。此时再往上做数据联动,例如把机器人节拍数据写入数据库、把 MES 工单下发给机器人、把视觉坐标传给机器人,都只是在这层信号之上增加数据通道,而不会破坏底层动作逻辑。

下面这张图概括了本节的核心结构:从物理设备到 I/O 板卡,再到信号定义、动作绑定与监控强制,最后汇入数据联动层。图中同时标出了数字量与模拟量在信号层中的不同位置,以及强制操作对信号值的干预路径。

机器人 I/O 信号层与数据联动基础结构 物理设备 / 传感器 按钮 · 限位 · 气缸 压力 · 温度 · 视觉 I/O 板卡 / 网络 PROFINET · EtherNet/IP Device · 地址映射 信号定义(Signal) DI / DO / DGI / DGO(数字量) AI / AO(模拟量,含量程) 信号与机器人动作绑定 WaitDI / WaitGI(等待输入) SetDO / SetGO / SetAO(置位输出) IF 条件判断(分支逻辑) 信号监控与强制 实时值观察(0/1、数值) 强制置位 / 赋值 调试后取消强制 干预 数据联动层 节拍数据 · MES 工单 · 视觉坐标 数据库 · 上位机 · 数字孪生同步 信号层就绪 信号层四能力 可读 · 可写 · 可观测 · 可干预 数字量管事件,模拟量管数值 物理层 信号层 联动层

从图中可以看出,信号层位于物理设备与数据联动之间,承担“翻译”和“路由”的职责。数字量信号负责把离散事件翻译成 0/1,模拟量信号负责把连续量翻译成数值;动作绑定决定信号何时被读写;监控与强制则保证这层信号在调试阶段可被观察和干预。只有这四件事都做到位,后续的数据联动才不会因为“信号不对”而反复返工。

常见误区:先建信号再想用途,导致信号命名混乱、地址冲突、量程错误;或者只建信号不绑定动作,仿真时信号有值但机器人不动。正确顺序是:先梳理联动点 → 确定信号类型与量程 → 配置板卡与地址 → 绑定动作 → 监控验证。

本节给出的信号层基础,是后续所有数据联动章节的起点。无论是把机器人状态写入数据库,还是把外部工单下发给机器人,最终都要落到具体的 DI/DO/AI/AO 信号上。把这一层做扎实,后面的联动逻辑才能稳定、可查、可复现。