试题详情
简答题能否在STEP7中使用间接寻址编写循环程序中使用间接寻址编写循环程序?
  • 下面的例子解释了系统功能块SFC50“RD_LGADR”(读模块逻辑地址)内参数的确定。例如,为功能块FB1编程可分为下面几个步骤:
    •声明一个IN变量“test”和一个TEMP变量“test2”,类型都为ANY(图1)。
    •将SFC50的参数“PEADDR”传送到变量“test2”(图1)。
    •通过为ANY指针“test”赋值,将数据传送到临时变量“test2”中。
    语句LP##test首先将地址装载到Accu1,然后通过LAR1语句装载到地址寄存器AR1中(可能是LAR1P##test的简化格式)。通过寄存器间接寻址将ANY指针(10字节长)中的地址信息读出:
    代码注释
    0LW[AR1,P#0.0]读出当前Accu1中参数数据类型的代码。
    2LW[AR1,P#2.0]读出Accu1中的重复因数。重复因数表明通过参数类型ANY传递的数据类型的大小。
    4LW[AR1,P#4.0]读数据块的号或者从ANY指针中读出“0”(这个对应于ANY指针的第4到第5字节)。
    6LD[AR1,P#6.0]将区域指针读入Accu1。
    每次读地址寄存器AR1之后,数据被保存或者缓存(如TLW0)在临时变量“test2”中(ANY指针)。按照Network1中的语句顺序,传送到功能块FB1的ANY指针被复制到临时变量“test2”中。
  • 关注下方微信公众号,在线模考后查看

热门试题