技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 西门子PLC > 干货!寻址方式详解

干货!寻址方式详解

高天宇 发布于2018-06-13 17:55 1555 0 标签:寻址方式

分类:寻址方式从大的方面可以分成直接寻址和间接寻址。

直接寻址就像甲要和乙说话直接叫乙的名字就可以了,甲直接和乙建立联。

间接寻址就像甲要和乙说话,而乙在另外一个城市,甲就写了一封信通过邮递员送给乙,甲通过邮递员间接和乙建立联系,这就叫间接寻址。间接寻址中指针就充当了邮递员的角色。

直接寻址分为:绝对地址寻址,符号寻址

间接寻址分为:存储器间接寻址,寄存器间接寻址。

一、直接寻址

直接寻址是简单的寻址方法,也是编程中常用的寻址方式。


①绝对地址寻址

绝对地址寻址就是直接调用要使用的地址

示例:
I0.0 Q1.0 MW0


②符号寻址
符号寻址就是通过符号表中的绝对地址的命名进行寻址

示例:

用下图中的I_Motor_Start进行寻址。



二、间接寻址

间接寻址是比较复杂的寻址方式,也是我们这里重点讲解的地方,间接寻址需重点理解指针的概念。

指针:理解指针主要需要理解指针的两个特性。
A.存储性:存储性指的是指针也是一段存储空间,它的存储内容是地址。
B.指向性:因为指针存放的内容是地址,那么指针中存放的是哪一个地址,我们就说指针指向了这个地址所对应的存储空间,这就是指针的指向性。

A.存储器间接寻址

【A1】16位指针寻址:

1)、16位指针存储空间

16位指针存储空间是16位,2个字节,通过这2个字节的空间来存放变量的地址。

2)、16位指针寻址范围

16位指针只能对计时器(T),计数器(C),数据块(DB,DI)的号,程序块(FB,FC)的号进行寻址,也就是这2个字节的存储空间中只能存放计时器的编号,计数器的编号,数据块的编号,程序块的编号。

3)、16位指针寻址表示格式

16位指针寻址表示格式为:区域标示符[16位地址指针]

示例:
DB [MW0] //表示对DB块进行寻址,MW0中如果存储的是1,那么该寻址结果为DB1,也就是通过该指令找到了DB1数据块。
T [MW2] //表示对计时器进行寻址,MW2中如果存放的是2,那么该寻址结果为T2,也就是通过该指令找到了计时器T2。


4)、16位指针寻址程序示例

例1:

L 2 //将2进行装载

T MW 0 //将2传送到MW0

A I 0.0 //如果I0.0 = True

L S5T#10S //装载时间

SD T [MW0] //T开始计时

例2:

L 1 //将1进行装载

T MW 0 //将1传送到MW0

OPN DB [MW 0] //打开DB1

L 10 //将10进行装载

T DBW 0 //将10传送到DB1.DBW0中

L DBW 0 //将DB1.DBW0进行装载

T MW 2 //将DB1.DBW0传送到MW2中


【A2】32位指针寻址

1)、32位指针存储空间

32位指针存储空间是32位,4个字节,通过这4个字节的空间来存放变量的地址。

2)、 32位指针寻址范围

32位指针能对I、Q、M、L、数据块的位、字节、字、双字进行寻址,也就是这4个字节的存储空间中能对上述存储类型中的位、字节、字、双字的地址进行存储。

3)、32位指针存储格式


4)、32位指针寻址表示格式

32位指针寻址表示格式为:地址存储器标示符[32位地址指针]

示例:
I[MD0] //I表示输入存储区,MD0存储地址信息。
Q[MD4] //Q表示输出存储区,MD4存储地址信息。

5)、32位指针三种寻址方法

①直接输入10进制数寻址(复杂不直观的寻址方式,不推荐使用)。

②将输入的10进制数左移3位进行寻址(比较直观的寻址方式)。

③利用 P#字节.位 格式进行寻址(直观方便的寻址方式,推荐使用)。
6)、32位指针三种寻址方法举例

例1 :直接输入10进制数寻址



该程序实现的是两个数相加的功能。

这里我们要重点理解为什么第六句将10传送到了MW4中,而不是MW32中,为什么第八句将15传送到了MW6中,而不是MW48中。

这是因为32,和48存放到指针中是按照32位二进制数进行存放的,下面我们通过将48存放到MD24来进行举例说明


由上图可知将48放进MD24则MW[MD24]指向了MW6

例2:左移3为进行寻址


由于将10进制数对应的2进制数左移三位后,字节存储区的二进制数和该10进制数对应的2进制数又相同了,而位存储区变为0,所以这样的寻址要比例1的寻址方式显得更为直观,便于使用和理解。

例3:以 P#字节.位 格式进行寻址


通过这个实例我们可以发现直接使用P#字节.位的寻址方式是直观方便的。


B.寄存器间接寻址

寄存器间接寻址使用的是CPU的地址寄存器AR1和AR2

B1)、寻址格式

区域标示符[AR1/AR2,P#X]

注:

①AR1/AR2表示地址寄存器AR1或者AR2,地址寄存器中只能存放地址。

②P#X表示偏移量X是偏移具体数值。


B2)、寄存器间接寻址示例


作者: 马乐

本文为原创内容,如需转载请注明出处,违者必究!

推荐课程:

西门子S7-200SMART PLC编程应用入门

西门子S7-300应用精讲

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

寻址方式

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签