第6章FX系列PLC的应用指令.ppt
《第6章FX系列PLC的应用指令.ppt》由会员分享,可在线阅读,更多相关《第6章FX系列PLC的应用指令.ppt(131页珍藏版)》请在三一办公上搜索。
1、第6章 FX系列PLC的应用指令,6-1 应用指令的表示方法与数据结构6.1.1 应用指令的表示方法大多数应用指令有l到4个操作数,有的应用指令没有操作数。BMOV(Block Move)用来表示数据块传送指令。S表示源(source)操作数,D表示目标(Destination)操作数。源操作数或目标操作数为多个时,表示为S1、S2、D1、D2等。n或m表示其他操作数,常用来表示常数,或源操作数和目标操作数的补充说明。需注释的项目较多时,用m1、n2等方式。如果可使用变址功能,用S和D表示。上图含义:(D0)+(D1)+(D2)3(D4Z0),6.1.1 应用指令的表示方法,应用指令的助记符占
2、一个程序步,每一个16位操作数和32位操作数分别占2个和4个程序步。BMOV指令编号为15,在用编程器输入应用指令BMOV时,先按(FNC)键,再输入15,编程器将显示出指令的助记符:BMOV。两个操作数之间要用(SP)(space,空格)键来分隔开。在图6-1中,当X0的常开触点接通时,将3个(n=3)数据寄存器D10D12中的数据传送到D20D22中去。,6.1.2 32位指令与脉冲执行指令,1 32位指令 MOV之前的“D”表示处理32位(bit)双字数据,相邻的两个数据寄存器组成数据寄存器对。处理32位数据时,为了避免出现错误,使用首地址为偶数的操作数,指令前面没有“D”时表示处理16
3、位数据。32位计数器(C200C255)的一个软元件为32位,不可作为处理16位数据指令的操作数使用。2 脉冲执行指令MOV后面的“P”表示脉冲(Pulse)执行,仅在X1由OFF变为ON状态时执行一次。INC(加1)、DEC(减1)和XCH(数据交换)等指令一般应使用脉冲执行方式。使用脉冲方式可以减少执行指令的时间。使用上升沿检测触点时,可以不用使用脉冲执行方式。符号“P”和“D”可以同时使用,例如DP。编程手册中,符号“”表示重复执行的指令,在每一扫描周期改变目标操作数的值。符号“”表示不能使用变址寻址的操作数。,6.1.3 数据格式,1 位元件与位元件的组合位(bit)元件用来表示开关量
4、的状态,例如常开触点的通、断,线圈的通电和断电,这两种状态分别用二进制数1和0来表示,或称为该编程元件处于ON或OFF状态。X、Y、M和S为位元件。FX系列PLC用KnP的形式表示连续的位元件组,每组由4个连续的位元件组成,P为位元件的首地址,n为组数(n=l8)。例如K2M0表示由M0M7组成的两个位元件组,M0为数据的最低位(首位)。16位操作数时n=14,n4时高位为0;32位操作数时n=1-8,n8时高位为0。使用成组的位元件时,X和Y的首地址的最低位为0,例如X0、X10、Y20等。对于M和S,首地址可以采用能被8整除的数,也可以用最低位为0的地址作首地址,例如M32、S50等。应用
5、指令中的操作数的形式有以下几种情形:K(十进制常数),H(十六进制常数),KnX、KnY、KnM、KnS、T、C、D、V和Z。,6.1.3 数据格式,2 字元件一个字由16个二进制位组成,字元件用来处理数据,例如定时器和计数器的设定值寄存器、当前值寄存器和数据寄存器D都是字元件,位元件X、Y、M、S等也可以组成字元件来进行数据处理。(1)二进制补码FX系列PLC内部,数据以二进制(BIN)补码的形式存储,四则运算和加1、减1运算都使用二进制数。二进制补码的最高位(第15位)为符号位,正数的符号位为0,负数的符号位为1,最低位为第0位。第n位二进制数为1时,对应的十进制数为2n。最大的16位正数
6、为0111 1111 1111 1111,对应的十进制数为32 767。以16位二进制数0000 0100 1000 0110为例,对应的十进制数为:,6.1.3 数据格式,2 字元件更精确运算采用浮点数运算。FX系列PLC提供了二进制浮点运算和十进制浮点运算。将负数的各位逐位求反后加1,得到其绝对值。以1111 1011 011l 1010为例,将它逐位取反后得0000 0100 1000 0101,加1后得0000 0100 1000 0110,对应的十进制数为1 158,所以1111 1011 0111 1010对应的十进制数为-1158。(2)十六进制数十六进制数使用16个数字符号:0
7、9和AF,采用逢16进1的运算规则。4位二进制数可以转换为1位十六进制数,例如二进制数1010 1110 011l 0101可以转换为十六进制数AE75。,6.1.3 数据格式,(3)BCD码 BCD(Binary Coded Decimal)码是按二进制编码的十进制数。每位十进制数用4位二进制数来表示,09对应的二进制数为00001001,各位十进制数之间采用逢十进1的运算规则。以BCD码1001 0110 01ll 0101为例,对应的十进制数为9 675,最高的4位二进制数1001实际上表示9 000。16位BCD码对应4位十进制数,允许的最大数字为9 999,最小的数字为0000。从P
8、LC外部的数字拨码开关输入的数据是BCD码,PLC送给外部的7段显示器的数据一般也是BCD码。,6.1.3 数据格式,3 科学计数法与浮点数 科学计数法和浮点数可以用来表示整数或小数,包括很大的数和很小的数。(1)科学记数法数字占用相邻的两个数据寄存器字(例如D0和D1),D0中是尾数,D1中是指数,数据格式为尾数10指数,其尾数是4位BCD整数,范围为0、10009999和-9999-1000,指数的范围为-4l+35。小数24.567用科学计数法表示为2 45610-2。科学计数法格式不能直接用于运算,可以用于监视接口中数据的显示。在PLC内部,尾数和指数都按2的补码处理,它们的最高位为符
9、号位。使用应用指令EBCD和EBIN可以实现科学计数法格式与浮点数格式之间的相互转换。,6.1.3 数据格式,(2)浮点数格式浮点数由相邻的两个数据寄存器字(例如D11和D10)组成,D10中的数是低16位。在32位中,尾数占低23位(b0b22位,最低位为b0位),指数占8位(b23b30位),最高位(b31位)为符号位。因为尾数为23位,与科学计数法相比,浮点数的精度有很大的提高,其尾数相当于6位十进制数。浮点数的表示范围为1.17510-383.4031038。使用应用指令FLT和INI、可以实现整数与浮点数之间的相互转换。,4 变址寄存器 FX1S和FX1N有两个变址寄存器V和Z,FX
10、2N和FX2NC有16个变址寄存器V0V7和Z0Z7。在传送、比较指令中,变址寄存器V、Z用来修改操作对象的元件号,在循环程序中常使用变址寄存器。对于32位指令,V为高16位,Z为低16位。32位指令中V、Z自动组对使用。这时变址指令只需指定Z,Z就能代表V和Z的组合。图6-2中的各触点接通时,常数10送到V0,常数20送到Z1,ADD(加法)指令完成运算(D5V0)+(D15Z1)(D40Z1),即(D15)+(D35)(D60)。,6.1.3 数据格式,6-2 程序流控制指令,程序流向控制类指令(FNC00FNC09),6-2 程序流控制指令,1 条件跳转指令指针P(Point)用于分支和
11、跳步程序。在梯形图中,指针放在左侧母线的左边。FX1S有64点指针(P0P63),FX1N、FX2N和FX2NC有128点指针(P0P127)。条件跳转指令CJ(Conditional Jump,FNC 00)用于跳过顺序程序中的某一部分,以控制程序的流程。当图6-3中的X0为ON时,程序跳到指针P8处,如果X0为OFF,不执行跳转,程序按原顺序执行。跳转时,不执行被跳过的那部分指令。用编程器输入程序时,图6-3中的指针P8应放在指令“LD X14”之前。多条跳转指令可以使用相同的指针,使用跳转指令可以缩短扫描周期。指针可以出现在相应跳转指令之前,但是如果反复跳转的时间超过监控定时器的设定时间
12、,会引起监控定时器出错。,1 条件跳转指令,条件跳转指令CJ(P),编号FNC00;操作数为指针标号P0P127;其中P63为 END所在步序,不需标记;指针标号允许用变址寄存器修改;CJ和CJP都占3个程序步,指针标号占1步;CJP指令表示为脉冲执行方式;在一个程序中一个标号只能出现一次,否则将出错;即使被跳过程序的驱动条件改变,但其线圈(或结果)仍保持跳转前的状态。在跳转执行期间定时器和计数器将停止工作,到跳转条件不满足后又继续工作。但对于正在工作的定时器T192T199和高速计数器C235C255不管有无跳转仍连续工作。若积算定时器和计数器的复位(RST)指令在跳转区外,即使它们的线圈被
13、跳转,但对它们的复位仍然有效。,例6-1,D11D19中的数V1V2V3V9,它们将数据区划分为10个区间,D0中的变量VV9时的区间号为10,V8VV9时的区问号为9,VV1时的区间号为1,试求V所在的区间的区间号。满足要求的指令表程序:,程序中的“LDD0 D9Z”是比较触点指令,第一次比较时Z=10,D9Z相当于D19,如果D0中的变量V小于D19中的V9,比较触点接通,Z减1后返回指针P1处,第二次比较时Z=9,D9Z相当于D18,如果D0中的变量V大于D18中的V8,比较触点断开,不执行下面的两条指令,不返回P1处,将会执行CJ指令下面的一条指令。此时Z=9,表示V在第9区。,例6-
14、1的梯形图,6.2.2 子程序调用与子程序返回指令,子程序调用指令CALL,编号FNC01,操作数为P0P127,占3个程序步;子程序返回指令SRET,编号FNC02,无操作数,占1个程序步。注意:1)转移标号不能重复,也不可 与跳转指令的标号重复;2)子程序可以嵌套调用,最多可5级嵌套。,6.2.3与中断有关的指令,FX系列PLC的中断事件包括输入中断、定时中断和高速计数器中断,发生中断事件时,CPU停止执行当前的工作,立即执行预先写好的相应的中断程序,执行完后返回被中断的地方,继续执行正常的任务。这一过程不受PLC扫描工作方式的影响,因此使PLC能迅速响应中断事件。1 用于中断的指针用于中
15、断的指针用来指明某一中断源的中断程序的入口,执行到IRET(中断返回)指令时返回中断事件出现时正在执行的程序。中断指针应在FEND指令之后使用。输入中断用来接收特定的输入地址号的输入信号,图6-5中的输人中断指针为I0,最高位与X0X5的元件号相对应。FX1S的输入号为03(从X0 x3输入),其余单元的输入号为05(从X0X5输入)。最低位为0时表示下降沿中断,反之为上升沿中断。例如中断指针I001之后的中断程序在输入信号X0的上升沿时执行。,同一个输入中断源只能使用上升沿中断或下降沿中断,例如不能同时使用中断指针I000和I001。用于中断的输入点不能与已经用于高速计数器的输入点相冲突。F
16、X2N和FX2NC系列有3点定时器中断,中断指针为I6I8,低两位是以ms为单位的定时时间(199ms)。定时器中断使PLC以指定的周期定时执行中断子程序,循环处理某些任务,处理时间不受PLC扫描周期的影响。M8056M5058为ON时,将分别禁止定时中断02。FX2N和FX2NC系列有6点计数器中断,中断指针为I00(=16)。计数器中断与HSCS(高速计数器比较置位)指令配合使用,根据高速计数器的计数当前值与计数设定值的关系来确定是否执行相应的中断服务程序。,6.2.3与中断有关的指令,中断返回指令IRET,编号FNCO3,中断允许指令EI,编号FNCO4,中断禁止DI,编号FNC05,它
17、们均无操作数,各占1个程序步;注意:如果多个中断依次发生,则以发生先后为序,如果多个中断源同时发出信号,则中断指针号越小优先级越高;当M8050M8058为ON时,禁止执行相应I0I8的中断,M8059为ON时则禁止所有计数器中断;无需中断禁止时,可只用EI指令,不必用DI指令;执行一个中断服务程序时,若在中断服务程序中有EI和DI,可实现二级中断嵌套,否则禁止其它中断。,例6-2,在X0的上升沿通过中断使Y0立即变为ON,在X1的下降沿通过中断使Y0立即变为OFF。试设计满足此要求的程序。,例6-2 的梯形图,例6-3,从X0的上升沿开始,用定时器中断使D0的值每隔10 ms加1,在100s
18、内由0线性地增大到10000,大于100s时D0的值保持不变。在主程序中,用X0的上升沿将禁止定时器中断0工作的M8056复位,开始执行定时器中断0的中断程序。因为中断标号I610的低两位为10,它每隔10ms产生一次中断,在中断程序中将D0加1,D0的当前值等于10000时,将M8056置位,定时器中断0的中断被禁止。试设计满足此要求的程序。,例6-4,定时器中断的定时时间最长为99 ms,为了用定时中断1实现周期为10s的高精度周期性操作的定时,可以将定时器中断的定时时间间隔设为50ms,在定时器中断1的中断程序中,将D0加1,然后用比较触点指令“LD=”判断D0是否等于200。若相等(中
19、断了200次,对应的时间间隔为10s),在中断程序中执行每10s一次的操作(改变Y0的ON/OFF状态)。,例6-5,用输入中断和分辨率为1ms的定时器T246测量X0的上升沿和X2的上升沿之间的时间。使用FX1S时,可以用T63进行测量。在X0的上升沿执行从指针1001开始的中断程序,在X2的上升沿执行从指针I201开始的中断程序。在X0的中断程序中起动T246开始定时。退出X0的中断程序后,T246继续定时。为了使T246停止定时,需要在X2的中断程序中断开T2A6的线圈。同样地,离开X2的中断程序后,在该程序中用RST指令对T246的复位也有保持功能,需要在X0的中断程序中用M8000的
20、常闭触点(一直断开)来解除对。T246的复位作用。因为机械触点的抖动,在触点闭合时可能出现多个上升沿和下降沿,在输入中断程序中增加一条对数据寄存器D的加1指令(例如“INC D10”)就可以看到外接触点闭合一次,D10不止加一次1。在X2闭合时的第一个上升沿读出T246的当前值(以ms为单位的时间),然后将T246复位,其当前值变为0。如果因触点的抖动出现了第二个上升沿,因为此时T246的当前值为0,比较触点(LD)断开,不会执行MOV指令。如果将比较触点改为M8000的常开触点,在第二个上升沿执行中断程序后D0中的测量值将变为0。X0和X2产生的中断的时间间隔应小于32 767l ms=32
21、.767s,T246的设定值取最大值,以保证在测量过程中它的定时时间大于被测的时间间隔。,例6-5 的梯形图,例6-6,用输入中断程序和0.1ms环形高速计数器M8099测量接在X0和X2端子上的同一输入信号的脉冲宽度。从同一输入端子输入的外部信号只能使用上升沿中断或下降沿中断,因此需要将被测信号同时接入X0和X2,分别使用它们的上升沿中断和下降沿中断。D8099是一个环形计数器,内部计数脉冲的频率为10 kHZ。它的计数当前值从0增大到最大值32 767后再计一个脉冲,当前值变为0,又开始下一轮计数。M8099为ON时允许D8099计数,M8099为OFF禁止D8099计数。在输入信号上升沿
22、中断程序中起动D8099开始计数,在输入信号的下降沿的中断程序读出以0.1ms为单位的D8099的计数值。输入脉冲的宽度应小于32 7670.1ms=3.2 767s,脉冲的边沿不能有抖动。,例6-6 的指令表程序,例6-6 的梯形图,6.2.4 主程序结束指令,主程序结束指令FEND 编号为FNC06;无操作数,占用1个程序步;FEND表示主程序结束,当执行到FEND时,PLC进行输入/输出处理,监视定时器刷新,完成后返回启始步。注意:子程序和中断服务程序应放在FEND之后;子程序和中断服务程序必须写在FEND和END之间,否则出错。,6.2.5 监控定时器指令,监视定时器指令 WDT(P)
23、,编号为FNC07,没有操作数,占1个程序步。WDT指令是对PLC的监视定时器进行刷新,FX系列PLC的监视定时器缺省值为200ms(可用D8000来设定)1)如果在后续的FOR-NEXT循环中,执行时间可能超过监控定时器的定时时间,可将WDT插入循环程序中。当与条件跳转指令CJ对应的指针标号在CJ指令之前时(即程序往回跳)就有可能连续反复跳步使它们之间的程序反复执行,使执行时间超过监控时间,可在CJ指令与对应标号之间插入WDT指令。,6.2.6 循环指令,循环区起点指令FOR,编号FNC08,占3个程序步,无操作数,循环结束指令NEXT,编号FNC09,占1个程序步,无操作数;运行时,位于F
24、ORNEXT间的程序,反复执行n次后再继续执行后续程序。循环的次数n=132767,如果N=-327670之间,则当作n=1处理。注意:FOR放在NEXT之前,NEXT在FEND和END之前,否则出错;在循环中可利用CJ指令在循环没结束时跳出循环体;FX2N系列PLC可循环嵌套5层;FOR和NEXT必须成对使用。,例6-7,在X1的上升沿,将50、55、60、90分别送D10D18。,6-3 比较传送与数据变换指令,传送与比较类指令(FNC10FNC19),6.3.1 比较指令,比较指令包括CMF(比较)和ZCP(区间比较),比较结果用目标元件的状态来表示。待比较的源操作数S1、S2和S3(C
25、MP只有两个源操作数)可以取任意的数据格式,目标操作数D可以取Y、M和S,占用连续的3个元件。比较指令CMP、(D)CMP(P),指令编号为FNC10,将源操作数S1.和源操作数S2.的数据进行比较,比较结果用目标元件D.的状态来表示。,6.3.1 比较指令,2 区间比较(FNC 11)区间比较指令ZCP(D)ZCP(P),编号FNC11。指令执行时源操作数S.与S1.和S2.的内容进行比较,并比较结果送到目标操作数D.中。使用比较指令CMP/ZCP时应注意:S1.、S2.可取任意数据格式,目标操作数D.可取Y、M和S。所有的源数据都被看成二进制值处理;使用ZCP时,S2.的数值不能小于S1.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FX 系列 PLC 应用 指令
链接地址:https://www.31ppt.com/p-2209453.html