发布于 2011-02-10 14:27:33
3楼
接着你要求的地方解释::
A M 255.0
AN M 255.0
= #OUT2
= #OUT3
= #OUT4
L #IN0【必须知道该值】
T MW 250
T #TEMP5 #TEMP5保存数据块号
L MB 251【通过M250求得该值】
T #TEMP7 #TEMP7保存数据块号
TAK 【交换原因得问作者,呵呵】 ??交换累加器内容干嘛??
L #TEMP5
OPN DB [#TEMP7] 【打开数据块,如DB号为X】
L #IN1 #IN1地址为MW234=118 ,请解释一下以后的程序,谢谢
INC 2 【把#IN1的值118加上2等于120】
T MW 252 【值为120】
T #TEMP5 【值为120】
L STW【读取状态字】不用太在意这一句
T #TEMP6【120值为】
L MW 252
INC 1【120+1=121】
T MW 252
L MW 252【值为121】
SLW 3【这里是关键,首先121的二进制为1110110,左移3位,结果就为1110110000,主要是为后面指针读取铺垫】
LAR1 【内部区域32位指针,地址为121.0
L #TEMP6
T STW
L #TEMP5
L DBB [AR1,P#0.0]【读取BD号为X的一个字节数据,在121.0的基础上加上偏移量0.0,结果地址仍为121.0】
L W#16#2E
<>I 【读取数据的值与2E比较,是否不相等】
JC M001【条件满足,跳转】
= #OUT2
BEU
下面一段跟上面同理
M001: NOP 0
L MW 252
INC 1
T MW 252
T #TEMP5
L STW
T #TEMP6
L MB 253
SLW 3
LAR1
L #TEMP6
T STW
L #TEMP5
L DBB [AR1,P#0.0]
L W#16#2E
<>I
JC M002
= #OUT3
BEU
M002: NOP 0
= #OUT4
不知道这样解释,你看懂了没有,你可以用PLCSIM自己检测一下。