安全限制位置 (SLP)
此指令仅适用于
Compact GuardLogix
5380、 GuardLogix
5580 和 ControlLogix 5590 控制器。“安全限制位置”(SLP) 指令用于监视电机或轴的位置,确保位置不会高于或低于定义的限制。
可用语言
梯形图

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

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

出现故障时的运行状况
SLP 出现故障,可能是由于配置无效,SFX 指令未就绪或未归零,具体请参见“故障代码与纠正措施”部分。
故障代码与处理措施
故障代码 | 说明 | 纠正措施 |
|---|---|---|
1 | 无故障 | 无。 |
2 | 无效配置故障 | 检查正向行程限位和负向行程限位。对于旋转运动,配置值必须小于(归位 * 位置变换),并且正向限值必须大于负向限值。纠正配置后,将此故障复位。 |
101 | “轴未归零”故障 | 与 SLP 配合使用的 SFX 指令必须归零。SLP 仅适用于绝对位置。将与此 SLP 指令配合使用的 SFX 指令归零。 |
102 | SFX 指令未就绪 | 确保向该 SLP 实例提供输入的 SFX 指令正在执行,且在请求执行 SLP 之前未发生故障。 |
诊断代码与纠正措施
Diagnostic Code | 说明 | 纠正措施 |
|---|---|---|
0 | 无诊断信息。 | 无 |
10 | SLP 指令执行时,梯级变为假。 | 确保该指令已启用。 |
20 | “正向行程限位”值无效 | 如果归位 0,则限制值必须小于(归位/位置变换)。正向行程限位必须 负向行程限位。 |
21 | “负向行程限位”值无效。 | “负向行程限位”必须小于“正向行程限位”。 |
22 | 检查延迟值无效 | 检查“检查延迟”值,以确保其 0 且 32,767。 |
23 | 超出“正向行程限位” | 将轴运动至更小位置。 |
24 | 超出“负向行程限位” | 将轴运动至更大位置。 |
示例

提供反馈

0)
0 且
32,767。