S7-300
实验三 寄存器间接寻址
1) 目的
了解地址寄存器ARx
2) 实验内容
参考《S7-300/400寻址》;
①内部区域寄存器间接寻址表示为:存储器标识符 [ ARx, 地址偏移量 ] 创建一个DB119,包含10个整形变量。 将指针 P#2.0 装载到地址寄存器 1 中,利用内部区域寄存器间接寻址访问DB119中的DBW4和DBW8。
②交叉区域寄存器间接寻址表示为: 访问宽度 [ ARx, 偏移量 ] 将P#M50.0装载到地址寄存器1中,利用交叉区域寄存器间接寻址,将不同的值赋值给MW52和MW54。
3) 实验流程
实验①
创建DB119,在DB119中定义10个INT型变量,如下图所示。
图1-创建DB119
在FC2中使用OPN DB119来打开DB,将指针P#2.0装载到地址寄存器 1 中,并将DBW4赋值为4,使用内部区域寄存器间接寻址:T DBW[AR1,P#2.0];将指针P#8.0装载到地址寄存器 2 中,并将10赋值给DBW8,使用内部区域寄存器间接寻址:再把两者相加赋值给DBW10,T DBW[AR2,P#0.0],(具体理论理解见STEP7编程指南172页)编程如下图所示。
图2-编程示例
注意:相加部分程序解释
图3-备注
保存编译下载到PLCSIM,在变量表VAT_1中监视程序运行的结果,DB119中以第4字节开始的int型变量和以第8个字节开始的int型变量被赋值,以及第10个字节为两者相加,如下图所示。
图4-监控结果
实验②
交叉区域寄存器间接寻址表示方式,如下图所示。
图5-寻址表示方式
在FC2将P#M50.0装载到地址寄存器1中,利用交叉区域寄存器间接寻址: T W[AR1,P#2.0], T W[AR1,P#4.0],将不同的值赋值给MW52和MW54。编程如下图所示。
图6-编程示例
保存编译下载到PLCSIM,在变量表VAT_1中监视程序运行的结果,MW52和MW54被赋值,如下图所示。
图7-监控结果
4)总结
1、P#10.3为指向第10个字节第3位的指针常数。若把一个32位整型转换为字节指针常数,根据指针格式,要把该数左移3位或乘8,或者就是其转化为二进制表示4.0。
2、通过CPU地址寄存器AR1和AR2寻址方式称为寄存器间接寻址,分为内部区域寻址和交叉区域寻址(指定了存储区域信息)。
敬请期待下一篇-STL编程实战
PS:友情提醒,所有文章都是一个系列,是连贯的,顺着看效果更好~
作者简介
谭俊豪:重庆大学机械工程学院学士,西门子中国公司培训生
本文为原创文章,欢迎转载关注,请注明出处和作者!