安全方向 (SDI)
此指令仅适用于
Compact GuardLogix
5380、 GuardLogix
5580 和 ControlLogix 5590 控制器。“安全方向”(SDI) 指令用于监视电机或轴的位置,以检测意外方向上超出指定移动距离的运动。
可用语言
梯形图

功能块
此指令不可用于功能块中。
结构化文本
此指令不可用于结构化文本中。
“安全方向”应用
“安全方向”用于提供电机或轴位置的 CIP Safety 驱动器,可与安全反馈接口 (SFX) 指令结合使用,对反馈进行变换。在运行过程中,若电机沿意外方向移动的距离超出指定的限值,SDI 指令就会进行指示。此输出用于启动应用特定的操作,例如 SS1、SS2 或 STO 等。
操作数
重要提示:
以下情况下会导致运行出现意外:
- 输出标签操作数被覆盖。
- 结构操作数的成员被覆盖。
- 多条指令共用结构操作数。
警告:
“SDI 安全控制”结构包含内部状态信息。如果在运行模式下更改任何指令操作数,必须接受待定的编辑内容,并将控制器模式从编程模式循环切换到运行模式,以使更改生效。
下表给出了用于配置指令的操作数。
操作数 | 数据类型 | 格式 | 说明 |
|---|---|---|---|
Safety Control | SAFE_DIRECTION | 标签 | 指令正确运行所需的数据结构。 |
Restart Type | 列表项 | 该输入用于选择指令的“重启类型”。 手动 (0) 在“请求”移除后,需要“复位”输入由 0 跳变为 1 才能使指令运行。 自动 (1) 当“请求”已移除且不存在故障 ([FP] = OFF (0)) 时,该指令会复位。复位后,指令将能够运行。 ![]() 注意: 只有在确定使用自动重启不会引发不安全状况的应用中,才可以使用自动重启。 | |
Cold Start Type | 列表项 | 此输入用于选择接通控制器电源或将控制器模式更改为“运行”时的行为。 手动 (0) 在“请求”移除后,需要“复位”输入由 0 跳变为 1 才能使指令运行。 自动 (1) 当“请求”移除后,指令会复位。 |
下表介绍指令输入。
操作数 | 数据类型 | 格式 | 说明 |
|---|---|---|---|
Position Window | REAL | 立即数 标签 | 该操作数用于设置发生故障之前,允许沿意外方向移动的增量距离。 范围:任何大于零的 REAL 型值。 |
Feedback SFX | SAFETY_FEEDBACK_INTERFACE | 标签 | 该操作数用于提供位置数据。该操作数将分配给此 SDI 指令所用的“SFX 安全控制”标签。使用“SFX 安全控制”标签的以下成员: FeedbackSFX.FeedbackPosition 单位:反馈计数 FeedbackSFX.PositionScalingOut 单位:反馈计数/位置单位 |
Positive Request | BOOL | 标签 | 该操作数用于使 SDI 指令开始检查是否出现意外的正向运动。 ON(1):开始正向运动检查。 OFF (0):允许根据“重启类型”将指令复位 |
Negative Request | BOOL | 标签 | 该操作数用于使 SDI 指令开始检查是否出现意外的负向运动。 ON(1):开始负向运动检查。 OFF (0):允许根据“重启类型”将指令复位 |
Reset 1 | BOOL | 标签 | 该操作数用于将 SDI 功能复位。假设“请求”操作数为 OFF(0) 且所有故障条件都已清除,则该操作数由 OFF(0) 跳变为 ON(1) 时将复位 SDI 指令及“存在故障”[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 | 此输出指示所发生故障的类型。有关具体代码和措施,请参见“故障代码与纠正措施”部分。 |
下表介绍了写入用户指定标签的指令输出。
操作数 | 数据类型 | 格式 | 说明 |
|---|---|---|---|
SDI Active | BOOL | 标签 | SDI 指令将 SDI 激活状态写入此标签。 OFF (0):SDI 未激活 ON(1):SDI 激活
小贴士:
将“SDI 激活”操作数分配给与驱动器模块运动安全实例对应的安全输出标签结构的 SDI 激活成员。在驱动器轴标签结构中将自动更新对应的“轴安全状态”,以协调运动控制任务与安全任务。
|
SDI Limit | BOOL | 标签 | SDI 指令将“SDI 限制”状态写入该标签 OFF (0):轴沿安全方向运动。 ON(1):轴沿意外方向运动。
小贴士:
“SDI 限制”操作数将分配给与驱动器模块运动安全实例对应的安全输出标签结构的 SDI 限制成员。在驱动器轴标签结构中将自动更新对应的“轴安全状态”,以协调运动控制任务与安全任务。
|
SDI Fault | BOOL | 标签 | SDI 指令将“SDI 故障”状态写入该标签 OFF (0):无故障 ON(1):故障 对于下列故障类型和相应条件,“SDI 故障”将设为 ON (1):
指令输入操作数的值超出范围。
用于监视的反馈无效,或者在请求 SDI 后 SFX 指令未运行。
小贴士:
“SDI 故障”操作数将分配给与驱动器模块运动安全实例对应的安全输出标签结构的 SDI 故障成员。在驱动器轴标签结构中将自动更新对应的“轴安全故障”标签,以协调运动控制任务与安全任务。
|
重要提示:
在任何情况下,均不要对任何指令输出标签执行写操作。
影响数学状态标志
否
严重/轻微故障
没有特定于此指令的故障。请参见“数组索引编制”,了解关于数组索引故障的信息。
执行
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 输出 .O1、.FP、.RR、.SDIActive、.SDILimit 和 .SDIFault 设为 OFF(0)。 “诊断代码”输出设为 0。 “故障类型”输出设为 1。 |
梯级输入条件为假 | .O1、.SDIActive 和 .SDILimit 设为 OFF(0)。 如果梯级变为假时存在指令故障,故障状态将保持不变,并显示诊断代码。 |
梯级输入条件为真 | 指令执行。 |
后扫描 | 不适用 |
操作
正常运行
如果 SDI 指令之前已复位,且“正向请求”输入或“负向请求”输入已跳变为 ON(1),则该指令会开始执行。此时,捕获当前位置。如果发生沿意外方向的运动,并且相对于当前位置超出了位置窗口限制,则相应的限制输出会置位。如果在允许的方向上存在超过所捕获位置的运动,则根据在允许的方向上的运动程度更新捕获位置。限制输出置位后,将一直保持置位状态,直至 SDI 指令能复位。
SDI 指令所用的所有位置值都采用“位置单位”。位置单位由用户根据特定应用定义,并在 SFX 指令中配置。
传递标签
安全运动监视驱动器具有一个或多个由运动任务控制的运动轴。安全运动监视驱动器还具有一个或多个运动安全实例,用于支持安全控制器的安全任务中使用的安全功能。与驱动器运动安全实例相关的标签中,有些是传递标签。下表列出了 SDI 功能的传递标签和相应的轴标签:
SDI 指令输出 | 运动安全实例的传递标签 | 安全运动监视驱动器的动作 | 轴标签 |
|---|---|---|---|
SDI 激活 | module 1 :SO.SDIActive[instance2 ] | 更新标签 | axis 3 .SDIActiveStatus |
SDI Limit | module 1 :SO.SDILimit[instance2 ] | 更新标签 | axis 3 .SDILimitStatus |
SDI Fault | module 1 :SO.SDIFault[instance2 ] | 更新标签 | axis 3 .SDIFault |
1
module 是 Logix Designer I/O 配置树中驱动器模块的名称2
对于双轴驱动器,instance 取 1 或 2,对于其他驱动器,则为空3
axis 是 Logix Designer 运动组中的轴名称,与模块相关将指令输出“SDI 激活”、“SDI 限制”和“SDI 故障”分配给运动安全实例传递标签时,在运动控制器中将自动更新对应的“轴安全状态”和“轴安全故障”标签。运动控制器的运动控制任务将读取“轴安全状态”和“轴安全故障”标签,以协调安全任务与运动控制任务。以下所列为典型的事件序列:
- 安全应用程序收到防止轴沿负行程方向运动的输入信号。
- 安全应用程序将“负向请求”输入设为 ON(1),请求执行 SDI 指令。
- SDI 指令将“SDI 激活”输出置位,并对驱动器中运动安全实例的 module:SO.SDIActive[instance] 标签执行写操作。
- 驱动器中的运动安全实例将更新运动控制器读取的“轴安全状态”标签。
- 运动控制应用程序继续使轴仅沿正向行程方向运动。
正常运行,自动重启
下图所示为配置为自动重启时的正常运行状况。“负向请求”跳变为 ON(1) 后,SDI 指令将立即运行。如果增量位置沿负方向移动的距离大于“位置窗口”值,“SDI 限制”将置位。“SDI 限制”置位后,必须将“负向请求”设为 OFF(0),以此复位此指令。

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

故障代码与处理措施
故障代码 | 说明 | 纠正措施 |
|---|---|---|
1 | 无故障 | 无 |
2 | 无效配置故障 |
|
101 | 位置窗口计算溢出故障。来自“反馈 SFX”标签的“位置变换”与“位置窗口”的乘积超过 (2^31 – 1) |
|
102 | “SFX 指令未就绪”故障 | 确保向该 SDI 指令提供输入的 SFX 指令正在执行,且在请求执行 SDI 之前未发生故障。 |
诊断代码与纠正措施
Diagnostic Code | 说明 | 纠正措施 |
|---|---|---|
0 | 无诊断信息 | 无 |
10 | SDI 指令执行时,梯级变为假。 | 确保该指令已启用。 |
15 | 在同一扫描中,“负向请求”输入和“正向请求”输入都处于 ON(1) 状态。 | 只允许同时检查正向或负向运动。 |
20 | “位置窗口”值无效。 | “位置窗口”值必须是正值 |
21 | 正向超出限值 |
|
22 | 负向超出限制。 |
|
示例

提供反馈
