资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,单击此处编辑母版标题样式,西门子应用指令,一,比较指令,比较指令用于两个操作数按一定条件的比较。操作数可以是整数,也可以是实数(浮点数)。在梯形图中用带参数和运算符的触点表示比较指令,比较条件满足时,触点闭合,否则打开。,1.,指令格式,装载,LDB=IN1,IN2,串联,AB=IN1,IN2,并联,OB=IN1,IN2,操作数,IN1,和,IN2,为整数,比较比较运算符:、,、,、,操作数类型:字节比较,B,(,Byte,);(,无符号整数),整数比较,I,(,Int,),/W,(,Word,);(,有符号整数),双字比较,D,(,Double,Int,/Word,);(,有符号整数),实数比较,R,(,Real,);(,有符号双字浮点数),2.,比较指令程序设计举例,例整数(,16,位有符号整数)比较指令应用,计数器,C0,的当前值大于或等于,1000,时,输出线圈,Q0.0,通电。,NETWORK 1,LDW=C0,+1000,=Q0.0,二,算术、逻辑运算指令,1,算术运算指令,IN1,IN2=OUT,IN1,IN2=OUT,加减指令盒由指令类型,使能端,EN,,,操作数(,IN1,、,IN2,),输入端,运算结果输出,OUT,,,逻辑结果输出端,ENO,等组成,。,加法运算应用举例,NETWORK 1,LD I0.0,装入常开触点,MOVW VW100,,,VW200,VW100,VW200,+I +100,,,VW200,VW200+100,VW200,2.,乘除运算,乘法运算,除法运算,MUL I/DIV I,为整数乘除运算,,MUL DI/DIV DI,双整数乘除运算,,MUL/DIV,整数乘除的结果双整数输出,,MUL R/DVI R,实数乘除运算,指令执行的结果:乘法,IN1*IN2,OUT,除法,IN1/IN2,OUT,乘除法指令的应用,NETWORK 1,LDN I0.0,装入常闭触点,*,R AC1,VD100,实数乘法,/R VD10,VD200,实数除法,运行结果:,3,数学函数变换指令,1.,平方根自然对数指数指令,SQRT IN,,,OUT,/,求平方根指令,SQRT,(,IN,),OUT,LN IN,,,OUT,/,求(,IN,),的自然对数指令,LN,(,IN,),OUT,EXP IN,,,OUT,/,求(,IN,),的指数指令,EXP,(,IN,),OUT,平方根,(,自然对数、,指数,)指令是把一个双字长(,32,位)的实数(,IN,),开方(取自然对数、取以,e,为底的指数),得到,32,位的实数运算结果,通过(,OUT,),指定的存储器单元输出。,例,求以,10,为底,,150,的常用对数,,150,存于,VD100,,,结果放到,AC1,(,应用对数的换底公式求解)。当求解以,10,为底的常用对数时,用实数除法指令将自然对数除以,2.302585,即可。(,LN10,2.302585,),LD I0.1,使能输入,LN VD100,AC1,自然对数,/,Ln,(,VD100,),AC1,LN 10.0,VD200,自然对数,/,Ln,(,10,),VD200,/R VD200,AC1,实数除法指令,/,AC1/VD200,VD200,2.,三角函数,SIN IN,,,OUT,/SIN,(,IN,),OUT,COS IN,,,OUT,/COS,(,IN,),OUT,TAN IN,,,OUT,/,TAN,(,IN,),OUT,例,求,65,o,的正切值,LDN I0.0,/,使能输入,MOVR 3.14159,AC0,/,装入,AC0,/R 180.0,AC0,/,得,/180,0,弧度,*,R 65.0,AC0,/,将角度转化为弧度,TAN AC0,AC1,/,求正切指令结果存放到,AC1,3.,数学函数变换指令对标志位的影响及操作数的寻址范围,(,1,)平方根自然对数指数三角函数运算指令执行的结果影响特殊存储器位:,SM1.0,(,零),,SM1.1,(,溢出),,SM1.2,(,负),,SM1.3,(,被,0,除)。,(,2,)使能流输出,ENO=0,的错误条件是:,SM1.1,(,溢出),,SM4.3,(,运行时间),,0006,(间接寻址)。,(,3,),IN,、,OUT,操作数的数据类型为,REAL,,,寻址范围见附表,1,。,3,增,1,减,1,计数,增,1,减,1,计数器用于自增、自减操作,以实现累加计数和循环控制等程序的编制。,字节、字、双字增,1,OUT+1,OUT,字节、字、双字减,1,OUT-1,OUT,.4,逻辑运算指令,逻辑运算是对无符号数进行的逻辑处理,主要包括逻辑与、逻辑或、逻辑异或和取反等运算指令。,与(或、异或)指令功能:使能输入有效时,把两个字节(字、双字)长的输入逻辑数按位相与(或、异或),得到的一个字节(字、双字)逻辑运算结果,送到,OUT,指定的存储器单元输出。,取反指令功能:使能输入有效时,将一个字节(字、双字)长的逻辑数按位取反,得到的一个字节(字、双字)逻辑运算结果,送到,OUT,指定的存储器单元输出。,例,5.18,字或双字异或字求反字节与操作编程举例。,NETWORK 1,LD I0.0,MOVW LW10,LW30,LW 10=LW30,ORW LW20,LW30,字或操作,NETWORK 2,LD I0.1,MOVD VD100,VD120,XORD VD200,VD120,双字异或操作,NETWORK 3,LD I0.2,MOVW AC0,AC1,INVW AC1,字取反操作,NETWORK 4,LD I0.3,MOVB AC0,AC1,ANDB 255,AC1,字节与操作,三,数据处理指令,数据处理指令包括数据传送指令,交换、填充指令,移位指令等。,1,数据传送,(1.),单个数据传送,LAD,STL MOV IN,,,OUT,/,IN,OUT,(2).,数据块传送,指令类型:字节、字或双字的,N,个数据成组传送。,功能:使能输入(,EN,),有效时,把从输入(,IN,),字节开始的,N,个字节数据传送到以输出字节(,OUT,),开始的,N,个字节、字或双字中。,例将变量存储器,VW100,中内容送到,VW200,中。,NETWORK 1,LD I0.0,使能输入,MOVW VW100,VW200,VW100,VW200,2,字节交换填充指令,1,、字节交换指令(,SWAY IN,),使能输入(,EN,),有效时,,将输入字(,IN,),的高、低字,节交换的结果输出到(,IN,),存储器单元。,2,、字填充(,FILL IN,,,OUT,,,N,),使能输入(,EN,),有效时,,字型输入数据(,IN,),填充从,输出(,OUT,),指定单元开始,的,N,个字存储单元。,N,(,BYTE,),的数据范围,0,255,。,例将从,VW100,开始的,256,个字节(,128,个字)存储单元清零。,NETWORK 1,LD I0.0,使能输入,FILL +0,VW100,128,128,个字填充,0,本条指令执行结果:从,VW100,开始的,256,个字节(,VW100,VW354,),的存储单元清零。,3,移位指令,移位指令分为类左、右移位和循环左、右移位及寄存器移位指令三大类。,左、右移位和循环左、右移位指令按移位数据的长度又分为字节型、字型、双字型三种。,左、右移位指令(,SHL,、,SHR,),的功能:使能输入有效时,将输入的字节、字或双字(,IN,),左、右移,N,位后(右、左端补,0,),将结果输出到,OUT,所指定的存储单元中,最后一次移出位保存在,SM1.1,。,循环左、右移位指令(,ROL,、,ROR,),的功能:使能输入有效时,字节、字或双字(,IN,),数据循环左移,N,位后,将结果输出到,OUT,所指定的存储单元中,并将最后一次移出位送,SM1.1,。,3,移位指令,例,将,VD0,右移,2,位送,AC0,。,NETWORK 1,LD I0.0,使能输入,MOVD VD0,AC0,VD0=AC0,SRD AC0,2,AC0,右移,2,位,寄存器移位指令最大移位位数,N,数据类型(,B,、,W,、,D,),对应的位数,移位位数(次数),N,为字节型数据。,4.,寄存器移位指令,寄存器移位指令是一个移位长度可指定的移位指令。,SHRB I1.1,M1.0,+10,功能:指令执行时,,DATA,位的值移入移位寄存器。,S-BIT,为寄存器的最低位,,N,为移位寄存器的长度(,1,64,)。每次使能有效时,整个移位寄存器移动,1,位。,N,为正值时,左移位(由低位到高位),,DATA,值从,S-BIT,位移入,移出位进入,SM1.1,;,N,为负值时右移位(由高位到低位),,S-BIT,移出到,SM1.1,,,高端补充,DATA,移入位的值。,最高位的计算方法:(,N,的绝对值,1,(,S_BIT,的位号),/8,,余数即是最高位的位号,商与,S_BIT,的字节号之和即是最高位的字节号。,四,程序控制类指令,包括系统控制、跳转、循环、子程序调用、顺序控制等指令。,.1,系统控制类指令,(1.),暂停指令(,STOP,),使能输入有效时,立即终止程序的执行,,(2.),结束指令(,END/MEND,),结束指令直接连在左侧电源母线时,为无条件结束指令(,MEND,),,不连在左侧母线时,为条件结束指令(,END,)。,(3.),看门狗复位指令(,WDR,),使能输入有效时,将看门狗定时器复位。在没有看门狗错误的情况下,可以增加一次扫描允许的时间。若使能输入无效,看门狗定时器定时时间到,程序将中止当前指令的执行,重新启动,返回到第一条指令重新执行。,例暂停(,STOP,)、,条件结束(,END,)、,看门狗指令应用举例。,例,5.22,题图,2,跳转、循环指令,(1.),程序跳转指令(,JMP,),JMP n,跳转指令,LBL n,跳转标号,跳转指令(,JMP,),和跳转地址标号指令(,LBL,),配合实现程序的跳转。使能输入有效时,使程序跳转到指定标号,n,处执行(在同一程序内),跳转标号,n,0,255,。,使能输入无效时,程序顺序执行。,(2.),循环控制指令(,FOR,),循环控制指令,用于描述一段程序的重复循环执行。,由,FOR,和,NEXT,指令构成程序的循环体。,FOR,标记循环开始,,NEXT,为循环体结束。,FOR,指令为指令盒格式,主要参数有使能,使能输入,EN,,,当前值计数器,INDX,,,循环,次数初始值,INIT,,,循环计数终值,FINAL,。,(NEXT),工作原理:,使能输入(,EN,),有效,循环体开始执行,执行到,NEXT,指令时返回,每执行一次循环体,当前计数器(,INDX,),增,1,,达到终值(,FINAL,),时,循环结束。,(3.),子程序调用指令(,SBR,),子程序可以多次被调用,也可以嵌套(最多,8,层),还可以递归调用(自己调自己)。,CALL SBR0,子程序调用,CRET,条件返回,RET,无条件返回(自动,),例循环、跳转及子程序调用指令应用程序。,NETWORK 1,LDW=AC0,+100,JMP 10,跳转,NETWORK 2,LD M0.0,FOR VW100,+1,+20,循环开始,NETWORK 3,LD I0.0,CALL SBR_0,调用子程序,NETWORK 4,NEXT,循环返回,NETWORK 5,LD I0.1,S Q0.0,1,位置,1,NETWORK 6,LBL 10,标号,例循环、跳转及子程序调用指令应用程序。,子程序,SUB0,NETWORK 1,LD SM0.0,INCW VW200,VW200,增,1,NETWORK 2,LD I0.2,CRET,条件返回,4.,带参数的子程序调用指令,子程序可能有要传递的参数(变量和数据),这时
展开阅读全文