3. 虚拟控制器I/O系统配置与信号调试

虚拟控制器的I/O系统是RobotStudio调试工程中最贴近现场电气行为的部分。它并不是“在软件里点几个灯”这么简单:虚拟控制器内部同样运行着与真实IRC5或OmniCore一致的I/O逻辑,包括DSQC从站模块的挂载、数字/模拟信号的定义、信号到物理端口的映射,以及仿真面板对信号状态的实时读写。理解这套结构,才能在离线阶段就把现场接线逻辑、PLC交互逻辑和机器人程序逻辑一起验证掉。

一、DSQC模块配置:先有从站,才有信号

在RobotStudio的虚拟控制器中,I/O模块通过“I/O System”下的Industrial Network与Device进行组织。常见DSQC模块包括:

  • DSQC 652:数字量I/O模块,16路输入/16路输出,常用于标准数字信号扩展;
  • DSQC 653:数字量输入/继电器输出模块,适合驱动需要干接点的负载;
  • DSQC 651:模拟量I/O模块,提供模拟输入与模拟输出通道;
  • DSQC 377A:远程I/O通信模块,用于Profibus/DeviceNet等现场总线场景。

配置时,先在Industrial Network下选择总线类型(如DeviceNet或PROFINET),再添加Device并指定DSQC模块型号。关键参数是DeviceNet地址(例如10)和连接方式。虚拟控制器中,模块地址必须与后续信号映射中的“单元地址”一致,否则信号无法绑定。配置完成后,模块状态应显示为“Running”或“Started”,若显示“Not Connected”,说明虚拟总线未建立或地址冲突。

虚拟控制器中DSQC模块的地址是逻辑地址,不需要真实拨码开关,但必须与信号定义中的DeviceNet地址严格对应。建议在工程初期就规划好地址表,例如:DSQC 652使用地址10,DSQC 651使用地址11。

二、数字与模拟信号定义

信号定义在“I/O System”下的Signal中完成。每个信号需要指定名称、类型、方向、关联设备与端口。数字信号类型为Digital Input/Output,模拟信号为Analog Input/Output。以数字输入为例,定义参数包括:

  • Name:如di_StartBtn,命名建议带方向前缀;
  • Type:Digital Input;
  • Assigned to Device:选择已配置的DSQC 652;
  • Device Mapping:端口号,如0~15;
  • Invert:是否取反,用于常闭触点场景。

模拟信号定义多出量程与单位参数。例如定义ai_Pressure,类型Analog Input,量程0~10 bar,对应端口0,则虚拟控制器会把0~10V或4~20mA的原始值线性映射为0~10 bar。若现场变送器为4~20mA,需在信号定义中设置Raw Value Range为4~20mA,否则读数会偏移。

信号定义完成后,可通过“I/O Simulator”面板观察其状态。数字信号显示为0/1,模拟信号显示为数值与百分比。此时若信号显示“Not Mapped”,说明端口号超出模块范围或设备未运行。

三、信号映射与I/O仿真面板操作

信号映射的本质是把“逻辑信号名”与“物理端口”绑定。在虚拟控制器中,映射关系由Device Mapping决定。例如:

di_StartBtn  -> DSQC652_Addr10, Port 0
do_LampGreen -> DSQC652_Addr10, Port 0
ai_Pressure  -> DSQC651_Addr11, Port 0
ao_SpeedRef  -> DSQC651_Addr11, Port 0

注意输入与输出可以共用端口号,因为方向不同。映射完成后,打开I/O Simulator,面板会按设备分组显示所有信号。操作方式:

  1. 点击数字输入信号前的方框,可强制置1或置0,模拟按钮按下/松开;
  2. 模拟输入信号可直接输入数值,如输入5.0,表示5 bar;
  3. 数字输出信号由机器人程序驱动,面板上会实时刷新;
  4. 模拟输出信号可观察程序写入的数值变化。

仿真面板还支持“Simulate”与“Real”切换。虚拟控制器中默认处于Simulate模式,所有I/O均在软件内闭环,不依赖真实硬件。若需要与外部PLC联调,可切换为Real模式并配置OPC UA或共享内存接口。

四、常见信号故障排查

虚拟调试中,I/O故障通常表现为信号不动作、数值异常或模块掉线。排查顺序建议从“模块—映射—信号—程序”四层入手:

  • 模块层:检查Device状态是否为Running,地址是否冲突;
  • 映射层:检查端口号是否超出模块范围,输入/输出方向是否写反;
  • 信号层:检查信号是否被Invert取反,模拟量量程是否匹配;
  • 程序层:检查RAPID程序中是否使用了正确的信号名,是否被Cross Connection覆盖。
常见错误:把数字输出信号映射到输入端口,或模拟量信号未设置Raw Value Range,导致仿真面板显示值与实际物理量不一致。虚拟控制器不会报错,但逻辑会静默失效。
虚拟控制器I/O系统配置与信号调试链路 ① DSQC模块配置 DeviceNet地址:10 DSQC 652 / 651 ② 信号定义 di_StartBtn / ai_Pressure 方向、量程、取反 ③ 信号映射 Port 0 ~ Port 15 逻辑名 ↔ 物理端口 ④ I/O仿真面板 强制置位 数值输入 信号流与状态观察 数字输入 di_StartBtn 0 → 1(强制置位) RAPID程序逻辑 IF di_StartBtn=1 数字输出 do_LampGreen 0 → 1(面板刷新) 模拟输入 ai_Pressure 5.0 bar(数值输入) 常见故障排查路径 模块层 Device状态 / 地址冲突 映射层 端口号 / 方向写反 信号层 Invert / 量程不匹配 程序层 信号名 / Cross Connection

五、一个可复用的配置检查表

为避免反复返工,建议在虚拟控制器I/O配置完成后,按以下检查表逐项确认。该表可直接用于工程自检:

检查项 预期状态 异常处理
DSQC模块Device状态 Running 检查总线类型与地址是否冲突
数字输入端口号 0~15(DSQC 652) 超出范围则重新映射
模拟量Raw Value Range 与变送器一致(如4~20mA) 不一致则修改量程
信号方向 输入/输出与程序用法一致 方向写反则删除重建
I/O Simulator强制置位 信号状态实时变化 无变化则检查Cross Connection

完成上述配置后,虚拟控制器的I/O系统即可与RAPID程序、仿真工作站联动。此时在I/O Simulator中强制di_StartBtn为1,若程序逻辑正确,do_LampGreen应在同一扫描周期内变为1,模拟量ai_Pressure输入5.0时,程序中的压力判断分支也应正确触发。这种“面板操作—信号变化—程序响应”的闭环,正是虚拟控制器I/O调试的核心价值:在真实设备到场之前,就把电气逻辑和程序逻辑验证到位。