西门子PLC程序语句表的运算含义

OPN "1排货架数据"
L DBLG
L DINT#100
/D
L DINT#4
-D
T #temp1
L P#100.0
LAR1

L DINT#635
T %DBD0
L DINT#1150
T %DBD4

L DINT#1315
T #temp3

L #temp1
ABL_1: T #temp2
L #temp3
T DBD [ AR1 , P#0.0 ]
L DINT#935
T DBD [ AR1 , P#4.0 ]
L DINT#1735
T DBD [ AR1 , P#8.0 ]
L DINT#2425
T DBD [ AR1 , P#12.0 ]
L DINT#3235
T DBD [ AR1 , P#16.0 ]
L DINT#3925
T DBD [ AR1 , P#20.0 ]
L #temp3
L DINT#640
+D
T #temp3
+AR1 P#100.0

L #temp2

LOOP ABL_1

OPN "1排货架数据" //打开DB数据块
L DBLG //获得数据块的总长度
L DINT#100 //除以100
/D
L DINT#4
-D //到这里就是数据块总长度除以100减去4,结果存入TEMP1
T #temp1
L P#100.0
LAR1 //AR1中的值为P#100.0

L DINT#635
T %DBD0 //将DINT常数635送入DBD0
L DINT#1150
T %DBD4

L DINT#1315
T #temp3 //将DINT常数1315送入Temp3

L #temp1 //将TEMP1的数据作为循环次数
ABL_1: T #temp2
L #temp3
T DBD [ AR1 , P#0.0 ] //将TEMP3的数据送入DBD[AR1+P#0.0],也就是DBD100
L DINT#935
T DBD [ AR1 , P#4.0 ] //DBD104
L DINT#1735
T DBD [ AR1 , P#8.0 ] //DBD108
L DINT#2425
T DBD [ AR1 , P#12.0 ]
L DINT#3235
T DBD [ AR1 , P#16.0 ]
L DINT#3925
T DBD [ AR1 , P#20.0 ] //将3925送入DBD120中,
L #temp3
L DINT#640
+D
T #temp3 //Temp3+640
+AR1 P#100.0 //地址寄存器的值+100,也就是200.0

L #temp2

LOOP ABL_1 //执行循环

程序的作用是将数据填入DB中,第一次DBD100~120,第二次DBD200~220依次类推,循环次数由Temp1决定。
Temp1决定了要填写多少条记录。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答