资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
S7-200的指针寻址对指令的操作数的指定方式,我将其理解为“寻址”。下边将以我个人的理解对西门子S7-200的寻址方式进行描绘,若有不妥之处,还请广大读者指正。在程序中绝大多数的指令都带有操作数,所谓的操作数,是履行这一指令时被这一指令加以操作、办理的数值。对指令的操作数的指令方式大概的总结一下,能够归纳为以下几个种类:1:立刻数寻址指令的操作数为“立刻数”,(如:15、16#F、2#1111等、)。LDM0.0MOVW+255,VW0+I+45,VW0这是一条加法指令,被加数为:255、加数为45履行这条指令后计算出来的“和”寄存在VW0这一储存器内。LDM0.0MOVB15,VB0这是一条传指令,译为:将15传递至储存器VB0内。2:直接地点寻址指令的操作数没有直接的给出,而是给出它所在的地点。LDM0.0MOVWVW0,VW4-IVW2,VW4这是一条减法指令,译为:将储存器VW0内的数值减去储存器VW2内的数值,将“差”寄存在储存器VW4内。3:寄存器间址寻址指令的操作数没有直接的给出,而是给出它所在的地点的“地点”,在S7-200中,将这类寻址方式称之为“指针寻址”。下边,我们一同来学习一下对于指针的使用方法:1/7word.在使用指针进行间接寻址的过程中,会波及到的两个符号:& :成立指针(进行间接接见的地区)* :读取指针(读取指针间接指定的地点)4. S7-200中使用指针的步骤下边是使用指针的一般步骤:1:成立指针成立指针需要使用双字传递指令,以下所示:LDM0.0MOVD&MB0,VD10译为:在VD10成立指针,指针指向被间接接见的首地点MB0。在成立指针时需要注意以下几个问题:能够进行间接接见的地区,包含以下几个地区:I、Q、M、S、V、T(目前值)、C(当前值)。在S7-200中位状态是不可以进行间接指定的,因此这里特别重申不过接见准时器及计数器的目前值,而不是其位状态。能够作为成立指针的地区,包含以下几个地区:V、L、及累加器AC1至AC3。且只好是双字(32bit)种类的地点。在成立指针时在储存器前加“&”这个符号的表示进行间接接见的地区的首地点,因此除准时器T及计数器C外都一定是以字节的形式出现的。2:读取指针在读取指针时,有以下几种不一样的状况出现:以字节的形式读取指针:LDM0.0MOVD&MB0,VD10MOVB*VD10,VB30译为:在VD10成立指针,指针指向以MB0为首地点的地点,读取在指针VD10所指向的首地点开始的一个字节(即以MB0开始的一个字节,很显然就是MB0自己),因此,读取指针时将MB0放到VB30。以字的形式读取指针:LDM0.0MOVD&MB0,VD10MOVW*VD10,MW202/7word.译为:在VD10成立指针,指针指向以MB0为首的地点,读取在指针VD10所指向的首地点开始的一个字(即以MB0开始的一个字,很显然就是MW0),因此,读取指针时将MW0放到MW20。以双字的形式读取指针:LDM0.0MOVD&VB0,VD10MOVD*VD10,VD40译为:在VD10成立指针,指针指向以VB0为首的地点,读取在指针VD10所指向的首地点开始的一个双字(即以VB0开始的一个双字,很显然就是VD0),因此,读取指针时将VD0放到VD40。3:改正指针改正指针是在使用指针寻址中关健的一部分,改正指针是将指针指向的首地点进行适合的偏移,使之指向我们需要接见的地点,这样我们能够比较方便的使用在这一储存区的某一详细地点,使程序的灵巧性有所增添。改正指针的方法大概的能够归纳为以下几种:使用加法或减法指令,对指针进行指定常数作为偏移量的改正指针。使用加“1”或减“1”指令,对指针进行1个单位(字节)的偏移。4. 改正批指针下边将以实质状况为例来说明改正批指针的方法:例1:网络1:LDM0.0MOVD&VB0,VD10MOVD*VD10,VD40+D4,VD10网络2:LDM0.1MOVD*VD10,VD44译为:在VD10成立指针,指针指向以VB0为首的地点,读取在指针VD10所指向的首地3/7word.址开始的一个双字(即以VB0开始的一个双字,很显然就是VD0),因此,读取指针时将VD0放到VD40。而后对指针进行改正,对其指定4个单位的偏移量,即指针此时指向的首地点为VB4。在下一网络中又以双字的形式读取指针。因此,此时读取指针是将以VB4为首的一个双字传递至VD44(即VD4传递至VD44)。例2:网络1:LDM0.0MOVD&VB0,VD10MOVB*VD10,MB0INCDVD10网络2:LDM0.1MOVB*VD10,MB1译为:在VD10成立指针,指针指向以VB0为首的地点,读取在指针VD10所指向的首地点开始的一个字节(即以VB0开始的一个字节,很显然就是VB0),因此,读取指针时将VB0放到MB0。而后对指针进行改正,对其进行一个单位(字节)的偏移,即指针此时指向的首地址为VB1。在下一网络中又以字节的形式读取指针。因此,此时读取指针是将以VB1为首的一个字节传递至MB1(即VB1传递至MB1)。5.接见连续间接地点在程序中,假如希望以连续的形式去间接接见地点(即:读取VB0后希望下一次读取的是VB1、读取VW0后希望下一次读取的是VW2、读取VD0后希望下一次读取的是VD4),改正指针时,需要注意以下问题:读取下一个字节:网络1:LDM0.0MOVD&VB0,VD104/7word.MOVB*VD10,VB100+D1,VD10网络2:LDM0.1MOVB*VD10,VB100第一次读指针时,读取的是VB0。第二次读指针时,读取的是VB1。读取下一个字:网络1:LDM0.0MOVD&VB0,VD10MOVW*VD10,VW100+D2,VD10网络2:LDM0.1MOVW*VD10,VW100第一次读指针时,读取的是VW0。第二次读指针时,读取的是VW2。读取下一个双字:网络1:LDM0.0MOVD&VB0,VD10MOVD*VD10,VD100+D4,VD10网络2:LDM0.1MOVD*VD10,VD1005/7word.第一次读指针时,读取的是VD0。第二次读指针时,读取的是VD4。综上所述,在以连续方式读取指针时:读取下一个字节,改正指针时“加1”。读取下一个字,改正指针时“加2”。读取下一个双字,改正指针时“加4”。5. 应用实例下边,给出两个应用实例,读者可自行剖析其工作原理。例1:网络1:LDI1.0EUMOVD&VB0,VD100SM0.0,1网络2:LDM0.0FORVW1000,1,10网络3:LDAlways_On:SM0.0MOVWVW1000,VW1002+IVW1000,VW1002MOVWVW1002,*VD100+D2,VD100网络4:NEXT网络5:LDW=VW1000,10R M0.0,1例2:网络1:LDM0.06/7word.MOVD&VB300,VD131MOVW0,VW129网络2:LDM0.0FORVW125,1,6网络3:LDSM0.0MOVB*VD131,AC0+IAC0,VW129+D1,VD131网络4:NEXTS7-200cpu同意使用指针对下述储存区进行间接寻址:I,Q,V,M,S,T和C。但不可以对独立的位或模拟量进行间接寻址。指针为双字值,用来寄存另一个储存器的地点,只好用V,L或累加器AC1,AC2和AC3作指针。为了生成指针,一定用双字传递指令(MOVD)将某个位置的地点移入另一个地点或累加器作为指针。MOVD&VB200,AC1MOVW*AC1,AC最新文件仅供参照已改成word文本。方便改正若有侵权请联系网站删除7/7word.
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号