S7-200间接寻址解析.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
S7-200间接寻址解析

对指令的操作数的指定方式,我将其理解为“寻址”。 下面将以我个人的理解对西门子S7-200的寻址方式进行描述,如有不当之处,还请广大读者指正。 在程序中绝大部分的指令都带有操作数,所谓的操作数,是执行这一指令时被这一指令加以操作、处理的数值。对指令的操作数的指令方式大致的总结一下,可以概括为如下几个类型: 1:指令的操作数为“立即数”,(如:15、16#F、2#1111等、、、、、、)。 LD M0.0 MOVW +255, VW0 +I +45, VW0 这是一条加法指令,被加数为:255、加数为45执行这条指令后计算出来的“和”存放在VW0这一存储器内。 LD M0.0 MOVB 15, VB0 这是一条传指令,译为:将15传送至存储器VB0内。 2:指令的操作数没有直接的给出,而是给出它所在的地址。 LD M0.0 MOVW VW0, VW4 -I VW2, VW4 这是一条减法指令,译为:将存储器VW0内的数值减去存储器VW2内的数值,将“差”存放在存储器VW4内。 3:指令的操作数没有直接的给出,而是给出它所在的地址的“地址”,在S7-200中,将这种寻址方式称之为“指针寻址”。 下面,我们一起来学习一下关于指针的使用方法: 在使用指针进行间接寻址的过程中,会涉及到的两个符号: :建立指针(进行间接访问的区域) *:读取指针(读取指针间接指定的地址) 下面是使用指针的一般步骤: 1:建立指针 建立指针需要使用双字传送指令,如下所示: LD M0.0 MOVD MB0, VD10 译为:在VD10建立指针,指针指向被间接访问的首地址MB0。 在建立指针时需要注意如下几个问题: ①可以进行间接访问的区域,包括如下几个区域:I、Q、M、S、V、T(当前值)、C(当前值)。在S7-200中位状态是不能进行间接指定的,所以这里特别强调只是访问定时器及计数器的当前值,而不是其位状态。 ②可以作为建立指针的区域,包括如下几个区域:V、L、及累加器AC1至AC3。且只能是双字(32bit)类型的地址。 ③在建立指针时在存储器前加“”这个符号的表示进行间接访问的区域的首地址,所以除定时器T及计数器C外都必须是以字节的形式出现的。 2:读取指针 在读取指针时,有如下几种不同的情况出现: ①以字节的形式读取指针: LD M0.0 MOVD MB0, VD10 MOVB *VD10, VB30 译为:在VD10建立指针,指针指向以MB0为首地址的地址,读取在指针VD10所指向的首地址开始的一个字节(即以MB0开始的一个字节,很明显就是MB0本身),所以,读取指针时将MB0放到VB30。 ②以字的形式读取指针: LD M0.0 MOVD MB0, VD10 MOVW *VD10, MW20 译为:在VD10建立指针,指针指向以MB0为首的地址,读取在指针VD10所指向的首地址开始的一个字(即以MB0开始的一个字,很明显就是MW0),所以,读取指针时将MW0放到MW20。 ③以双字的形式读取指针: LD M0.0 MOVD VB0, VD10 MOVD *VD10, VD40 译为:在VD10建立指针,指针指向以VB0为首的地址,读取在指针VD10所指向的首地址开始的一个双字(即以VB0开始的一个双字,很明显就是VD0),所以,读取指针时将VD0放到VD40。 3:修改指针 修改指针是在使用指针寻址中关健的一部分,修改指针是将指针指向的首地址进行适当的偏移,使之指向我们需要访问的地址,这样我们可以比较方便的使用在这一存储区的某一具体地址,使程序的灵活性有所增加。 修改指针的方法大致的可以概括为如下几种: ①使用加法或减法指令,对指针进行指定常数作为偏移量的修改指针。 ②使用加“1”或减“1”指令,对指针进行1个单位(字节)的偏移。 下面将以实际情况为例来说明修改批指针的方法: 例1: 网络1: LD M0.0 MOVD VB0, VD10 MOVD *VD10, VD40 +D 4, VD10 网络2: LD M0.1 MOVD *VD10, VD44 译为:在VD10建立指针,指针指向以VB0为首的地址,读取在指针VD10所指向的首地址开始的一个双字(即以VB0开始的一个双字,很明显就是VD0),所以,读取指针时将VD0放到VD40。然后对指针进行修改,对其指定4个单位的偏移量,即指针此时指向的首地址为VB4。 在下一网络中又以双字的形式读取指针。所以,此时读取指针是将以VB4为首的一个双字传送至VD44(即VD4传送至VD44)。 例2: 网络1: LD

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档