FIFO 加载 (FFL)
下表列出了支持此指令的控制器和应用程序。
架构 | 标准应用程序 | 安全应用程序 |
|---|---|---|
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器 | 是 | 否 |
CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器 | 是 | 是 |
FFL 指令用于将 Source 值复制到 FIFO。
FFL 指令可与 FFU 指令配合使用,以先进先出的顺序存储和检索数据。成对使用时,FFL 和 FFU 指令建立异步移位寄存器。
通常,Source 和 FIFO 采用相同的数据类型。
使能后,FFL 指令将 Source 值加载到 FIFO 中由 .POS 值标识的位置。每次指令使能后,指令都将加载一个值,直到 FIFO 已满。
重要提示:
必须进行测试并确认指令不会更改用户不希望更改的数据。
FFL 指令对连续内存进行操作。
数据受到指定成员的约束。
如果指令尝试超过数组的末尾执行读操作,则指令将生成严重故障。
通常,Source 和 FIFO 采用相同的数据类型。如果 Source 和 FIFO 的数据类型不匹配,则指令会将 Source 值转换为 FIFO 标签的数据类型。
较小的整型类型可通过符号扩展转换为较大的整型类型。
可用语言
梯形图

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

FFL 流程图(假)

FFL 流程图(真)

示例
示例 1
梯形图


示例 2
Source 数组为 STRING 类型数组或 Structure 类型数组。
梯形图

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

提供反馈