- 1、本文档共152页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.寻址的概念 为了存取数据而在指令中向CPU指定某一存储单元的地址的操作就称为寻址。 2.寻址的目的 (1)为了将数据准确地存放到用户指定的地址中。 (2)为了将用户想要的数据准确地从用户指定的地址中读出来。 3.寻地址方式 目前,在PLC中,寻地址方式有两种,一种是直接寻址,另一种是间接寻址。 5.5.3 直接寻址 在用户程序中,为了向某一地址存取数据,而将该地址直接写在存取该数据的指令中的方法,称为直接寻址法,简称为直接寻址。下面的指令就是直接寻址的例子。 MOVB VB0,VB1 ∥把地址VB0单元中的数据送入地址VB1单元中。 在S7-200PLC中,用户所要存取的数据有长有短,因此存放数据的存储单元也有长有短,就数据长度而言,有位、字节、字和双字这四种长度,因此,存储单元的长度也有这四种。 对于不同长度的存储单元,就要用不同的方法来表示其地址,这已在5.3节中叙述过了,例如,V4.3表示变量存储器中第4字节第3位存储单元的位地址;VB4表示变量存储器中第4字节存储单元的字节地址;VW4表示变量存储器中起始字节为第4字节的字存储单元的字地址,它由VB0和VB1这两个字节组成;VD4表示变量存储器中起始字节为第4字节的双字存储单元的双字地址,它由VB0~VB3这四个字节组成。 在用户数据存储区中,哪些分区的存储单元可以按位、字节、字或双字存取数据,哪些分区的存储单元不可以这样存取数据,这些都已在5.3节的最后一部分中叙述过了,此处不再复述。 5.5.4 间接寻址 1.指针、建立指针与修改指针 CPU中的任何信息都是用数字代码来表示的,并以数字代码的形式存放在存储单元中,存储单元的地址也不例外,也是用数字代码来表示的,故也可以存放在存储单元中,这个存有某个地址的单元,就称为地址指针,简称为指针。 由此可知,指针也是存储单元,故也是有地址的,某一指针的地址,就是存放有某一地址的那个存储单元的地址。 将某一地址存放到某一存储单元中的过程称为建立指针。当把某一地址存放到了某个指针中时,就说该指针指向了某一地址。 当把指针中的地址改写成了另一地址时,就说该指针指向了另一地址。这种把存放在指针中的某一地址改写成另一地址的过程称为修改指针。 2.用指针存取数据 有了指针,我们就有了第二种寻址的方法,例如,当我们要把VB0中的数据传送到VB1中时,可以先通过传送指令把VB0的地址送入某个指针中,再通过传送指令把该指针所指地址VB0中的数据传送到VB1中。这种存取数据的方法,也即寻址的方法称为间接寻址法,简称为间接寻址。 由此看来,采用间接寻址法来存取数据要比采用直接寻址法麻烦些。那为什么还要想出这样的方法来寻址呢?这是因为直接寻址法虽然简单,但直接寻址指令中的地址是固定的,不可修改的,故一条直接寻址指令只能存取一个地址中的数据。而间接寻址指令则不同,CPU可以通过不断地、自动地按照用户事先设定的规则修改指针,从而达到用一组间接寻址指令存取一段地址中的一批数据的目的。故当要存取的数据不是一个而是一批时,采用间接寻址法还是简单些。 在用户数据存储区中,每一个存储单元的地址都是一个32位的二进制数代码,因此,存放地址的指针也必须是32位的双字存储单元。 在S7-200PLC中,能够当作指针使用的存储器只有变量存储器V、局部变量存储器L和累加器AC。 建立指针时,必须使用双字传送指令(MOVD),将需要间接寻址的一段地址中的起始地址送到指针中,并且为了向CPU说明传送到指针中的操作数是某一存储单元的地址,而不是该存储单元中的数据,必须在该操作数前加一个符号“&”,用这种方法来区分哪个操作数是地址,哪个操作数是数据。例如:&VB0表示VB0的地址,而VB0则表VB0中的数据,同时用在操作数前加符号“*”的方法来表示该操作数是指针所指向的某一地址中的数据。例如: MOVD &VB0,AC0 ∥把VB0的地址(即VW0的起始地址)送入AC0中MOVW *AC0,AC1 ∥把指针AC0所指的起始地址为VB0的字地址单元 ∥ VW0中的数据送入AC1的低16位中 3.修改指针的方法 为了用间接寻址法将一段地址中的一批数据逐一传送到另一段地址的存储单元中,CPU需要不断地改修指针。由于指针中存放的地址是32位的二进制数,因此,修改指针时应使用双字指令来修改,如使用双字加法指令(ADDD)或双字加1指令(INCD)等来修改。同时修改指针时还需注意要求指针指向的下一个地址是字节地址,字地址还是双字地址。 若是字节地址,则应使指针的值加1; 若是字
文档评论(0)