实例解析西门子S7-200PLC的间接寻址.docx

上传人:b****1 文档编号:181022 上传时间:2022-10-05 格式:DOCX 页数:6 大小:78.62KB
下载 相关 举报
实例解析西门子S7-200PLC的间接寻址.docx_第1页
第1页 / 共6页
实例解析西门子S7-200PLC的间接寻址.docx_第2页
第2页 / 共6页
实例解析西门子S7-200PLC的间接寻址.docx_第3页
第3页 / 共6页
实例解析西门子S7-200PLC的间接寻址.docx_第4页
第4页 / 共6页
实例解析西门子S7-200PLC的间接寻址.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

实例解析西门子S7-200PLC的间接寻址.docx

《实例解析西门子S7-200PLC的间接寻址.docx》由会员分享,可在线阅读,更多相关《实例解析西门子S7-200PLC的间接寻址.docx(6页珍藏版)》请在冰豆网上搜索。

实例解析西门子S7-200PLC的间接寻址.docx

实例解析西门子S7-200PLC的间接寻址

间接寻址

相对于直接寻址而言的,指令地址字段的形式地址D不是操作数的真正地址,而是操作数地址的指示器,或者说是D单元的内容才是操作数的有效地址。

间接寻址是在直接寻址的基础上面建立起来的,也就是直接寻址得到的数据是一个地址,通过这个地址找到最终的数据,也就是两次寻址,第一次得到的是地址,第二次才是目标数据。

S7-200PLC内部存储区域的划分,S7-200系列PLC内部存储器按功能分为以下几个区域。

序号

名称

1

输入映像寄存器

(1)

2

输出映像寄存器(Q)

3

变量寄存器(V)

4

局部寄存器(L)

5

累加器(AC)

6

内部辅助位寄存器(M)

7

特殊功能寄存器(SM)

8

顺序控制寄存器(S)

9

定时器存储器(T)

10

计数器存储器(C)

11

高速计数器(HC)

12

模拟量输入(AI)

13

模拟量输出(QI)

以上寄存器均可进行位寻址、字节寻址、字寻址、双字寻址。

存储区的存取方式:

按“位”存取:

如V2.1,表示通道2内的第1位;

按“字节”存取:

如VB2,表示整个2通道内的8位的组合;

按“字”存取:

如VW2,表示VB21及VB3两个通道内16位的组合,并且VB2存放于高字节,VB3存放于低字节;

按“双字”存取:

如VD2,表示VB2、VB3、VB4、VB5四个通道内32位的组合从高字节至低字节的排序:

VB2、VB3、VB4、VB5。

存取

类型

CPU221

CPU222

CPU224

CPU226

V

0.0-2047.7

0.0-2047.7

0.0-5119.7

0.0-5119.7

I

0.0-15.7

0.0-15.7

0.0-15.7

0.0-15.7

Q

0.0-15.7

0.0-15.7

0.0・15.7

0.0-15.7

M

0.0-31.7

0.0-31.7

0.0-31.7

0.0-31.7

SM

0.0-179.7

0.0-299.7

0.0-549.7

0.0・549.7

S

0.0-31.7

0.0-31.7

0.0-31.7

0.0-31.7

T

0-255

0-255

0-255

0-255

C

0-255

0-255

0-255

0-255

L

0.0-59.7

0.0-59.7

0.0-59.7

0.0-59.7

下表中S7-200CPU的内存地址范围:

寻址方式

S7-200编程语言的基本单位是语句,而语句的构成是指令,每条指令有两个部分:

一部

分是操作码,另一部分是操作数。

操作码是指出这条指令的功能是什么,操作数则指明了操作码所需要的数据所在。

所谓寻址,就是寻找操作数的过程。

S7-200CPU的寻址分三种:

立即寻址、直接寻址、间接寻址。

1.立即寻址

在一条指令中,如果操作码后面的操作数就是操作码所需要的具体数据,这种指令的寻址方式就叫立即寻址。

如:

在传送指令中:

MOVINOUT-操作码“MOV”指出该指令的功能把IN中的数据传送到OUT中,其中IN--源操作数,OUT-目标操作数。

若该指令为:

MOVD2505VD500

功能:

将十进制数2505传送到VD500中,这里2505就是源操作数。

因这个操作数的数值已经在指令中了,不用再去寻址,这个操作数即立即数。

这个寻址方式就是立即寻址方式。

而目标操作数的数值在指令中并未给出,只给出了要传送的地址VD500,这个操作数的寻址方式就是直接寻址。

2直接寻址

在一条指令中,如果操作码后面的操作数是以操作数所在地址的形式出现的,这种指令的寻址方式就叫直接寻址。

如:

MOVDVD400VD500

功能:

将VD400中的双字数据传送给VD500

3.间接寻址

在一条指令中,如果操作码后面的操作数是以操作数所在地址形式出现的,这种指令的寻址方式就叫间接寻址。

如:

MOVD2505*VD500

*VD500是指存放2505的寄存器的地址。

如VD500中存放的是VBO,VD0则是存放2505的地址。

该指令的功能:

将十进制数2505传送给VD0地址中。

间接寻址解说

用指针对S7-200存储区间接寻址

间接寻址是指用指针来访问存储区数据。

指针以双字的形式存储其它存储区的地址。

只能用V存储

器、L存储器或者累加器寄存器(AC1、AC2、AC3)作为指针。

要建立一个指针,必须以双字的形

式,将需要间接寻址的存储器地址移动到指针中。

指针也可以作为参数传递到子程序中。

S7-200允许指针访问以下存储区:

I、Q、V、M、S、Al、AQ、SMT(仅限于当前值)和

C(仅限于

当前值)。

您无法用间接寻址的方式访问单独的位,也不能访问HC或者L存储区。

要使用间接寻址,您应该用“&”符号加上要访问的存储区地址来建立一个指针。

指令的输入操作数

应该以“&”符号开头来表明是存储区的地址,而不是其内容将移动到指令的输出操作数(指针)

中。

当指令中的操作数是指针时,应该在操作数前面加上“火”号。

如图4-11所示,输入

*AC1指定AC1是

一个指针,MOVW指令决定了指针指向的是一个字长的数据。

在本例中,存储在VB200

和VB201中

的数值被移动到累加器ACO中。

如图4-12所示,您可以改变一个指针的数值。

由于指针是一个32位的数据,要用双字指令来改变指针

的数值。

简单的数学运算,如加法指令或者递增指令,可用于改变指针的数值。

提示

按照所访问的数据长度使用不同的指令:

当访问字节时,使用递增指令使指针值加1;当访问字或

者计数器、定时器的当前值时,用加法或者递增指令使指针值加2;当访问双字时,使用加法或者

递增指令使指针值加4o

用地址偏移量来访问V存储区数据的例子程序

本例中用LD1O作为VBO的地址指针。

然后可以利用VD1004中存储的地址偏移量来改变指针值。

经过改变后,LD1O指向

V区中的另外一个地址(VBO+偏移量)。

然后将LD1O指向的V区地址中存储的数值复制到VB1900中。

通过改变

VD1004中的数值,您可以访问V存储器中的任意单元。

总结:

间接寻址定义:

间接编址使用指针存取内存中的数据。

指针是包含另一个内存位置地址的双字内存位置。

您只能将V内存位置、L内存位置或累加器寄存器(AC1、AC2、AC3)用作指针。

欲建立指针,您必须使用"移动双字"指令,将间接编址内存位置移至指针位置。

指针还可以作为参数传递至子程序。

S7-200允许指针存取以下内存区:

I、Q、V、M、S、T*仅限当前值)和C(仅限当前值)。

您不能使用间接编址存取单个位或存取Al、AQ、HC、SM或内存区。

&VB200间接寻址,表示的是取寄存器VB200的地址。

VB200 直接寻址,表示的是寄存器VB200里存的数据。

*VD100指针,指向存储在VD100里的地址指向的那个寄存器里的数据。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1