程序如下;我不明白,请给讲解一下,谢谢
L #piw-start-num
T #Tmp
SLD 3
LAR 1
L #start-num-in-db
L 1
-I
L 2
*I
SLD 3
LAR2
-GO:NOP 0
OPN#to-DB
L piw[AR1,p#0.0]
T DBW[AR2,p#0.0]
+AR1 p#2.0
+AR2 p#2.0
L #Tmp
L 2
+I
T # Tmp
A(
L #Tmp
L #piw-End-num
<I
)
JNB-003
JU-GO
-003:NOP 0
最佳答案
L #piw-start-num----装载调用块时的数值,如100
T #Tmp----把100存入#Tmp
SLD 3----相当于把100左移3位,变为指针常数P#100.0
LAR 1----把P#100.0装入AR1
L #start-num-in-db----装载调用块时的数值,如100
L 1
-I -----100-1
L 2
*I -----(100-1)X2
SLD 3----相当于把198左移3位,变为指针常数P#198.0
LAR2----把P#198.0装入AR2
-GO:NOP 0
OPN#to-DB-----打开DB块
L piw[AR1,p#0.0]------相当于PIW[P#100.0,P#0.0]即PIW100
T DBW[AR2,p#0.0]------相当于DBW[P#198.0,P#0.0]即DBW198
+AR1 p#2.0------相当于P#100.0+P#2.0即P#102
+AR2 p#2.0------相当于P#198.0+P#2.0即P#200
L #Tmp
L 2
+I
T # Tmp----每执行一次传送后#Tmp(初始为100)的值就会增加2
A(
L #Tmp
L #piw-End-num
<I
)
JNB-003-----当#Tmp>=#piw-End-num的数值时,传送结束
JU-GO当#Tmp<#piw-End-num的数值时,程序又跳回到上面的-GO处继续执行传送
-003:NOP 0
参见:S7-300和S7-400寻址
http://www.ad.siemens.com.cn/download/OnlineReading.aspx?DocId=1597
提问者对于答案的评价:
谢谢
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc233727.html