定序程序输出 (SQO)
此信息适用于
CompactLogix
5370、ControlLogix
5570、Compact GuardLogix
5370、GuardLogix
5570、Compact GuardLogix
5380、CompactLogix
5380、ControlLogix
5580、GuardLogix
5580 和 ControlLogix 5590 控制器。SQO 指令为 SQO/SQI 指令顺序对中的下一步设置输出条件。
当 .EN 由假跳变为真时,.POS 递增。当 .POS 变为大于等于 .LEN 时,.POS 将重置为 1
当 .EN 为 true 时,SQO 指令移动 .POS 处的数组数据使其经由 Mask 屏蔽码处理,然后移动当前 Destination 值使其经由 Mask 补码处理。对这两个运算的结果执行 OR 运算,结果存储在 Destination 中。

可用语言
梯形图

操作数
有关指令中混用数据类型时所采用的数据转换规则,请参见“数据转换”数据转换。
操作数 | 类型 | 格式 | 说明 |
|---|---|---|---|
Array | DINT | 数组标签 | 定序程序数组 指定定序程序数组的第一个元素 不要在下标中使用 CONTROL.POS |
Mask | SINT INT DINT | 标签 立即数 | 用于确定要屏蔽 (0) 或传递 (1) 的位,应用于输出屏蔽操作过程。 |
Destination | DINT | 标签 | 定序程序数组的输出数据。该值用于输出屏蔽操作。 |
Control | CONTROL | 标签 | 运算的控制结构 应使用与 SQI 和 SQL 指令中相同的控制标签 |
Length | DINT | 立即数 | 数组(定序程序表)中要输出的元素数 |
Position | DINT | 立即数 | 数组中的当前位置 初始值通常为 0。 |
CONTROL 结构
助记符 | 数据类型 | 说明 |
|---|---|---|
.EN (Enable) | BOOL | 使能位,指示 SQO 指令是否使能。 |
.DN (Done) | BOOL | 完成位,当 .POS = .LEN 时置位 |
.ER (Error) | BOOL | 指示指令遇到错误。 |
.LEN (Length) | DINT | 长度,指定定序程序数组中的定序程序步数。 |
.POS (Position) | DINT | 位置,指定指令当前用来输出屏蔽操作的数组元素。 |
影响数学状态标志
否
严重/轻微故障
没有特定于此指令的故障。有关操作数相关的故障,请参阅 常用属性。
执行
梯形图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | .EN 设置为真。 |
梯级输入条件为假 | .EN 设置为假。 |
梯级输入条件为真 | 请参见下文流程图(真) |
后扫描 | 不适用 |
流程图(真)

示例
Mask 值与数组值(如 Array[SqoControl.POS])进行 AND 运算。Mask 值的补码与当前 Dest 值进行 AND 运算。然后对这两个运算的结果执行 OR 运算,结果存储在 Dest 中。
要将 .POS 重置为初始值 (.POS = 0),请使用 RES 指令来清除控制结构。下面的示例使用首次扫描位的状态来清零 .POS 值。

梯形图

提供反馈