PLC的功能指令第4章主要内容一、数据处理指令二、三、四、中断指令五、高速计数器六、高速脉冲输出程序控制类指令数学运算指令本章学习要求重点内容:S7-200功能指令的作用及使用方法了解内容:系统控制类指令的应用难点内容:数学运算、高速计数器等指令1.使能输入与使能输出使能输入端EN有能流流入方框指令时,指令才能被执行。EN输入端有能流且指令执行时无错误,则使能输出ENO将能流传递给下一个方框指令或线圈。语句表用AENO指令来产生与方框指令的ENO相同的效果。删除AENO指令后,方框指令将由串联变为并联。2.梯形图中的指令条件输入指令必须通过触点电路连接到左侧母线上。不需要条件的指令必须直接连接在左侧母线上。3.能流指示器必须解决开路问题,网络才能成功编译。ENO端的可选能流指示器表示可将其他梯形图元件附加到该位置。它不影响编译。一、数据处理指令比较指令字节比较LDB、AB、OB整数比较LDW、AW、OW双字整数比较LDD、AD、OD实数比较LDR、AR、OR字符串比较LDS、AS、OS=等于、〈小于、〉大于、〈=小于等于、〉=大于等于、〈〉不等于比较运算符例:占空比可调的闪烁电路例:一自动仓库存放某种货物,最多6000箱,需对所存的货物进出计数。货物多于1000箱,灯L1亮;货物多于5000箱,灯L2亮。其中,L1和L2分别受Q0.0和Q0.1控制,数值1000和5000分别存储在VW20和VW30字存储单元中。LDI0.0LDI0.1LDI0.2CTUDC30,+10000LDW=C30,VW20=Q0.0LDW=C30,VW30=Q0.1比较指令应用:温度低于15度时亮黄灯Q0.0,温度高于35度时亮红灯Q0.4,其它情况亮绿灯Q0.1;数据传送指令字节交换SWAP单一传送MOVBIRBIW块传送BLKMOV立即字节传送指令BIRBIW单一传送MOV指令用来传送单个数据,数据类型可以是字节、字、双字、实数。普通字节传送指令MOV{立即读字节传送指令,读取一个字节的物理输入,并将结果写入OUT,但不刷新输入过程映像寄存器。立即写字节传送指令,读取一个字节的物理输入,并将结果写入OUT,刷新输出过程映像寄存器。块传送BLKMOV用来进行一次多个(最多255个)数据的传送,数据块类型可以是字节块、字块、双字块。N的范围为1至255字节交换SWAP专用于对1个字长的字型数据进行处理。例:LDSM0.1MOVW16#AA55,VW12LDI0.0SWAPVW12则VW12=?55AA移位指令寄存器移位左移位和右移位循环左移位、循环右移位左移位和右移位左移位指令(SHL)使能输入有效时,将输入IN的无符号数字节、字或双字中的各位向左移N位后(右端补0),将结果输出到OUT所指定的存储单元中,如果移位次数大于0,最后一次移出位保存在“溢出”存储器位SM1.1。右移位指令(SHR)使能输入有效时,将输入IN的无符号数字节、字或双字中的各位向右移N位后,将结果输出到OUT所指定的存储单元中,移出位补0,最后一移出位保存在SM1.1。MOVBVB0,VB1SLBVB1,2MOVWVW0,VW2SLWVW2,4SLDVD0,4N为字节变量,范围为0~255若N最大允许值,则实际移位为最大允许值SM1.1保存最后一次被移除位的值若移位后结果为0,则SM1.0=1则VB20=?SM1.0=?SM1.1=?例霓虹灯广告屏控制霓虹灯广告屏由8根灯管组成。控制要求:系统由启动开关控制运行,由关闭开关关闭;系统开启时,先是8根灯管同时点亮,保持5s,然后每隔1s关闭1根,全部熄灭后等待2s,又重新开始;随时可手动关闭并复位系统;要求用移位指令实现顺序关闭。I/O编址:I0.0—启动Q0.0~Q0.7=QB0—控制8根灯管I0.1—关闭T40、T37、T38—100ms定时器C0—计数器循环左移位、循环右移位移位数据存储单元的移出端与另一端相连,同时又与SM1.1(溢出)相连,所以最后被移出的位被移到另一端的同时,也被放到SM1.1位存储单元。例如在循环右移时,移位数据的最右端位移入最左端,同时又进入SM1.1。SM1.1始终存放最后一次被移出的位。循环移位字节循环左移、右移{字循环左移、右移双字循环左移、右移MOVBVB0,VB1RLBVB1,2RLWVW0,2MOVDVD0,VD10RLDVD10,4若N最大允许值,则实际移位为对N取模操作的值,如对于RRB,若N=23,则移位次数为7,如果取模的结果为0,则不进行操作。SM1.1保存最后一次被移除位的值若移位次数为0,则SM1.0=1字节操作是无符号的,如果对有符号的字或双字操作,则符号位也被移位。1.移位指令应用:6个灯循环点亮,即Q0.0----Q0.5每隔1秒钟点亮一个灯,周期循环;2.移动指令应用:5台电机顺序启动,顺序停止,按下启动按钮I0.0,Q0.0----Q0.4顺序启动,按下停止按钮I0.1,Q0.0-----Q0.4顺序停止;3.移动指令应用:5台电机顺序启动,逆序停止,按下启动按钮I0.0,Q0.0----Q0.4顺序启动,按下停止按钮I0.1Q0.0---Q0.4逆序停止;将DATA数值移入移位寄存器。S_BIT指定移位寄存器的最低位。N指定移位寄存器的长度和移位方向(正向移位时N为+,输入数据从最低位移入,从最高位移出,反向移位N为-,输入数据从最高位移入,从最低位移出)。移位寄存器指令SHRB指令移出的每个位被放置在溢出内存位(SM1.1)中。该指令由最低位(S_BIT)和由长度(N)指定的位数定义。N为字节变量使用以下等式计算移位寄存器最高位地址(MSB.b)最高位位号=([N]-1+(S_BIT位))/8的余数最高位字节号=([N]-1+(S_BIT位))/8的商与S_BIT字节号之和如果S_BIT是V33.4和N是14,则MSB.b是???V35.1转换指令七段译码数据类型转换编码和译码字符串转换数据类型转换字节型数据与字整数之间转换BTIVB0,VW2ITBVW0,VB0字整数与双字整数之间的转换ITDVW0,VD0DTIVD0,VW0BCD码与整数之间的转换MOVWVW0,VW2BCDIVW2MOVWVW0,VW2IBCDVW2编码和译码指令编码指令ENCO使能输入有效时,将字型输入数据IN的最低有效位(值为1的位)的位号输出到OUT所指定的字节单元的低4位。ENCOVW0,VB0DECOVB0,VW0使能输入有效时,将字节型输入数据IN的低4位所表示的位号对OUT所指定的字单元的对应位置1,其它位置0。译码指令DECO若VW0=16#2910,则执行ENCOVW0,VB0后,VB0中内容是??2#00000100若VB0=2#00000100,则执行DECOVB0,VW0后,VW0中内容是??2#0000000000010000七段译码指令SEG使能输入有效时,将字节型输入数据IN的低4位有效数字产生相应的七段码,并将其输出到OUT所指定的字节单元。SEGVB0,VB2注意:数码管是共阴!!!6.2数据处理指令表功能指令查表指令读表指令表取数指令字填充指令S7-200的表格存储存储单元数据说明VW100005数据最大填表数为TL=5(=100)VW120003实际填表数EC=0003(=100)VW141234数据0VW165678数据1VW189012数据2VW20****无效数据VW22****无效数据6.2数据处理指令6.2数据处理指令填表指令ATT在梯形图中有2个数据输入端:DATA为数值输入,指出将被存储的字型数据或其地址;TBL表格的首地址,用以指明被访问的表格。当使能输入有效时,将输入字型数据添加到指定的表格中。ATTVW0,VW2006.2数据处理指令表存数时,新存的数据添加在表中最后一个数据的后面。每向表中存一个数据,实际填表数EC会自动加1。6.2数据处理指令表取数指令FIFO,先进先出指令LIFO,后进先出指令LIFOVW0,VW10FIFOVW0,VW106.2数据处理指令先进先出指令FIFO当使能输入有效时,从TBL指明的表中移出第一个字型数据并将其输出到DATA所指定的字单元。取数时,移出的数据总是最先进入表中的数据。每次从表中移出一个数据,剩余数据依次上移一个字单元位置,同时实际填表数EC会自动减1。6.2数据处理指令先进后出指令LIFO当使能输入有效时,从TBL指明的表中移出最后一个字型数据并将其输出到DATA所指定的字单元。取数时,移出的数据是最后进入表中的数据。每次从表中取出一个数据,剩余数据位置保持不变,实际填表数EC会自动减1。6.2数据处理指令查表指令FND=VW2,VW10,VW20TBL表格的首地址,PTN是用来描述查表条件时进行比较的数据;CMD是比较运算符“?”的编码,它是一个1~4的数值,分别代表=、、和运算符;INDX用来指定表中符合查找条件的数据的地址。6.2数据处理指令字填充指令用输入IN存储器中的字值写入输出OUT开始N个连续的字存储单元中。N的数据范围:1~255。FILLVW0,VW20,10三、运算指令算术运算指令整数与双整数加减法指令MOVWVW0,VW4+IVW2,VW4MOVWVW0,VW4-IVW2,VW4MOVDVD0,VD10+DVD4,VD10MOVDVD0,VD10-DVD4,VD10整数乘除法MOVWVW0,VW4*IVW2,VW4/IVW2,VW0MOVDVD0,VD10*DVD4,VD10/DVD4,VD0MOVWVW0,VW12MULVW2,VD10MOVWVW0,VW12DIVVW2,VD10实数加减乘除指令MOVRVD0,AC0+RVD4,AC0-RAC1,AC0MOVRVD0,VD4*RAC0,VD4MOVRAC0,AC3/RAC1,AC3函数运算的应用常常与模拟量模块相关,例如测量电路的电压有效值,电流的有效值,电功率、功率因数及电能(1)平方根(SQRT)指令(2)自然对数(LN)指令(3)自然指数(EXP)指令(4)三角函数指令(SIN、COS、TAN)数学函数变换指令注意:SINCOSTAN的操作数为弧度值。函数指令注意当使用三角函数运算指令时,输入角度为弧度值。数学函数变换指令SQRTVD0,VD4SINVD0,VD4COSVD0,VD4TANVD0,AC0LNVD0,VD4EXPVD0,AC01.数学运算指令应用:计算25.5乘以14.6再除以79再加上465等于多少?2.数学运算指令应用:一个圆的直径是100毫米,要切一个最大的正方形,求正方形的边长是多少?递增及递减指令递增指令每执行一次存储单元的内容加1,可以用于控制循环次数,也可以用于加法计数运算。按存储单元长度分为:字节增量指令,字增量指令,双字增量指令三种。递减指令每执行一次存储单元的内容减1,可以用于控制循环次数,也可以用于减法计数运算。按存储单元长度分为:字节减量指令,字减量指令,双字减量指令三种。ENENOINOUTINC_B递增、递减指令MOVBVB0,VB1INCBVB1INCWVW0MOVDVD0,AC0INCDAC0MOVBVB0,VB9DECBVB9MOVWVW0,VW2DECWVW2MOVDVD0,AC0DECDAC0例:某食品加工厂对饮料生产线上的盒装饮料进行计数,每24盒为一箱,要求能记录生产的箱数。LDI0.0LDC30CTUC30,+24LDC30INCDVD100增/减量指令的应用用增量指令实现单按钮控制起保停控制。每当I0.0通断一次,M0.0奇偶变化一次,从而使得Q0.0状态随之反转一次。逻辑运算指令1.逻辑与指令(WAND)2.逻辑或运算(WOR)3.逻辑异或指令(WXOR)4.取反指令(INV)逻辑运算指令ORBVB1,VB0MOVBVB0,VB2ANDBVB1,VB2INVBVB0XORBVB0,VB1应用举例:使用取反指令实现单按钮起保停控制原理:PLC启动时MB0=16#0,通断一次I0.0后MB0=16#FF,再通断