有一段程序如下:
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区的。
你理解是对的。