安全运行停止 (SOS)
此指令仅适用于
Compact GuardLogix
5380、 GuardLogix
5580 和 ControlLogix 5590 控制器。“安全运行停止”(SOS) 指令用于监视电机或轴的速度或位置,以确保相对于静止速度或位置的偏差不超过定义的值。
可用语言
梯形图

功能块
此指令不可用于功能块中。
结构化文本
此指令不可用于结构化文本中。
安全运行停止应用
“安全运行停止”与用于为电机或轴提供速度的 CIP Safety 驱动器及用于变换反馈的安全反馈接口 (SFX) 指令搭配使用。运行期间,当电机速度等于或低于静止速度或位置时(取决于“模式”输入),SOS 指令会发出“SOS 静止”输出信号。
操作数
重要提示:
以下情况下会导致运行出现意外:
- 输出标签操作数被覆盖。
- 结构操作数的成员被覆盖。
- 多条指令共用结构操作数。
- 梯级输入条件不再为真
- 出现指令故障
警告:
注意:
“SOS 安全控制”结构包含内部状态信息。如果在运行模式下更改任何指令操作数,必须接受待定的编辑内容,并将控制器模式从编程模式循环切换到运行模式,以使更改生效。下表给出了用于配置指令的操作数。
操作数 | 数据类型 | 格式 | 说明 |
|---|---|---|---|
Safety Control | SAFE_OPERATING_STOP | 标签 | 指令正确运行所需的数据结构。 |
Restart Type | 列表项 | 该输入用于选择指令的“重启类型”。 手动 (0) 在“请求”移除后,需要“复位”输入由 0 跳变为 1 才能使指令运行。 自动 (1) 当“请求”已移除且不存在故障 ([FP] = OFF (0)) 时,该指令会复位。复位后,指令将能够运行。 ![]() 注意: 只有在确定使用自动重启不会引发不安全状况的应用中,才可以使用自动重启。 | |
Cold Start Type | 列表项 | 此输入用于选择接通控制器电源或将控制器模式更改为“运行”时的行为。 手动 (0) 在“请求”移除后,需要“复位”输入由 0 跳变为 1 才能使指令运行。 自动 (1) 当“请求”移除后,指令会复位。 |
下表介绍指令输入。
操作数 | 数据类型 | 格式 | 说明 |
|---|---|---|---|
Mode | SINT | 立即数 标签 | 该操作数用于选择速度检查或位置检查。 范围:1 或 2。 1:位置检查 2:速度检查 |
Check Delay | INT | 立即数 标签 | 该操作数用于指定 SOS 指令从请求到开始进行静止监视之间的延时时间。 范围:0 到 32767 单位:毫秒 (Ms) |
Standstill Speed | REAL | 立即数 标签 | 该输入用于设置在检查延迟到期后允许的最大速度,超过该速度时,指令将发生故障。 范围:>= 0 |
Standstill Deadband | REAL | 立即数 标签 | 该操作数用于设置在“检查延迟”到期时与所捕获位置之间的最大增量偏差。如果超过该最大偏差,该指令将产生故障。 范围:>= 0 |
Feedback SFX | SAFETY_FEEDBACK_INTERFACE | 标签 | 该操作数用于提供位置和速度数据。该操作数将分配给 SOS 指令所用的 SFX 指令“安全控制”标签。使用“SFX 安全控制”标签的以下成员: FeedbackSFX.FeedbackPosition 单位:反馈计数 FeedbackSFX.ActualSpeed 单位:位置单位/时间单位 FeedbackSFX.PositionScalingOut 单位:反馈计数/位置单位 |
Request | BOOL | 标签 | 该操作数用于使能 SOS 指令。 ON(1):允许 SOS 指令开始进行监视。 OFF(0):允许根据“重启类型”将指令复位 |
Reset 1 | BOOL | 标签 | 该操作数用于将 SOS 功能复位。当“请求”处于 OFF(0) 状态并已清除所有故障状态时,OFF(0) 至 ON(1) 的跳变可复位 SOS 指令和“存在故障”[FP] 信号。需要复位信号来复位该指令时,“需要复位”[RR] 输出会进行指示。 |
1
某些安全标准要求监控复位输入的转换。当复位用于复位安全功能时,可能需要额外的逻辑来验证复位输入从高电平到低电平或从低电平到高电平的转换。下表介绍指令输出。输出可以是外部标签(安全输出模块),也可以是用在其他逻辑例程中的内部标签。
操作数 | 数据类型 | 说明 |
|---|---|---|
Output 1 [O1] | BOOL | ON(1):表示指令正在执行,并且未出现故障。 OFF (0):出现以下情况之一: |
Reset Required [RR] | BOOL | ON(1):表示需要“复位”信号来重启指令或清除故障。有关“复位”顺序的信息,请参见“复位”输入。 OFF (0):“自动重启”运行下的正常运行。 |
Fault Present [FP] | BOOL | ON(1):指令中存在故障。 OFF (0):指令正常运行。 |
Diagnostic Code | SINT | 此输出指示指令的诊断状态。有关具体代码和措施,请参见“诊断代码与纠正措施”部分。 |
Fault Type | SINT | 此输出指示所发生故障的类型。有关具体代码和措施,请参见“故障代码与纠正措施”部分。 |
Check Delay Active | BOOL | ON(1):指示检查延迟计时器已激活。 |
Standstill Set Point | REAL | 该输出用于显示检查延迟周期结束时所捕获的位置。该位置为“位置检查模式”下所使用的静止位置。 |
下表介绍了写入用户指定标签的指令输出。
操作数 | 数据类型 | 格式 | 说明 |
|---|---|---|---|
SOS Active | BOOL | 标签 | SOS 指令将 SOS 激活状态写入此标签。 OFF (0):SOS 未激活 ON(1):SOS 激活
小贴士:
将“SOS 激活”操作数分配给与驱动器模块运动安全实例对应的安全输出标签结构的 SOS 激活成员。在驱动器轴标签结构中将自动更新对应的“轴安全状态”,以协调运动控制任务与安全任务。
|
SOS Standstill | BOOL | 标签 | SOS 指令将 SOS 静止状态写入此标签。 OFF (0):速度或位置未处于静止状态。 ON(1):速度或位置处于静止限制范围内。
小贴士:
“SOS 静止”操作数将分配给与驱动模块运动安全实例对应的安全输出标签结构的“SOS 静止”成员。在驱动器轴标签结构中将自动更新对应的“轴安全状态”,以协调运动控制任务与安全任务。
|
SOS Fault | BOOL | 标签 | SOS 指令将 SOS 故障状态写入此标签。 OFF (0):无故障 ON(1):故障 对于下列故障类型和对应条件,“SOS 故障”位将设为 ON (1) 状态:
指令输入操作数的值超出范围。
监视期间超出静止死区范围。
监视期间超出静止速度限制范围。
用于监视的反馈无效,或者在请求 SOS 时 SFX 指令未运行。
小贴士:
将“SOS 故障”操作数分配给与驱动器模块运动安全实例对应的安全输出标签结构的 SOS 故障成员。在驱动器轴标签结构中将自动更新对应的“轴安全故障”标签,以协调运动控制任务与安全任务。
|
重要提示:
在任何情况下,均不要对任何指令输出标签执行写操作。
影响数学状态标志
否
严重/轻微故障
没有特定于此指令的故障。请参见“数组索引编制”,了解关于数组索引故障的信息。
执行
条件/状态 | 执行的操作 |
|---|---|
预扫描 | .O1、.FP、.RR、.SOSActive、.SOSStandstill、.SOSFault 和 .CheckDelayActive 输出设为 OFF(0)。 “诊断代码”输出设为 0。 “故障类型”输出设为 1。 |
梯级输入条件为假 | .O1、.SOSActive、.SOSStandstill 和 .CheckDelayActive 输出设为 OFF(0)。 如果梯级变为假时存在指令故障,故障状态将保持不变,并显示诊断代码。 |
梯级输入条件为真 | 指令执行。 |
后扫描 | 不适用 |
操作
正常运行
如果 SOS 指令之前已复位,并且“请求”输入跳变为 ON(1),则 SOS 指令会开始运行。此时,检查延迟计时器开始计时。如果检查延迟计时器到期,则启动静止监视。计时器到期时,将捕获当前位置。根据模式设置,将 SFX 指令提供的速度或位置与静止速度/位置死区进行比较。如果受监视轴的速度超过该限值,则 SOS 功能会出现故障。检查延迟计时器到期后,如果该指令未发生故障,则静止输出置为 ON(1)。
SOS 指令所用位置值以位置单位表示。SOS 指令所用速度值以位置单位/时间单位表示。位置单位由用户根据特定应用定义,并在 SFX 指令中进行配置。时间单位同样在 SFX 指令中配置,可以选择秒或分。
传递标签
安全运动监视驱动器具有一个或多个由运动任务控制的运动轴。安全运动监视驱动器还具有一个或多个运动安全实例,用于支持安全控制器的安全任务中使用的安全功能。与驱动器运动安全实例相关的标签中,有些是传递标签。下表列出了 SOS 功能的传递标签和相应的轴标签:
SOS 指令输出 | 运动安全实例的传递标签 | 安全运动监视驱动器的动作 | 轴标签 |
|---|---|---|---|
SOS 激活 | module 1 :SO.SOSActive[instance2 ] | 更新标签 | axis 3 .SOSActiveStatus |
SOS 静止 (SOS Standstill) | module 1 :SO.SOSStandstill[instance2 ] | 更新标签 | axis 3 .SOSStandstillStatus |
SOS Fault | module 1 :SO.SOSFault[instance2 ] | 更新标签 | axis 3 .SOSFault |
1
module 是 Logix Designer I/O 配置树中驱动器模块的名称2
对于双轴驱动器,instance 取 1 或 2,对于其他驱动器,则为空3
axis 是 Logix Designer 运动组中的轴名称,与模块相关将“SOS 激活”、“SOS 静止”和“SOS 故障”输出分配给运动安全实例传递标签时,在运动控制器中将自动更新对应的“轴安全状态”和“轴安全故障”标签。运动控制器的运动控制任务将读取“轴安全状态”和“轴安全故障”标签,以协调安全任务与运动控制任务。以下所列为典型的事件序列:
- 安全应用接收到用于将轴保持静止的输入。
- 安全应用将“请求”输入置为 ON(1),请求执行 SOS 指令。
- SOS 指令将输出“SOS 激活”置位,并对驱动器中运动安全实例的 module:SO.SOSActive[instance] 标签执行写操作。
- 驱动器中的运动安全实例将更新运动控制器读取的“轴安全状态”标签。
- 运动应用停止轴运动,并使位置或速度保持为零
- 当 SOS 指令检测到 SOS 静止时,SOS 指令会对驱动器中运动安全实例的 module:SO.SOSStandstill[instance] 标签执行写操作。
- 运动应用读取“轴安全状态”标签并保持位置不变或维持零速不变。
正常运行,自动重启
下图所示为配置为自动重启时的正常运行状况。检查延迟到期后,在“速度检查”模式下速度必须始终小于静止速度,而在“位置检查”模式下,位置与检查延迟时间结束时所捕获的位置之差不能超出静止死区。在自动重启模式下运行时,如果未发生 SOS 故障,会在“请求”设为 OFF(0) 时将 SOS 指令复位。

正常运行,手动重启
配置为手动重启时,必须先复位 SOS 指令,然后再执行后续操作。“需要复位”输出表明在“请求”输入设为 OFF(0) 后,“复位”输入必须由 OFF(0) 跳变为 ON(1) 才能将 SOS 指令复位。下图所示为配置为自动重启时的正常运行状况。

出现故障时的运行状况
SOS 故障包括无效配置或“SFX 指令未就绪”,将在“故障代码与处理措施”部分进行说明。当监视处于激活状态时,在“速度检查”模式下如果速度超过静止速度,或者在“位置检查”模式下位置与监视开始时的初始位置之差超过静止死区,则将发生故障。下图所示为速度和位置故障。

故障代码与处理措施
故障代码 | 说明 | 纠正措施 |
|---|---|---|
1 | 无故障 | 无 |
2 | 无效配置故障 |
|
3 | 静止位置故障 | 确保在检查延迟到期后运动处于静止死区内。 |
4 | 静止速度故障 | 确保在检查延迟到期前运动速度低于静止限制。 |
101 | 位置窗口计算溢出故障。来自“反馈 SFX”标签的“位置变换”与“位置窗口”的乘积超过 (2^31 – 1) |
|
102 | “SFX 指令未就绪”故障 | 确保向该 SOS 指令提供输入的 SFX 指令正在执行,且在请求执行 SOS 之前未发生故障。 |
诊断代码与纠正措施
Diagnostic Code | 说明 | 纠正措施 |
|---|---|---|
0 | 无诊断信息。 | 无 |
10 | SOS 指令执行时,梯级变为假。 | 确保该指令梯级已启用。 |
20 | 模式值无效。 | 仅允许值为 1(速度检查)或 2(位置检查)。 |
21 | 检查延迟值无效。 | 检查“检查延迟”值,确保该值 >= 0 且 <= 32767 |
22 | “静止死区”无效 | “静止死区”不能为负值 |
23 | “静止速度”无效 | “静止速度”不能为负值 |
示例

提供反馈
