间接寻址是指用指针来访问存储区的数据。指针以双字的形式存储其它存储区的地址,只能将 V 存储单元、L 存储单元或累加器寄存器(AC1、AC2、AC3)用作指针。

注意:S7-200 SMART CPU 允许指针访问下列存储区: I、Q、V、M、S、AI、AQ、SM、T(仅限当前值)和 C(仅限当前值)。不能使用间接寻址访问单个位或访问 HC、L 或累加器存储区。

创建指针步骤

要创建指针,必须使用“移动双字”指令,将间接寻址的存储单元地址移至指针位置。;用“&”符号加上要访问的存储区地址可建立一个指针,当指令中的操作数是指针时,应该在操作数前加上“*”号。

如下图所示为以创建和使用指针示例。在该示例中,输入*AC1 表示 AC1 存储指向“移动字”(MOVW) 指令引用的字长度值的指针,在 VB200 和 VB201 中存储的值被移至累加器 AC0。

创建和使用指针举例
图1.创建和使用指针举例

其中:

通过将VB200的地址(VW100的初始字节)移动到AC1创建指针。
移动AC1中的指针引用的字值。
注意:修改指针的值时,请记住调整所访问数据的大小:访问字节时,指针值加 1;访问定时器 或计数器的字或当前值时,指针值加 2;访问双字时,指针值加 4。

例程1.通过指针访问数据表

例程所需条件:

1、软件版本:STEP 7-Micro/WIN SMART V2.3

2、SMART CPU固件版本:V1.0及以上

3、通讯硬件:TP电缆(以太网电缆)

所实现的功能:

索引号VW1008=0时,将指定的配方0(VB100~VB104) 数据传送到(VB1500~VB1504)

索引号VW1008=1时,将指定的配方1(VB105~VB109) 数据传送到(VB1500~VB1504)

索引号VW1008=2时,将指定的配方2(VB110~VB114) 数据传送到(VB1500~VB1504)

索引号VW1008=3时,将指定的配方3(VB115~VB119) 数据传送到(VB1500~VB1504)

依次类推,具体的程序说明,参考例程内的描述。

Addressing_1

例程2.通过指针存储数据表

例程所需条件:

1、软件版本:STEP 7-Micro/WIN SMART V2.3

2、SMART CPU固件版本:V1.0及以上

3、通讯硬件:TP电缆(以太网电缆)

所实现的功能:

索引号VW1008=0时,将(VB1500~VB1504)数据传送到指定的配方0(VB100~VB104)

索引号VW1008=1时,将(VB1500~VB1504)数据传送到指定的配方1(VB105~VB109)

索引号VW1008=2时,将(VB1500~VB1504)数据传送到指定的配方2(VB110~VB114)

索引号VW1008=3时,将(VB1500~VB1504)数据传送到指定的配方3(VB115~VB119)

依次类推,具体的程序说明,参考例程内的描述。

Addressing_2

例程3.通过地址偏移量来访问V存储区数据

例程所需条件:

1、软件版本:STEP 7-Micro/WIN SMART V2.3

2、SMART CPU固件版本:V1.0及以上

3、通讯硬件:TP电缆(以太网电缆)

所实现的功能:

本例程可以实现对区任意字节数据的访问。

VD1000作为指针,指向VB0,然后利用VD1004存储的地址偏移量改变指针值,即,VD1000指向VD1000+VD1004的地址,并将该地址的数据复制到VB1008。

通过改变VD1004,可以访问V区的任意单元。

举例:

VD1004=0时,将VB0的数据传送到VB1008,

VD1004=1时,将VB1的数据传送到VB1008,

VD1004=100时,将VB100的数据传送到VB1008,

依次类推,具体的程序说明,参考例程内的描述。

Addressing_3

特别说明:

本例程仅供参考,程序中的CPU版本、类型可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。

相关日志

  • S7-200 SMART 数据寻址方式方法
    如何调用数字量或模拟量信号? 怎样读取数据? 怎么使用输入信号? 如何输出控制? …… 上述问题都是关于如何访问、使用数据的问题,也就是所谓“寻址”。 访问S7...
  • S7-200 SMART Modbus轮询的应用库
    1 应用概述 1.1 通用描述 Modbus-RTU 协议是一种开放的串行通信协议,在不同的行业中都有非常广泛的应用,因为其是串行通信,所以其报文的传送需要按照串行队列来发送,而具体到S7-200 S...
  • 200SMART自由口通讯: XMT 发送指令
    XMT 发送指令 发送指令(XMT 指令)用于在自由口通信模式下将发送缓冲区(TBL)的数据通过指定的通信端口(PORT)发送出去。 XMT 指令一次最多可以发送 255个字符。XMT 指令发送缓...
  • 200Smart PLC IO点调整库
    1 应用描述 在实际的工程应用中,PLC 系统一般 IO 数量都会有一定冗余设计,这样当其中某一个或者几个 IO 点发生损坏时,可以及时使用备用点,但是这样就需要同时更改程 序,对现场维修人员的要求...
  • S7-200 SMART CPU V2.8 版本升级及新功能
    S7-200 SMART CPU V2.8 版本升级及增加的新功能: 新增程序指令 HSC 增强功能 PID 增强功能 运动控制增强功能 PLS 以及 PWM 指令增强功能 存储器范围增强 安全性增...
  • 200SMART带参数的子例程及自定义库参数数量可以超过16个
    在所有的S7-200及S7-200 SMART帮助手册了都有下面一句话: 子例程可选择使用传递参数。这些参数在子例程的变量表中定义。必须为每个参数分配局部符号名称(最多 23 个字符)、变量类型和数...

Related Post

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注