L #ASD
L 8
*I
LAR1
LAR2 P#DBX 4.0
OPN DB [#DB_Control]
// set byte counter
L 16
// copy data
M2_0: T #L_Counter
L DBW [AR2,P#0.0]
+AR2 P#2.0
T PQW [AR1,P#0.0]
+AR1 P#2.0
L #L_Counter
LOOP M2_0
请问大家这个程序中在LAR2后面有P#DBX4.0这样的话知道是偏移4.0的地址,那么LAR1后面没有那是偏移多少呢,T PQW[AR1,P#0.0]是传输到PQW多少啊,麻烦大家讲讲啊,谢谢
最佳答案
#ASD*8的值一开就下载到AR1 里头了,所以初始的值是由#ASD决定的,LAR2后面有P#DBX4.0这里就不是偏移量了是给AR2赋值也就是初始值。
L #ASD
L 8
*I
LAR1
LAR2 P#DBX 4.0
OPN DB [#DB_Control]
// set byte counter
L 16 循环16次
// copy data 这里解释就是复制数据,就是将DBW的数值拷贝到PQW里
M2_0: T #L_Counter
L DBW [AR2,P#0.0]
+AR2 P#2.0 字的偏移量,,地址寄存器自加
T PQW [AR1,P#0.0]
+AR1 P#2.0 字的偏移量,,地址寄存器自加
L #L_Counter
LOOP M2_0 循环跳转
你提出的PQW是多少,是由#ASD决定的,这里是从PQW(#ASD)开始的16个字。
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc237903.html