控制系统 -
嵌入式系统
-
①、正确计算变址寄存器的取值范围
变址寄存器理论取值范围:
16bit:-32768------+32767;
32bit:-2147483648------+2147483647;作普通32bit数据寄存器使用。
变址寄存器实际取值范围:
作16bit使用时,才有变址功能。
当V、Z与其它资源组合,并修改其它资源编号时,实际取值不得突破所修饰资源的编号范围。否则,程序在运行过程中找不到资源而发生错误。
如,指针变址P10Z(设Z=-3,则P10Z等同于P7),如程序无对应的指针标号(P7),程序不能定位到正确位置而导致错误。
正确计算不同情况下变址寄存器的取值范围,避免取值不当而导致程序错误。
如,上例中指令ADD D100Z D130Z D170Z;
Z最小保证 D100Z=D0,Z=-100 ;
Z最大保证 D170Z=D5999,Z=5829 ;
如,程序中只有指针标号P0、P3、P66,则指令CJ P3Z中,Z只能取-3、0、
63三个值。Z取其它值时(Z=3),程序发生错误后,即使Z再取正确值
(Z=-3), 程序仍不能恢复。需重新STOP→RUN或重新上电。
②、变址功能不能应用于基本顺控指令及步进阶梯指令STL中。
如:基本指令 LD C1Z ,OUT C0Z ;
步进指令STL S0Z ;
都是错误地应用了变址寄存器。
但在STL S0的状态步序中,可以应用功能指令编程,当然也可以使用变址组合访问。
③、16bit计数器32bit 计数器不能作为同一组设备变址。
16bit计数器变址编号组合值应在0----199范围内;
32bit计数器变址编号组合值应在200-----255范围内。
如果16bit计数器变址编号到32bit或32bit计数器变址编号到16bit时,程序在运行过程中作越界处理,中止运行。
如 C100Z,Z取值应在-100-------+99范围。
C233V,V取值应在-33------+22范围。
④、变址寄存器本身不能变址。
如MOV K2 V0Z 不被梯形图认可。
⑤、位元件组合成字元件KnM0型的下标n不能变址。
如MOV K2 K1VM10 不被梯形图认可。