LIFO 卸载 (LFU)

下表列出了支持此指令的控制器和应用程序。
架构
标准应用程序
安全应用程序
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器
CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器
LFU 指令用于卸载 LIFO 中 .POS 处的值,并在该位置存储 0。
LFU 指令可与 LFL 指令配合使用,以后进先出的顺序存储和检索数据。
使能后,LFU 指令会卸载 LIFO 中 .POS 处的值,并将该值放入 Destination。指令在每次使能后都将卸载一个值并将其替换为 0,直到 LIFO 为空。如果 LIFO 为空,LFU 会将 0 返回到 Destination。
重要提示: 必须进行测试并确认指令不会更改用户不希望更改的数据。
LFU 指令对连续内存进行操作。指令的作用域受到基本标签的约束。LFL 指令不会将数据写入基本标签之外,但可以跨成员边界。如果指定的数组为结构的成员,并且长度超过该数组的大小,则必须测试并确认 LFL 指令不会更改不希望更改的数据。
数据受到指定成员的约束。
如果指令尝试超出数组的末尾执行读操作,则指令会将 .ER 位置位并生成严重故障。
通常,Source 和 LIFO 使用相同的数据类型。如果 Source 和 LIFO 的数据类型不匹配,则指令会将 Source 值转换为 FIFO 标签的数据类型。
较小的整型类型可通过符号扩展转换为较大的整型类型。
可用语言
梯形图
操作数
指令中混用数据类型时,需遵从相关的数据转换规则。
梯形图
操作数
类型
格式
说明
LIFO
SINT
INT
DINT
REAL
字符串类型
结构
数组标签
要修改的 LIFO
指定 LIFO 的第一个元素
不要在下标中使用 CONTROL.POS
Destination
SINT
INT
DINT
REAL
字符串类型
结构
标签
从 LIFO 卸载的值。
Control
CONTROL
标签
运算的控制结构
通常使用与关联 LFL 相同的 CONTROL 结构。
Length
DINT
立即数
LIFO 可同时存储的最大元素数目
Position
DINT
立即数
LIFO 中指令卸载数据的下一个位置
初始值通常为 0
CONTROL 结构
助记符
数据类型
说明
.EU
BOOL
使能位,指示 LFU 指令是否使能。
.DN
BOOL
完成位,置位时指示 LIFO 已满 (.POS = .LEN)。
.EM
BOOL
空位,指示 LIFO 为空。如果 .LEN < 或 = 0 或 .POS < 0,则 .EM 位和 .DN 位都将置位。
.LEN
DINT
长度,指定 LIFO 可同时存储的最大元素数目。
.POS
DINT
位置,用于标识已加载到 LIFO 中的数据的末尾。
影响数学状态标志
严重/轻微故障
在以下情况下会发生严重故障:
故障类型
故障代码
如果指定的 Length 超过 LIFO 数组的末尾
4
20
有关操作数相关的故障,请参阅 常用属性
执行
所有条件仅在普通扫描模式期间才会出现
梯形图
条件/状态
执行的操作
预扫描
请参见“LFU 流程图(预扫描)”
梯级输入条件为假
请参见“LFU 流程图(假)”
梯级输入条件为真
请参见“LFU 流程图(真)”
后扫描
不适用
LFU 流程图(预扫描)
LFU 流程图(假)
LFU 流程图(真)
示例
示例 1
梯形图
示例 2
目标数组是 STRING 类型数组或 Structure 类型数组
梯形图
示例 3
LIFO 源数组的数据类型与目标数组的数据类型不匹配
梯形图
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal