FIFO 卸载 (FFU)
下表列出了支持此指令的控制器和应用程序。
架构 | 标准应用程序 | 安全应用程序 |
|---|---|---|
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器 | 是 | 否 |
CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器 | 是 | 是 |
FFU 指令用于将 FIFO 中位置 0(第一个位置)的值卸载,并将该值存储于 Destination 中。FIFO 中其余的数据下移一个位置。
FFU 指令可与 FFL 指令配合使用,以先进先出的顺序存储和检索数据。
使能后,FFU 指令会卸载 FIFO 中第一个元素的数据,并将该值放入 Destination。每次指令使能后,该指令都将卸载一个值,直到 FIFO 为空。如果 FIFO 为空,FFU 会将 0 返回到 Destination。
通常,目标标签和 FIFO 采用相同的数据类型。如果类型不同,则指令会将卸载的值转换为目标标签的类型。
较小的整型类型可通过符号扩展转换为较大的整型类型。
可用语言
梯形图

操作数
指令中混用数据类型时,需遵从相关的数据转换规则。
梯形图
操作数 | 类型 | 格式 | 说明 |
|---|---|---|---|
FIFO | SINT INT DINT REAL 字符串类型 结构 | 数组标签 | 要修改的 FIFO 指定 FIFO 的第一个元素 不要在下标中使用 CONTROL.POS |
Destination | SINT INT DINT REAL 字符串类型 结构 | 标签 | 从 FIFO 中卸载的值。 |
Control | CONTROL | 标签 | 运算的控制结构 通常使用与关联 FFL 相同的 CONTROL 结构 |
Length | DINT | 立即数 | FIFO 可同时存储的最大元素数目 |
Position | DINT | 立即数 | FIFO 中指令加载数据的下一个位置 初始值通常为 0 |
CONTROL 结构
助记符 | 数据类型 | 说明 |
|---|---|---|
.EU | BOOL | 使能卸载位,指示 FFU 指令是否使能。将 .EU 位置位,可防止在预扫描开始时发生错误卸载。 |
.DN | BOOL | 完成位,置位时指示 FIFO 已满 (.POS = .LEN)。 |
.EM | BOOL | 空位,指示 FIFO 为空。如果 .LEN是,或 = 0 或 .POS < 0,则 .EM 位和 .DN 位置位。 |
.LEN | DINT | 长度,指定 FIFO 的最大元素数。 |
.POS | DINT | 位置,用于标识已加载到 FIFO 中的数据的末尾。 |
影响数学状态标志
否
严重/轻微故障
在以下情况下会发生严重故障: | 故障类型 | 故障代码 |
|---|---|---|
指定的 Length 超过 FIFO 数组的末尾 | 4 | 20 |
有关操作数相关的故障,请参阅 常用属性。
执行
梯形图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 请参见 FFU 流程图(预扫描)。 |
梯级输入条件为假 | 请参见“FFL 流程图(假)”。 |
梯级输入条件为真 | 请参见“FFU 流程图(真)” |
后扫描 | 不适用 |
FFU 流程图(预扫描)

FFL 流程图(假)

FFU 流程图(真)

示例
示例 1
梯形图


示例 2
目标数组是 STRING 类型数组或 Structure 类型数组
梯形图

示例 3
FIFO 源数组的数据类型与目标数组的数据类型不匹配
梯形图

提供反馈