第六章+PLC功能指令系统_第1页
第六章+PLC功能指令系统_第2页
第六章+PLC功能指令系统_第3页
第六章+PLC功能指令系统_第4页
第六章+PLC功能指令系统_第5页
已阅读5页,还剩108页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章PLC功能指令系统功能指令的表示形式及含义功能指令的分类与操作数说明功能指令说明第一节功能指令的表示形式及含义一、功能指令的表示形式:PLC采用计算机通用的助记符形式来表示功能指令,通常用英文名称或其缩写作为助记符。功能指令按功能号FNC00~XXX(99,246)编排。每条功能指令都有一个助记符和功能号,还需指定操作数。功能指令格式:助记符(或功能号)+操作数。操作数:第一节功能指令的表示形式及含义[S]:源操作数,[S.]表示变址功能的源操作数,[S1.]、[S2.]表示源操作数不止一个。[D]:目的操作数,[D.]表示变址功能的目的操作数,[D1.]、[D2.]表示目的操作数不止一个。m,n:表示其它操作数,

常用来表示常数(可用十进制K或十六进制H)

或作为源操作数和目标操作数的补充说明。需要注释项目不止一个时,采用m1,m2程序步的计算:功能指令的功能号和助记符占一个程序步,

操作数占2或4程序步,16位指令是2步,32位指令是4步。所以,一般地16位指令为7个程序步,32位指令为13个程序步.第一节功能指令的表示形式及含义例:指令格式举例。当X0为ON时,(D10+D11+D12)/3--D20第一节功能指令的表示形式及含义二、数据长度及指令的执行形式1、16位和32位指令中的符号(D)表示处理32位数据;处理32位数据时,使用元件号相邻的两个元件组成元件对,建议首元件号使用偶数,如D10;32位计数器不能用作16位指令的操作数。2、连续执行/脉冲执行连续执行方式:当X0为ON时,指令在每个扫描周期会被重复执行。脉冲执行方式(助记符后加(P)符号):只有当X10由OFF变为ON时,指令才会被执行。符号(D)和(P)可同时使用,如(D)MOV(P)第二节功能指令的分类与操作数说明3、位元件位元件:只处理ON/OFF状态的元件,如X,Y,M,S。字元件:处理数据的元件,如T,C,D。位元件组合起来可处理数字数据。每4位为一组组合成单元,用Kn+首位元件号表示。n表示组数(单元数)。16位操作数时为K1~K4,32位操作数时为K1~K8。首元件号为最低位。如:K4M0表示由M0~15组成的16位数据,K2X0表示由X0~X7组成的8位数据。功能指令通则4、变址寄存器V,Z变址寄存器用于在传送、比较指令中修改操作对象的元件号,其操作方式与普通寄存器一样。操作数[S2.]、[D.]表示可以加入变址寄存器。对32位指令,V,Z自动组对,V作高16位,Z作低16位,在指令中只需指定Z。执行:M10为ON时,(V)=10;M11为ON时,(Z)=20;M12为ON时执行ADD指令,(D5V)+(D15Z)=(D40Z),即(D15)+(D35)=(D60)。V,Z内容不变。功能指令简介功能指令1、程序流程控制指令FNC00~092、传送与比较指令FNC10~193、算术运算和逻辑运算指令FNC20~294、循环移位和移位指令FNC30~395、数据处理指令FNC40~496、高速处理指令FN50~597、方便指令FNC60~698、外部I/O设备指令FNC70~799、FX外围设备指令FNC80~8910、浮点数指令11、定位指令12、时钟指令13、外围指令14、触点指令功能指令简介标志位功能指令在操作过程中,其运算结果要影响某些特殊继电器或寄存器,称为标志(位)。标志(位)分:一般标志(位);运算标志(位);功能标志(位)。一般标志(位)在功能指令操作中,其结果会影响一些标志位:M8020:零标志,如果运算结果为0则动作;M8021:借位标志,如果减运算时被减数不够时动作;M8022:进位标志,如果运算结果发生进位时动作;M8029:指令执行结束标志。运算标志(位)如果功能指令的结构、可用软件及其编号范围等方面有错误时,或在运算过程中出现错误,一些标志位会动作,并记录出错信息:M8067:运算出错标志;M8068:运算错误代码编号存储;M8069:错误发生的序号记录存储。PLC由STOP-RUN时标志是瞬间清除,如果出现运算错误,则M8068保持动作,D8068中存储发生错误的步序号。功能标志(位)部分功能指令中,同时使用由该功能指令确定的固有特殊辅助继电器,可进行功能扩展。如:M8161:为8位处理模式,适用于FNC76(ASC)、FNC80(RS)、FNC82(ASCI)、FNC83(HEX)、FNC84(CCD)指令。功能指令简介1、程序流程控制指令FNC00~09(1)条件跳转指令CJ(FNC00)(2)主程序结束FEND(FNC06)(3)子程序调用CALL(FNC01)子程序返回SRET(FNC02)(4)中断返回IRET(FNC03)、允许中断EI(FNC04)、禁止中断DI(FNC05)(5)监视定时器刷新WDT(FNC07)(6)循环开始FOR(FNC08)、循环结束NEXT(FNC09)(1)条件跳转指令CJ使用说明:X10为ON,程序跳到标号P8处,否则,顺序执行。NOTE(1)一个标号只能出现一次,否则出错。(2)两条跳转指令可以使用共同的标号,(3)M8000为执行条件,则为无条件跳转。功能指令简介编程时,标号占一行,对有意向END步跳转的指令,程序中不要对标号编程。如图6-17示。跳转指令和主控指令在使用时关系:a.对跳过整个主控区(MC-MCR)的跳转不受任何限制;b.从主控区外跳转到主控区内时,跳转独立于主控操作,CJP1执行时,不论M0状态如何,作ON状态处理;c.在主控区内部跳转时,M0为OFF,跳转不可能执行。M0为ON时,按跳转指令执行;d.从主控区内跳转到主控区外时,M0为OFF,跳转不执行,M0为ON,跳转条件满足可跳转;e.从一个主控区跳到另一个主控区内,M1为ON,可跳转,执行跳转时,不论M2状态如何,均看作为ON。(2)主程序结束FENDNOTE:程序执行FEND时,PLC进行输入处理、输出处理、监视定时刷新,完成后返回第0步。FEND为主程序的结束指令,功能同END同;CALL(调用子程序)指令中,子程序、中断子程序应写在FEND指令之后,且在结束端用SRET和IRET为返回指令。FEND指令在CALL或CALL(P)-SRET指令执行之后出现,则程序出错。同样,FEND指令在FOR-NEXT循环中也出错。子程序及中断子程序必须写在FEND与END间,若使用多个FEND指令,则在最后的FEND与END间编写子程序或中断子程序。SRET(3)子程序调用CALL与子程序返回SRET动作(1)当X10为ON,CALLP20指令使程序执行P20子程序,在子程序中执行到SRET指令后程序返回到CALL指令的下一条指令(104步)处执为。(2)X10为OFF,则程序顺序执行。NOTE子程序应写在主程序后,即子程序的标号应写在指令FEND之后,且子程序必须以SRET结束。NOTE:在子程序中可再次使用CALL指令,形成子程序嵌套,共可有5级嵌套。应用子程序调用指令,可优化程序结构,提高编程效果。(4)中断返回IRET、允许中断EI、禁止中断DI

NOTE(1)FX系列有9(+6)个中断点,外部输入中断,中断信号从X0~X5输入;内部定时器中断(计数器中断);(2)中断服务程序的标号为I×××;(3)指令EI~DI之间的程序段为允许中断区间,而DI~EI之间为禁止中断区间。M8050~M8059为中断禁止特殊辅助继电器。“0”为允许中断,“1”禁止中断。(4)当程序执行到允许中断区间且出现中断请求信号时,PLC跳到相应标号处执行中断服务程序,遇到中断返回指令IRET后返回断点处继续执行主程序。动作:当程序执行到允许中断区间时,X0或X1为ON,则去执行相应的中断程序(1)或(2)。中断程序应写在主程序之后,并以IRET结束。NOTE:(1)有关的特殊辅助继电器(M805*)置1时,相应的中断程序(I*××)不能执行。(2)执行一个中断程序时,其它中断自动被禁止。但如果在该中断程序编入EI和DI指令时,则响应其它中断,最多可实现2级中断嵌套。(3)如果中断信号产生于禁止中断区间,该中断信号被存储,并在EI指令之后被执行。(4)多个中断信号同时出现,中断指针号低的优先权高。(5)监视定时器刷新WDTNOTE:用于监视PLC的工作情况,在每一个扫描周期自动对WDT复位,监控定时器定时时间缺省值为200ms,通过修改D8000来设定它的定时时间。如果程序出错则当WDT定时时间到时,监控定时器不再被复位,定时时间到时,PLC将停止运行,其CPU-E发光二极管亮,对系统重新启动。WDT的用法:若扫描周期大于它的定时时间,可将WDT指令插入到合适的程序步中刷新监控定时器。若FOR-NEXT循环程序的执行时间可能超过监控定时器的定时时间,可将WDT指令插入循环程序中。条件跳步指令CJ若在它对应的标号后(即程序往回跳),可能因连续反复跳步使它们间的程序被反复执行,总执行时间可能超过WDT的定时时间,可在CJ指令和对应的标号间插入WDT指令。(6)循环开始FOR、循环结束NEXTNOTE:FOR~NEXT之间的程序重复执行n次(由操作数指定)后,再执行NEXT指令后的程序。循环次数n的范围为1~32767。若n为负数,作1处理。

2、传送与比较指令FNC10~19(1)比较CMP(FNC10)(2)区间比较ZCP(FNC11)(3)传送指令MOV(FNC12)(4)移位传送指令SMOV(FNC13)(5)取反传送CML(FNC14)(6)块传送BMOV(FNC15)(7)多点传送FMOV(FNC16)(8)交换XCH(FNC17)(9)BCD交换(FNC18)、BIN交换(FNC19)(1)比较CMPNOTE:(1)该指令有二个源操作数[S1.]、[S2.],一个目的操作数[D.];(2)指令将[S1.]和[S2.]进行比较,结果送到[D.]中。(3)比较结果清除,需用RST和ZRST指令。动作:(1)当X10为ON时,比较K100和C20当前值的大小,分三种情况分别使M0、M1、M2中的一个为ON,另两个则为OFF;(2)当X10为OFF,则CMP不执行,M0、M1、M2的状态保持不变。(2)区间比较ZCPNOTE:该指令是将一个操作数[S.]与两个操作数[S1.]、[S2.]形成的区间比较,且[S1.]<[S2.]。比较指令和区间比较指令,数据均为二进制数,且带符号位比较。X0为ON,C30的当前值与K100和K120比较。(3)传送指令MOVNOTE:(1)将源操作数[S.]传送到目标元件[D.],即[S.]→[D.],源操作数不变。(2)指令执行时,K100十进制常数自动转换成二进制数。若[S]源操作数是一个变数,要用脉冲型传送指令MOV(P)。对于32位数据的传送,需用(D)MOV指令。否则出错。X0为ON,则(D1,D0)→(D11,D10);X1为ON,(C235)32位→D21,D20。将K200→D12读出C0的当前值→D20。用MOV指令,将输入端X0~X3的状态送到输出端Y0~Y3,(4)移位传送指令SMOVNOTE:BCD码值超过9999时出错。源数据BCD码右起从第4位(m1=4)开始的2位(m2=2)移送到目标D2’的第3位(n=3)和第2位。而D2’的第4位和第1位两位BCD码不变。源数据BCD码右起从第1位(m1=1)开始的1位(m2=1)移送到目标D2’的第3位(n=3)。而D2’的第4位、第2位和第1位三位BCD码不变。(5)取反传送CML将源操作数中的数据(自动转换为二进制)遂位取反后传送。可作为PLC的反相输入或反相输出指令。(6)块传送BMOVNOTE(1)将源操作数开始的n个数据组成的数据块传送到指定目标。指令操作顺序依次为[S.]、[D.]和n。如果元件号超出允许范围,数据仅传送到允许范围内。(2)传送顺序是自动决定的,如果操作数的类型相同,传送顺序既可从高元件号开始,也可从低元件号开始。避免源操作数被该指令传送的其他数据冲掉。(3)若用到需要指定位数的位元件,则源、目标所指定的位数必须相同。(4)在指令格式中操作数只写指定元件的最低位。在指令格式中操作数只写指定元件的最低位。指定位数的位元件,则源、目标所指定的位数必须相同。传送顺序是自动决定的,如果操作数的类型相同,传送顺序既可从高元件号开始,也可从低元件号开始。避免源操作数被该指令传送的其他数据冲掉。若M8024为ON,则BMOV指令的数据从[D]→[S],若M8024为OFF,BMOV指令的数据从[S]→[D],(7)多点传送FMOV源操作数传送到指定目标开始的n个目标元件中,如:若元件号超出元件号范围,数据仅传送到允许范围的元件中。(8)交换XCH数据在两个指定目标元件之间交换,交换指令一般采用脉冲执行方式,否则在每一个扫描周期都要交换一次。当特殊继电器M8160为ON,若[D1]与[D2]为同一地址号时,其低8位与高8位进行交换。(9)BCD交换、BIN交换BCD是将源元件中的二进制数转换为BCD码送到目标元件中,对于16位或32位二进制操作数,若变换结果超出0~9999或0~99999999的范围就会出错。BCD指令常用于将PLC中的二进制数变换成BCD码输出以驱动LED显示器。BIN是将源元件中的BCD码转换为二进制数送到目标元件中,常数K不能作为本指令的操作元件。如果源操作数不是BCD码就会出错。BIN指令常用于将BCD数字开关(拔码开关)的设定值输入到PLC中。X0为ON时,D12中的二进制数→BCD码送到输出口Y7~Y0。X0为ON,源操作数K2X0中BCD码转换成二进制数送到目标操作单元D13中。如果数据源不是BCD码,则M8067为“1”,指示运算错误,且运算错误锁存特殊辅助继电器M8068不工作。例2:四路七段显示控制程序(P136)例3:多谐振荡电路。例4:彩灯交替控制程序例5定时报时器控制程序例6密码锁控制程序设计X0~X3代表第1个十六进制数;X4~X7代表第2个十六进制数;X10~X13代表第3个十六进制数;3、算术运算和逻辑运算指令FNC20~29(1)加法ADD(FNC20)、减法SUB(FNC21)(2)乘法MUL(FNC22)、除法DIV(FNC23)(3)加1INC(FNC24)、减1DEC(FNC25)(4)与WAND(FNC26)、或WOR(FNC27)、异或WXOR(FNC28)(5)求补NEG(FNC29)(1)加法ADD、减法SUB将指定的源元件中的两个二进制数相加,结果送到指定的目标元件。数据为带符号数,二进制的最高位作为符号位(0为正,1为负)。如果运算结果为0,则零标志M8020置1,如果运算结果超过32767(16位运算),则进位标志M8022置1。如果运算结果为负,则借位标志M8021置1。在32位运算中,被指定的字元件是低16位元件,下一个元件为高16位元件。如果加法指令之前置1浮点操作标志M8023,则可进行浮点值的加法。可进行浮点值的加法。加法指令之前,浮点操作标志M8023置1。(2)乘法MUL、除法DIVMUL是将两个源元件中的数据的乘积送到指定目标。如为16位乘法,则乘积为32位,如为32位乘法,则乘积为64位。最高位是符号位。目标元件用位元件指定,只能得到乘积范围内的乘积。DIV是进行16位和32位除法,得到商和余数。若指定位元件为目标元件,则不能得到余数。对于16位乘、除法,V不能用于[D.],对于32位运算,V,Z不能用于[D.]。(3)加1INC、和减1DEC操作数只有一个,且不影响进位和借位标志。INC、DEC不影响标志位。Z由复位输入X10清零每次X11由OFF变为ON时,计数器C0~C9的当前值依次被转换为BCD码并输出到Y0~Y17(4)与WAND、或WOR、异或WXOR(5)求补NEGNEG指令将[D.]指定的数每一位取反后再加1,结果存于同一元件;求补指令实际上是绝对值不变的变号操作。NOTE:FX系列的负数用补码的形式表示,最高位为符号位,正数该位为0,负数为1,将负数求补后得到其绝对值。四则运算指令应用例例1四则运算式的实现例2使用乘除运算实现移位控制例3彩灯亮、灭循环控制4、循环移位和移位指令FNC30~39

(1)右循环移位ROR(FNC30)、左循环移位ROL(FNC31)(2)带进位循环右移RCR(FNC32)、带进位循环左移RCL(FNC33)(3)位右移SFTR(FNC34)、位左移SFTL(FNC35)(4)字右移WSFR(FNC36)、字左移WSFL(FNC37)(5)先入先出(FIFO)写入SFWR(FNC38)、先入先出(FIFO)读出SFRD(FNC39)(1)右循环移位ROR、左循环移位ROLX0为ON,[D]内的数据右移n位,最后一次从最低位移出的状态存于进位标志M8022中。当X0为ON,[D]内的数据向左移n位,最后一次从最高位移出的状态也存于进位标志M8022中。(2)带进位循环右移RCR、带进位循环左移RCL使数据连同进位标志一起循环移位n位。X0为ON,[D0]中的数据带进位一起向右移4位,X0为ON,[D0]中的数据带进位一起向左移4位,(3)位右移SFTR、位左移SFTL使目标位元件中的状态向右/左移位,由n1指定位元件的长度,n2指定移位的位数,n2≤n1≤1024(4)字右移WSFR、字左移WSFL使字元件中的数据移位,由n1指定字元件的长度,n2指定移位的字数,n2≤n1≤512。若源操作数和目标操作数指定位元件时,其位数应相同。(5)先入先出(FIFO)写入SFWR、读出SFRD

n指定数据的长度。当X10首次由OFF变为ON,SFWR将源元件D0中的数据写入D2,而D1作为指针变为1(D1要先清0);当X10再次由OFF变为ON时,D0中的数据写入D3,D1中的数据加1变为2。依次类推,将D0中的数据依次写入寄存器。SFWR数据是从最右边的寄存器开始依次写入,写入的次数放在D1中,D1称为指针。当D1的内容达到n-1后,操作不再执行,进位标M8022置1。当X10首次由OFF变为ON,SFRD将源元件D2中的数据读出到D20,而D1作为指针减1,D10到D3的数据右移一字。若连续指令SFRD,则每个扫描周期数据右移一字,而数据总是从D2读出。当指针D1为0时,操作不执行,零标志M8020置1。先入先出(FIFO)控制常用于按产品入库并顺序从库中取出产品。例1步进电动机的控制例2:产品入库出库(FIFO)控制5、数据处理指令FNC40~4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论