M001: L #TEMP0
L 3
<=I
JCN M002
L #TEMP0
ITD
L L#112
+D
L L#1
*D
L #TEMP0
TAK
T LD 52
TAK
L 1
+I
ITD
L L#1
-D
L L#1
*D
L L#80
+D
LAR1
OPN DB 102
A DBX [AR1,P#0.0]
LAR1 LD 52
= Q [AR1,P#0.0]
L #TEMP0
L 1
+I
T #TEMP0
JU M001
最佳答案
M001: L #TEMP0 //装载整数#TEMP0
L 3
<=I //与3相比较
JCN M002 //若大于3,则跳转到M002
L #TEMP0 //若小于等于3,则装载#TEMP0,
ITD //转换为双整数
L L#112
+D //与双整数112相加
L L#1
*D //将结果乘以1
L #TEMP0 //装载#TEMP0到ACCU1, 刚才计算的结果转到ACCU2,
TAK //将ACCU1和ACCU2中的内容互换,即计算的结果现在
交换到了ACCU1, 而TEMP0存到了ACCU2.
T LD 52 //将计算的结果送入LD52,
TAK //再次将TEMP0交换到ACCU1,
L 1
+I
ITD
L L#1
-D
L L#1
*D
L L#80
+D //与80相加
LAR1 //将结果存入AR1,
OPN DB 102 //打开数据块DB102
A DBX [AR1,P#0.0] //装载DB102.DBX10.(0---3)
LAR1 LD 52 //将LD52的内容装入AR1作为地址指针,(112对应14.0,
113对应14.1,114对应14.2,113对应14.3),
= Q [AR1,P#0.0] //将DB102.DBX10.(0---3)状态分别写入Q14.(0-----3)
L #TEMP0 //再次装载TEMP0,
L 1
+I //TEMP0加1后送入TEMP0
T #TEMP0
JU M001 //跳转到M001,进入循环,直到TEMP0大于3.
因此总结起来,这段程序时将DB102.DBX10.0---DBX10.3的状态分别送到Q14.0---Q14.3.
提问者对于答案的评价:
非常感谢
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc251451.html