2. UR安全平面的架构与组成

UR(Universal Robots)机器人之所以能在协作场景中直接与人共享工作空间,关键并不在于主控系统本身,而在于它内部叠加了一层独立于主控的安全平面。理解安全平面,首先要明确它的位置:它不是一个软件选项,也不是主控程序里的一个函数,而是横跨硬件与软件、在电气与逻辑上都能独立切断危险动作的一整套子系统。主控系统负责运动规划、轨迹插补、I/O 逻辑和通信,而安全平面负责“无论主控想做什么,只要越过安全边界,就必须让机器人进入安全状态”。

从整体架构看,UR 控制系统可以粗略分为三层:主控层(Controller,运行 Polyscope 与 URScript)、安全层(Safety System,含安全控制器、安全 I/O、安全信号链)以及驱动与执行层(伺服驱动、抱闸、编码器)。安全平面并不取代主控层,而是与主控层并行存在,并通过明确的接口交换信息。主控层向安全层提供“当前关节位置、速度、模式请求”等状态量,安全层则向主控层回送“安全状态、限速生效、保护性停止触发”等结果,同时安全层拥有对驱动层抱闸与使能的直接控制权。这种“并行+可越权”的结构,是安全平面最核心的特征。

UR 安全平面在系统中的位置与接口关系 主控层 Controller Polyscope / URScript 程序 运动规划 · 轨迹插补 · 普通 I/O TCP 通信 · 现场总线 (不直接决定安全状态) 安全层 Safety System 安全控制器(双通道 / 冗余) 安全 I/O:急停 · 安全门 · 使能 安全限位 · 限速 · 保护性停止 安全编码器反馈监测 (独立于主控,可越权切断) 驱动与执行层 伺服驱动器 × 6 关节 电机抱闸(Brake) 关节编码器 / 电流环 工具法兰 · 末端执行器 安全层可直接使能/断使能 与抱闸控制 位置/速度/模式请求 安全状态/限速生效 使能 / 抱闸 / 停止 运动指令(受安全层约束) 安全输入设备 急停按钮 · 安全门锁 · 光幕 · 使能装置

硬件模块划分

UR 安全平面的硬件核心是安全控制器板,它通常与主控计算机位于同一控制箱内,但拥有独立的电源监控、独立的时钟和冗余的处理通道。以 UR e 系列为例,安全控制器采用双通道架构,两路通道对同一安全逻辑进行独立运算并交叉比对,一旦结果不一致即判定为故障并进入安全状态。这种“双通道+交叉比对”是达到 PL d / SIL 2 等级的基础。

安全平面的硬件接口主要分为三类。第一类是安全输入:急停按钮、安全门开关、光幕、三位置使能装置等,它们通过专用安全输入端子接入,信号在进入安全控制器前通常已经过双通道处理。第二类是安全输出:用于控制外部安全继电器、安全门锁或系统级停止回路,其输出同样需要满足冗余与自检要求。第三类是内部接口:安全控制器与主控之间的通信接口,以及与各关节伺服驱动之间的使能/抱闸控制线。需要特别强调的是,安全层对驱动的使能与抱闸控制是硬线或安全总线直连的,不经过主控程序,因此即使主控程序崩溃或跑飞,安全层仍能独立将机器人置于停止状态。

软件模块划分

安全平面的软件并非运行在 Polyscope 之上,而是运行在安全控制器内部的实时安全操作系统上。其软件模块大致包括:安全逻辑求解器(周期性计算安全限位、安全速度、安全力矩等约束)、安全 I/O 管理(采集安全输入、驱动安全输出、执行自检)、安全状态机(管理正常、限速、保护性停止、急停等状态迁移)、安全通信(与主控交换状态与请求)以及诊断与日志(记录触发事件与故障码)。这些模块共同构成一个闭环:输入采集→逻辑求解→状态判定→输出执行→反馈监测。

安全逻辑求解器是安全平面的“大脑”。它每个安全周期(通常在毫秒级)读取关节编码器反馈,计算当前 TCP 位置、速度、动量与力矩,并与配置的安全边界比较。例如,当配置了安全限速 SLV(Safety Limited Velocity)为 250 mm/s 时,求解器会持续判断实际速度是否超限;一旦超限,立即请求驱动层降速或停止,而不等待主控程序响应。这种“先斩后奏”的能力,正是安全平面与主控系统最本质的区别。

与主控系统的接口关系

安全平面与主控系统之间是双向但不对等的接口关系。主控可以向安全层发送“模式请求”(如切换到手动模式、请求降低限速),但安全层有权拒绝或覆盖这些请求。反过来,安全层向主控发送“安全状态”与“约束生效”信息,主控据此调整程序行为,例如在安全限速生效时暂停高速轨迹。两者之间通常通过内部安全总线或共享内存交换数据,接口内容经过严格定义,不允许主控直接写入安全参数。

在实际工程中,这种接口关系决定了配置流程:安全参数(如安全限位、安全速度、安全力矩)必须在安全层中独立配置并受密码保护,主控程序无法修改;而主控程序中的运动指令则必须考虑安全层已经施加的约束,否则会出现“程序想走但机器人不动”的现象。理解这一点,对后续进行安全配置和故障排查至关重要。

安全平面的核心价值在于“独立可越权”:它不依赖主控程序,能够在主控失效时仍然保证机器人进入安全状态。因此,在排查安全相关问题时,应优先检查安全层的输入、状态与输出,而不是先怀疑主控程序。

安全状态与主控状态的协同

安全平面内部维护一个独立的安全状态机,典型状态包括:正常(Normal)、安全限速(SLV)、安全停止(Protective Stop)、急停(Emergency Stop)与故障(Fault)。主控系统也有自己的运行状态(如运行、暂停、空闲)。两者通过接口进行状态同步,但安全状态优先级更高。例如,当安全门被打开时,安全层直接进入保护性停止,主控程序会收到“安全停止已触发”的信号,从而在界面上显示相应提示,但停止动作本身是由安全层完成的,不依赖主控。

这种协同关系可以用一个简单原则概括:安全层决定“能不能动”,主控层决定“怎么动”。安全层负责边界与约束,主控层负责轨迹与逻辑。两者各司其职,又通过接口保持信息一致。掌握这一分工,是理解 UR 安全平面架构的关键,也是后续进行安全配置、验证与排障的基础。