当前位置: 主页 > PLC控制

一段程序中ACCU1取值的问题?

有一段程序如下:

L#Used_SequenCE

T#Sequence_Dword

LLB31

TLB12

LLB30

TLB13

LLB29

TLB14

LLB28

TLB15

说明:应用PLC为CPU416F-3PN/DP,#used_Sequence、#Sequence_word数据类型均为Dword。

其中,#used_Sequence=B#11时,对程序监控,ACCU1用十进制表示,每一行的ACCU1的值如下:


L#Used_Sequence//ACCU1=3

T#Sequence_Dword//ACCU1=3

LLB31//ACCU1=3

TLB12//ACCU1=3

LLB30//ACCU1=0

TLB13//ACCU1=0

LLB29//ACCU1=0

TLB14//ACCU1=0

LLB28//ACCU1=0

TLB15//ACCU1=0

关于这段程序,LB31、LB30、LB29、LB28只在这段程序中才开始有应用,

不明白的是为什么执行第三行“LLB31”时ACCU1的值为3,第五行“LLB30”时ACCU1的值为零。


在程序中,这些L区的数据究竟是怎么应用的?希望大侠解释一下。

最佳答案

查看此程序块上部的声明变量表,在TEMP中的地址栏中查看地址。LD28是#used_Sequence还是#Sequence_word的地址。
临时存放的数据就可以保存在L区中,L变量只在本程序块执行时起作用,块结束后其数据不再保存。

提问者对于答案的评价:
非常感谢你的回答!
打开块的变量声明表后,Temp中Seqence_word的开始地址为28.0.
还有个问题请教一下,就是Temp地址栏中变量的数据都是存到L区的吗?
如果Temp中第一个变量是布尔变量,它的地址是0.0,那么它的数据就是存储到L0.0?
Temp中变量对应的地址,就是它们的数据存储在L区中对应的地址?
再次感谢!

最佳答案作者回复:
Temp地址栏中变量的数据都是存到L区的。
你理解是对的。

  • 关注微信

猜你喜欢

微信公众号