项目 6 功能指令的应用

46
项项 6 项项项项项项项

Upload: guang

Post on 15-Jan-2016

69 views

Category:

Documents


0 download

DESCRIPTION

项目 6 功能指令的应用. 引言. PLC 的基本指令是基于继电器、定时器、计数器类等软元件,主要用于逻辑处理的指令。作为工业控制计算机, PLC 仅有基本指令是远远不够的。现代工业控制在许多场合需要数据处理,因而 PLC 制造商在 PLC 中引入应用指令,也称功能指令。 FX 系列 PLC 除了基本指令、步进指令外,还有 200 多条功能指令。可分为程序流向控制、数据传送与比较、算术与逻辑运算、数据移位与循环、数据处理、高速处理、方便指令、外部设备通信( I/O 模块、功能模块)、浮点运算、定位运算、时钟运算、触点比较等几大类。功能指令实际上就是许多功能不同的子程序。. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 项目 6  功能指令的应用

项目 6 功能指令的应用

Page 2: 项目 6  功能指令的应用

2

引言 PLC 的基本指令是基于继电器、定时器、计数器类等软元件,

主要用于逻辑处理的指令。作为工业控制计算机, PLC 仅有基本指令是远远不够的。现代工业控制在许多场合需要数据处理,因而 PLC 制造商在 PLC 中引入应用指令,也称功能指令。 FX 系列 PLC 除了基本指令、步进指令外,还有 200 多条功能指令。可分为程序流向控制、数据传送与比较、算术与逻辑运算、数据移位与循环、数据处理、高速处理、方便指令、外部设备通信( I/O 模块、功能模块)、浮点运算、定位运算、时钟运算、触点比较等几大类。功能指令实际上就是许多功能不同的子程序。

Page 3: 项目 6  功能指令的应用

3

6.1 6.1 工作模块工作模块 1212 八盏流水灯控制程序八盏流水灯控制程序

控制要求:8 盏流水灯每隔 1s 顺序点亮,并不断循环

采用功能指令编程更简单

经验设计法还是顺序功能图设计法?

一、任务导入

Page 4: 项目 6  功能指令的应用

4

1.1. 功能指令的基本格式功能指令的基本格式

梯形图格式

X0

MEAN D0 D10 K3

[D][S] [n]

指令表格式 步序 操作码 操作数 0 LD X0 1 MEAN D0 D10 K3 8 。。。。

)10(3

)2()1()0(D

DDD

二、相关知识

Page 5: 项目 6  功能指令的应用

5

操作码与操作数操作码与操作数

操作码(指令助记符):表示指令的功能操作数:指明参与操作的对象源操作数 S :执行指令后数据不变的操作数,两个或两个以上时 为 S1 、 S2目标操作数 D :执行指令后数据被刷新的操作数,两个或两个以上时为 D1 、 D2 。如果可使用变址功能,用 [S·] 和 [D·] 表示。其它操作数 m 、 n :补充注释的常数,用 K (十进制)和 H(十六进制)表示,作为源和目标操作数的补充说明,两个或以上时为 m1 、 m2 、 n1 、 n2 。

Page 6: 项目 6  功能指令的应用

6

2.2. 数据长度及执行方式数据长度及执行方式

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

X0

MOV D0 D1

X1

DMOV D2 D4

(D0)→(D1)

(D3D2)→(D5D4)

对于 32位功能指令,其助记符在 16位指令助记符上

添加符号 D。

Page 7: 项目 6  功能指令的应用

7

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

X0

MOV D0 D1

X1

MOVP D2 D4

Page 8: 项目 6  功能指令的应用

8

数据格式 在 FX 系列 PLC 内部,数据是以二进制( BIN )补码的形式存储,所有的四则运

算都使用二进制数。 二进制补码的最高位为符号位,正数符号位为 0 ,负数符号位为 1 。 为更精确地进行运算,可采用浮点数运算。在 FX 系列 PLC 中提供了二进制浮点

运算和十进制浮点运算 。

Page 9: 项目 6  功能指令的应用

9

数据寄存器(数据寄存器( DD )) 通用数据寄存器 D0 ~ D199 共 200 点。 只要不写入其它数

据,已写入的数据不会变化。但是 PLC 状态由运行→停止时,全部数据均清零。

断电保持数据寄存器 D200 ~ D511 共 312 点,只要不改写,原有数据不会丢失。

特殊数据寄存器 D8000 ~ D8255共 256 点 这些数据寄存器供监视 PLC 中各种元件的运行方式用。

文件寄存器 D1000 ~ D2999 共 2000 点。

Page 10: 项目 6  功能指令的应用

10

3.3. 传送指令 传送指令 FNC12 MOVFNC12 MOV

传送指令传送指令 FNC12 MOV (D)MOV(P) MOV (D)MOV(P)该指令的功能是将源数据传送到指定的目标。

操作数[S1] : 所有数据类型[D] : KnY、 KnM、 KnS 、 T、 C 、 D 、 V、 Z。

梯形图

K100→D10

Page 11: 项目 6  功能指令的应用

11

(一)(一) I/OI/O 资源分配:资源分配:

输入信号: 起动按钮 X20 停止按钮 X21;输出信号: 8 盏灯 Y0 ~ Y7。

三、任务实施

Page 12: 项目 6  功能指令的应用

12

(二)程序设计(二)程序设计

Page 13: 项目 6  功能指令的应用

13

6.2 6.2 工作模块工作模块 13 13 抢答器控制程序设计抢答器控制程序设计一、任务导入

Page 14: 项目 6  功能指令的应用

14

1.1. 子程序调用指令子程序调用指令 CALLCALL 和子程序返回指令和子程序返回指令 SRETSRET

X001X001

X002X002

T196T196

P10

[CALL P10]X000

( Y000 )

[FEND]

( T196 K10 )

( Y003 )

[SRET]

主程序

子程序

二、相关知识

Page 15: 项目 6  功能指令的应用

15

2.2. 子程序指令子程序指令 子程序调用指令 FNC01 CALL 操作数:指针 P0 ~ P127 子程序返回指令 FNC02 SRET 无操作数 说明

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

Page 16: 项目 6  功能指令的应用

16

3.3. 主程序结束指令主程序结束指令 FENDFEND 主程序结束指令 FEND无操作数。 FEND 表示主程序结束,当执行到 FEND 时, PLC 进行输入 /输出处理,监视定时器刷新,完成后返回起始步。

END 是指整个程序(包括主程序和子程序)结束。 一个完整的程序可以没有子程序,但一定要有主程序。

使用 FEND 指令时应注意:( 1 )子程序和中断服务程序应放在 FEND之后。( 2 )子程序和中断服务程序必须写在 FEND 和 END之间,否则出错。

Page 17: 项目 6  功能指令的应用

17

(( 一一 )I/O)I/O 资源分配资源分配

输   入 输   出

输入继电器 输入元件 作 用 输出继电器 控制对象

X0 SD 主持人开始 Y0~ Y6 a ~ g7 段显示码

X1 SR 主持人复位 Y7~ Y12 1 ~ 4队显示

X2 ~ X5 S1 ~ S4 队抢答 1~ 4队抢答

三、任务实施

Page 18: 项目 6  功能指令的应用

18

(二)程序设计(二)程序设计

Page 19: 项目 6  功能指令的应用

19

6.3 6.3 工作模块工作模块 14 14 自动售货机的自动售货机的 PLCPLC 控制控制

控制要求:

① 此自动售货机可投入 1 元、 5元或 10 元硬币,投完币后,确认,投币显示灯灭。

② 当投入的硬币总值等于或超过 12 元时,食品指示灯亮;当投入的硬币总值超过 15元时,食品、饮料指示灯都亮。

③ 当食品指示灯亮时,按食品按钮选择要购买的食品,按购买键确认后,食品指示灯灭,出货口指示灯亮,显示正出物品,一会熄灭。

④ 当饮料指示灯亮时,按饮料按钮选择要购买的饮料,按购买键确认后,饮料指示灯灭,出货口指示灯亮,显示正出物品,一会熄灭。

⑤ 若投入硬币总值超过购物所需钱数时,则退币处的指示灯亮,显示正在进行退币工作,退完币后,退币指示灯熄灭,等待下一次售货。

一、任务导入

Page 20: 项目 6  功能指令的应用

20

1.算术运算指令二进制加减运算指令 加法 FNC20 ADD ( Addition ) 减法 FNC21 SUB ( Subtraction )操作数[S1] 、 [S2] : K 、 H 、 KnX 、 KnY、 KnM、 KnS 、 T、 C 、 D 、 V,Z [D] : KnY、 KnM、 KnS 、 T、 C 、 D 、 V,Z梯形图

[S1]X0

ADD D0 D2 D4

[D]

[S1]X1

DSUB D10 D12 D14

[D]

[S2]

[S2]

(D0)+ ( D2 ) ( D4 )

(D11D10)– ( D13D12 ) ( 1D5D14 )

二、相关知识

Page 21: 项目 6  功能指令的应用

21

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

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

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

Page 22: 项目 6  功能指令的应用

22

2. 二进制乘除运算指令 乘法 FNC22 MUL (Multiplication ) 除法 FNC23 DIV ( Division )

操作数[S1] 、 [S2] : K 、 H 、 KnX 、 KnY、 KnM、 KnS 、 T、 C 、 D 、 V,Z [D] : KnY、 KnM、 KnS 、 T、 C 、 D 、 V,Z

梯形图

[S1]X0

MUL D0 D2 D4

[D]

[S1]X1

DDIV D10 D12 D14

[D]

[S2]

[S2]

(D0)× ( D2 ) ( D5D4 )

被乘数 乘数 积

(D11D10)÷ ( D13D12 ) ( 1D5D14 ) ··· ( D17D16 )

被除数 除数 商 余数

Page 23: 项目 6  功能指令的应用

23

说明– 指令进行二进制运算,数据最高位为符号位。– 可以进行 16/32 位乘除运算, 16 位运算时,积为 32 位数

据,商和余数为 16 位数据; 32 位运算时,积为 64位数据,商和余数为 32 位数据。

– 0 作除数时程序出错。被除数和除数中有一个为负数时,商为负数;被除数为负数时,余数也为负数。

– 位元件作为 32 位乘法运算的目标元件时,只能得到积的低32 位数据。

– 可以进行连续 / 脉冲执行方式。

Page 24: 项目 6  功能指令的应用

24

3.3. 比较指令 比较指令 FNC10 CMP FNC10 CMP ( Compare )

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

[D] : Y、M、 S 梯形图 [S1]

K100<C10 的当前值时, M0 = ON

K100=C10 的当前值时, M1 = ON

K100>C10 的当前值时, M2 = ON

M0

M1

M2

X0 [S2] [D]

CMP K100 C10 M0

Page 25: 项目 6  功能指令的应用

25

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

送目标操作数 [D] 中去。 [D] 由 3 个元件组成,指令中 [D]给出首地址,其它两个为

后面的相邻元件。 当 X0 由 ON→OFF 时,不执行 CMP 指令,M0 ~M2保持

断开前的状态,用复位指令 RST才能清除比较结果。 CMP 是进行二进制代数比较。 可以 32 位二进制数比较和脉冲执行方式。 如果指令中指定的操作数不全、元件超出范围、软元件地址

不对时,程序出错。

Page 26: 项目 6  功能指令的应用

26

I/O 资源分配

输  入 输  出

1 元输入 (c) X 0 退币输出 (k) Y 0

5元输入 (d) X 1 出货输出 (j) Y 1

10 元输入 (e) X 2 食品指示灯 (a) Y 2

食品选择 (h) X 3 饮料指示灯 (b) Y 3

饮料选择 (g) X 4

购买输入 (i) X 5

确认输入 (f) X 6

三、任务实施

Page 27: 项目 6  功能指令的应用

27

程序设计

Page 28: 项目 6  功能指令的应用

28

Page 29: 项目 6  功能指令的应用

29

6.4 6.4 工作模块工作模块 15 15 五台电机的启停五台电机的启停

控制要求: 用按钮实现 5 台电机的启停控制。按钮按数次,最后一次保持 1s 以上后,

则号码与次数相同的电机运行,再按按钮,该电机停止。

一、任务导入

Page 30: 项目 6  功能指令的应用

30

解码与编码指令 解码(译码)指令 FNC40 DECO ( Decode ) 编码指令 FNC41 ENCO ( Encode )

DECO 操作数 [S] : K 、 H 、 X 、 Y、M、 S 、 T、 C 、 D 、 V、 Z [D] : Y、M、 S 、 T、 C 、 D

ENCO 操作数 [S] : X 、 Y、M、 S 、 T、 C 、 D 、 V、 [D] : T、 C 、 D 、 V、 Z

二、相关知识

Page 31: 项目 6  功能指令的应用

31

编码与解码指令使用说明 图 a中: X002 ~ X000组成的 3 位( n= 3 )二进制数为 011 ,相当于十进制数 3 ,由目标操作数M7~M0组成的 8 位二进制数的第 3 位(M0 为第 0 位)M3 被置 1 ,其余各位为 0 。如源数据全零,则M0置 1 。 图 b 中: n=3 ,编码指令将源元件M7~M0 中为“ 1”的M3 的位数 3编码为二进制数 011 ,并送到目标元件 D10 的低 3 位。

Page 32: 项目 6  功能指令的应用

32

解:根据控制要求,梯形图如图 6-54所示。输入电机编号的按钮接于 X0 ,电机号数使用加 1 指令记录在 K1M10 中。 DECO 指令则将 K1M10 中的数据解读并令M0右侧和 K1M10 中数据相同的位元件置 1 。M9及 T0用于输入数字确认和停车复位控制。 Y0-Y4 接五台电机。

三、任务实施

Page 33: 项目 6  功能指令的应用

33

6.5 6.5 工作模块工作模块 16 16 机械手的机械手的 PLCPLC 控制控制

一、任务导入SQ4 SQ3

SQ2

上 升YV2

下 降YV1

右行 YV3

左行 YV4

YV5SQ1

图 23-7 机械手动作示意图

松开

夹紧

工件A B

图 机械手动作示意图

Page 34: 项目 6  功能指令的应用

34

控制要求: 如上图所示是一气动机械手,其功能是将工件从A处送到 B 处。气动机械手的升降和左右移行分别使用了双线圈的电磁阀,在某方向的驱动线圈失电时能保持在原位,必须驱动反方向的线圈才能反向运动。上升、下降对应的电磁阀线圈分别是 YV2 、 YVl ,右行、左行对应的电磁阀线圈分别是 YV3 、 YV4。机械手的夹钳使用单线圈电磁阀 YV5,线圈通电时夹紧工件,断电时松开工件。通过设置限位开关 SQl 、 SQ2 、 SQ3 、 SQ4分别对机械手的下降、上升、右行、左行进行限位,而夹钳不带限位开关,它是通过延时 1.7s来表示夹紧和松开动作的完成。

Page 35: 项目 6  功能指令的应用

35

状态初始化指令 状态初始化指令 FNC60 IST( Initial State )与步进梯形 STL

指令一起使用, 用于自动 设置多种工作方式的控制系统的初始状态,以及设置

有关的特殊辅助 继电器的状态。指令中 S 指定运行模式的初始输入。

操作数[S] : X 、 Y、 M[D1] [D2] : S20 ~ S899 D1<D2

状态初始化及数据搜索指令使用说明

二、相关知识

Page 36: 项目 6  功能指令的应用

36

IST指令的源操作数可取 X 、 Y和M,用来指定与工作方式有关的首地址,它实际指定了从首址开始的 8 个连续号的同类元件具有以下意义:

X20 :手动 X24:连续运行(全自动) X21 :回原点 X25:回原点启动 X22 :单步运行 X26 :自动运行启动 X23 :单周运行(半自动) X27:停止 IST指令的目标操作数[ D1·]和[ D2·]用来指定在自动 操作中用到的状态元件的最低和最高元件号,可取 S20 ~ S899 。 IST指令执行条件满足时, S0 、 S1 、 S2 和下列特殊辅助继电器

被自动设定为以下功能;若以后执行条件变为 OFF ,这些元件 的功能仍然保持不变

Page 37: 项目 6  功能指令的应用

37

回原位

SB1

SB2

SB3

SB4

SB5

SB6

SB7

SB8

SB9

启动

停止

下降

上升

右行

左行

夹紧

放松

回原位

手动连续

单周期单步

图 23-8 机械手操作面板示意图如上图所示为机械手的操作面板,机械手能实现手动、回原位、单步、单周期和连续等五种工作方式。手动工作方式时,用各按钮的点动实现相应的动作;回原位工作方式时,按下“回原位”按钮,则机械手自动返回原位;单步工作方式时,每按一次启动按钮,机械手向前执行一步;选择单周期工作方式时,每按一次启动按钮,机械手只运行一个周期就停下;连续工作方式时,机械手在原位,只要按下启动按钮,机械手就会连续循环动作,直到按下停止按钮,机械手才会最后运行到原位并停下;而在传送工件的过程中,机械手必须升到最高位置才能左右移动,以防止机械手在较低位置运行时碰到其他工件。

三、任务实施

Page 38: 项目 6  功能指令的应用

38

I/O 资源分配输入信号 输出信号

名称 代号 输入点编号 名称 代号 输入点编号手动挡 SA X0 松开按钮 SB8 X15

回原位挡 SA X1 下限位开关 SQ1 X16

单步挡 SA X2 上限位开关 SQ2 X17

单周期挡 SA X3 右限位开关 SQ3 X20

连续挡 SA X4 左限位开关 SQ4 X21

回原位按钮 SB9 X5

启动按钮 SB1 X6 输出信号停止按钮 SB2 X7 名称 代号 输出点编号下降按钮 SB3 X10 下降电磁阀线圈 YV1 Y0

上升按钮 SB4 X11 上升电磁阀线圈 YV2 Y1

右行按钮 SB5 X12 右行电磁阀线圈 YV3 Y2

左行按钮 SB6 X13 左行电磁阀线圈 YV4 Y3

夹紧按钮 SB7 X14 松紧电磁阀线圈 YV5 Y4

Page 39: 项目 6  功能指令的应用

39

( 2) PLC 接线图

SB1

SB9

SB2

SB3

SB4

SB5

SB6

SB7

SB8

SQ1

SQ2

SQ3

SQ4

COM

COM

Y0

Y1

Y2

Y3

Y4

YV1

YV2

YV3

YV4

YV5

X21

X20

X17

X16

X15

X14

X13

X12

X11

X10

X7

X6

X5

X4

X3

X2

X1

X0L

N

FU

FU

~220V

~220V

PLC

下降

上升

右行

左行

夹紧

夹紧

左限位

右限位

上限位

下限位

松开

夹紧

左行

右行

上升

下降

停止

启动

回原位

连续单周期单步回原位 SA

机械手控制系统 PLC 的 I/O接线图

Page 40: 项目 6  功能指令的应用

40

S0

( b ) 手动方式程序

Y4

X15

X11

X13

松开

X14

X17

X16X10

X12

X17

X17

X21

X20

Y0

Y1

Y2

Y3

Y3

Y2

Y0

Y1

RST

SET Y4 夹紧

上升

下降

左行

右行

手动方式初始状态X21 X17 Y4

M8044

S27S20X0IST

M8000

松开左限 右限

( a )初始化程序

S11

X21 Y3

RST Y1

S10

X17 Y1

RST Y4 松开

RST Y0

S12 回原位结束

RST Y4

S1

X5

上升

左行

SET M8043

( c )回原位方式程序

回原位初始状态

Y0S20

S21

X16

T0 T0

Y1S22

X17

X18

Y2S23

Y0S24

S25

X16

T1

Y1S26

X17

X21

Y3S27

T1

SET

RST

Y4

Y4

下降

下限位

下限位

上限位

上限位

下降

上升

上升

夹紧

松开

左行

右行

右限位

M8041

M8044

S2

状态转移开始

自动方式初始状态

原位位置条件

( d )自动方式顺序功能图

K17

K17

机械手的控制程

Page 41: 项目 6  功能指令的应用

41

6.6 其他一些功能指令(一)块传送指令 (一)块传送指令 FNC15 BMOVFNC15 BMOV

[S] [D] nX000

[ BMOV D5 D10 K3 ]

D7

D6

D5

D12

D11

D10

操作数 [S] : K,H 、 KnX 、 KnY 、 KnM 、 KnS 、 T、 C、 D、 V,Z [D] : KnY 、 KnM 、 KnS 、 T、 C、 D、 V,Z n : K、 H

Page 42: 项目 6  功能指令的应用

42

块传送指令 块传送指令 FNC15 BMOVFNC15 BMOV 说明

[S] 为存放被传送的数据块的首地址; [D] 为存放传送来的数据块的首地址; n 为数据块的长度。

位元件进行传送时,源和目标操作数要有相同的位数。当传送地址号重叠时,为防止在传送过程中数据丢失(被覆盖),要先把重叠地址号中的内容送出,然后再送入数据。如图所示,采用①~③的顺序自动传送。

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

Page 43: 项目 6  功能指令的应用

43

块传送指令 块传送指令 FNC15 BMOVFNC15 BMOVX000

[ BMOV K1M0 K1Y0 K2 ]

X001

[ BMOV D10 D9 K3 ]X002

[ BMOV D10 D11 K3 ]

n = K2

M2

M1

M0

M3

Y2

Y1

Y0

Y3

M6

M5

M4

M7

Y6

Y5

Y4

Y7

D12

D11

D10

D11

D10

D9

D12

D11

D10

D13

D12

D11

Page 44: 项目 6  功能指令的应用

44

(二)取反传送指令 (二)取反传送指令 FNC14 CMLFNC14 CML

[S] [D]X000

[ CML D0 K1Y0 ] (D0) (K1Y0)

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

D0

保持不变

0 1 0 1

Y3 Y0

符号位 取反传送若源操作数中的数为十进制常数时 ,将自动转换成二进

Page 45: 项目 6  功能指令的应用

45

取反传送指令 取反传送指令 FNC14 CMLFNC14 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 位数据处理和连续 / 脉冲执行方式

Page 46: 项目 6  功能指令的应用

46

多点传送指令 多点传送指令 FNC16 FMOVFNC16 FMOV

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

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

n[S] [D]X000

[ FMOV K10 D0 K10 ] 把 K10 传送到 D9~D0 中去