您现在的位置是:首页 > PLC技术 > PLC技术
STL中添加到地址寄存器
来源:艾特贸易2018-04-28
简介可以将一个值按顺序添加到地址寄存器中,比如在程序循环中,每一次循环地址值都要增加。可以在语句中将该值定义为常量(作为区内指针),或者定义为累加器 1 的右边字中的内容
可以将一个值按顺序添加到地址寄存器中,比如在程序循环中,每一次循环地址值都要增加。可以在语句中将该值定义为常量(作为区内指针),或者定义为累加器1的右边字中的内容。地址寄存器(区内或跨区)中的指针类型和地址区是保留的(未定的)。
1.使用指针加
语句+AR1 P#y.x和+AR2 P#y.x将一个指针添加到指定的地址寄存器。注意,使用这些语句,区指针的最大值为P#4095.7。如果累加器中的值大于P#4095.7,该数值就译码为以二进制补码表示的定点数并且被减去。
比如,一个数据区和一个字值进行比较。如果比较值大于数据区中的值,则存储器位被设为“1”,否则设为“0”。
OPN DB 14;
LAR1 P#DBX2 0.0;
LAR2 P#M10.0;
LQuantity_Data;
Loop: T LoopCounter;
L ComparisonVa1;
L W[AR1,P#0.0];
>I ;
= [AR2,P#0.0];
+AR1 P#2.0;
+AR2 P#0.1;
L LoopCounter;
LOOP Loop;
2.使用累加器中的值加
语句+AR1和+AR2将累加器1中的数值的译码为INT类型,使用正确的符号将其扩展为24位,并把它与地址寄存器的内容相加。这样,指针被简化。超出字节地址的最大范围(0~65535)也没有更深的影响:其最高位将被“截断”(如图1所示)。
注意:位地址加载到第0位~第2位。如果要增加累加器1中的字节地址,必须从第3位开始加(将数值左移3位)。
图1 添加到地址寄存器
举例:在数据块DB 14中,如果要删除16字节,且这些字节的地址是根据存储器双字MD 220中的指针和存储器字节MB 18中的一个(字节)偏移量计算出来的,那么在与AR1相加之前,必须调整MB 18的内容(SLW3)。
OPN DB 14;
LAR1 MD 220;
L MB 18;
SLW 3;
+AR1 ;
L 0:
T DBD[AR1,P#0.0];
T DBD[AR1,P#4.0];
T DBD LAR1,P#8.0];
T DBD[AR1,P#12.0];
注意:使用位格式填充较大的数据区时,系统功能SFC 21 FILL是有效的。
(作者稿费要求:需要高清无水印文章的读者3元每篇,请联系客服,谢谢!在线客服:)
点击排行
