FFU(FIFO 卸载)
FFU 指令以使用 FFL 指令加载数据的相同顺序,从调用 FIFO(先进先出)堆栈的用户创建的一维数组卸载 8 位、16 位、32 位或 64 位数据。
操作详细信息︰
- FFU 指令 - 非执行模式到执行模式:
- 当 Execute 从 FALSE 转变为 TRUE 时:
- FFU 错误条件已验证。
- 如果 Position 大于零且小于或等于 Length,则卸载 FIFO 堆栈中零位置的内容。
- 其余元素将向零移动一个位置,并且 FIFO 堆栈的最高元素设置为零,Position 递减 1。
- 如果 Position 等于零,则 Empty 设置为 TRUE。
- 当指令成功执行时,Done 被设置。
- 当 Execute 从 TRUE 转变为 FALSE 时:
- Error、Done 和 ErrorID 设置为 FALSE。
- 如果 Position 等于零,则 Empty 设置为 TRUE。
- 如果 Length 等于 Position,则 Full 设置为 TRUE。如果 Position 小于或等于零且小于 Length,则 Full 设置为 FALSE。
- 未验证 FFU 错误条件。
- 当 Execute 从 TRUE 转变为 TRUE 时:
- 未执行卸载操作。
- 如果 Position 等于零,则 Empty 设置为 TRUE。
- 如果 Length 等于 Position,则 Full 设置为 TRUE。
- 未验证 FFU 错误条件。
- 当 Execute 从 FALSE 转变为 FALSE 时:
- Error、Done 和 ErrorID 设置为 FALSE。
- 如果 Position 等于零,则 Empty 设置为 TRUE。
- 如果 Length 等于 Position,则 Full 设置为 TRUE。如果 Position 小于或等于零且小于 Length,则 Full 设置为 FALSE。
- 未验证 FLU 错误条件。
- FFU 指令 - 执行模式到非执行模式:
- Error、ErrorID、Empty 和 Full 保留 Execute 模式状态。
- 要为 FIFO 参数创建单个元素:
- 非数组:
- 允许将基于地址的变量(如 Fifo1)用于 FIFO。
- Length 应配置为 1。
- 一维数组:
- 允许将基于地址的变量(如 Fifo1 或 Fifo1[0])用于 FIFO。
- Length 应配置为 1。
支持的语言︰功能块图、梯形图和结构化文本。
该指令适用于 L20E、L50E 和 L70E 控制器。
FFU

参数 | 参数类型 | 数据类型 | 描述 |
|---|---|---|---|
Execute | 输入 | BOOL | 启用指令块。
|
Dest | 输入 | ANY_ELEMENTARY | 保持 FIFO 堆栈中存在的值。 Dest 支持的基本数据类型:
|
DestOffset | 输入 | UINT | 目标元素偏移。 如果目标是一维数组数据类型,则元素偏移;否则,偏移应设置为 0。 对于数组数据类型,要卸载到第一个元素,应将偏移设置为 0。 |
FIFO | 输入 | ANY_ELEMENTARY | 堆栈的起始地址。必须在 FFL 和 FFU 指令中进行相同的 FIFO 配置。
|
FIFOCon | 输入 | FF_LF_CON | FIFO 配置和控制。必须为 FFL 和 FFU 指令配置相同的设置。 使用 FF_LF_CON 数据类型配置 Position 和 Length。 |
Done | 输出 | BOOL | 指示 FFU 操作完成的时间。
|
Full | 输出 | BOOL | 指示 FIFO 堆栈已满的时间。
|
Empty | 输出 | BOOL | 指示 FIFO 堆栈为空的时间。
|
Error | 输出 | BOOL | 表示存在错误条件。
|
ErrorID | 输出 | USINT | 标识错误的唯一数字。这些错误在 FFU 错误代码中定义。 |
参数 | 数据类型 | 描述 |
|---|---|---|
Length | UINT | 用于 FIFO 操作的元素数量。最大限值为 1024。 |
Position | USINT | 确定 FIFO 中下一个可用于输入或删除 Src 的位置。位置是数组的偏移量。
|
错误代码 | 错误描述 |
|---|---|
0 | 无错误。 |
1 | 不支持 FFL Src 数据类型。 |
2 | 不支持 FFU Dest 数据类型。 |
3 | 不支持 FIFO 数据类型。 |
4 | Src 和 Dest 数据类型与 FIFO 数据类型不匹配。 更正措施: FFL Src 参数和 FFU Dest 参数数据类型应与 FIFO 数组数据类型匹配。 |
5 | FIFO:数组维度不受支持。 更正措施: FIFO 仅支持一维数组。 |
6 | FIFOCon 控制长度超过 FIFO 数组大小。 更正措施: FIFOCon 控制长度不能超过 FIFO 数组大小。 |
7 | FIFOCon 长度超过最大长度。 |
8 | FIFOCon 长度为零。 |
9 | FIFOCon 位置超过 FIFOCon 长度。 |
10 | FFL 控制长度和位置相等。 |
11 | FFU 控制位置为零。 |
12 | 不支持 FFL 或 FFU 数组维度。 更正措施: FFL 和 FFU 仅支持一维数组。 |
13 | FFL 或 FFU DestOffset 超出 Dest 数组大小。 |
FFU 示例
FFU 功能块图示例

FFU 梯形图示例

FFU 结构化文本示例

结果

提供反馈