堆栈指令分类堆栈指令属于输出指令

堆栈指令分类堆栈指令属于输出指令,分为先进先出(FIFO)和后进先出(LIFO)两种指令

FIFO装载和卸载指令FFL/FFU指令是成对使用的,FFL指令把数据字装入FIFO堆栈内,FFU指令把数据字按与它们进人时相同的顺序从FIFO堆栈卸出

对堆栈指令编程时需输入下列参数:①源——存储下一个将要进入FIFO堆栈的值,可以是数据字地址或常数(一32768~32767)

②目的——存储从堆栈出来的数据字地址

③FIFO——堆栈地址,它必须是输入、输出、位或整数文件的变址字地址

成对使用的FFL和FFU指令要使用相同的FIFO地址

④控制(contml)——控制文件地址,存储指令执行的状态位、堆栈长度、位置值等信息

成对使用的FFL和FFU指令使用相同的控制文件,但是不要把一个指令已使用的控制文件地址用于程序的其他指令中

⑤长度(Length)——指定堆栈中数据的最大长度

⑥位置(Position)——指定堆栈中下一个可用的位置

1)每次FFL指令梯级条件由假到真转换时,都向堆栈装载一个数据

例如,在FFL指令梯级条件由假到真转换时,PLC置位装载使能位(EN),并把源地址N7:10内的数值装入由位置参数指定的当前堆栈位置9(N7:21)内,然后使位置值加1,直到栈满(34个字)后置位完成位(DN),并禁止源值再装入堆栈内

2)每次FFU指令梯级条件由假到真转换时,都从堆栈中卸出一个数据

例如,在FFU指令梯级条件由假到真转换时,PLC置位卸载使能位,并把在堆栈位置0(N7:12)内的数据卸载到目的数据地址N7:11内,在堆栈内的全部数据向位置零的方向移动一个元素,然后位置值减1,直到栈空后置位堆栈空位(EM)

堆栈指令会影响变址寄存器(S:24)的值,当堆栈指令的梯级条件由假到真转换时,S:24内的当前值被堆栈指令的位置值覆盖,即它存储的是堆栈地址变址值

当完成位被置位时,FFL/LFL指令梯级条件由假到真的转换不改变位置值或变址寄存器值

当栈空位被置位时,FFU/LFU指令梯级条件由假到真的转换也不改变位置值或变址寄存器值

LIFO装载和卸载指令LFL和LFU指令也是成对使用

LFL指令把数据字装入LIFO堆栈内

LFU指令把数据字按与它们进入时相反的顺序从LIFO堆栈卸出

每次LFL指令梯级条件由假到真转换时,LFL指令与FFL指令一样都装载一个数据,直到栈满为止

而当LFU梯级条件由假到真转换时,置位指令的卸载使能位,并把装入堆栈的最后一个数据卸出到目的地址(N7:11)内,最后一个数据存储在当前位置值减1的位置于8(N7:20)内,然后位置值减1,直到栈空为止

以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。

相关