FFL(FIFO 加载)

FFL 指令可将 8 位、16 位、32 位或 64 位数据加载到调用了 FIFO 堆栈的用户创建的一维数组。
操作详细信息︰FFL 指令可将非执行模式更改为执行模式。
  • 当 Execute 从 FALSE 转变为 TRUE 时:
    • 错误条件已验证。
    • Src 的内容已加载到可用位置中的 FIFO 堆栈中;如果 Position 小于或等于零且小于 Length,则 Position 增加 1。
    • 如果 Length 等于 Position,则 Full 设置为 TRUE。如果 Position 小于或等于零且小于 Length,则 Full 为 FALSE。
    • 当指令成功执行时,Done 被设置。
  • 当 Execute 从 TRUE 转变为 FALSE 时:
    • Error、Done 和 ErrorID 设置为 FALSE。
    • 如果 Position 等于零,则 Empty 设置为 TRUE。
    • 当 Length 等于 Position 时,Full 设置为 TRUE。如果 Position 小于或等于零且小于 Length,则 Full 为 FALSE。
    • 未验证 FFL 错误条件。
  • 当 Execute 从 TRUE 转变为 TRUE 时:
    • 未执行加载操作。
    • 如果 Position 等于零,则 Empty 设置为 TRUE。
    • 如果 Position 小于或等于零且小于 Length,则 Full 设置为 FALSE。如果 Length 等于 Position,则 Full 设置为 TRUE。
    • 未验证 FFL 错误条件。
  • 当 Execute 从 FALSE 转变为 FALSE 时:
    • Error、Done 和 ErrorID 位设置为 FALSE。
    • Full 和 Empty 位保留来自先前执行状态的值。
  • 如果 Position 等于零,则 Empty 设置为 TRUE。
    • 如果 Length 等于 Position,则 Full 设置为 TRUE。如果 Position 小于或等于零且小于 Length,则 Full 为 FALSE。
    • 未验证 FLL 错误条件。
    • FFL 指令 - 执行模式到非执行模式:
      • Error、ErrorID、Empty 和 Full 保留 Execute 模式状态。
  • 要为 FIFO 参数创建单个元素:
    • 非数组:
      • 允许将基于地址的变量(如 Fifo1)用于 FIFO。
      • Length 应配置为 1。
    • 一维数组:
      • 允许将基于地址的变量(如 Fifo1 或 Fifo1[0])用于 FIFO。
      • Length 应配置为 1。
支持的语言︰功能块图、梯形图和结构化文本。
该指令适用于 L20E、L50E 和 L70E 控制器。
FFL
FFL
FFL 参数
参数
参数类型
数据类型
描述
Execute
输入
BOOL
启用指令块。
  • TRUE: 如果检测到上升沿,则启动 FFL 操作。
  • FALSE:未检测到上升沿。
Src
输入
ANY_ELEMENTARY
Src 操作数是用于填充 FIFO 堆栈中当前可用位置的值的地址。
Scr 支持的基本数据类型: 
  • DWORD、REAL、TIME、DATE、LWORD、ULINT、LINT、LREAL、BOOL、SINT、USINT、BYTE、INT、UINT、WORD、DINT、UDINT。
  • 不支持字符串。
  • 支持诸如 Array[1] 或 Array[Index] 等变量和一维数组。
FIFO
输入
ANY_ELEMENTARY
堆栈的起始地址。必须为 FFL 和 FFU 指令进行相同的 FIFO 配置。
FIFO 支持的基本数据类型:
DWORD、REAL、TIME、DATE、LWORD、ULINT、LINT、LREAL、BOOL、SINT、USINT、BYTE、INT、UINT、WORD、DINT、UDINT。
  • 不支持字符串。
  • FIFO 仅支持一维数组。
FIFOCon
输入
FF_LF_CON
FIFO 配置和控制。必须为 FFL 和 FFU 指令配置相同的设置。
使用 FF_LF_CON 数据类型配置 Position 和 Length。
Done
输出
BOOL
指示 FFU 操作完成的时间。
  • TRUE: 操作已成功完成。
  • FALSE:操作过程遇到错误条件或 FFU 指令未执行。
Empty
输出
BOOL
指示 FIFO 堆栈为空的时间。
  • TRUE: 当 Position 等于 0 时。
  • FALSE:当 Position 不等于 0 时。
Full
输出
BOOL
指示 FIFO 堆栈已满的时间。
  • TRUE: 当 Length 等于 Position 时。
  • FALSE:当 Position 大于或等于零且小于 Length 时。
Error
输出
BOOL
表示存在错误条件。
  • TRUE: 操作过程遇到错误。
  • FALSE:操作过程成功完成或指令未执行。
ErrorID
输出
USINT
标识错误的唯一数字。这些错误在 FFL 错误代码中定义。
FF_LF_CON 数据类型
参数
数据类型
描述
Length
UINT
用于 FIFO 操作的元素数量。最大限值为 1024。
Position
USINT
确定 FIFO 中下一个可用于输入或删除 Src 的位置。位置是数组的偏移量。
示例 1:
  • 用户配置的一维数组,arr[0..5]。初始位置被配置为 1。数据被推入 arr[1],并且位置按“位置 + 1”递增。
示例 2:
  • 用户将一维数组配置为 arr[1..5]。初始位置被配置为 1。数据被推入 arr[2],并且位置按“位置 + 1”递增。
FFL 错误代码
错误代码
错误描述
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 数组大小。

FFL 示例

FFL 功能块图示例
FFL 功能块图示例
FFL 梯形图示例
FFL 梯形图示例
FFL 结构化文本示例
FFL 结构化文本示例
结果
结果
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal