推荐《关于S7-300的寻址解析》 点击:416 | 回复:0



CZMRL

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 31回
  • 年度积分:0
  • 历史总积分:88
  • 注册:2008年8月23日
发表于:2013-10-23 14:09:57
楼主

                         关于S7-300的寻址解析

【前沿部分】 首先介绍一下寻址的原因:

我们知道,PLC的运算功能实际上就是能进行逻辑与算术两种运算。那么运算必须要有对象,这个对象与运算结果的存储就形成了寻址问题。比如,乘法运算中,乘数与被乘数还有积,这三个数大小范围,类型形式,存储空间,必须被考虑。否则会出现溢出出错,或是存储不当覆盖其他存储区值等等。针对此例中,关于数大小范围我们需要考虑运算是否会溢出?如 555 X 666 = 369630 你换算成2进制时会发现有19位之多,那么这个积就无法有字格式存储,否则会溢出。因为字格式的存储器只能放下范围0—65535大小的数据。关于存储空间则比较好理解,比如,乘数是常数555,但是被乘数是变量MW中给出的内容,显然不同的取数就会有不同的存储区域。另外,类型形式也好理解,比如乘数是常数555,但是被乘数是0.666时。整形与小数型当然会是不同的类型与存储区域。

  综上所述,我们需要对数据进行操作,并进一步管理,所以,就产生了寻址方式等问题。下面我们讲正文:

【正文部分】  完整的一条指令,应该包含指令符+操作数(当然不包括那些单指令,比如NOT等)。其中的操作数是指令要执行的目标,也就是指令要进行操作的地址。

  我们知道,在PLC中划有各种用途的存储区,比如物理输入输出区P、映像输入区I、映像输出区Q、位存储区M、定时器T、计数器C、数据区DB和L等,同时我们还知道,每个区域可以用位(BIT)、字节(BYTE)、字(WORD)、双字(DWORD)来衡量,或者说来指定确切的大小。当然定时器T、计数器C不存在这种衡量体制,它们仅用位来衡量。由此我们可以得到,要描述一个地址,至少应该包含两个要素:

  1、存储的区域

  2、这个区域中具体的位置

  比如:A Q2.0

  其中的A是指令符,Q2.0是A的操作数,也就是地址。这个地址由两部分组成:

  Q:指的是映像输出区

  2.0:就是这个映像输出区第二个字节的第0位。

  由此,我们得出, 一个确切的地址组成应该是:

  〖存储区符〗〖存储区尺寸符〗〖尺寸数值〗.〖位数值〗,例如:DBX200.0。

  DB X 200 .0

  其中,我们又把〖存储区符〗〖存储区尺寸符〗这两个部分合称为:地址标识符。这样,一个确切的地址组成,又可以写成:

  地址标识符 + 确切的数值单元

  【间接寻址的概念】

  寻址,就是指定指令要进行操作的地址。给定指令操作的地址方法,就是寻址方法。

  在谈间接寻址之前,我们简单的了解一下直接寻址。所谓直接寻址,简单的说,就是直接给出指令的确切操作数,象上面所说的,A Q2.0,就是直接寻址,对于A这个指令来说,Q2.0就是它要进行操作的地址。

  这样看来,间接寻址就是间接的给出指令的确切操作数。对,就是这个概念。

。。。。。。。。。

呵呵,大家还是来看看原稿吧。



热门招聘
相关主题

官方公众号

智造工程师