S7 300指令是什么意思?L W[AR1,P#0.0]指令是什么意思?

A#FreigabeSteuernADBX134.1=#SteuernAktivADBX134.0JCNEND1LAR1P#DBX0.0TAR1#Save_ZeigerL... A #FreigabeSteuern
A DBX 134.1
= #SteuernAktiv

A DBX134.0
JCN END1
LAR1 P#DBX 0.0
TAR1 #Save_Zeiger
LAR2 P#DBX 128.0
L 16
Sshl:T #Schleifenzaehler
L W [AR1,P#2.0]
SLW 3
L W [AR1,P#0.0]
SLW 13
SRW 13
OW
LAR1
A I [AR1,P#0.0]
= [AR2,P#0.0]
LAR1 #Save_Zeiger
+AR1 P#4.0
TAR1 #Save_Zeiger
+AR2 P#0.1
L #Schleifenzaehler
LOOP Schl
END1: NOP 0

L DBW 128
CAW
T DBW 128
A DBX 138.0
BLD 100
FP DBX 138.1
= DBX 138.0
A DBX 134.0
AN #SteuernAktiv
O DBX 138.0
= DBX 138.2

A DBX 138.2
JCN END2
LAR1 P#DBX 64.0
TAR1 #Save_Zeiger
LAR2 P#DBX 131.0
L 8
Sch2: T #Schleifenzaehler
L W [AR1,P#2.0]
SLW 3
L W [AR1,P#0.0]
SLW 13
SRW 13
OW
LAR1
A Q [AR1,P#0.0]
= [AR2,P#0.0]
LAR1 #Save_Zeiger
+AR1 P#4.0
TAR1 #Save_Zeiger
+AR2 P#0.1
L #Schleifenzaehler
LOOP Sch2
END2: NOP 0
展开
 我来答
ldyblue5217
推荐于2019-08-11 · TA获得超过128个赞
知道答主
回答量:10
采纳率:0%
帮助的人:3.6万
展开全部
上面的程序要想看懂的话必须得了解西门子程序的寻址方法,具体是做什么得结合你的各个变量的具体含义才能知道是什么含义。上面用到了直接寻址和间接寻址的方法。不是一两句能说清楚的。L W[AR1,P#0.0]这个个间接寻址中的交叉寻址,其中W指的是你的字符宽度,W代表的是字,就是这个指针的指向宽度为2个字节,AR1为你事先装载进去的指针指向起始地址,例如
L [MW20]
LAR1
这个就是在位存储区中的第20个字的位置,字符宽度为2两个字节。装载到地址寄存器1中。
L W[AR1,P#0.0]这就是以AR1的地址为起始地址偏移0.0个偏移量。这样就找到了你需要使用的地址了。现在国内的程序员对间接寻址的使用比较少,主要是直接寻址。这样的间接寻址就相当于C语言中的指针~!使用比较灵活,如果使用不当的话就会使PLC死机的状况。但是如果使用的好的话可以简便程序结构,并且便于程序的标准化~!如果还有什么问题可以继续留言~!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式