加入收藏 在线留言 联系我们
关注微信
手机扫一扫 立刻联系商家
全国服务热线15915421161
公司新闻
S7-300和S7-400指针寻址的说明与例程
发布时间: 2024-04-13 12:08 更新时间: 2024-05-16 07:00
一 直接寻址
  1. 直接地址:例如I0.0,Q1.7,PIW256,PQW512,MD20,T15,C16,DB1.DBB10,L10.0等

  2. 符号寻址:例如qq,ww.aa等

二 间接寻址
  1. 存储器间接寻址:16位指针,例如OPN DB[MW2]

32位指针,例如A I[MD0]

  1. 寄存器间接寻址:32位指针,例如A I[AR1,P#0.0],A [AR1,P#0.0]

三 S7-300/400寻址方式图解


四   如何使用指针

指针用来指向一个地址。使用这种寻址方式的优点在于可以在程序运行过程中实现变址。

指针用于存储器间接寻址

程序中用于存储器间接寻址的语句包含一个指令、一个地址标识符、以及一个偏移量(偏移量必须在方括号内给出)。

下面给出一个双字格式的指针的例子:

L P#8.7                把指针值装载到累加器1

T I[MD2]               把指针值传送到MD2

A I[MD2]               查询I8.7的信号状态

= Q[MD2]             给输出位Q8.7赋值



存储区域内部寻址及交叉寻址

程序中采用这些寻址方式的语句包含一个指令以及下列内容:地址标识符、地址寄存器标识符、偏移量。地址寄存器(AR1、AR2)及偏移量必须写在方括号内。

存储区域内部寻址例程

指针不包含指示存储区域的信息:

L P#8.7                   把指针值装载到累加器1

LAR1                       把指针从累加器1装载到AR1

A I[AR1,P#0.0]        查询I8.7的信号状态

= Q[AR1,P#1.1]       给输出位Q10.0赋值

偏移量0.0不起作用。输出Q10.0 等于8.7 (AR1) 加偏移量1.1。结果是10.0 ,而不是9.8,参见指针格式。

存储区域交叉寻址例程

在存储区域交叉寻址中,指针中包含指示存储区域的信息(例子中为 I 和 Q)。

L P#I8.7                   把指针值及存储区域标识装载到累加器1

LAR1                       把存储区域I 和地址8.7装载到AR1

L P#Q8.7                 把指针值和地址标识符装载到累加器1

LAR2                       把存储区域Q和地址8.7装载到AR2

A [AR1,P#0.0]        查询输入位I8.7的信号状态

= [AR2,P#1.1]         给输出位Q10.0赋值

偏移量0.0不起作用。输出Q10.0 等于8.7 (AR2) 加偏移量1.1。结果是10.0 ,而不是9.8。


联系方式

  • 电  话:15903418770
  • 联系人:张经理
  • 手  机:15915421161
  • 微  信:15915421161