1 / 66

第六章 FX 系列 PLC 的应用指令

第六章 FX 系列 PLC 的应用指令. 第一节 功能指令的基本知识. 0 、概念. X0. (D0)→(D1). MOV. D0. D1. 一、基本格式. 操作码与操作数 操作码(指令助记符):表示指令的功能 操作数:指明参与操作的对象 源操作数 S :执行指令后收据不变的操作数,两个或 两个以上时为 S1 、 S2 。 目标操作数 D :执行指令后收据被刷新的操作数,两 个或两个以上时为 D1 、 D2 。 其它操作数 m 、 n :补充注释的常数,用 K (十进制)

lesley
Download Presentation

第六章 FX 系列 PLC 的应用指令

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第六章 FX系列PLC的应用指令

  2. 第一节 功能指令的基本知识 0、概念

  3. X0 (D0)→(D1) MOV D0 D1 一、基本格式 • 操作码与操作数 • 操作码(指令助记符):表示指令的功能 • 操作数:指明参与操作的对象 • 源操作数S:执行指令后收据不变的操作数,两个或 两个以上时为S1、S2。 • 目标操作数D:执行指令后收据被刷新的操作数,两 个或两个以上时为D1、D2。 • 其它操作数m、n:补充注释的常数,用K(十进制) 和H(十六进制)表示,两个或 两个以上时为m1、m2、n1、n2。

  4. 二、数据格式 • 位元件:只处理开关(ON/OFF)信息的元件,如X、Y、M、D、S • 字元件:处理数据的元件,如D。 • 位元件的组合 • 位元件组合表示数据:4个位元件一组,代表4位BCD码,也表示1位十进制数; • 用KnMm表示,K为十进制,n为十进制位数,也是位元件的组数,M为位元件,m为位元件的首地址,一般用0结尾的元件。如K2X0 对应:X0~X7; K3X0 对应:X0~X13; K4X0 对应:X0~X17

  5. X0 (D0)→(D1) MOV D0 D1 X1 (D3D2)→(D5D4) D2 D4 DMOV 三、数据长度及执行方式 • 数据长度 • 16位:参与运算的数据默认为16位二进制数据 • 32位:32位数据时在操作码前面加D(Double)

  6. X0 MOV D0 D1 X1 D2 D4 MOVP • 执行方式 • 连续执行方式:每个扫描周期都重复执行一次 • 脉冲执行方式:只在信号OFF→ON时执行一次,在指令后加P(Pulse)。

  7. X0 MOV K8 V X1 K4 Z MOV X2 MOV D0V D10Z 四、变址寄存器V、Z • 变址:改变操作数的地址 • 变址寄存器的作用:存放改变地址的数据 • 实际地址=当前地址+变址数据 • 32位运算时V和Z组合使用,V为高16位,Z为低16位。 V=(8) Z=(4) (D8)→(D14)

  8. 五、常用特殊辅助继电器 • 功能指令执行结果的标志 • M8020:零标志 • M8021:借位标志 • M8022:进位标志 • M8029:执行完毕标志 • M8064:参数出错标志 • M8065:语法出错标志 • M8066:电路出错标志 • M8067:运算出错标志

  9. 第二节 程序流控制 一、条件跳转指令 FNC00 CJ 二、子程序指令 FNC 01 CALL FNC 02 SRET 三、中断指令 FNC 03 IRET FNC 04 EI FNC 05 DI 四、主程序结束指令 FNC 06 FEND 五、警戒时钟定时器指令 FNC 07 WDT 六、循环指令 FNC 08 FOR FNC 09 NEXT

  10. X10 … CJ CJ P0 P0 Y1 X11 … X12 P0 一、条件跳转指令 FNC00 CJ • 操作数:指针 P0~P127,末指针为END所在步 • 梯形图 • 指令表 步序 操作码 操作数 0 LD X10 1 CJP0 4 。。。 10 LD X11 11 CJ P0 。。。。 20 P0 21 LD X12 22 OUT Y1

  11. 说明 • CJ指令跳过部分程序,可以缩短程序的运算周期。 • 如果积算型定时器和计数器的RST指令在跳转程序之内,即使跳转程序生效,RST指令仍然有效。 • 该指令可以连续和脉冲执行方式。 • 被跳过去的程序中各元件的状态为 • Y、M、S保持跳转前状态不变。 • 普通计数器停止计数并保持当前值,高速计数器继续计数。 • 未工作的定时器不动作,已动作的定时器保持当前值。T192~T199跳转时仍然计时。

  12. 在一个程序中一个标号只能出现一次 • 功能指令在跳转时不执行,但PLSY,PLSR,PWM指令除外。

  13. 二、子程序指令 • 子程序调用 FNC01 CALL 操作数:指针P0~P62 • 子程序返回 FND02 SRET无操作数 • 说明 • 子程序应该在主程序结束之后编程。 • CJ指令的指针与CALL的指针不能重复。 • 主程序允许嵌套,嵌套级别最多为5级。 • 子程序只能用T192~T199和T246~T249作定时器。

  14. CALL P8 主程序 X1 … FEND Y21 Y30 Y1 X12 P8 子程序 … X11 SRET … • 梯形图

  15. EI X0 开中断范围 DI FEND X10 I100 中断子程序1 IRET I101 中断子程序2 IRET 三、中断指令 • 中断返回 FNC03 IRET 开中断 FNC04 EI 关中断 FNC05 DI • 均无操作数 • 梯形图

  16. 说明 • 在执行某个中断子程序时,禁止其它中断请求。 • 中断程序允许嵌套,嵌套级别为2级。 • 中断指针共有15个:输入中断6个,定时器中断3个,计数器中断6个。 • 中断程序用T192~T199和T246~T249作定时器。 • 中断的优先级别 • 多个中断信号不同时产生时,按先后顺序中断。 • 多个中断信号同时产生时,按指针大小中断。

  17. (2)用于中断的指针 例:I000 I101 • 中断指针应放在FEND指令之后。 X0~X5

  18. (2)中断指针 注意: 1)当M8050~M8058为ON时,禁止执行相应I0□□~I8□□的中断,M8059为ON时则禁止所有计数器中断; 3)无需中断禁止时,可只用EI指令,不必用DI指令 ; 4)执行一个中断服务程序时,如果在中断服务程序中有EI和DI,可实现二级中断嵌套,否则禁止其它中断。

  19. 例子6-3,从X0的上升沿开始,用定时器中断使D0的值每隔10ms加1,在100s内由0线性增大到10000,大于100s时D0值保持不变。例子6-3,从X0的上升沿开始,用定时器中断使D0的值每隔10ms加1,在100s内由0线性增大到10000,大于100s时D0值保持不变。 • EI //允许中断 • LDP X0 // X0的上升沿 • ANI M8002 • //禁止X0在第一个扫描周期自动出现的上升沿起作用 • RST M8056 • FEND • I610 //每隔10ms中断1次 • INC D0 • LD= K10000 D0//100S到 • SET M8056 • SET Y0 • IRET • END

  20. 例子6-5测量X0的上升沿和X2的上升沿之间的时间。例子6-5测量X0的上升沿和X2的上升沿之间的时间。 • EI //允许中断 • FEND • I001 // X0的上升沿中断 • LDI M8000 • RST T246 //解除对T246的复位 • LD M8000 • RST Y0 //复位测量结束标志 • RST D0 //清楚测量结果 • OUT T246 K32767 //启动1ms定时器T246 • IRET • I201 //X2上升沿中断 • LD<> K0 T246//如果T246当前值不为0 • MOV T246 D0 • SET Y0 • LDI Y0 • OUT T246 K1 //停止定时 • LD M8000 • RST T246 • IRET • END

  21. 中断实例

  22. CALL P8 主程序 X1 … FEND Y21 Y30 Y1 X12 P8 子程序 … X11 SRET … 四、主程序结束指令 FNC06 FEND • 无操作数 • 梯形图

  23. 说明 • 与END指令的功能一样,执行到该指令时程序返回到0步。 • 中断服务子程序和子程序应该写在FEND之后,并且用IRET和SRET返回。 • 如果多次使用FEND指令,在最后的FEND和END之间编写子程序或中断子程序

  24. 五 监视定时器指令 ■监视定时器指令WDT(P) 监视定时器缺省值为200ms(可用D8000来设定)

  25. 五、警戒定时器指令 FNC07 WDT • 警戒定时器是一个专用定时器,其设定值存放在特殊的数据寄存器D8000中,并以ms为计时单位。 • 当PLC一上电,则对警戒定时器进行初始化,将K100(设定值为100ms)装入D8000中,每个扫描周期结束时,马上刷新警戒定时器的当前值,使PLC能正常运行。 • 当扫描周期大于100ms时,即超过了警戒定时器的设定值,警戒定时器的逻辑线圈被接通,CPU立即停止执行用户程序,同时切断全部输出,并且报警显示。

  26. 六、循环指令 • 循环开始 FNC08 FOR • 操作数 [S]: K,H、KnX、KnY、KnM、KnS、T、C、D、V,Z • 循环结束 FNC09 NEXT 无操作数 • 说明 • n为循环次数,其范围为1~32767有效。如果指定为-32768~0,则作n=1处理。 • 循环指令最多可以嵌套5级。 • 程序中FOR-NEXT是成对出现的,FOR在前,NEXT在后不可倒置,否则出错。 • 编程时NEXT应该在FEND或END之前,否则出错。

  27. 六、循环指令 例子6-7在X1上升沿,将50、55、60…90分别送D10~D18 LDP X1 RST Z MOV K50 D10 FOR K8 ADD D10Z K5 D11Z INC Z NEXT

  28. 第三节 传送和比较指令 一、比较指令 FNC10 CMP 二、区间比较指令 FNC 11 ZCP 三、传送指令 FNC 12 MOV 四、移位传送指令 FNC 13 SMOV 五、取反传送指令 FNC 14 CML 六、块传送指令 FNC 15 BMOV 七、多点传送指令 FNC 16 FMOV 八、数据交换指令 FNC 17 XCH 九、变换指令 FNC 18 BCD FNC 19 BIN

  29. CMP K100 C10 M0 X0 [S1] [S2] [D] M0 C10<k100时,M0 = ON M1 C10=K100时,M1 = ON M2 C10>k100时,M2 = ON 一、比较指令 FNC10 CMP • 操作数 [S1]、[S1] : K,H、KnX、KnY、KnM、KnS、T、C、D、 V,Z [D]:Y、M、S • 梯形图

  30. 说明 • 该指令是将源操作数[S1]和[S2]的中数据进行比较,结果送目标操作数[D]中去。 • [D]由3个元件组成,指令中[D]给出首地址,其它两个为后面的相邻元件。 • 当X0由ON→OFF时,不执行CMP指令,M0~M2保持断开前的状态,用复位指令RST才能清除比较结果。 • CMP是进行二进制代数比较。 • 可以32位二进制数比较和脉冲执行方式。 • 如果指令中指定的操作数不全、元件超出范围、软元件地址不对时,程序出错。

  31. 区间比较指令 FNC1 ZCP

  32. X0 MOV D10 K100 二、传送指令 FNC12 MOV • 操作数 [S1]、[S1] : K,H、KnX、KnY、KnM、KnS、T、C、D、 V,Z [D]:KnY、KnM、KnS、T、C、D、V,Z • 梯形图 K100→(D10)

  33. 说明 • 该指令将源操作数[S]中的数据传送到目标操作数[D]中去。 • MOV指令可以进行(D)和(P)操作。 • 如果[S]为十进制常数,执行该指令时自动转换成二进制数后进行数据传送。 • 当X0断开时,不执行MOV指令,数据保持不变。

  34. 三、取反传送指令 FNC14 CML • 操作数 [S]:K,H、KnX、KnY、KnM、KnS、T、C、D、V,Z [D]:KnY、KnM、KnS、T、C、D、V,Z • 说明 • 该指令把源操作数[S]中的数据各位取反(1→0,0→1)后传送到目标操作数[D]中去。 • 该指令可以16/32位数据处理和连续/脉冲执行方式

  35. (D0) (K1Y0) X0 [S] [D] CML D0 K1Y0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 符号位 取反传送 0101 保持不变 Y3 Y0 • 梯形图 若源操作数中的数为十进制常数时,将自动转换成二进制 .

  36. 移位传送指令SMOV SMOV(P) m1:从哪一位开始移动 m2:移动多少位

  37. LD M8000 OUT M8168 //BCD码方式 MOV K1X0 D0 MOV K2X20 D1 SMOV D0 K1 K1 D1 K3

  38. 块传送指令BMOV BMOV(P) • 是将源操作数指定元件开始的n个数据组成数据块传送到指定的目标。

  39. 使用块传送指令时应注意: 1)源操作数可取KnX、 KnY、KnM、KnS、T、C、D和文件寄存器,目标操作数可取. KnT、KnM、KnS、T、C和D 2)只有16位操作,占7个程序步; 3)如果元件号超出允许范围,数据则仅传送到允许范围的元件。

  40. 多点传送指令FMOV (D)FMOV(P) 是将源操作数中的数据传送到指定目标开始的n个元件中,传送后n个元件中的数据完全相同。

  41. 使用多点传送指令FMOV时应注意: 1)源操作数可取所有的数据类型,目标操作数可取KnX、KnM、KnS、T、C、和D,n小等于512; 2)16位操作占7的程序步,32位操作则占13个程序步 3)如果元件号超出允许范围,数据仅送到允许范围的元件中。

  42. (D0) (D1) X0 [D1] [D2] XCH(P) D0 D1 四、数据交换指令 FNC17 XCH • 操作数 [D1]、[D2]:KnY、KnM、KnS、T、C、D、V,Z • 梯形图 • 注意 交换指令一般要在脉冲方式执行,否则不能正常工作。

  43. X0 [S] [D] BCD D10 K2Y0 X1 [S] [D] BIN K2Y0 D14 五、变换指令 FNC18 BCD FNC19 BIN • 梯形图

More Related