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”,说明虚拟总线未建立或地址冲突。
二、数字与模拟信号定义
信号定义在“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或置0,模拟按钮按下/松开;
- 模拟输入信号可直接输入数值,如输入5.0,表示5 bar;
- 数字输出信号由机器人程序驱动,面板上会实时刷新;
- 模拟输出信号可观察程序写入的数值变化。
仿真面板还支持“Simulate”与“Real”切换。虚拟控制器中默认处于Simulate模式,所有I/O均在软件内闭环,不依赖真实硬件。若需要与外部PLC联调,可切换为Real模式并配置OPC UA或共享内存接口。
四、常见信号故障排查
虚拟调试中,I/O故障通常表现为信号不动作、数值异常或模块掉线。排查顺序建议从“模块—映射—信号—程序”四层入手:
- 模块层:检查Device状态是否为Running,地址是否冲突;
- 映射层:检查端口号是否超出模块范围,输入/输出方向是否写反;
- 信号层:检查信号是否被Invert取反,模拟量量程是否匹配;
- 程序层:检查RAPID程序中是否使用了正确的信号名,是否被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调试的核心价值:在真实设备到场之前,就把电气逻辑和程序逻辑验证到位。