66

Click here to load reader

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

  • Upload
    lesley

  • View
    153

  • Download
    6

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

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

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

基本指令和步进指令对一般开关控制已经足够。

功能指令(也称应用指令)相当子程序,厂家开发。

位元件:只能为 1或 0。如 X、Y、M、S。 字元件:可存放 16位数据。如 T、C、D、

V、Z。

功能指令有连续执行和脉冲执行(指令名称后+P,如 ADDP)两种。

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

一、基本格式一、基本格式 操作码与操作数

操作码(指令助记符):表示指令的功能 操作数:指明参与操作的对象

源操作数 S:执行指令后收据不变的操作数,两个或 两个以上时为 S1 、 S2 。目标操作数 D:执行指令后收据被刷新的操作数,两 个或两个以上时为 D1、 D2 。其它操作数 m、 n:补充注释的常数,用 K(十进制)

和 H(十六进制)表示,两个或 两个以上时为 m1 、 m2 、 n1 、 n2 。

X0

MOV D0 D1 (D0)→(D1)

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

位元件:只处理开关( 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

二、数据格式二、数据格式

Page 5: 第六章   FX 系列 PLC 的应用指令
Page 6: 第六章   FX 系列 PLC 的应用指令

数据长度16 位:参与运算的数据默认为 16位二进制数据32 位: 32 位数据时在操作码前面加 D( Double)

三、数据长度及执行方式三、数据长度及执行方式

X0

MOV D0 D1

X1

DMOV D2 D4

(D0)→(D1)

(D3D2)→(D5D4)

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

执行方式连续执行方式:每个扫描周期都重复执行一次脉冲执行方式:只在信号 OFF→ON 时执行一次,在指令后加 P( Pulse )。

X0

MOV D0 D1

X1

MOVP D2 D4

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

变址:改变操作数的地址变址寄存器的作用:存放改变地址的数据实际地址 =当前地址 +变址数据 32 位运算时 V和 Z组合使用, V为高 16位, Z为低 1

6位。X0

MOV K8 V

X1MOV K4 Z

MOV D0V D10ZX2

V=(8)

Z=(4)

(D8)→(D14)

四、变址寄存器四、变址寄存器 VV 、、 ZZ

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

五、常用特殊辅助继电器五、常用特殊辅助继电器功能指令执行结果的标志

M8020 :零标志M8021 :借位标志M8022 :进位标志M8029 :执行完毕标志M8064 :参数出错标志M8065 :语法出错标志M8066 :电路出错标志M8067 :运算出错标志

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

第二节 程序流控制第二节 程序流控制

一、条件跳转指令 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

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

一、条件跳转指令 一、条件跳转指令 FNC00 CJFNC00 CJ操作数:指针 P0 ~ P127, 末指针为 END

所在步梯形图

X10X10

X11X11

Y1Y1X12X12

P0

CJCJ P0P0

CJCJ P0P0

指令表步序 操作码 操作数 0 LD X10 1 CJ P0 4 。。。 10 LD X11 11 CJ P0 。。。。 20 P0 21 LD X12 22 OUT Y1

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

说明 CJ 指令跳过部分程序,可以缩短程序的运算周期。 如果积算型定时器和计数器的 RST 指令在跳转程序之内,即

使跳转程序生效, RST 指令仍然有效。 该指令可以连续和脉冲执行方式。 被跳过去的程序中各元件的状态为

Y 、 M、 S保持跳转前状态不变。普通计数器停止计数并保持当前值,高速计数器继续计数。未工作的定时器不动作,已动作的定时器保持当前值。 T192 ~ T199 跳转时仍然计时。

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

在一个程序中一个标号只能出现一次

功能指令在跳转时不执行,但 PLSY,PLSR,PWM指令除外。

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

二、子程序指令二、子程序指令子程序调用 FNC01 CALL 操作数:指针 P0~ P62 子程序返回 FND02 SRET 无操作数说明

子程序应该在主程序结束之后编程。CJ 指令的指针与 CALL 的指针不能重复。主程序允许嵌套,嵌套级别最多为 5级。子程序只能用 T192 ~ T199 和 T246 ~ T249 作定时器。

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

梯形图 X1X1

FENDFEND

SRETSRET

P8

CALLCALL P8P8

Y1Y1

X12X12

Y21Y21

X11X11

Y30Y30

……

主程序

子程序

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

三、中断指令三、中断指令中断返回 FNC03 IRET 开中断 FNC04 EI 关中断 FNC05 DI均无操作数梯形图

开中断范围

X0

I100

X10FEND

IRET

EI

DI

IRET

I101中断子程序 2

中断子程序 1

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

说明在执行某个中断子程序时,禁止其它中断请求。中断程序允许嵌套,嵌套级别为 2级。中断指针共有 15个:输入中断 6个,定时器中断 3个,计数器中断 6个。

中断程序用 T192 ~ T199 和 T246 ~ T249 作定时器。中断的优先级别

多个中断信号不同时产生时,按先后顺序中断。多个中断信号同时产生时,按指针大小中断。

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

(2) 用于中断的指针

I10 99ms~定时器中断

6 8号( ~ )定时器中断指针

I 0 0:下降沿中断1:上升沿中断输入号

外部中断指针

例: I000

I101

I 01 6= ~

计数器中断指针

0

中断指针应放在 FEND 指令之后。

X0~X5

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

( 2 )中断指针注意:

1 )当 M8050 ~ M8058 为 ON 时,禁止执行相应I0□□ ~ I8□□ 的中断, M8059 为 ON 时则禁止所有计数器中断;

3 )无需中断禁止时,可只用 EI 指令,不必用 DI

指令 ;4 )执行一个中断服务程序时,如果在中断服务程

序中有 EI 和 DI ,可实现二级中断嵌套,否则禁止其它中断。

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

输入编号 指针编号 禁止中断指令上升中断 下降中断

X000 I001 I000 M8050

X001 I101 I100 M8051

X002 I201 I200 M8052

X003 I301 I300 M8053

X004 I401 I400 M8054

X005 I501 I500 M8055

Page 21: 第六章   FX 系列 PLC 的应用指令
Page 22: 第六章   FX 系列 PLC 的应用指令
Page 23: 第六章   FX 系列 PLC 的应用指令
Page 24: 第六章   FX 系列 PLC 的应用指令

例子 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

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

例子 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

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

中断实例

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

无操作数梯形图

X1X1

FENDFEND

SRETSRET

P8

CALLCALL P8P8

Y1Y1

X12X12

Y21Y21

X11X11Y30Y30

……

主程序

子程序

四、主程序结束指令 四、主程序结束指令 FNC06 FENDFNC06 FEND

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

说明与 END 指令的功能一样,执行到该指令时程序返回到 0 步。

中断服务子程序和子程序应该写在 FEND 之后,并且用 IRET 和 SRET返回。

如果多次使用 FEND 指令,在最后的 FEND 和 END 之间编写子程序或中断子程序

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

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

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

警戒定时器是一个专用定时器,其设定值存放在特殊的数据寄存器 D8000 中,并以 ms为计时单位。

当 PLC 一上电,则对警戒定时器进行初始化,将 K100(设定值为 100ms )装入 D8000 中,每个扫描周期结束时,马上刷新警戒定时器的当前值,使 PLC 能正常运行。

当扫描周期大于 100ms 时,即超过了警戒定时器的设定值,警戒定时器的逻辑线圈被接通, CPU立即停止执行用户程序,同时切断全部输出,并且报警显示。

五、警戒定时器指令 五、警戒定时器指令 FNC07 WDTFNC07 WDT

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

循环开始 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 之前,否则出错。

六、循环指令六、循环指令

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

六、循环指令六、循环指令例子 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

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

第三节 传送和比较指令第三节 传送和比较指令一、比较指令 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

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

操作数[S1]、 [S1] : K,H 、 KnX 、 KnY 、 KnM 、 KnS 、 T、

C、 D、 V,Z[D]: Y、 M、 S梯形图

[S1]

C10<k100 时, M0 = ON

C10=K100 时, M1 = ON

C10>k100 时, M2 = ON

M0

M1

M2

X0 [S2] [D]

CMP K100 C10 M0

一、比较指令 一、比较指令 FNC10 CMPFNC10 CMP

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

说明该指令是将源操作数 [S1]和 [S2]的中数据进行比较,结果送目标操作数 [D]中去。

[D] 由 3 个元件组成,指令中 [D] 给出首地址,其它两个为后面的相邻元件。

当 X0由 ON→OFF 时,不执行 CMP 指令, M0~ M2 保持断开前的状态,用复位指令 RST才能清除比较结果。

CMP 是进行二进制代数比较。可以 32位二进制数比较和脉冲执行方式。如果指令中指定的操作数不全、元件超出范围、软元件地址不对时,程序出错。

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

区间比较指令 区间比较指令 FNC1 ZCPFNC1 ZCP

Page 37: 第六章   FX 系列 PLC 的应用指令
Page 38: 第六章   FX 系列 PLC 的应用指令

操作数[S1]、 [S1] : K,H 、 KnX 、 KnY 、 KnM 、 KnS 、 T、

C、 D、 V,Z[D]: KnY 、 KnM 、 KnS 、 T、 C、 D、 V,Z

梯形图

X0

MOV K100 D10 K100→(D10)

二、传送指令 二、传送指令 FNC12 MOVFNC12 MOV

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

说明该指令将源操作数 [S]中的数据传送到目标操作数[D]中去。

MOV 指令可以进行( D)和( P)操作。如果 [S]为十进制常数,执行该指令时自动转换成二进制数后进行数据传送。

当 X0断开时,不执行 MOV 指令,数据保持不变。

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

操作数[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 位数据处理和连续 /脉冲执行方式

三、取反传送指令 三、取反传送指令 FNC14 CMLFNC14 CML

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

梯形图

CML D0 K1Y0

X0 [D][S]

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

0101

符号位 取反传送

保持不变 Y0Y3

(D0) (K1Y0)

若源操作数中的数为十进制常数时 ,将自动转换成二进制 .

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

移位传送指令移位传送指令 SMOV SMOV(P)SMOV SMOV(P)

m1: 从哪一位开始移动

m2: 移动多少位

Page 43: 第六章   FX 系列 PLC 的应用指令
Page 44: 第六章   FX 系列 PLC 的应用指令

LD M8000

OUT M8168 //BCD 码方式

MOV K1X0 D0

MOV K2X20 D1

SMOV D0 K1 K1 D1 K3

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

块传送指令块传送指令 BMOV BMOV(P)BMOV BMOV(P)

是将源操作数指定元件开始的 n 个数据组成数据块传送到指定的目标。

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

使用块传送指令时应注意:1 )源操作数可取 KnX 、 KnY 、 KnM 、 KnS 、

T 、 C 、 D 和文件寄存器,目标操作数可取 . KnT 、 KnM 、 KnS 、 T 、 C 和 D

2 )只有 16 位操作,占 7 个程序步; 3 )如果元件号超出允许范围,数据则仅传送

到允许范围的元件。

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

多点传送指令多点传送指令 FMOV (D)FMOV(P)FMOV (D)FMOV(P)

是将源操作数中的数据传送到指定目标开始的 n 个元件中,传送后 n 个元件中的数据完全相同。

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

使用多点传送指令使用多点传送指令 FMOVFMOV 时应注意:时应注意:1 )源操作数可取所有的数据类型,目标操作

数可取 KnX 、 KnM 、 KnS 、 T 、 C 、和 D ,n 小等于 512 ;

2 ) 16 位操作占 7 的程序步, 32 位操作则占 13 个程序步

3 )如果元件号超出允许范围,数据仅送到允许范围的元件中。

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

操作数 [D1]、 [D2]: KnY 、 KnM 、 KnS 、 T、 C、 D、 V,Z梯形图

[D1]X0

XCH ( P ) D0 D1

[D2]

(D0) (D1)

四、数据交换指令 四、数据交换指令 FNC17 XCHFNC17 XCH

注意 交换指令一般要在脉冲方式执行 ,否则不能正常工作。

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

梯形图

[S]X0

BCD D10 K2Y0

[D]

[S]X1

BIN K2Y0 D14

[D]

五、变换指令 五、变换指令 FNC18 BCDFNC18 BCD

FNC19 BINFNC19 BIN

Page 51: 第六章   FX 系列 PLC 的应用指令
Page 52: 第六章   FX 系列 PLC 的应用指令

BIN 变换指令 BIN (D)BIN(P)

BIN 是将源元件中的 BCD 数据转换成二进制数据送到目标元件中 。

使用 BCD/BIN 指令时应注意: 源操作数为 KnX 、 KnY 、 KnM 、 KnS 、

T 、 C 、 D 、 V 和 Z 目标操作数没有 KnX

Page 53: 第六章   FX 系列 PLC 的应用指令
Page 54: 第六章   FX 系列 PLC 的应用指令
Page 55: 第六章   FX 系列 PLC 的应用指令
Page 56: 第六章   FX 系列 PLC 的应用指令

3

KM2

Page 57: 第六章   FX 系列 PLC 的应用指令
Page 58: 第六章   FX 系列 PLC 的应用指令

第四节 算术与逻辑运算指令第四节 算术与逻辑运算指令一、二进制加减运算指令 加法 FNC20 ADD 减法 FNC21 SUB梯形图

[S1]X0

ADD D0 D2 D4

[D]

[S1]X1

DSUB D10 D12 D14

[D]

[S2]

[S2]

(D0)+ ( D2 ) ( D4 )

(D11D10)– ( D13D12 ) ( D15D14 )

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

说明指令是代数加减运算,数据的最高位为符号位。进行 16位加减运算时,数据范围为- 32768 ~+ 32767 ; 32 位运算时,数据范围为- 2147483648 ~+2147483647 。

运算结果为 0时,零标志置位( M8020=1 );运算结果大于+ 32767 (或+ 2147483647 )时,进位标志置位( M8022=1 );运算结果小于- 32768 (或- 2147483648 )时,借位标志置位( M8021=1 )。

该指令可以进行连续 /脉冲执行方式。

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

加 1 FNC24 INC 减 1 FNC25 DEC操作数[D]: KnY 、 KnM 、 KnS 、 T、 C、 D、 V,Z梯形图

X0

INC ( P ) D10

[D]

X1

DEC ( P ) D12

[D]

(D10)+1 ( D10 )

(D12)–1 ( D12 )

二、二进制加二、二进制加 11 减减 11 指令指令

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

说明上述指令可以连续 /脉冲执行方式,应用中要特别注意。

可以进行 16/32 位运算,并且为二进制运算。如果从 +32767 (或 +2147483647 )再加 1,则变成 -32768 (或 -2147483648 );如果从 -32768(或 -2147483648 )再减 1 ,则变成 +32767 (或 +2147483647 ),为循环计数。

以上变化时标志位不动作,也就是说这两条指令和零标志、借位标志、进位标志无关。

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

逻辑与 FNC26 WAND 逻辑或 FNC27 WOR 逻辑异或 FNC28 WXOR操作数[[S1]、 [S2]: K、 H、 KnX 、 KnY 、 KnM 、 KnS 、 T、

C、 D、 V,Z [D]: KnY 、 KnM 、 KnS 、 T、 C、 D、 V,Z

三、逻辑运算指令三、逻辑运算指令

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

( D0 )∧ ( D2 ) →( D4 )

( D10 )∨( D12 ) →( D14 )

( D20 ) ( D22 ) →( D24 )

[S1]X0

WAND D0 D2 D4

[D]

WOR D10 D12 D14

[S2]

WXOR D20 D22 D24

异或非运算的梯形图X0

WXOR D10 D12 D14

CML D14 D14 ( D14 ) →( D14 )

梯形图

( D10 ) ( D12 ) →( D14 )

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

说明 各数据的对应位进行二进制与、或、异或运算。 32 位数据运算时,助记符为 DAND 、 DOR 、 DXOR 。 指令运算规则如下:

逻辑与1 1= 1∧1 0= 0∧0 1= 0∧0 0= 0∧

逻辑或1 ∨ 1= 1

1 ∨ 0= 1

0 ∨ 1= 1

0 ∨ 0= 0

逻辑异或1 1= 0

1 0= 1

0 1= 1

0 0= 0

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

操作数[D]: KnY 、 KnM 、 KnS 、 T、 C、 D、 V,Z

X0

NEG D10

[D]

( D10 ) + 1 → ( D10 )

说明求补指令是把二进制数各位取反再加 1后,送入目标操作数 [D]中。实际是绝对值不变的变号操作。

PLC 的负数以二进制的补码形式表示,其绝对值可以通过求补指令求得。

四、求补指令 四、求补指令 FNC19 NEGFNC19 NEG

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

功能指令的格式—梯形图格式和指令表格式 功能指令的位长— 16 位和 32 位 功能指令的执行方式—连续和脉冲方式 4 个位元件组合的 BCD 码表示一位十进制

数 变址寄存器 V 、 Z 的应用 功能指令的标志 M8020 、 M8021 、 M802

2 功能指令的应用

小结小结