cpm1a 系列 plc 的指令系统

232

Click here to load reader

Upload: candid

Post on 20-Mar-2016

109 views

Category:

Documents


8 download

DESCRIPTION

第三章. CPM1A 系列 PLC 的指令系统. 回到 主目录. 熟练掌握 PLC 的基本指令、编制梯形图的注意事项;熟练掌握分支程序的处理方法;熟练掌握定时器 / 计数器指令;数据比较 CMP 指令;数据移位 SFT 指令;数据传送 MOV 等指令。掌握其它应用指令的用法。能够读懂梯形图程序和语句表程序,并能够互相转换;能够编写简单的梯形图程序。. §3-1 概 述. §3-2 基本指令. §3-3 常用的应用指令. §3-4 数据传送和数据比较指令. 目 录. §3-5 数据移位和数据转换指令. §3-6 数据运算指令. §3-7 子程序控制指令. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

回到主目录

Page 2: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器 熟练掌握 PLC 的基本指令、编制梯形图的注意事项;熟练掌握分支程序的处理方法;熟练掌握定时器 / 计数器指令;数据比较 CMP 指令;数据移位 SFT 指令;数据传送 MOV 等指令。掌握其它应用指令的用法。能够读懂梯形图程序和语句表程序,并能够互相转换;能够编写简单的梯形图程序。

Page 3: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-1 概 述§3-2 基本指令§3-3 常用的应用指令§3-4 数据传送和数据比较指令§3-5 数据移位和数据转换指令§3-6 数据运算指令§3-7 子程序控制指令§3-8 高速计数器控制指令§3-9 脉冲输出控制指令§3-10 中断控制指令§3-12 特殊指令§3-11 步进指令

目录

Page 4: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-1 概述 1. CPM1A 指令分类

直接对输入、输出进行操作。进行数据处理、运算和程序控制等操作。

基本指令应用指令

2. CPM1A 指令格式 助记符(指令码) [ 操作数

1] [ 操作数 2]

[ 操作数 3]

助记符:表示指令的功能 指令码:是指令的代码操作数:提供指令执行的对象或数据

Page 5: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

操作数可以是通道号、继电器号或常数。 操作数的个数,取决于各种指令的需要。

★ 关于操作数的讨论

操作数设为常数时,在数据前面要加 # 号。 操作数采用哪种进制,取决于指令的需要。 间接寻址的操作数用 *DM×××× 来表示。 间接寻址的操作数,是以 DM×××× 中的数据为地址的另一个 DM 通道中的数据。 DM×××× 中 的 内容 必须是 BCD 码,且不得超出 DM 区的范围。

Page 6: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例如,计数器指令的格式为 CNT000

SV

000 是计数器的编号 SV 是操作数若 SV = 200

表明 000 号计数器的设定值是 200 通道中的内容。 若 SV= # 0200

表明 000 号计数器的设定值是常数 200 。

Page 7: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例如:计数器的指令格式为 CNT000

*DM1000

设 DM1000 的内容为 0010

则 000 号计数器的设定值是 2500

设 DM0010 的内容为 2500

如果设 DM1000 的内容为 9990

如果设 DM1000 的内容 08FA

超出 DM 范围非 BCD 码

Page 8: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器 3. 执行指令对标志位的影响SR 区的 25503 ~ 25507 是指令执行结果的标志位。某些指令的执行结果影响标志位 25503 ~ 25507 的状态。标志位 25503 ~ 25507 的状态表示的意义要牢记。ER ( 25503 ): 出错标志位。 25503 ON 时,表示当前执行的程序出错且停止执行。CY ( 25504 ):进位标志位GR ( 25505 ):大于标志EQ ( 25506 ):等于标志LE ( 25507 ):小于标志

当执行指令 END ( 01 )时,以上标志均置为 OFF

Page 9: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器 4. 指令的微分、非微分形式微分型:要在指令的助记符前加标记 @ 。 两种指令的区别 非微分型指令:只要其执行条件为 ON ,每个扫描周期都执行该指令。 微分型指令:仅在指令的执行条件由 OFF 变为 ON 时才执行一次。

返 回

Page 10: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

基本指令是最常用的指令要牢记 : 指令的功能、格式、符号和代码;指令操作数的范围;执行各指令对标志位的影响。

Page 11: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

1. LD 和 LD NOT 指令

N N

N :继电器编号IR , SR , HR , AR , LR , TC, TR

LD : 常开触点与母线相连LD NOT :常闭触点与母线相连

不影响标志位LD 、 LD NOT 只能以位为单位进行操作

功能§3-2-1 常用的基本指令

Page 12: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器2. OUT 和 OUT NOT 指令

N :继电器编号IR , SR , HR , AR , LR, TR

N N

功能OUT :指令输出逻辑运算结果OUT NOT :逻辑运算结果取反后输出OUT 、 OUT NOT 只能以位为单位进行操作不影响标志位

Page 13: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

( 1 ) . 若输出位为 PLC 的输出点,则运算结果输出到 PLC

外部 若输出位为 PLC 的内部继电器,则运算结果为中间结果,

不输出到 PLC 外部。

( 4 ) . 线圈并联输出时,可以连续使用 OUT 、 OUT NOT 。

( 2 ) .IR 区已用作输入通道的位,不能作为 OUT 、 OUT N

OT 的输出位。

说明

( 3 ) .OUT 、 OUT NOT 指令常用于一条梯形图支路的最后,但有时也用于分支点(见 TR )。

Page 14: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例:

00000 01000

01001

00001 01002

LD 00000

OUT 01000

OUT NOT 01001

LD NOT 00001

OUT 01002

Page 15: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器3. AND 和 AND NOT 指令

N N

IR , SR , HR , AR , LR , TCN :继电器编号

功能AND :表示常开触点与前面的触点电路相串联,或者说 AND 后面的位与前面的状态进行逻辑“与”运算。AND NOT :表示常闭触点与前面的触点电路相串联,或者说 A

ND NOT 后面的位取“反”后与前面的状态进行逻辑“与”运算。

Page 16: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例: 00000 01000

01000

00001

0100100000

LD 00000

AND 00001

OUT 01000

LD 00000

AND NOT 01000

OUT 01001

说明( 1 ) . AND 、 AND NOT 只能以位为单位进行操作,且不影响标志。( 2 ) . 串联的触点数没有限制。

Page 17: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例:两种输出形式

00000 01000

01001

00001

00002

( a )连续输出

00000

01000

0100100001 00002

( b )连续输出次序颠倒以上两图逻辑功能相同,但是( b )图用语句表编程繁琐,应尽量避免。

( a )连续输出 LD 00000

AND 00001

OUT 01000

AND 00002

OUT 01001

( b )连续输出次序颠倒 LD 00000

AND 00001

AND 00002

OUT 01001

LD 00000

AND 00001

OUT 01000

Page 18: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器4. OR 和 OR NOT 指令

N N

IR , SR , HR , AR , LR , TCN :继电器编号

功能OR :表示常开触点与前面的触点电路相并联,或者说 OR 后面的位与前面的状态进行逻辑“或”运算。OR NOT :表示常闭触点与前面的触点电路相并联,或者说 OR NOT 后面的位取“反”后与前面的状态进行逻辑“或”运算。

说明( 1 ) . OR 、 OR NOT 只能以位为单位进行操作,且不影响标志。( 2 ) . 并联的触点数没有限制。

Page 19: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

LD 00000

OR 00001

OUT 01000

LD 00000

OR NOT 00003

OUT 01001

例:00000 01000

00003

00001

0100100000

Page 20: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器5. 结束指令 END ( 01 )

END ( 01) 无操作数功 能

表示程序结束。是程序的最后一条指令。 END ( 01 )后面的指令一概不执行。

利用 END 指令插在各程序段之间,可以进行分段调试。 若程序中没有 END 指令,则 PLC 不执行程序,并显示出错信息:“ NO END INST” 。执行 END 指令时, ER 、 CY 、 GR 、 EQ 、 LE 标志置为 OFF 。

无执行条件

Page 21: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器6. 空操作指令 NOP ( 00 )

无梯形图符号、无操作数功能:用来取消某一步操作。常用于修改梯形图。

00000 0000101000

00000 01000改为:

1 LD 00000

2 AND 00001

3 OUT 01000

1 LD 00000

2 NOP ( 00 )3 OUT 01000

使步序号变更更少。

例如:

Page 22: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

1. AND LD 指令

( 1 ) . 每个逻辑块都以 LD 或 LD NOT 指令开始。( 2 ) . AND LD 指令单独使用,后面没有操作数。( 3 ) . 使用这条指令有两种方法:分置法和后置法。两种方法可以得到相同的运算结果,但使用分置法时触点组数是没有限制的,而采用后置法时触点组数不能超过 8 。

功能:用于逻辑块串联连接,即对逻辑块进行逻辑“与”的操作。注 意

§3-2-2 AND LD 和 OR LD 指令

Page 23: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例: 00000 20000

00002

0000300001

00004

00005

00006

方法 1 :分置法 方法 2 :后置法LD 00000

AND 00001

OR NOT 00002

LD 00003

OR 00004

AND LD

LD 00005

OR NOT 00006

AND LD

OUT 20000

LD 00000

AND 00001

OR NOT 00002

LD 00003

OR 00004

LD 00005

OR NOT 00006

AND LD

AND LD

OUT 20000

对逻辑块多少无限制 AND LD 前面的逻辑块数少于 8

Page 24: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器2. OR LD 指令

功能:用于逻辑块并联连接,即对逻辑块进行逻辑“或”的操作。注 意

( 1 ) . 每个逻辑块都以 LD 或 LD NOT 指令开始。( 2 ) . OR LD 指令单独使用,后面没有操作数。( 3 ) . 使用这条指令有两种方法:分置法和后置法。两种方法可以得到相同的运算结果,但使用分置法时触点组数是没有限制的,而采用后置法时触点组数不能超过 8 。

Page 25: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例:

00000 01001

00002 00003

00001

0000500004

方法 1 :分置法 方法 2 :后置法LD 00000AND NOT 00001LD 00002AND 00003OR LDLD NOT 00004AND NOT 00005OR LDOUT 01001

LD 00000AND NOT 00001LD 00002AND 00003LD NOT 00004AND NOT 00005OR LDOR LDOUT 01001

Page 26: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例:利用以上指令对复杂梯形图编程

0000001005

0000120002

00002

0000600005

0000800007

0000400003

2000120000

先找出逻辑块LD 00000OR 00001AND NOT 00002LD 00005AND NOT 00006OR LDLD 00007AND 00008OR LDLD 00003AND 00004OR 20002AND LDLD 20000AND 20001OR LDOUT 01005

Page 27: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-2-3 置位( SET )和复位( RESET )指令

SET N

RESET N

IR , SR , HR , AR , LR ,N :继电器编号

SET :当执行条件为 ON 时,使指定的继电器置位为 ON 。当执行条件为 OFF 时,指定的继电器不改变原状态。RESET :当执行条件为 ON 时,使指定的继电器复位为 OFF 。 当执行条件为 OFF 时,指定的继电器不改变原状态。

功 能

00003

00000

SET 20000

RESET 20000

LD 00000

SET 20000

LD 00003

RESET 20000

00000

00003

20000

Page 28: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-2-4 保持指令 KEEP ( 11 )

S

R

KEEP ( 11) N

置位输入复位输入

IR , SR , HR , AR , LRN :继电器编号

00003

00002KEEP ( 11 ) HR0000

LD 00002

LD 00003

KEEP ( 11 ) HR00000

00002

00003

HE0000

功 能 当 S=ON , R=OFF 时,继电器 N保持为 ON 状态,即使 S由ON 变为 OFF ,继电器 N 的 ON状态也不变。 当 R=ON 时,继电器 N 的状态为 OFF

Page 29: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

( 1 ) . KEEP ( 11 )指令功能和 SET 、 RESET 指令的功能类似,但 KEEP 指令是一个整体,中间不允许插入任何指令。( 2 ) . KEEP ( 11 )指令完成一个起停保电路的功能。

HR0000

00002 00003

HR0000

00002

00003HE0000

( 3 ) . 当用 KEEP ( 11 )指令对保持继电器编程时,可实现断电保持的功能。

注 意

Page 30: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-2-5 上升沿微分指令 DIFU ( 13 ) 下降沿微分指令 DIFD ( 14 )

DIFU ( 13 ) N

DIFD ( 14 ) N IR , SR , HR , AR , LRN :继电器编号

DIFD ( 14 ):执行条件由 ON 变为 OFF 时,指定继电器 N

在一个扫描周期为 ON 。

功 能DIFU ( 13 ):执行条件由 OFF 变为 ON 时 ,指定继电器 N在一个扫描周期为 ON 。

Page 31: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器DIFU ( 13 )和 DIFD ( 14 )指令的接通时间只有一个扫描周期。

00000DIFU ( 13 ) 20000DIFD ( 14 ) 20001

00000

20000

20001 TsTs

( 2 ) . 输入条件在第 n 次扫描到为 OFF , n+1 次扫描到为 ON 时, DIFU 指令执行,所以对于开机就为 ON 的执行条件,DIFU 指令不执行。同样,对于开机就为 OFF 的执行条件 DIFD 指令不执行。

说 明( 1 ) . IR 区中已经用作输入通道的位不能作为微分指令的输出位,输出通道的位最好也不要用。

Page 32: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

1. 梯形图的每一行都是从左侧母线开始,线圈和指令应放在最右边。00000 00001

01000

错误的

00000 0000101000

正确的

3-2-6 基本编程规则和编程方法

2. 除少数指令(如 ILC 、 JME 等)不允许有执行条件外,几乎所有指令都需要执行条件。 若一条指令在 PLC 上电后需要一直执行,不能直接连在母线上,可以将SR 区的常 ON 标志 25313 或常 OFF 标志 25314 取反后作为执行条件。 若一条指令在 PLC 上电后只执行一次,则将 SR 区的 25315 作为执行条件。

一 . 基本编程规则。

Page 33: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

在同程序中,同一元件线圈使用 2 次或多次,称为双线圈输出。这时前面的输出无效,最后一次输出才是有效输出。

20000

00000 01000

01000

双线圈输出易引起逻辑分析上的混乱

01000

00000

01000

01001

0000101000

设: 00000 为 ON , 00001 为 OFF第一支路: 01000得电第二支路: 01001得电第三支路: 01000失电

I/O刷新 01001得电01000失电

从第二支路看, 01001要想得电 01000必须为 ON ,由此看出上图逻辑混乱。

3. 尽量避免出现双线圈输出

Page 34: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器4. 触点不能画在垂直路径上

1 2 01000

3 45

4

5 4 01000

5 2

2

1

3

5. 逻辑关系复杂的程序段,按先复杂后简单的原则编程1

010002 3

2 3

010001

3

1 2

01000

12

301000

Page 35: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

二 . 基本编程方法。1. 指令和线圈可以并联输出。2. 触点组与触点相并联时,将单个触点放在下面。(节省一个 OR LD 语句)图 3.13

3. 并联触点组与几个触点相串联时,并联触点组放在左面。(节省一个 AND LD 语句)图 3.14

6. 梯形图以 END 指令结束,否则不执行。

4. 如果指令只需上电时执行一次,则用 SR 区的 25315 作为执行条件。图 3.15

Page 36: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

6. 当某梯级有两个分支时,若其中一条分支从分支点到输出线圈之间无触点,该分支应放在上方,这样可以使语句表更少(连续输出)。7. 尽量使用操作数少,执行时间短的指令,以缩短扫描周期,提高 I/O 响应速度。

5. 若有些梯形图难以用语句表编程,可以重新根据逻辑关系安排梯形图结构,使之能够用基本指令的语句表编程。如图 3.16

返 回

Page 37: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

§3-3-1 连锁 /连锁解除指令( IL(02)/ILC(03) )

IL ( 02 )ILC ( 03 )

若 IL 的执行条件为 ON ,位于 IL 和 ILC

之间的程序正常执行。

功能:用来处理梯形图中的分支电路, IL 和 ILC 一起使用。

若 IL 的执行条件为 OFF ,位于 IL 和 ILC之间的程序不执行。IL 和 ILC 之间的程序输出状态为:所有输出位为: OFF所有定时器:复位所有计数器、移位寄存器、有保持功能指令的输出位:保持以前状态

§3-3 常用的应用指令

Page 38: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

( 1 ) . 不论 IL 前面的执行条件为 OFF 或 ON , PLC都要对 IL—ILC 中间的程序进行处理,要占用扫描时间。( 2 ) . IL 和 ILC 可以成对使用,也可以多个 IL 指令配一个 ILC 指令,但不允许嵌套。 IL---IL…..ILC (允许) IL IL…ILC ILC (不允许)

说 明

Page 39: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例 1 :分支电路如下:

00000

00002

0000101000

01001

01002

01003

00003 00004

00005

A

00000

00002

0000101000

01001

01002

01003

00003 00004

00005

IL ( 02 )

ILC ( 03 )

LD 00000

IL ( 02 )LD 00001

OUT 01000

LD NOT 00002

OUT 01001

LD 00003

AND NOT 00004

OUT 01002

ILC ( 03 )LD 00005

OUT 01003 从 A 点看, 00000 为后面 3个分支的执行条件

注意区别并联输出、连续输出和复合输出的结构及其编程方法

Page 40: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

00005

01000

01001

01002

01003

00000 00001

00002 00003

00004

例 2 :分支电路如下:A

B

00000

00002

00001

00003

00005

01000

IL(02)

01001

0000401002

01003

IL(02)

ILC(03)

LD 00000

IL ( 02 )LD 00001

OUT 01000

LD 00002

IL ( 02 )LD 00003

OUT 01001

LD 00004

OUT 01002

ILC ( 03 )LD 00005

OUT 01003 说明:连锁嵌套,多个 IL公用一个 ILC ,在程序检查时会出

现错误信息,但不影响程序执行。

Page 41: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器注意区别并联输出、连续输出和复合输出的结构及其编程方法

并联输出 复合输出连续输出输出线圈并联 上支路无触点;下之路有触点。 分支点上下支路均有触点

00000 01000

01001

01002

A00000 01000

01001

01002

00001

00002

A00000 01000

01001

01002

00001

00002

00003

A

输出为并列关系,执行条件均为 00000

后一个触点支路与前一个触点为“与”关系 用连锁指令

Page 42: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-3-2 暂存继电器 TR (TR0~TR7)

处理梯形图的另一种方法。把一个 TR 置于一个分支点处,则当前结果就会存在指定 TR 中。

00000

00002

0000101000

01001

0100200003

TR0

TR0 00003

00000

00001

TR0

01000

00002 01001

01002

TR0

LD 00000OUT TR0AND 00001OUT 01000LD TR0AND 00002OUT 01001LD TR0AND 00003OUT 01002

( 1 ) . 同一程序段中,同一个 TR 号不能重复使用;在不同程序段中, 同一个 TR 号可以重复使用。

( 2 ) .TR 不是编程指令,只能和 LD 或 OUT 等指令一起使用。说明

Page 43: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-3-3 跳转 /跳转结束指令( JMP(04)/JME(05) )

JMP ( 04 ) NJME ( 05 ) N

N :跳转号 00~49

. 当 JMP N 的执行条件为 OFF 时,跳过 JMP N 和 JME N 之间的程序段,转去执行 JME N 后面的程序。 JMP N 和 JME N 之间的所有输出、定时器和计数器的状态保持不变,JMP 和 JME 之间的程序不执行,不占用扫描时间。. 当 JMP N 的执行条件为 ON 时,执行 JMP N 和 JME N 之间的程序段。

Page 44: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

00004

01002

00000

00001

20000

JMP ( 04 ) 00

01000

20001

00003

TIM000

#0200

CNT001

#0100

TIM000

JME ( 05 ) 00

01002

t

t

10s 20s 30s 40s0s t50sOFF

ON

OFF

ON

OFF

ON00000

20001

TIM000

Page 45: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

跳转类型

N=00

N≠00 每个跳转号只能在程序中使用一次

可以在程序中使用多次CPU占时多

CPU占时少

说 明

多个 JMP N 可以公用一个 JME N , JMP—JMP—JME 。跳转指令可以使用嵌套,但必须是不同的跳转号的嵌套。 如: JMP 00—JMP 01----JME01---JME00.

Page 46: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-3-4 定时器和计数器指令使用定时器 /计数器时应注意的问题:1. 定时器和计数器在同一个 TC 区 , 它们共同使用编号 000~127,所以在同一程序中它们的编号不能重复使用。2. 当 SV 为通道时(通道内数据必须是 BCD 码),改变通道内的数据,其设定值即改变,从下一个扫描周期开始以新的设定值开始工作。3. 间接寻址 DM 通道不存在,是指以 DM 的内容为地址的通道不存在。4. 定时器没有掉电保持功能,计数器有掉电保持功能。5. 当扫描时间 TS>0.1s 时,定时器 TIM会不准确;当扫描时间 TS>0.01s

时,定时器 TIMH会不准确。

Page 47: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器1. 定时器指令 --TIM

TIM N

SV

IR , SR , HR , AR , LR , DM , *DM , #

SV :定时器设定值(字, BCD 码)000~127

N :定时器 TC 号

功能:通电延时型 当 定时器的执行条件为 OFF 时,定时器输出为 OFF 。

当定时器的执行条件为 ON 时,定时器开始定时,定时时间到,定时器输出为 ON 。当定时器的执行条件变为 OFF 时,定时器输出随之变为 OFF 。 定时器最小定时时间单位为 0.1秒,定时范围 0~999.9秒,SV 取值范围为 0000~9999

Page 48: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例 1 :定时器 TIM000 , SV=15秒,定时到 01000得电。

TIM000

00000

01000

TIM 000

#0150

TIM000

00000

01000

TIM 000

200

例 2 :定时器 TIM000 , SV=IR200 中数据,定时到 01000得电。

LD 00000TIM 000 #0150LD TIM000OUT 01000

LD 00000TIM 000 200LD TIM000OUT 01000

00000

01000

TIM00015s

Page 49: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例 3 :定时器定时时间的扩展。

TIM000

00000

01000

TIM 000SV1

TIM 001SV2

TIM001

00000

TIM000

SV1

01000

TIM001SV2

Page 50: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

接通延时 ON接通延时 ON

例 4 :接通延时 ON 和接通延时 OFF 的控制。

TIM000

00000

01000

TIM 000#0600

01001TIM000

00000

TIM000

60s

01000

01001

接通延时 OFF接通延时 OFF

25503 置位为 ON注意

( 1 ) . 定时器没有断电保持功能,断电时,定时器复位。( 2 ) . 出错标志 25503 :① . 当 SV 不是 BCD 码时; ②. 间接寻址 DM 通道不存在时

Page 51: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器2. 高速定时器指令 --TIMH ( 15 )

TIMH N

SVIR , SR , HR , AR , LR , DM , *DM , #

SV :定时器设定值(字, BCD 码)000~127

N :定时器 TC 号

. 定时器最小定时时间单位为 0.01秒,定时范围 0~99.99秒,SV 取值范围为 0000~9999 , SV必须是 BCD 码。

功能:同 TIM

Page 52: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器3. 计数器指令 CNT

CNT N

SV

CP

R

IR , SR , HR , AR , LR , DM , *DM , #

SV :计数器设定值(字, BCD 码)000~127

N :计数器 TC 号

CP 为脉冲输入端; R 为复位端功 能

当 R=ON 时,不计数,当前值 PV=SV ;当 R由 ON→OFF时,开始计数。 当 R=OFF 时, CP端由 OFF →ON 时,计数器减 1 ,计数器减到 0 时,停止计数,计数器输出变为 ON 。

Page 53: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

25503置位为 ON

00001

CNT000

00000

01000

CNT 000

#0150

LD 00000LD 00001CNT 004 #0150LD CNT004OUT 01005

注意

(1). 计数器编程时,先编写计数器脉冲输入端 CP ,再编写复位端 R , 最后编 CNT 指令。(2). 计数器具有断电保持功能,断电时计数器当前值保持不变。(3).ER 标志 25503 .① 当 SV 不是 BCD 码时;

② . 间接寻址DM 通道不存在时;例:计数器的使用

PV= …3 2 1 0

00000 …

00001

01000

Page 54: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例:计数器的定时功能

00001

CNT000

25502

01000

CNT 000

#0150

LD 25502LD 00001CNT 004 #0150LD CNT004OUT 01005

25502 为 1s 脉冲,当计数器计满 150个脉冲时,所用的时间正好是 150s 。

例:计数器容量的扩展00001

25502

01000

CNT 000

SV1CNT000

00001

CNT000

CNT 001

SV2CNT001

SV1

25502

00001

1s

0 …

0 0 SV1

CNT000 …TsSV1 SV1

CNT001 SV2*SV1

01000

Page 55: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器3. 可逆计数器指令 --CNTR ( 12 )

IR , SR , HR , AR , LR , DM , *DM , #

SV :计数器设定值(字, BCD 码)000~127

N :计数器 TC 号CNTR(12)

N

SV

ACP

SCP

R

ACP加计数脉冲输入端; SCP减计数脉冲输入端; R 为复位端功 能

当 R=ON 时,不计数,当前值 PV=0000 ; CNTR 输出为 OFF。两个计数脉冲输入端同时为 ON ,即 ACP 、 SCP 均为 ON 时,不计数。当 R=OFF 时,可以计数 ACP 输入端由 OFF 变为 ON 计数器加

1 ; SCP 输入端由 OFF 变为 ON 计数器减 1 。

Page 56: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器. 对于 ACP ,在 PV=SV时,再加 1 , PV=0000 , CNTR 输出为 ON ,再来一个脉冲, PV=0001 , CNTR 输出为 OFF,循环加计数。即产生进位输出一个计数周期的 ON 。. 对于 SCP ,在 PV=0000 时,再减 1 , PV=SV, CNTR 输出为 ON ,再来一个脉冲, PV=SV-1 , CNTR 输出为 OFF,循环减计数。即产生借位输出一个计数周期的 ON 。

ACP

SCP PV= 147 148 149 150 0 1 2 3

PV= 3 2 1 0 150 149 148 147

CNTR

例 1 : SV=150 , R=OFF , ACP 、 SCP 、 CNTR 之间的关系如下(计数功能)

Page 57: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例 2 :可逆计数器的循环定时功能

25502

01000

CNTR

000

HR00

20000

CNT000

2000000000

25314

00001

20000

25315

上电第一个扫描周期, 25315 位 ON , CNTR复位

按下 00000 , 20000 为ON ,为加计数作准备。

加计数,对 1s 脉冲进行计数,当 PV= ( HROO )时,输出一个计数周期的 ON 信号,然后重新从 0 开始进行加计数。

Page 58: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例 3 :循环计数器容量的扩展

25502

CNTR

000

HR00

2000020000

00000

25314

00001

20000

25315

CNT001

CNT000

CNT 001

SV225315

循环定时器

扩展循环定时器

循环定时时间 = ( HR00 ) * ( SV2 )

Page 59: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

25503 置位为 ON

注 意(1). 可逆计数器编程时,先编写加计数脉冲输入端 ACP ,再编写减计数脉冲输入端SCP ,后编写复位端 R , 最后编 CNTR指令。(2). 可逆计数器具有断电保持功能,断电时计数器当前值保持不变。

(4). ER 标志 25503 :① . 当 SV不是 BCD码时; ②. 间接寻址DM 通道不存在时;

返 回

(3). 可逆计数器只在产生进位或借位时输出一个计数周期的 ON 。

Page 60: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

数据传送指令 : 9 种数据比较指令: 4 种

Page 61: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-4-1 数据传送指令1. 传送指令-MOV(21)/@ MOV(21)

MOV(21)SD

@MOV(21)SD IR , SR , HR , AR , LR , DM , *DM

D :目的通道IR , SR , HR , AR , LR , TC , DM , *DM , #

S :源数据

功能:执行条件为 ON 时,将 S 中的数据传送到目的通道 D 中。 S 中数据不变。

00000

MOV(21)#0196DM0000

例: LD 00000

MOV(21)

#0196

DM000

6910

6910DM000

#0196

Page 62: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

00001=ON , 00000=OFF,则( LR00 ) =#0050 , TIM000定时 5s

00000=ON , 00001=OFF,则( LR00 ) =#0100 , TIM000定时 10s

1. 出错标志位 25503 : *DM 通道不存在时为 ON ,此时该指令不执行。2. 相等标志位 25506 :执行指令后, D 中的数据为 0000 ,则 25506 为ON 。

说明

例:用 MOV 指令修改定时器的值 00001

@MOV(21)

#0100LR00

00000

00000

@MOV(21)

#0050LR00

00001

0000100000

0000000001TIM 000 LR00

00000

00001

TIM000

01000

Page 63: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器2. 取反传送指令-MVN(22)/@ MVN(22)

MVN(22)SD

@MVN(22)SD IR , SR , HR , AR , LR , DM , *DM

D :目的通道IR , SR , HR , AR , LR , TC , DM , *DM , #

S :源数据

功能:执行条件为 ON 时,将 S 中的数据取反后传送到目的通道 D 中。 S

中数据不变。00000

MVN(22)

#0196

DM0000

例: LD 00000

MVN(22)

#0196

DM000

6910

96EFDM0000

#0196

1. 出错标志位 25503 : *DM 通道不存在时为 ON ,此时该指令不执行。2. 相等标志位 25506 :执行指令后, D 中的数据为 0000 ,则 25506 为ON 。

说明

Page 64: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器3. 块传送指令- XFER(70)/@ XFER(70)

XFER(70)

S

D

N

@XFER(70)

S

D

NIR , SR , HR , AR , LR , TC , DM , *DM

S :源数据块开始通道号IR , SR , HR , AR , LR , TC , DM , *DM , #

N :通道数( BCD 码)

IR , SR , HR , AR , LR , TC , DM , *DM

D :目的数据块开始通道号功能:执行条件为 ON 时,将 S 、 S+1 、…、 S+N 中的数据一一对应的传送到 D 、 D+1 、…、 D+N 中。

8765S+N

6543S+1

4321S

8765 D+N

6543 D+1

4321D

… …

. 通道数 N 不是 BCD 码, 25503 为 ON

. S 和 S+N 或 D 和 D+N 不在同一区域, 25503为 ON. *DM 通道不存在, 25503 为 ON

说明:出错标志 25503 为 ON ,该指令不执行。

Page 65: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器4. 块设置指令- BSET(71)/@ BSET(71)

BSET(71)

StE

S@BSET(71)

StE

S

IR , SR , HR , AR , LR , TC , DM , *DMSt :开始通道号

IR , SR , HR , AR , LR , TC , DM , *DM , #S :源数据

IR , SR , HR , AR , LR , TC , DM , *DME :结束通道号

功能:执行条件为 ON 时,将 S

中的数据传送到从 St 到 E 的所有通道中。

4321S

4321 E

4321 St+1

4321St

Page 66: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例:用 @BSET 指令改变定时器的当前值

00000

@MOV(21)

#0100HR00

TIM 000 HR00

01000TIM000

00001

@BSET(71)

#0050TIM000TIM000

00000=ON , MOV 指令把 #0100 传送到 HR00 中,且只传送一次, TIM000 定时 10s

00001=ON , @BSET 指令把 #0050 传送到 TIM000 中, TIM000 的当前值立即变为 #0050 , TIM000 从 0050 开始,每隔 0.1秒减 1 ,直到当前值减为 0000为止。由于 HR00 中的数据没有改变,下次定时的设定值仍然是 #0100

Page 67: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

出错标志 25503 为 ON ,该指令不执行。( 1 ) . 开始通道 St 和结束通道 E 不在同一数据区; 25503 为 ON( 2 ) . St > E , 25503 为 ON;( 3 ) . *DM 通道不存在, 25503 为 ON

说 明

当用通道对 TIM/CNT 进行设定时,用 MOV 和 BSET 指令都可以改变定时器 / 计数器的设定值,但使用 BSET 指令可以改变 TIM/CNT 的当前值,而MOV 或 MVN 指令不能改变TIM/CNT 的当前值。

执行一次 MOV 指令,只能向一个通道传送一个字,而执行一次 BSET 指令,可以向多个通道传送同一个字。

Page 68: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器5. 数据交换指令- XCHG(73)/@ XCHG(73)

XCHG(73)E1E2

@XCHG(73)E1E2 IR , SR , HR , AR , LR , TC , DM , *DM

E2 :交换数据 2

IR , SR , HR , AR , LR , TC , DM , *DM

E1 :交换数据 1

功能:执行条件为 ON 时,将 E1 和 E2 中数据交换。 E1 E2

说明: *DM 通道不存在, 25503 为 ON ,该指令不执行。

Page 69: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器6. 单字分配指令- DIST(80)/@ DIST(80)

DIST(80)

DBsC

S@DIST(80)

DBsC

S

IR , SR , HR , AR , LR , TC , DM , *DMDBs :目标基准通道

IR , SR , HR , AR , LR , TC , DM , *DM , #S :源数据

IR , SR , HR , AR , LR , TC , DM , *DM , #C :控制数据( BCD 码)

根据控制数据 C 的内容, DIST 指令可进行 单字数据分配 进栈操作

功 能

Page 70: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器( 1 ) . 单字数据分配 当 C 的 bit15~ bit12 ≤ 8 时, DIST将 S 的内容送到 DBs

+ C 中。即 DBs+ C决定目标通道。00000

DIST(80)

200 DM0000 #0008

例: LD 00000DIST(80) 200 DM0000 #0008若 IR200 的内容为 1234 ; 00000 为

ON

C 的 bit15~bit12 ≤ 8

∴ DBs+ C 为DM0000+0008=DM0008

DM00081 2 3 4 1 2 3 4 IR200

注意: DBs 和 DBs+C必须在同一数据区。

Page 71: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器( 2 ) . 进栈操作

当执行条件为 ON 时,进行入栈操作,将 S 的内容复制到DBs+堆栈指针+ 1 的通道中,然后堆栈指针 (DBs 的内容 )+1 。

当 C 的 bit15~ bit12 = 9 时,即 C=9000~9999 时, DIST生成一个堆栈。 C 的低 3 位( 000~ 999 )指定堆栈的通道数(堆栈深度), DBs 的内容为堆栈指针。

操 作

注 意 DIST 指令在每个扫描周期执行一次,所以使用微分形式,或和 DIFU 、DIFD 一起使用,以控制执行的次数。 使用 DIST 指令进行堆栈操作前,务必要初始化堆栈指针,即初始化 DBs 的内容。

Page 72: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器00000

@DIST(80)

200 DM0000

216

例: LD 00000@DIST(80) 200 DM0000 216

IR2169 0 0 5

F F F F IR200

DM00000 0 0 0

S

DBs

C

C 的 bit15~ bit12 = 9 ,进行入栈操作。堆栈指针为 DM0000 的内容 (0000) ,堆栈的通道数为 005 ,即 DM0001~DM0005 。

0000DM0005

0000DM0004

0000DM00030000DM0002

0000DM0001

0000DM0000

9005IR216

FFFFIR200

第一次执行

堆栈指针加 1

0000DM0005

0000DM0004

0000DM00030000DM0002

FFFFDM0001

0001DM0000 第 2 次执行

堆栈指针加 1

0000DM0005

0000DM0004

0000DM0003FFFFDM0002

FFFFDM0001

0002DM0000

Page 73: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

相等标志 25506 : S 的内容为 0000 时为 ON 。

说 明出错标志 25503 :有下列情况之一时为 ON ,此时该指令不执行。

. 控制数据 C 中的偏移(单字数据分配)或堆栈长度(进栈操作)不是 BCD 码 ;Cbit15~ Cbit12 ≤ 8 时, DBs 和 DBs+ C 不在同一数据区; Cbit15~ Cbit12 = 9 时, DBs 和 DBs+( C 的低 3 位)不在同一数据区; 堆栈指针+ 1 的值超过堆栈长度。*DM 通道不存在。

Page 74: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器7. 数据调用指令- COLL(81)/@ COLL(81)

COLL(81)

CD

SBs@COLL(81)

CD

SBs

IR , SR , HR , AR , LR , TC , DM , *DM , #C :控制数据( BCD 码)

IR , SR , HR , AR , LR , TC , DM , *DMSBs :源基准通道

IR , SR , HR , AR , LR , TC , DM , *DMD :目的通道

根据控制数据 C 的内容, COLL 指令可进行 数据调用 出栈操作

功 能

Page 75: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器( 1 ) . 数据调用

当 C= 0000~ 6655 时, COLL 指令将 SBs+ C 通道的内容送到 D中。D

1 2 3 4 1 2 3 4 SBs+C

( 2 ) . 出栈操作先入先出

后入先出

当 C= 9000~ 9999 时,按先入先出原则出栈, COLL 指令将最早存入栈内的数据取出送到 D 中,堆栈指针减 1 。

当 C= 8000~ 8999 时,按后入先出原则出栈, COLL 指令将最后存入栈内的数据取出送到 D 中,堆栈指针减 1 。

Page 76: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

DM0005

DM0004DM0003DM0002

DM0001

DM0000IR200

EEEEDM0005

DDDDDM0004

CCCCDM0003BBBBDM0002

AAAADM0001

DM0000

9005IR216

0005

00000

DM0000 216200

例:@COLL(81) LD 00000

@COLL(81) M0000 216 200

IR2169 0 0 5

DM0000

0 0 0 5SBs

C

出栈

堆栈指针减 100005-1=00004

0004

先入先出

复制内容EEEE

DDDDCCCC

BBBB

EEEE

AAAA

Page 77: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器00000

DM0000 216200

例:@COLL(81)

LD 00000@COLL(81) M0000 216 200

IR2168 0 0 5

DM00000 0 0 5 SBs

C

堆栈指针减 10005-1=0004 0004

DM0005

DM0004DM0003DM0002

DM0001

DM0000

IR200

8005IR216

后入先出

EEEEDM0005

DDDDDM0004

CCCCDM0003BBBBDM0002

AAAADM0001

DM0000 0005

EEEE

DDDDCCCC

BBBB

AAAA

复制内容出栈

EEEE

注意:后入先出原则出栈, DM0001~DM0005 的内容不移动、不变。 DM0

005 的内容复制到 IR200 中, DM0000 内容减 1 。

Page 78: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器说 明

出错标志 25503 :有下列情况之一时为 ON ,此时该指令不执行。 控制数据 C 中的偏移(数据调用)或堆栈长度(出栈操作)不是 BCD 码 ; C= 0000~ 6655 之间时, SBs 和 SBs+ C 不在同一数据区; Cbit15~ Cbit12 = 8 或 9 时, SBs 和 SBs+( C 的低3 位)不在同一数据区; 堆栈指针超过堆栈长度。 *DM 通道不存在。相等标志 25506 : SBs 的内容为 0000 时为 ON 。

Page 79: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器8. 位传送指令-MOVB(82)/@ MOVB(82)

MOVB(82)

CD

S@MOVB(82)

CD

S

IR , SR , HR , AR , LR , TC , DM , *DM , #C :控制数据( BCD 码)

IR , SR , HR , AR , LR , TC , DM , *DM , #S :源数据

IR , SR , HR , AR , LR , DM , *DMD :目的通道

功能:执行条件为 ON 时,将 S 指定的一位送到目的通道 D 的指定位上。

控制数据 C 的含义:

S 中源位 ( 00~ 15 )D 中目的位( 00~ 15 )

BCD 码 1 2 0 1

Page 80: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器00000

#00FF#1201LR10

例:MOVB(82)

LD 00000MOVB(82) #00FF #1201 LR10

S: 111111110000000015 00

1

X XD:15 00

XXXXXXXXXXXXXX

Page 81: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器9. 数字传送指令-MOVD(83)/@ MOVD(83)

MOVD(83)

CD

S@MOVD(83)

CD

S

IR , SR , HR , AR , LR , TC , DM , *DM , #C :控制数据( BCD 码)

IR , SR , HR , AR , LR , TC , DM , *DM , #S :源数据

IR , SR , HR , AR , LR , DM , *DMD :目的通道

功能:执行条件为 ON 时,将 S 中指定的数字位( 4个二进制位)送到目的通道 D 中的指定数字位。一次最多可以传送 4个数字位。控制数据C含义 D 中接收的被传送数字的第一个数字位( 0~ 3 )

指定 S 中要传送的第一个数字位( 0~ 3 )指定 S 中要传送数字的位数( 0~ 3 )0 :传送 1 位数字; 1 : 传送 2 位数字;2 :传送 3 位数字; 3 :传送 4 位数字。

不用

Page 82: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例:当 C 分别为 #0010 、 #0030 、 #0031 、 #0023 时,执行 MOVD 指令的情况。

0123

0123

0123

0123

C=#0010 C=#0031 C=#0023C=#0030

②③

01

0123

0123

1

3

0

说 明出错标志 25503 :有下列情况之一时为 ON ,此时该指令不执行。C 指定的位不存在, 25503 为 ON 。*DM 通道不存在, 25503 为 ON 。

Page 83: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-4-2 数据比较指令1. 单字比较指令 --CMP(20)

CMP(20)C1C2

IR , SR , HR , AR , LR , TC , DM , *DM , #

C2 :比较数 2

IR , SR , HR , AR , LR , TC , DM , *DM , #

C1 :比较数 1

当执行条件为 ON 时,比较 C1 、 C2 的大小,将比较结果送SR 区标志位。. 当 C1 > C2 时,大于标志位 25505 为 ON 。. 当 C1= C2 时,等于标志位 25506 为 ON 。. 当 C1 < C2 时,小于标志位 25507 为 ON 。

功 能

Page 84: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

例:

25507

25505

00000

01000

CMP ( 20)HR09

200

01001

01002

25506

TR0LD 00000OUT TR0CMP(20) HR09 200LD TR0AND 25505OUT 01000LD TR0AND 25506OUT 01001LD TR0AND 25507OUT 01002

(HR09) >(IR200) 时 01000 为 ON

(HR09) = (IR200) 时 01001 为 ON

(HR09) <(IR200) 时 01002 为 ON

注意

当于 TC 通道当前值进行比较时,比较数必须是 BCD码。 间接寻址DM 通道不存在时, ER 标志 25503 为 ON ,此时该指令不执行。

Page 85: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例:利用定时器和比较指令产生如图波形。 00000 接启动按钮。

00000

01000

100s

100s

100s01001

01002

01003500s

25507 01000

CMP ( 20 )TIM010

#4000

00000TIM 010

#5000

01000

25507 01001

CMP ( 20 )TIM010

#3000

25507 01002

CMP ( 20 )TIM010

#2000

01001

TIM010 01003

500.0s 定时

100.0s 时输出

200.0s 时输出

300.0s 时输出500.0s 时输出

LD 00000TIM 010 #5000CMP(20) TIM010 #4000AND 25507OUT 01000LD 01000CMP(20) TIM010 #3000AND 25507OUT 01001

LD 01001

CMP(20)

TIM010

#2000

AND 25507

OUT 01002

LD TIM010

OUT 01003

Page 86: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器2. 双字比较指令 --CMPL(60)

CMPL(60)C1C2

IR , SR , HR , AR , LR , TC , DM , *DMC2 :第二个比较字的起始通道

IR , SR , HR , AR , LR , TC , DM , *DMC1 :第一个比较字的起始通道

. 当 ( C1+ 1 , C1 ) > ( C2 + 1 , C2 )时,大于标志位 25505 为ON 。. 当 ( C1+ 1 , C1 ) = ( C2 + 1 , C2 )时,等于标志位 25506 为ON 。. 当 ( C1+ 1 , C1 ) > ( C2 + 1 , C2 )时,小于标志位 25507 为ON 。

当执行条件为 ON 时,将通道 C1+ 1 、 C1 中的两个字构成一个双字,将通道 C2+ 1 、 C2 中的两个字构成一个双字,比较两数的大小,将比较结果送 SR 区标志位。

功 能

Page 87: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器注意 : ( 1 ) . 编程顺序同 CMP ; ( 2 ) . 出错标志同 CMP ; ( 3 ) . C1+ 1 和 C1 必须在同一数据区; C2+ 1 和 C2

必 须在同一数据。 ( 4 ) .CMPL ( 60 )不能用于带符号数的比较。

Page 88: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器3. 块比较指令 --BCMP (68)/ @BCMP (68)

BCMP (68)CD

CB

R

@BCMP (68)

CDCB

RIR , SR , HR , LR , TC , DM , *DM

CB :数据块起始通道IR , SR , HR , AR , LR , TC , DM , *DM , #

CD :比较数据

IR , SR , HR , AR , LR , TC , DM , *DM

R :结果通道

比较块由 CB , CB+1 , CB+2 ,……, CB+31组成,分 16个比较区域,每个比较区域由两个通道定义,第一个为下限,第二个为上限,上限值应大于等于下限值。 当执行条件为 ON 时,将比较数据 CD 与每一个区域进行比较,如果CD 处在某个区域,比较结果通道 R 中的对应位置 1 ,否则该对应位置 0 。

功 能

Page 89: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器区域比较和 R 的 对应关系:

序号 下限 上限 R 中对应的位1 CB CB+1 00 位2 CB+2 CB+3 01 位3 CB+4 CB+5 02 位4 CB+6 CB+7 03 位

……

…… …

……

15 CB+28 CB+29 14 位16 CB+30 CB+31 15 位

说明:当比较块超出所在数据区的范围或间接寻址 DM 通道不存在,出错标志 25503 为 ON ,此时该指令不执行。

Page 90: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

比较数据:IR200 0210

DM0010 0000

DM0012 0101

DM0014 0210

DM0016 0310

DM0018 0410

DM0020 0510

DM0022 0610

DM0024 0710

DM0026 0810

DM0028 0910

DM0030 1001

DM0032 1101

DM0034 1201

DM0036 1301

DM0038 1401

DM0040 1501

BCMP (68)

200

DM0010

HR05

00000 DM0011 0100

DM0013 0200

DM0015 0300

DM0017 0400

DM0019 0500

DM0021 0600

DM0023 0700

DM0025 0800

DM0027 0900

DM0029 1000

DM0031 1100

DM0033 1200

DM0035 1300

DM0037 1400

DM0039 1500

DM0041 1600

HR0500 0

HR0501 0

HR0502 1

HR0503 0

HR0504 0

HR0505 0

HR0506 0

HR0507 0

HR0508 0

HR0509 0

HR0510 0

HR0511 0

HR0512 0

HR0513 0

HR0514 0

HR0515 0

下限 上限 比较结果通道

例:当执行条件 00000 为 ON 时,将通道 200 中的数据 0210 与 DM0010 开始的比较块通道中的数据进行区域比较,比较结果放在 HR05 中的对应位上。

Page 91: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器4. 表比较指令 --TCMP (85)/ @TCMP (85)

TCMP (85)CD

TB

R

@TCMP (85)

CDTB

R

IR , SR , HR , LR , TC , DM , *DMTB :比较表起始通道

IR , SR , HR , AR , LR , TC , DM , *DM , #

CD :比较数据

IR , SR , HR , AR , LR , TC , DM , *DM

R :结果通道

当执行条件为 ON 时,将数据 CD 与 TB , TB+1 , TB+2 ,……, TB

+15 中的数据进行比较,如果 CD 与这些通道中某一个数据相同,则结果通道 R 中相应位置 1 ,否则置 0 。说明:当比较表 TB~ TB+15 超出所在数据区的范围或间接寻址 DM 通道不存在,出错标志 25503 为 ON ,此时该指令不执行。

功 能

Page 92: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

TCMP (85)

200

DM0010

HR05

00000

比较数据:0210IR200

DM0010 0100

DM0011 0200

DM0012 0210

DM0013 0400

DM0014 0500

DM0015 0600

DM0016 0210

DM0017 0800

DM0018 0900

DM0019 1000

DM0020 0210

DM0021 1200

DM0022 1300

DM0023 1400

DM0024 0210

DM0025 1600

比较表HR0500 0

HR0501 0

HR0502 1

HR0503 0

HR0504 0

HR0505 0

HR0506 1

HR0507 0

HR0508 0

HR0509 0

HR0510 1

HR0511 0

HR0512 0

HR0513 0

HR0514 1

HR0515 0

比较结果通道

例:当执行条件 00000 为 ON 时,将通道 200 中的数据 0210 与 DM0010 开始的 16个通道中的数据进行表比较,比较结果放在 HR05 中的对应位上。

返 回

Page 93: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

数据移位指令 : 10 种数据转换指令: 6 种

Page 94: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-5-1 数据移位指令

SFT(10)StE

数据输入端 IN

移位脉冲输入端 SP

复位端 R IR , SR , HR , AR , LR

E :结束通道IR , SR , HR , AR , LR

St :起始通道1. 移位寄存器指令 --SFT(10)

功 能 当 R端为 ON 时,从 St 到 E 通道中所有位置为 OFF,此时 SP 和 IN 无效。 当 R端为 OFF时 ,在移位脉冲端 SP由 OFF→ON 的上升沿时, St 到 E 通道中的所有位依次左移一位, E 通道最高位溢出丢失, St通道最低位则移进数据输入端 IN 的数据。

Page 95: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器15 E 00

溢出

15 E- 1 00

… ……15 St+

100

…15 St

…00

IN 状态

( 1 ) . 只有 R端为 OFF 时,且 SP端具有上升沿时,才产生移位;( 2 ) . 编程时先编 IN ,再编 SP ,再编 R ,最后编 SFT 指令;( 3 ) . SFT 指令不影响标志位;( 4 ) . 开始通道号 St必须小于等于结束通道号 E ,且 St 和 E必须在同一

区域。

注 意

Page 96: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

00000

0100020003

SFT (10)

200

25502

00001

IN

200SP

R

25315

例 1 :使用 SFT 指令1s

25502

00000

00001

20000

20001

20002

20003

20004

Page 97: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

1s

25502

00000

00001

20000

20001

20002

20003

例 2 :上例中,如把常开触点 20003 与 00000 相并联情况00000

0100020003

SFT (10)

200

25502

00001

IN

200SP

R

25315

20003

Page 98: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

每来一个脉冲, 20000 的ON 状态依次向高位移动。

00000由 OFF 变为 ON 时,#0001 送到 200 通道中,使 20000 为 ON

数据输入端常为 OFF

例 3 : SFT 指令的另一种用法

25314

0100020003

SFT (10)

200

25502

00001

IN

200SP

R

25315

00000@MOV(21)

200

#0001

Page 99: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器2. 可逆移位寄存器指令 --SFTR(84)/@ SFTR(84)

SFTR(84)

St

E

C

@SFTR(84)

St

E

C

IR , SR , HR , AR , LR , DM , *DME :结束通道

IR , SR , HR , AR , LR , DM , *DMSt :起始通道

IR , SR , HR , AR , LR , DM , *DMC :控制通道

控制通道 C 各位的含义:------------12131415

移位方向 1: 左移0: 右移

数据输入端 IN移位脉冲端 SP复位端 R

-- : 不使用

Page 100: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器功 能执行条件为ON

Cbit15=ON ,则从 St 到 E , CY所有数据复位,不接收数据。

Cbit15=OFF,

且 Cbit14=ON

Cbit12=1 ,则从 St 到 E 、 CY ,每个扫描周期左移 1位Cbit12=0 ,则从 St 到 E 、 CY ,每个扫描周期右移 1位

Cbit13

15 E 00…

15 E-1

00… ……

15 St+1

00…

15 St…

00CY左移:

Cbit13

15 E 00…

15 E-1

00… ……

15 St+1

00…

15 St…

00 CY右移:

当执行条件为 OFF 时,停止工作。此时复位信号不起作用。既此时复位信号为 ON 时,从 St 到 E , CY保持不变。

Page 101: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

( 1 ) .SFTR(84) 指令,只要执行条件为 ON , Cbit15= OFF ( R=OFF ), Cbit14= ON ( SP=OFF ) , 则每个扫描周期移位一位。所以,要想控制移位,要么用 @SFTR(84) 形式,要么用其他信号的微分形式控制 Cbit14 。

St 和 E 不在同一区域, 25503 为 ON

( 3 ) . ER 标志

St > E 25503 为 ON

*DM 通道不存在, 25503 为 ON

( 4 ) . 进位标志 CY : 25504 左移: E15→CY

右移: St00→CYCY=1, 则 25504 为 O

N

( 2 ) . 开始通道号 St必须小于等于结束通道号 E ,且 St 和 E必须在同一区域。

注 意

Page 102: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例:

00004

2001200000

00001

20100

00003

00002

DIFU(13) 20100

SFTR(84)200

LR10

LR11

20013

20014

20015

CStE

移位方向数据输入

移位脉冲复位信号

例:

00004

2001200000

00001

00003

00002

@SFTR(84)200

LR10

LR11

20013

20014

20015

移位方向数据输入移位脉冲复位信号

CStE

Page 103: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器3. 字移位指令-WSFT (16)/@ WSFT (16)

WSFT(16)StE

@WSFT(16)StE

IR , SR , HR , AR , LR , DM , *DME :结束通道

IR , SR , HR , AR , LR , DM , *DMSt :起始通道

功能:执行条件为 ON 时, WSFT每执行一次,从 St 到 E 中的 数据以字为单位左移一次, 0000 移进 St , E 中的数据丢失。

WSFT(16)LR00LR02

00000920125432C0F

LR02 LR01 LR00 移位前

9201 00 0 0

LR02 LR00LR01 移位后溢出 0000

例:

St 和 E 不在同一区域,ER 标志 St > E

*DM 通道不存在,25503 为 ON

2543

Page 104: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器4. 算术左移指令- ASL (25)/@ ASL (25)

ASL(25)Ch

@ASL(25)Ch IR , SR , HR , AR , LR , DM , *DM

Ch :移位通道

功能:执行条件为 ON 时, ASL每执行一次,将 Ch 中数据左移一位,最高位移到 CY 位, 0 移进最低位。

CY 15 00

0

( 1 ) . 出错标志位 25503 : *DM 通道不存在时为 ON ,此时该指令不执行。( 2 ) . 进位标志位 25504 :移位溢出的位进入该标志位。( 3 ) . 相等标志位 25506 :当移位通道中的内容为 0000 时为 ON 。

说 明

Page 105: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器5. 算术右移指令- ASR (26)/@ ASR (26)

ASR(26)Ch

@ASR(26)Ch IR , SR , HR , AR , LR , DM , *DM

Ch :移位通道

功能:执行条件为 ON 时, ASR每执行一次,将 Ch 中数据右移一位,最低位移到 CY 位, 0 移进最高位。

15 00

0

CY

( 1 ) . 出错标志位 25503 : *DM 通道不存在时为 ON ,此时该指令不执行。( 2 ) . 进位标志位 25504 :移位溢出的位进入该标志位。( 3 ) . 相等标志位 25506 :当移位通道中的内容为 0000 时为 ON 。

说 明

Page 106: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器6. 循环左移指令- ROL (27)/@ ROL (27)

ROL(27)Ch

@ROL(27)Ch IR , SR , HR , AR , LR , DM , *DM

Ch :移位通道

功能:执行条件为 ON 时, ROL每执行一次,将 Ch 中数据连同 CY 位数据,循环左移一位。

CY 15 00

( 1 ) . 出错标志位 25503 : *DM 通道不存在时为 ON ,此时该指令不执行。( 2 ) . 进位标志位 25504 :移位通道中的第 15 位数据进入该标志位。( 3 ) . 相等标志位 25506 :当移位通道中的内容为 0000 时为 ON 。

说 明

Page 107: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

( 1 ) . 出错标志位 25503 : *DM 通道不存在时为 ON ,此时该指令不执行。( 2 ) . 进位标志位 25504 :移位通道中的第 00 位数据进入该标志位。( 3 ) . 相等标志位 25506 :当移位通道中的内容为 0000 时为 ON 。

7. 循环右移指令- ROR (28)/@ ROR (28)ROR(28)

Ch@ROR(28)

Ch IR , SR , HR , AR , LR , DM , *DMCh :移位通道

功能:执行条件为 ON 时, ROR每执行一次,将 Ch 中数据连同 CY 位数据,循环右移一位。

CY15 00

说 明

Page 108: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器8. 1 位数字左移指令- SLD (74)/@ SLD (74)

SLD(74)StE

@SLD(74)StE

IR , SR , HR , AR , LR , DM , *DME :结束通道

IR , SR , HR , AR , LR , DM , *DMSt :起始通道

功能:执行条件为 ON 时, SLD每执行一次,将 St 到 E 中的 数据以数字为单位左移一次, E 中的最高数字位溢出丢失, 0 数字移进 St 最低位。

2C0F 9201……E St

溢出 0

St 和 E 不在同一区域,ER 标志 St > E

*DM 通道不存在,25503 为 ON

Page 109: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器9. 1 位数字右移指令- SRD (75)/@ SRD (75)

SRD(75)StE

@SRD(75)StE

IR , SR , HR , AR , LR , DM , *DME :结束通道

IR , SR , HR , AR , LR , DM , *DMSt :起始通道

功能:执行条件为 ON 时, SRD每执行一次,将 St 到 E 中的 数据以数字为单位右移一次, E 中的最高数字位填进 0 数字, St 最低数字位溢出丢失。

2C0F 9201……E St

溢出0St 和 E 不在同一区域,

ER 标志 St > E

*DM 通道不存在,25503 为 ON

Page 110: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器10. 异步移位寄存器指令- ASFT(17)/@ ASFT(17)

ASFT(17)

St

E

C

@ASFT(17)

St

E

C

IR , SR , HR , AR , LR , DM , *DME :结束通道

IR , SR , HR , AR , LR , DM , *DMSt :起始通道

IR , SR , HR , AR , LR , DM , *DM , #C :控制数据

-------------131415

移位方向 1: 下移(向低地址通道移动)0: 上移(向高地址通道移动)

移位允许位复位端 R

-- : 不使用1: 允许移动0: 不允许移动1: 复位0: 正常操作

控制数据 C 各位的含义

Page 111: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器功 能

若寄存器中不包含 0000字,不发生移动,不出现数据交换。 上移时( Cbit15= OFF , Cbit14= ON , Cbit13= OFF ),所有内容为 0000 的通道与相邻的高地址通道之间交换数据。若相邻高地址通道内容也为 0000 ,则这两个通道不交换数据。 下移时( Cbit15= OFF , Cbit14= ON , Cbit13= ON ),所有内容为 0000 的通道与相邻的低地址通道之间交换数据。若相邻低地址通道内容也为 0000 ,则这两个通道不交换数据。

若 Cbit15= ON ,则 St 到 E 之间的通道复位(全部置为 0000 )。St 和 E 不在同一区域,

ER 标志 St > E

*DM 通道不存在,25503 为 ON

Page 112: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例:

00000

ASFT(17)#6000

DM0100

DM0110

789ADM0110

0000DM0109

6789DM0108

5678DM0107

4567DM0106

0000DM0105

3456DM0104

2345DM0103

0000DM0102

0000DM0101

1234DM0100

执行前

0000DM0110

789ADM0109

6789DM0108

5678DM0107

0000DM0106

4567DM0105

3456DM0104

0000DM0103

2345DM0102

0000DM0101

1234DM0100

执行一次后

0000DM0110

0000DM0109

0000DM0108

0000DM0107

789ADM0106

6789DM0105

5678DM0104

4567DM0103

3456DM0102

2345DM0101

1234DM0100

执行七次后

控制数据 C=#6000,

二进制表示为: 0110000000000000

故复位位为 OFF, 移位允许位为 ON ,移位方向为 ON(下移)

Page 113: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-5-2 数据转换指令1. BCD 码→二进制转换指令- BIN(23)/@ BIN(23)

BIN(23)SR

@BIN(23)SR IR , SR , HR , AR , LR , DM , *DM

R :结果通道IR , SR , HR , AR , LR , TC , DM , *DM

S :源通道( BCD 码)

功能:执行条件为 ON 时, BIN将 S 中的 BCD 码转换为二进制数,存入 R 中。转换过程中, S 的内容不变。

说 明出错标志 25503 :有下列情况之一时为 ON ,此时该指令不执行。S 的内容不是 BCD 码, 25503 为 ON 。 *DM 通道不存在, 25503 为 ON 。

相等标志 25506 :当转换结果为 0000 时为 ON 。

Page 114: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器2. 二进制→ BCD 码转换指令- BCD(24)/@ BCD(24)

BCD(24)SR

@BCD(24)SR IR , SR , HR , AR , LR , DM , *DM

R :结果通道IR , SR , HR , AR , LR , DM , *DM

S :源通道(二进制)

功能:执行条件为 ON 时, BCD将 S 中的二进制数转换为 BCD 码,存入 R 中。转换过程中, S 的内容不变。

说 明出错标志 25503 :有下列情况之一时为 ON ,此时该指令不执行。

转换后的 BCD 码大于 9999 ,*DM 通道不存在,相等标志 25506 :当转换结果为 0000 时为 ON 。

25503 为 ON 。

Page 115: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器3. 16→ 4 编码器指令- DMPX(77)/@ DMPX(77)

DMPX(77)

RC

S@DMPX(77)

RC

S

IR , SR , HR , AR , LR , TC , DM , *DM , #C :控制数据( BCD 码)

IR , SR , HR , AR , LR , TC , DM , *DM ,S :源开始通道

IR , SR , HR , AR , LR , DM , *DMR :结果通道

控制数据 C 的含义:指定 R 中接受编码结果的第一个数字位( 0~ 3 )指定被编码的源通道数( 0~ 3 )0 : 1个通道; 1 : 2个通道;2 : 3个通道; 3 : 4个通道。 固定为 0

Page 116: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

当执行条件为 ON 时, DMPX 对源通道进行 16- 4 编码,编码结果存入 R 中指定的数字位上。一次最多可对 4个源通道进行编码。

功 能

对源通道编码时,把该通道状态为 ON 的最高位的位号,编码成相应的一个十六进制数,然后传送到结果通道的指定数字位上。说 明 S+3 超出数据区范围,

*DM 通道不存在, 25503 为 ON ,该指令不执行。

Page 117: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器00000

216200

#0032

例:DMPX(77)

LD 00000DMPX(77) 216 200 #0032

C=#0032 4个通道均转换, R 中结果的第一个数字位为 2

0000010000000000100000001000000000010000000000000000001000100000IR216

IR217IR218IR219

15 00S

IR200

R

①②

A3 85

Page 118: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器4. 4→ 16译码器指令-MLPX(76)/@ MLPX(76)

MLPX(76)

CR

S@MLPX(76)

CR

S

IR , SR , HR , AR , LR , TC , DM , *DM , #C :控制数据( BCD 码)

IR , SR , HR , AR , LR , TC , DM , *DM ,S :源通道

IR , SR , HR , AR , LR , DM , *DMR :结果开始通道

控制数据 C 的含义:指定 S 中第一个要译码的数字位( 0~ 3 )指定 S 中要译码的数字位数( 0~ 3 )0 : 1 位数字; 1 : 2 位数字;2 : 3 位数字; 3 : 4 位数字。 固定为 0

Page 119: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

当执行条件为 ON 时, MLPX 对 S 中指定的数字进行 4-16译码,译码结果存入 R 开始的通道中。最多可对 4 位数字译码。

功 能

对 S 中某位数字译码时,把这位数字( 1 位 16 进制数)转换为 00~ 15 的十进制数,然后将指定结果通道中与该位十进制数对应的位置为 ON ,其余各位置为 OFF 。

说 明出错标志 25503 :有下列情况之一时为 ON ,此时该指令不执行。

R+3 超出数据区范围,*DM 通道不存在, 25503 为 ON 。

Page 120: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器00000

200#0031

216

例:MLPX(76)

LD 00000MLPX(76) 200 #0031 216

IR2002 3 A 1 S

C=#0031

第一个要译码的数字位为 1 ( A ): 000000000010000015 00IR216

第二个要译码的数字位为 2 ( 3 ): 000100000000000015 00IR217

第三个要译码的数字位为 3 ( 2 ): 001000000000000015 00IR218

第四个要译码的数字位为 0 ( 1 ): 010000000000000015 00IR219

Page 121: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器5. 七段译码指令- SDEC(78)/@ SDEC(78)

SDEC(78)

CR

S @SDEC(78)

CR

S

IR , SR , HR , AR , LR , DM , *DMR :结果开始通道

IR , SR , HR , AR , LR , TC , DM , *DMS :源通道 (二进制)

IR , SR , HR , AR , LR , TC , DM , *DM , #C :控制数据

控制数据 C 的含义:指定 S 中第一个被译码的数字位( 0~ 3 )指定 S 中被译码的数字个数( 0~ 3 )0 : 1个数字; 1 : 2个数字;2 : 3个数字; 3 : 4个数字。 指定从 R 的高 8 位还是低 8 位开始接收第一个转换结果

0 :低 8 位; 1 : 高 8 位;固定为 0

Page 122: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

当执行条件为 ON 时, SDEC 对源通道中的数字进行七段译码,译码结果存入从 R 开始的结果通道中。一次最多可对 S 中的 4个数字进行转换。

功 能

一个通道可以存放两个数字的转换结果。bit00~ bit06 对应于 a 、 b 、 c 、 d 、 e 、 f 、 g , bit07 不用bit08~ bit14 对应于 a 、 b 、 c 、 d 、 e 、 f 、 g , bit15 不用

若 C 指定从 R 的低 8 位开始接收第一个转换结果,则 R需要两个通道;若 C 指定从 R 的高 8 位开始接收第一个转换结果,则 R需要三个通道。

说明

控制字 C 错误

*DM 通道不存在25503 为 ON ,该指令不执行。结果通道超出数据区范围

Page 123: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器00000

216200

DM0000

例: SDEC(78)

LD 00000SDEC(78) 216 200 DM0000

IR2165 A 3 0 S

C=IR200 的内容. 当 IR200 的内容为 0030 时(第一个转换的数字位为 0 ;转换 4 位;结果通道从低 8 位开始接收)。

DM0000DM0001

IR216 5 A 3 0 S④ ①

②③

abc

def g

X 1 1 1 0 1 1 1 X 1 0 0 1 1 1 1 X 0 1 1 1 1 1 1X 1 1 0 1 1 0 1

Page 124: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器. 当 IR200 的内容为 0131 时(第一个转换的数字位为 1 ;转换 4 位;结果通道从高 8 位开始接收)。

DM0002

IR216 5 A 3 0 S

DM0001 DM0000

①②③④

abc

def g

X 1 1 1 0 1 1 1X 0 1 1 1 1 1 1 X 1 1 0 1 1 0 1 X 1 0 0 1 1 1 1

Page 125: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器6. ASC Ⅱ 码转换指令- ASC(86)/@ ASC(86)

ASC(86)

CR

S @ASC(86)

CR

S

IR , SR , HR , AR , LR , DM , *DMR :结果开始通道

IR , SR , HR , AR , LR , TC , DM , *DMS :源通道

IR , SR , HR , AR , LR , TC , DM , *DM , #C :控制数据

控制数据 C 的含义:指定 S 中第一个被转换的数字位( 0~ 3 )指定 S 中被转换的数字个数( 0~ 3 )0 : 1个数字; 1 : 2个数字;2 : 3个数字; 3 : 4个数字。

指定从 R 的高 8 位还是低 8 位开始接收第一个转换结果0 :低 8 位; 1 : 高 8 位;

校验: 0 :无校验; 1:偶校验; 2:奇校验

Page 126: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

当执行条件为 ON 时, ASC 对 S 中指定的数字转换成 ASC Ⅱ 码,并存入从 R 开始的结果通道中。一次最多可对 S 中的 4个数字进行转换。

010000000000000015 000708

转换后的 ASC Ⅱ码转换后的 ASC Ⅱ码校验位 校验位奇校验: ASC Ⅱ 码中 1 的个数为奇数。偶校验: ASC Ⅱ 码中 1 的个数为偶数。

功 能

若 C 指定从 R 的低 8 位开始接收第一个转换结果,则 R需要两个通道;若 C 指定从 R 的高 8 位开始接收第一个转换结果,则 R需要三个通道。

一个通道可以存放两个数字的转换结果。

Page 127: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器00000

216200

DM0000

例: ASC(86)

LD 00000ASC(86) 216 200 DM0000

IR2162 3 A 1 S

C=IR200 的内容 . 当 IR200 的内容为 1030 时(第一个转换的数字位为 0 ;转换 4 位;结果通道从低 8 位开始接收;偶校验)。

DM0000DM0001

IR216 2 3 A 1

S

④ ①②③

1 0 1 1 0 0 0 10 1 0 0 0 0 0 10 0 1 1 0 0 1 11 0 1 1 0 0 1 0

Page 128: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器 . 当 IR200 的内容为 2133 时(第一个转换的数字位为 3 ;转换 4 位;结果通道从高 8 位开始接收;奇校验)。

DM0002

IR216 2 3 A 1 S

DM0001 DM0000

①②③④

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

说明

控制字 C 错误

*DM 通道不存在25503 为 ON ,该指令不执行。结果通道超出数据区范围

返 回

Page 129: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

十进制数运算指令 : 12 种二进制数运算指令 : 4 种逻辑运算指令 : 5 种

Page 130: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-6-1 十进制运算指令1. 进位位置 1 指令- STC(40)/@ STC(40) 进位位置 0 指令- CLC(41)/@ CLC(41)

STC(40)

@STC(40)

进位位置 1 : CLC(41)

@CLC(41)

进位位置 0 :

做加法、减法时,进位位要参与运算,一般要在运算前清进位位。

当 CLC 的执行条件为 ON 时,进位标志位 25504被置为0 。

功 能当 STC 的执行条件为 ON 时,进位标志位 25504被置为 1 。

STC 、 CLC 在执行条件为 ON 时,每次扫描都要执行一次。@STC 、 @CLC仅在执行条件由 OFF 变 ON 时执行一次。

Page 131: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器2. BCD 码加法指令- ADD(30)/@ ADD(30)

ADD(30)

AdR

Au @ADD(30)

AdR

Au

IR , SR , HR , AR , LR , DM , *DMR :结果通道

IR , SR , HR , AR , LR , TC , DM , *DM , #Au :被加数( BCD )

IR , SR , HR , AR , LR , TC , DM , *DM , #Ad :加数( BCD )

当执行条件为 ON 时, ADD将 Au 、 Ad 的内容和 CY 相加,结果存入 R 中。若结果大于 9999 ,把 CY 置为ON 。

功能说明

Au 或 Ad 中有非 BCD 码*DM 通道不存在

25503 为 ON ,该指令不执行。进位标志 25504 :当和超出 4 为 BCD 码时, 25504 为 ON 。

相等标志 25506 :当和为 0000 时, 25506 为 ON 。

Page 132: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例:

25504

00002

CLC(41)

ADD(30)LR10

#6103

DM0100

TR0

MOV(21)#0001

DM0101

MOV(21)#0000

DM0101

25504

LD 00002OUT TR0CLC(41)ADD(30) LR10 #6103 DM0100LD TR0AND 25504MOV(21) #0001 DM0101LD TR0AND NOT 25504MOV(21) #0000 DM0101

功能:当 00002 为 ON 时,先清进位,然后执行( LR10 )+ 6103+ CY→DM01

00 ;再把相加产生的进位存入 DM0101 中。

Page 133: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器3. BCD 码减法指令- SUB(31)/@ SUB(31)

SUB(31)

SuR

Mi @SUB(31)

SuR

Mi

IR , SR , HR , AR , LR , DM , *DM

R :结果通道

IR , SR , HR , AR , LR , TC , DM , *DM , #

Mi :被减数( BCD )

IR , SR , HR , AR , LR , TC , DM , *DM , #

Su :减数( BCD )

当执行条件为 ON 时, SUB将Mi 的内容减去 Su 的内容和 CY ,结果存入 R 中。若结果为负,把 CY 置为 ON ,而 R 中的内容为实际结果的十进制补码。要将 R 中的内容转换为实际结果,应先清 CY ,再用 0减去 R中的内容。

功 能

说明

Mi 或 Su 中有非 BCD 码*DM 通道不存在

25503 为 ON ,该指令不执行。进位标志 25504 :当 Mi < Su 时, 25504 为 ON 。

相等标志 25506 :当差为 0000 时, 25506 为 ON 。

Page 134: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例:

25504

00002

CLC(41)

SUB(31)HR00

DM0100HR01

TR0

MOV(21)#0000HR02

25504

CLC(41)

SUB(31)#0000HR01HR01

MOV(21)#0001

HR02

当 00002 为 ON 时,2. (HR10)-DM0100-CY→HR01

例: 功 能

1. 先清进位

3. 当进位位为 0 时表示结果为正,结果存入 HR02 中4. 当进位位为 1 时表示结果为负。当结果为负数时,把补码形式转换为实际结果,存入 HR01 , 1存入 HR02 中,表示负数

Page 135: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器4. 双字 BCD 码加法指令- ADDL(54)/@ ADDL(54)

ADDL(54)

AdR

Au @ADDL(54)

AdR

Au

IR , SR , HR , AR , LR , DM , *DMR :结果开始通道

IR , SR , HR , AR , LR , TC , DM , *DMAu :被加数开始通道( BCD )

IR , SR , HR , AR , LR , TC , DM , *DMAd :加数开始通道( BCD )

Au+ 1 Au

Ad+ 1 Ad

CY+R+ 1 RCY

功 能当执行条件为 ON 时,完成如图所示运算。

说明

Au 或 Ad 中有非 BCD 码*DM 通道不存在

25503 为 ON ,该指令不执行。进位标志 25504 :运算结果大于 99999999 时, 25504 为 ON 。

相等标志 25506 :当结果为 0000 时, 25506 为 ON 。

Page 136: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器5. 双字 BCD 码减法指令- SUBL(55)/@ SUBL(55)

SUBL(55)

SuR

Mi @SUBL(55)

SuR

Mi

IR , SR , HR , AR , LR , DM , *DM

R :结果开始通道

IR , SR , HR , AR , LR , TC , DM , *DM

Mi :被减数开始通道( BCD )

IR , SR , HR , AR , LR , TC , DM , *DM

Su :减数开始通道( BCD )

Mi+ 1 Mi

Su+ 1 Su

CY-R+ 1 RCY

功 能 当执行条件为 ON 时,完成如图所示运算。结果为负, CY 置 1说明

Mi 或 Su 中有非 BCD 码*DM 通道不存在

25503 为 ON ,该指令不执行。进位标志 25504 :被减数小于减数时, 25504 为 ON 。相等标志 25506 :当结果为 0000 时, 25506 为 ON 。

Page 137: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器6. BCD 码乘法指令-MUL(32)/@ MUL(32)

MUL(32)

MrR

Md @MUL(32)

MrR

Md

IR , SR , HR , AR , LR , DM , *DM

R :结果开始通道

IR , SR , HR , AR , LR , TC , DM , *DM , #

Md :被乘数( BCD )

IR , SR , HR , AR , LR , TC , DM , *DM , #

Mr :乘数( BCD )

Md

Mi╳R+ 1 R

功 能当执行条件为 ON 时,完成如图所示运算。

说明

Md 或 Mr 中有非 BCD 码*DM 通道不存在

25503 为 ON ,该指令不执行。相等标志 25506 :当结果为 0000 时, 25506 为 ON 。

Page 138: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器7. BCD 码除法指令- DIV(33)/@ DIV(33)

DIV(33)

DrR

Dd @DIV(33)

DrR

Dd

IR , SR , HR , AR , LR , DM , *DM

R :结果开始通道

IR , SR , HR , AR , LR , TC , DM , *DM , #

Dd :被除数( BCD )

IR , SR , HR , AR , LR , TC , DM , *DM , #

Dr :除数( BCD )

DdDr

R

R+1….

商余数….

说明

Dd 或 Dr 中有非 BCD 码*DM 通道不存在

25503 为 ON ,该指令不执行。相等标志 25506 :当结果为 0000 时, 25506 为 ON 。

功 能 当执行条件为 ON 时,完成如图所示运算。

Page 139: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器8. 双字 BCD乘除法指令-MULL(56)/@ MULL(56)

MULL(56)

MrR

Md @MULL(56)

MrR

Md

IR , SR , HR , AR , LR , DM , *DM

R :结果开始通道

IR , SR , HR , AR , LR , TC , DM , *DM

Md :被乘数开始通道( BCD )

IR , SR , HR , AR , LR , TC , DM , *DM

Mr :乘数开始通道( BCD )

Md+ 1 Md

Mr+ 1 Mr╳R+ 1 RR+ 3 R+

2

功 能 当执行条件为 ON 时,完成如图所示运算。说明

Md 或 Mr 中有非 BCD 码*DM 通道不存在

25503 为 ON ,该指令不执行。相等标志 25506 :当结果为 0000 时, 25506 为 ON 。

Page 140: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器9. 双字 BCD 码除法指令- DIVL(57)/@ DIVL(57)

DIVL(57)

DrR

Dd @DIVL(57)

DrR

Dd

IR , SR , HR , AR , LR , DM , *DM

R :结果开始通道

IR , SR , HR , AR , LR , TC , DM , *DM

Dd :被除数开始通道( BCD )

IR , SR , HR , AR , LR , TC , DM , *DM

Dr :除数开始通道( BCD )

Dd+1

Dr+ 1

R+ 1

R+2….

余数DdDr

R

R+ 3

….

功 能 当执行条件为 ON 时,完成如图所示运算。说明

Dd 或 Dr 中有非 BCD 码*DM 通道不存在

25503 为 ON ,该指令不执行。相等标志 25506 :当结果为 0000 时, 25506 为 ON 。

Page 141: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器10. 递增指令- INC(38)/@ INC(38)

INC(38)Ch

@INC(38)Ch IR , SR , HR , AR , LR , DM , *DM

Ch :递增通道

当执行条件为 ON 时,每执行一次 INC 指令,将 ch 通道中的数据按十进制加 1 ,不影响进位标志。

功 能

说明

通道中内容不是 BCD 码*DM 通道不存在

25503 为 ON ,该指令不执行。进位标志 25504 :不影响该标志。

相等标志 25506 :当结果为 0000 时, 25506 为 ON 。

Page 142: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器11. 递减指令- DEC(39)/@ DEC(39)

DEC(39)Ch

@DEC(39)Ch IR , SR , HR , AR , LR , DM , *DM

Ch :递减通道

当执行条件为 ON 时,每执行一次 DEC 指令,将 ch 通道中的数据按十进制减 1 ,不影响进位标志。

功 能

说明

通道中内容不是 BCD 码*DM 通道不存在

25503 为 ON ,该指令不执行。进位标志 25504 :不影响该标志。

相等标志 25506 :当结果为 0000 时, 25506 为 ON 。

Page 143: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

清进位例:用十进制运算指令完成( 250*8-1000 ) /50 的运算。00000

@BSET(71)

DM0000#0000

DM0004

@MOV(21)#0250

HR00@MUL(32)

#0008DM0000

HR00

a

@CLC(41)

@SUB(31)

DM0002

DM0000#1000

@DIV(33)

DM0003

DM0002#0050

00000a

清零M0000~DM0004

00000由 OFF变为 ON 开始执行

250 送到被乘数单元 HR00

250*8,结果送到DM0000 和 DM0001 中, DM0000放低位

250*8-1000 ,结果送到 DM0002 中

( 250*8-1000 ) /50 ,结果送到 DM0003 和DM0004 中, DM0003放商, DM0004放余数。

Page 144: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-6-2 二进制运算指令1. 二进制加法指令- ADB(50)/@ ADB(50)

ADB(50)

AdR

Au @ADB(50)

AdR

Au

IR , SR , HR , AR , LR , DM , *DMR :结果通道

IR , SR , HR , AR , LR , TC , DM , *DM , #Au :被加数(二进制)

IR , SR , HR , AR , LR , TC , DM , *DM , #Ad :加数(二进制)

注意: 进位位参与运算,一般要在运算前用 CLC 指令清除进位位。

当执行条件为 ON 时, ADB将 Au 、 Ad 的内容和 CY 进行二进制加法运算,结果存入 R 中。若结果大于 FFFF ,把 CY 置为 ON 。

功 能

说明

出错标志 25503 : *DM 通道不存在, 25503 为 ON 。该指令不执行。进位标志 25504 :当和溢出时, 25504 为 ON 。

相等标志 25506 :当和为 0000 时, 25506 为 ON 。

Page 145: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器2. 二进制减法指令- SBB(51)/@ SBB(51)

SBB(51)

SuR

Mi @SBB(51)

SuR

Mi

IR , SR , HR , AR , LR , DM , *DMR :结果通道

IR , SR , HR , AR , LR , TC , DM , *DM , #Mi :被减数(二进制)

IR , SR , HR , AR , LR , TC , DM , *DM , #Su :减数(二进制)

当执行条件为 ON 时, SBB将Mi 中内容减去 Su 中内容,再减去 CY

中内容,结果存入 R 中。若结果为负,把 CY 置为 ON ,而 R 中的内容为实际结果的二进制补码。

功 能

说明

出错标志 25503 : *DM 通道不存在, 25503 为 ON 。该指令不执行。进位标志 25504 :当有借位时, 25504 为 ON 。

相等标志 25506 :当结果为 0000 时, 25506 为 ON 。

Page 146: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器3. 二进制乘法指令-MLB(52)/@ MLB(52)

MLB(52)

MrR

Md @MLB(52)

MrR

Md

IR , SR , HR , AR , LR , DM , *DM

R :结果开始通道

IR , SR , HR , AR , LR , TC , DM , *DM , #

Md :被乘数(二进制)

IR , SR , HR , AR , LR , TC , DM , *DM , #

Mr :乘数(二进制)

Md

Mi╳R+ 1 R

当执行条件为 ON 时, MLB将Md 、 Mr 中内容按二进制相乘,结果存入 R 、 R+1 中。

功 能

说明

出错标志 25503 : *DM 通道不存在, 25503 为 ON 。该指令不执行。相等标志 25506 :当结果为 0000 时, 25506 为 ON 。

Page 147: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器4. 二进制除法指令- DVB(53)/@ DVB(53)

DVB(53)

DrR

Dd @DVB(53)

DrR

Dd

IR , SR , HR , AR , LR , DM , *DM

R :结果开始通道

IR , SR , HR , AR , LR , TC , DM , *DM , #

Dd :被除数(二进制)

IR , SR , HR , AR , LR , TC , DM , *DM , #

Dr :除数(二进制)

DdDr

R

R+1….

商余数

当执行条件为 ON 时, DVB按二进制将 D

d 中内容除以 Dr 中内容,商存入 R 中,余数存入 R+1 中。

功 能

说明

除数为 0

*DM 通道不存在25503 为 ON ,该指令不执行。

相等标志 25506 :当结果为 0000 时, 25506 为 ON 。

Page 148: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

清进位例:用二进制运算指令完成( 250*8-1000 ) /50 的运算。

00000@BSET(71)

DM0000#0000

DM0004

@MOV(21)#00FA

HR00@MLB(52)

#0008DM0000

HR00

a

@CLC(41)

@SBB(31)

DM0002

DM0000#03E8

@DVB(33)

DM0003

DM0002#0032

00000a清零M0000~DM0004

00000由 OFF变为 ON 开始执行

250 送到被乘数单元 HR00

250*8,结果送到DM0000 和 DM0001 中, DM0000放低位

250*8-1000 ,结果送到 DM0002 中

( 250*8-1000 ) /50 ,结果送到 DM0003 和DM0004 中, DM0003放商, DM0004放余数。

Page 149: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-6-3 逻辑运算指令1. 求反指令- COM(29)/@ COM(29)

COM(29)Ch

@COM(29)Ch IR , SR , HR , AR , LR , DM , *DM

Ch :被求反的通道号

100100010010100115 00Ch

求反0110111011010110

15 00Ch

当执行条件为 ON 时,将 Ch 中内容按位求反。功 能

说明

出错标志 25503 : *DM 通道不存在, 25503 为 ON 。该指令不执行。相等标志 25506 :当结果为 0000 时, 25506 为 ON 。

Page 150: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器2. 逻辑与指令- ANDW(34)/@ ANDW(34)

ANDW(34)

I2R

I1 @ANDW(34)

I2R

I1

IR , SR , HR , AR , LR , DM , *DM

R :结果通道号

IR , SR , HR , AR , LR , TC , DM , *DM , #

I1 :输入 1

IR , SR , HR , AR , LR , TC , DM , *DM , #

I2 :输入 2

100110011001100115 00I1

101010101010101015 00I2

逻辑与 100010001000100015 00R

当执行条件为 ON 时,将 I1 、 I2 中的数据按位进行逻辑与运算,结果存入 R 中。

功 能

说明

出错标志 25503 : *DM 通道不存在, 25503 为 ON 。该指令不执行。相等标志 25506 :当结果为 0000 时, 25506 为 ON 。

Page 151: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器3. 逻辑或指令- ORW(35)/@ ORW(35)

ORW(35)

I2R

I1 @ORW(35)

I2R

I1

IR , SR , HR , AR , LR , DM , *DM

R :结果通道号

IR , SR , HR , AR , LR , TC , DM , *DM , #

I1 :输入 1

IR , SR , HR , AR , LR , TC , DM , *DM , #

I2 :输入 2

100110011001100115 00I1

101010101010101015 00I2

逻辑或 101110111011101115 00R

当执行条件为 ON 时,将 I1 、 I2 中的数据按位进行逻辑或运算,结果存入 R 中。

功 能

说明

出错标志 25503 : *DM 通道不存在, 25503 为 ON 。该指令不执行。相等标志 25506 :当结果为 0000 时, 25506 为 ON 。

Page 152: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器4. 异或指令- XORW(36)/@ XORW(36)

XORW(36)

I2R

I1 @XORW(36)

I2R

I1

IR , SR , HR , AR , LR , DM , *DM

R :结果通道号

IR , SR , HR , AR , LR , TC , DM , *DM , #

I1 :输入 1

IR , SR , HR , AR , LR , TC , DM , *DM , #

I2 :输入 2

100110011001100115 00I1

101010101010101015 00I2

逻辑异或0011001100110011

15 00R

当执行条件为 ON 时,将 I1 、 I2 中的数据按位进行逻辑异或运算,结果存入 R 中。

功 能

说明

出错标志 25503 : *DM 通道不存在, 25503 为 ON 。该指令不执行。相等标志 25506 :当结果为 0000 时, 25506 为 ON 。

Page 153: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器5. 同或指令- XNRW(37)/@ XNRW(37)

XNRW(37)

I2R

I1 @XNRW(37)

I2R

I1

IR , SR , HR , AR , LR , DM , *DM

R :结果通道号

IR , SR , HR , AR , LR , TC , DM , *DM , #

I1 :输入 1

IR , SR , HR , AR , LR , TC , DM , *DM , #

I2 :输入 2

100110011001100115 00I1

101010101010101015 00I2

逻辑同或1100110011001100

15 00R

当执行条件为 ON 时,将 I1 、 I2 中的数据按位进行逻辑同或运算,结果存入 R 中。

功 能

说明

出错标志 25503 : *DM 通道不存在, 25503 为 ON 。该指令不执行。相等标志 25506 :当结果为 0000 时, 25506 为 ON 。

Page 154: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例:逻辑运算

00000@BSET(71)

DM0000#0000

DM0004

@ANDW(34)

#0081#008F

DM0000

@ORW(35 )

#0073DM0000

DM0001

@XORW(36)DM0000

DM0002

DM0001

0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 #008F

0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 #0081

字逻辑与

0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 DM0000

0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 DM0000

0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 #0073

字逻辑或0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 DM0001

0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 DM0000

0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 DM0001

字逻辑异或0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 DM0002

清零 DM0000~DM00004

00000由 OFF 变为 ON 时执行

返 回

Page 155: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

程序结构相同的、需多次使用的程序可以编成子程序,在满足一定条件时,转去执行子程序,子程序执行完毕后,再返回断点处继续执行主程序。

Page 156: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-7-1 子程序调用、子程序定义 / 子程序返回指令1. 子程序调用指令- SBS(91)/@ SBS(91)

SBS(91) N @SBS(91) N N :子程序编号,取值范围: 000~ 049

当执行条件为 ON 时,调用编号为 N 的子程序。即调用 SBN(92) N 和 R

ET(93) 指令之间的程序。执行完毕后返回到 SBS(91) 指令的下一条指令继续执行主程序。

功 能

主程序可以无限次调用子程序,子程序也可以嵌套,但不能超过 16级。注意

出错标志 25503 : 25503 为 ON ,该指令不执行。子程序自调用被调用的子程序不存在 嵌套调用超过 16级

Page 157: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器2. 子程序定义和子程序返回指令- SBN(92)/ RET(93)

SBN(92) N RET(93) N :子程序编号,取值范围: 000~ 049

两指令都不需要执行条件。 SBN(92) 用于每段子程序开始,定义子程序的编号 N 。 RET(93) 用于子程序的结束。 SBN(92) 和 RET(93)必须一起使用。

若将 SBN放在主程序中,它将屏蔽此点之后的程序,即在主程序中遇到SBN 指令时,程序将返回到起始点。

功 能

注 意 所有子程序必须放在主程序之后, END 之前。 END必须置于最后一个子程序的后面,即在最后一个 RET 之后。

Page 158: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例 1 :

00000

00001

SBS(91) 001

@SBS(91) 002

……

SBN(92) 001

RET(93)

SBN(92) 002

RET(93)

END(01)

当 00000 为 ON 时,执行 001 号子程序,当 00001由 OFF→ ON 时,执行 002 号子程序。

主程序段

子程序段

Page 159: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

220 通道内容通过 010 通道输出。

例 1 :子程序调用举例 1

00100

SBS(91) 005

KEEP01100

25313

a

25502

00100MOV(21)

220#0001

25314

SFT (10)

220

25502

00100

IN

220SP

R

25313MOV(21)

010220

a

SBN(92) 00522007

RET(93)

END (01)

1秒钟 01100为 ON 一次

00100 为 OFF,传送数据,00100 为 ON ,调用 005号子程序。

00100 为 ON , 22000~22007循环移位, 00100 为 OFF复位

注意:只要 00100 为 ON ,每个扫描周期都要调用 005 号子程序。

Page 160: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例 2 :子程序调用举例 2

25506

ADD(30)

200

200

CMP(20)

#0010200

a

SBN(92) 00225313

RET(93)

END (01)

#0002

MOV(21)

200#0004

a

CNT000

SBS(91) 002

01000CNT000

01000

25315@MOV(21)

200#0004

25502

25315

00000

CNT000

CNT 000

200

TIM 001#0020

TIM001

计数初值 #0004脉冲发生器,脉冲周期为 200 通道的内容

CNT000 为 ON ,使 01000 为 ON 2秒。

CNT000 为 ON ,调用 002 号子程序。

子程序的功能是修改计数初值,当 200 通道内容小于 #0010 时, 200 通道内容加 2 , 200 通道内容等于 #0010 时,把 #0004 送 200 通道。

Page 161: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例 3 :子程序调用举例 3 , DM0000 中已经写入 0100 。

a

CNT000

SBS(91) 010

01001

CNT000

25313

21001

25502

25315

00000

21001

CNT 000

#0300

DEC(39)

SBN(92) 010

DM0000

25506

CMP(20)

#0000DM0000

a25313

RET(93)

END (01)

2100021000

SBS(91) 011

RET(93)

SBN(92) 011

2100125313

脉冲发生器,脉冲周期为 300秒,上电复位、 21001为 ON 复位。 21001 为 ON , 01001 为 ON 。 010 号子程序功能:DM000 内容减 1 ,结果为 0 ,则调用 011 号子程序,否则返回。

011 号子程序功能:当 DM0000 内容减 1 ,结果为 0 ,则调用 011号子程序,使 21001 为ON 。

发 100个脉冲,脉冲发生器复位, 01001 输出为 ON

Page 162: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器3-7-2 宏指令-MCRO(99)/ @MCRO(99)

MCRO(99)

I1O1

N @MCRO(99)

I1O1

N

IR , SR , HR , AR , LR , DM , *DM

O1 :第一个输出字

000~ 049

N :子程序编号( BCD )

IR , SR , HR , AR , LR , TC , DM , *DM

I1 :第一个输入字

当执行条件为 ON 时, MCRO将 I1~I1+3 的内容复制到 SR232~SR235 中;将 O1~O1+3 的内容复制到 SR236~SR239 中,然后调用并执行编号为N 的子程序。子程序中输入点用 I1 中的状态代替( 64 点);输出点用 O1中的状态代替( 64 点)。当子程序执行完毕后, SR236~SR239 中的内容传送回 O1~O1+3 中。

功 能 宏指令允许用一个单一子程序代替数个具有相同结构但不同操作数的子程序。

Page 163: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例: 25313 (常通标志)

MCRO(99)040200210

MCRO(99)040202215

MCRO(99)040205220

SBN(92) 040

RET(93)

23200 23601

23600

23201 23202

23600

23601

21000

21001

20000 21001

21000

20001 20002

20200 21501

21500

20201 20202

20500 22001

22000

20501 2050222001

22000

21501

21500

Page 164: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器注 意

指定的子程序编号不存在 操作数超出数据区范围*DM 通道不存在 子程序自调用。

有下列情况之一,出错标志 25503 为 ON ,该指令不执行。

返 回

Page 165: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-8 高速计数器控制指令§3-8-1 旋转编码器 PLC 进行计数时,有时会用到旋转编码器。旋转编码器能输出脉冲信号,高速计数器配合使用旋转编码器,可以用于测量、处理转动或位移信号等。

旋转编码器输出脉冲形式1 2 3 4 5

单相脉冲:

两相脉冲:1 2 3 4 5 6 7 8 7 6 5 4 3 2 1 0 –1 -2

A 相:B 相:

递增 递减

频率达几十千赫频率达几十千赫

A 、 B 两相相差 90° , A 、 B 两相谁超前取决于编码器的旋转方向。

Page 166: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

一 . 高速计数器的计数模式

计数脉冲输入端子为 00000 ,复位信号输入端子为 00002 。对单项脉冲进行递增计数。计数范围为 0~ 65535 ,最高计数频率为 5KHz 。

1 2 3 4 5

递增模式

§3-8-2 高速计数器的计数功能

Page 167: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

. A 相信号超前 B 相信号 1/4周期 ,则进行递增计数。. B 相信号超前 A 相信号 1/4周期 ,则进行递减计数。计数范围:- 32767~+32768 ,计数频率: 2.5KHz 。

1 2 3 4 5 6 7 8 7 6 5 4 3 2 1 0 –1 -2

A 相:B 相:

递增 递减

增减模式 A 相信号输入端子为 00000 , B 相信号输入端子为 00001 ,Z 相信号接输入端子 00002 。根据 A 相信号和 B 相信号的相位关系进行递增或递减计数。

Page 168: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器二 . 高速计数器的复位功能

用 SR25200 作为高速计数器的复位标志。在 SR25200 为 ON 的条件下,Z 相信号为 ON 时,高速计数器当前值复位为 0 。

只要 SR25200 为 ON 时,高速计数器的当前值复位为 0.

高速计数器使用前必须进行设定,用编程器设置 DM6642 中的内容, P

LC设置后,高速计数器进行计数动作。但在执行 CTBL(63) 指令前,并不用比较表进行比较,也不会产生中断。电源掉电重新上电时,高速计数器复位为 0 。

Z 相信号+软件复位

软件复位

三 . 高速计数器的设定

Page 169: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

从计数值上限值进行加计数时,就会发生上溢;从计数值下限值进行减计数时,就会发生下溢。

四 . 高速计数器的上溢和下溢

复位时将清除上溢和下溢。

发生上溢和发生下溢时停止计数上溢时, PV← 0FFF,FFFFH ; 下溢时, PV← FFFF,FFFFH 。

高速计数器的当前值 PV存放在 SR248 、 SR249 通道中,其中 SR248存放低 4 位, SR249存放高 4 位。

递增计数 PV 范围为: 00000000~ 0000FFFF(0~65535)递减计数 PV 范围为: F0007FFF~ 00007FFF (-32767~+32767) (第一位 F 表示负数)。五 . 高速计数器的当前值存储区

Page 170: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-8-3 高速计数器的中断功能

最多 16个比较条件(目标值)和中断子程序组合在比较表中,当 PV值与目标值一致时,执行指定的中断程序。(两个通道构成一个目标值,中断子程序占一个通道)

8个比较条件(上限和下限)和中断子程序组合在比较表中, 当 下限值 ≼ PV ≼ 上限值时,执行指定的子程序。(四个通道构成一个比较区域,中断子程序占一个通道,比较区域不足 8个,设定其余的子程序号为 FFFF 。)

1. 目标值比较中断

2. 区域比较中断

Page 171: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

1. 比较表登录指令- CTBL(63)/@CTBL(63)

CTBL(63)

CTB

P @CTBL(63)

CTB

P

IR , SR , HR , AR , LR , DM , *DM

TB :比较表开始通道

000

P :端口定义符

000~ 003

C :控制数据

当执行条件为 ON 时,登记一个用于高速计数器的比较表,根据 C 的值,同高速计数器当前值的比较可以立即启动,也可以用 INI 单独启动。

功 能

§3-8-3 高速计数器的控制指令

Page 172: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

( 4 ) . C=003 仅登录区域比较表,不启动比较。若要比较,需使用 INI 指令启动。

( 1 ) . C=000 登录目标值比较表,并启动比较。目标值比较表中包含 16个目标值和与各自目标值对应的中断子程序号。当 PV=目标值时,执行对应的子程序。( 2 ) . C=001 登录区域比较表,并启动比较。区域比较表中包含 8个区域和与之对应的中断子程序号。当下限值 ≼ PV ≼ 上限值时,执行对应的子程序。( 3 ) . C=002 仅登录目标值比较表,不启动比较。若要比较,需使用 INI 指令启动。

Page 173: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

例:比较表结构:TB

TB+1TB+2TB+3TB+4TB+5TB+6

目标值比较表

比较的次数( BCD )目标值 1 的低 4 位( BCD )目标值 1 的高 4 位( BCD )比较 1 的中断子程序号目标值 2 的低 4 位( BCD )目标值 2 的高 4 位( BCD )比较 2 的中断子程序号…. ….

TBTB+1TB+2TB+3TB+4TB+5TB+6TB+7TB+8TB+9

区域比较表

下限值 1 的低 4 位( BCD )

比较 1 的中断子程序号

…. ….

下限值 1 的高 4 位( BCD )上限值 1 的低 4 位( BCD )上限值 1 的高 4 位( BCD )下限值 2 的低 4 位( BCD )

比较 2 的中断子程序号

下限值 2 的高 4 位( BCD )上限值 2 的低 4 位( BCD )上限值 2 的高 4 位( BCD )

出错标志 25503 : 25503 为 ON ,该指令不执行。高速计数器设置错误 *DM 通道不存在比较表超出数据区边界,或比较表设置有错误

当主程序中执行脉冲 I/O 或高速计数器指令时,中断子程序执行了 INI 指令。

Page 174: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例: 25315

CTBL(63)

000

000

DM0000

SBN(92) 030

RET(93)

SBN(92) 031

RET(93)

END(01)

登录目标值比较表并开始比较

中断处理子程序: 030

中断处理子程序: 031

用编程器设置 DM6642 中的内容DM6642=0 1 x 4

递增计数根据复位方式选 0 或 1

使用高速计数器目标值比较表

0002100000000030200000000031

DM0000DM0001DM0002DM0003DM0004DM0005DM0006

目标值 2个目标值 1 : 00001000

比较 1 中断子程序: 030

目标值 2 : 00002000

比较 2 中断子程序: 031

Page 175: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例: 25315

CTBL(63) 000001

DM0000

SBN(92) 040

RET(93)

SBN(92) 041

RET(93)

END(01)

登录区域比较表并开始比较

中断处理子程序: 040

中断处理子程序: 041

DM6642=0 1 x 0 递减计数根据复位方式选 0 或 1使用高速计数器

比较 1 中断子程序: 040

比较 2 中断子程序: 041

下限值 1 : 1500

上限值 1 : 3000

下限值 2 : 7500

上限值 2 : 10000

区域比较表15000000300000000040750000000000000100410000000000000000FFFF

DM0000DM0001DM0002DM0003DM0004DM0005DM0006DM0007DM0008DM0009DM0010DM0011DM0012DM0013DM0014

……

Page 176: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器2. 操作模式控制指令- INI(61)/@INI(61)

INI(61)

CP1

P @INI(61)

CP1

P

IR , SR , HR , AR , LR , DM , *DM

P1 :设定值开始通道

000

P :端口定义符

000~ 003

C :控制数据

当执行条件为 ON 时, INI 用于控制高速计数器的操作或停止脉冲输出, INI 的功能由控制数据 C决定。

功能C=000 INI启动用 CTBL登记的比较表与高速计数器当前值进行比较。C=001 INI 停止用 CTBL登记的比较表与高速计数器当前值进行比较。C=002 INI将 P1 、 P+ 1 通道的内容传送到高速计数器当前值寄存器SR248 、 SR249 中,作为高速计数器新的当前值。 P1 的内容为低 4 位, P1+1 的内容为高 4 位。C=003 INI将停止从 01000 或 01001 的单相脉冲输出( P1=000 )。

Page 177: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

出错标志 25503 : 25503 为 ON ,该指令不执行。P1+1 超出取值区域( C=002)*DM 通道不存在 操作数设置错误

主程序中执行脉冲 I/O 或高速计数器指令时,中断子程序执行了 INI 指令。

说 明

Page 178: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器3. 当前值读出指令- PRV(62)/@PRV(62)

高速计数器的当前值存放在 SR248 (低 4 位)、 SR249 (高 4 位)中,可以用数据传送的方法直接读出 SR248 、 SR249 的内容,也可以用 PRV(62) 指令读出当前值。

PRV(62)

CD

PCD

P

IR , SR , HR , AR , LR , DM , *DM

D :目的开始通道

000

P :端口定义符

000

C :控制数据 @PRV(62)

当执行条件为 ON 时,将高速计数器的当前值读出并送到目的通道 D 、D+1 中,低 4 位存放在 D 中,高 4 位存放在 D+1 中。

功 能

Page 179: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

出错标志 25503 : 25503 为 ON ,该指令不执行。D+1 超出取值区域*DM 通道不存在 操作数设置错误

主程序中执行脉冲 I/O 或高速计数器指令时,中断子程序执行了 INI 指令。

说 明

Page 180: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

返 回

总结1. 使用前必须设定2. 高速计数器当前值放在 SR248 和 SR249 通道,不能用作它用。3. 高速计数器使用时, 00000~00002三个输入点被占用,不能用作它用。4. 高速计数器有两种计数模式,递增计数和增减计数。5. 高速计数器有中断功能,使用其中断功能时要用 CTBL 指令登录一个目标值比较表或区域比较表。6. 高速计数器的中断处理子程序与普通子程序的编写规则一样。

Page 181: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-9 脉冲输出控制指令 CPM1A 中的晶体管输出型具有单相脉冲输出功能,可以从 01000 或 01001 某一点输出 20Hz~ 2KHz 的脉冲。脉冲输出可以设置成连续模式或独立模式。脉冲输出模式

连续模式:以指定的频率输出脉冲,由指令控制脉冲输出停止。独立模式:输出脉冲数达到指定的数目时 (1~ 16777215), 脉冲输出停止。

……

独立模式:连续模式:

以指定的频率输出脉冲直到用指令停止脉冲输出

当输出脉冲数达到指定的数目时,脉冲输出停止

Page 182: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器1. 设置脉冲指令- PLUS(65)/@PLUS(65)

PLUS(65)

000N

000000N

000IR , SR , HR , AR , LR , DM , *DM

N :脉冲数 @PLUS(65)

功 能 当执行条件为 ON 时, PLUS设定输出的脉冲数目, 8 位 BCD 码,取值范围为 1~ 16777215 。 N 、 N+1 分别为存放脉冲数的低 4 位、高 4 位通道。

连续模式输出脉冲时,不需要此设置。独立模式输出脉冲时,需要使用 PLUS 指令设定脉冲数

说 明出错标志 25503 : 25503 为 ON ,该指令不执行。

指令设置有错误 *DM 通道不存在 操作数超出数据区边界 主程序中执行脉冲 I/O 或高速计数器指令时,中断子程序执行了 PLUS 指令。

Page 183: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器2. 速度输出指令- SPED(64)/@SPED(64)

SPED(64)

MF

PMF

P @SPED(64)

IR , SR , HR , AR , LR , DM , *DM , #

F :脉冲频率

000 或 010

P :输出位区分符

000 或 001

M :输出方式

P:000---01000

010---01001M :000---独立模式

001--- 连续模式F ( 4 位 BCD 码):设定值 0002~ 0200 ,对应的频率为 20~ 2000Hz 。

功 能 当执行条件为 ON 时, SPED 指令设定脉冲输出位、输出模式和设定脉冲输出频率。

Page 184: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

在连续模式下,有两种停止脉冲输出的方法用 SPED 指令 (设定 F=0000)用 INI 指令( C=003)

在同一时刻只能从一点输出脉冲,在脉冲输出时,不能用 PLUS 指令改变输出的脉冲数。

在脉冲输出过程中。可以用 SPED 指令通过改变 F 来改变脉冲的频率。 在独立模式下,当输出脉冲数达到 PLUS 指定的数目时,脉冲输出会自动停止。

说 明出错标志 25503 : 25503 为 ON ,该指令不执行。

指令设置有错误 *DM 通道不存在 当间隔定时器运行时执行 SPED 指令主程序中执行脉冲 I/O 或高速计数器指令时,中断子程序执行了 SPED 指令

Page 185: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例: 00004

00005

@SPED(64)

000001

#0100@INI(61)

000003000

启动脉冲输出脉冲输出位为: 01000输出模式:连续输出脉冲频率: 1KHz

停止脉冲输出P=000C=003P1=000

当 00004由 OFF 变为 ON时,启动脉冲输出。从 01000 连续输出 1KHz 的脉冲。 当 00005由 OFF 变为 ON时,停止脉冲输出。

例:

00004

00004@PLUS(64

) 000000

DM0100@SPED(64

) 000000

#0100

设置脉冲数000000脉冲数在 DM0100 和 DM0101 中启动脉冲输出脉冲输出位为: 01000输出模式:独立输出脉冲频率: 1KHz

当 00004由 OFF 变为 ON时, PLUS 指令设置输出脉冲数。(存放在 DM0100 和 D

M0101 中)同时 SPED启动脉冲输出,当输出脉冲数达到指定数目时,脉冲输出自动停止。

返 回

Page 186: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-10 中断控制指令

CPM1A 中断外部输入中断 间隔定时器中断 高速计数器中断

外部输入中断计数器中断

单次模式中断重复模式中断

目标值比较表中断区域比较表中断

中断子程序同一般子程序一样,用 SBN(92) 和 RET(93) 定义。

Page 187: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-10-1 外部输入中断功能1. 外部输入中断的输入点

00003 中断 0 10 、 20 、 30 、 40 点主机00004 中断 1 10 、 20 、 30 、 40 点主机00005 中断 2 20 、 30 、 40 点主机00006 中断 3 20 、 30 、 40 点主机2. 外部输入中断的优先级

外部输入中断 0 → 外部输入中断 1 → 外部输入中断 2 → 外部输入中断 3

优先级顺序为:

Page 188: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器3. 外部输入中断模式( 1 ) . 输入中断模式 只要中断输入点接通就产生中断请求。若在非屏蔽情况下,则立即响应;若在屏蔽状态下,则该中断请求信号被记录下来,待屏蔽解除后,立即响应。若不希望屏蔽解除后响应该中断信号,可以用指令清除该记忆。 ( 2 ) . 计数器中断模式 当中断输入点接通的次数达到计数器的设定值时产生中断,且计数器停止计数,中断被屏蔽。若想再产生中断,需使用指令进行设定。计数器的计数范围为 0~65535 ,计数频率最高为1KHz 。

Page 189: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

中断输入点 存放计数器设定值通道 存放计数器(当前值 -1 )通道00003 SR240 SR24400004 SR241 SR24500005 SR242 SR24600006 SR243 SR247

计数器中断模式各输入点与计数器设定值、当前值通道的关系

4. 外部输入中断的子程序 中断处理子程序也是用 SBN 和 RET 定义,放在主程序之后, END 指令之前。但子程序的编号是固定的。

中断输入点 中断号 中断子程序编号00003 中断 0 00000004 中断 1 00100005 中断 2 00200006 中断 3 003

Page 190: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器5. 外部输入中断的设定

DM6628 3 2 1 0

输入中断 0 (输入端子 00003 )设定输入中断 1 (输入端子 00004 )设定输入中断 2 (输入端子 00005 )设定输入中断 3 (输入端子 00006 )设定

0 :普通输入端子1 :中断输入端子

外部输入中断使用前,应用编程器设定 DM6628

Page 191: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-10-2 间隔定时器的中断功能1. 间隔定时器 间隔定时器是递减计数器,当其定时时间到时,可以不受扫描周期的影响,停止执行主程序并建立断点,立即转去执行中断子程序,从而实现高精度的定时中断处理。

间隔定时器的中断模式

单次模式重复模式

定时时间到,执行中断,且只执行一次。每隔一段时间,进行一次中断,是周期性中断。

2. 间隔定时器的中断模式

Page 192: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器3. 间隔定时器的中断处理子程序 不论是单次中断模式还是重复中断模式,其子程序号都是由STIM 指令来确定,其范围为 000~049 。

编写中断处理子程序应注意以下几点:1. 在中断处理子程序内部可以定义新的中断,也可以解除中断。2. 在中断处理子程序内部不可以调用别的中断处理子程序。3. 在中断处理子程序内部不可以调用普通子程序。4. 在普通子程序中不可以调用中断处理子程序。

Page 193: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-10-3 中断的优先级

CPM1A系列 PLC 有高速计数器中断、外部输入中断、间隔定时器中断时,执行各种中断的优先级的顺序是: 外部输入中断 0 → 外部输入中断 1 → 外部输入中断 2 → 外部输入中断 3

→间隔定时器中断→高速计数器中断

Page 194: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-10-4. 中断控制指令

INT(89)

000 D

CC 000 D

CC @INT(89)

IR , SR , HR , AR , LR , DM , TC , *DM , #

D :控制数据000~ 003 、 100 、 200

CC :控制码

当执行条件为 ON 时,INT 用来控制中断并根据 C

C 的值完成 6 种功能中的一种。

解除所有中断屏蔽200屏蔽所有中断100更新计数器设定值003读出当前屏蔽状态002清除 / 不清除输入中断记忆001屏蔽 / 不屏蔽输入中断000

功能CC控制码 CC 的含义功 能

1. 中断控制指令- INT(89)/@INT(89)

Page 195: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

对中断输入 00003~ 00006 进行屏蔽或不屏蔽,屏蔽的输入被记录,但不响应,一旦屏蔽被解除,对应的中断程序马上被执行(除非预先执行 CC=001 的 INT 来清除之)。 未被屏蔽的中断,马上被响应。

( 1 ) .CC=000 屏蔽 / 不屏蔽输入中断

用 D 的 bit00~bit03 分别定义中断输入 00003~ 00006 3 2 1 0

中断输入 00003 ( 0 :不屏蔽; 1 :屏蔽)中断输入 00004 ( 0 :不屏蔽; 1 :屏蔽)中断输入 00005 ( 0 :不屏蔽; 1 :屏蔽)中断输入 00006 ( 0 :不屏蔽; 1 :屏蔽)

Page 196: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

若中断输入端子在屏蔽状态下被接通,则不能产生中断,但该信息被存储记录下来,等到屏蔽解除后立即产生中断。如果在屏蔽解除时,不希望产生先前记忆的中断,则可以用清除中断记忆的方法实现。 用 D 的 bit00~bit03 分别定义中断输入 00003~ 00006 为清除或不清除中断记忆。

3 2 1 0

中断输入 00003 ( 0 :不清除; 1 :清除)中断输入 00004 ( 0 :不清除; 1 :清除)中断输入 00005 ( 0 :不清除; 1 :清除)中断输入 00006 ( 0 :不清除; 1 :清除)

( 2 ) .CC=001 清除 / 不清除输入中断记忆

Page 197: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器( 3 ) .CC=002 读出当前屏蔽状态 将中断输入 00003~ 00006 的当前屏蔽状态字写到 D 的 bit

00~ bit03 ,分别对应于 00003~ 00006 。若输入被屏蔽则对应位为 1 ,否则为 0 。

3 2 1 0

中断输入 00003 ( 0 :未屏蔽; 1 :屏蔽)中断输入 00004 ( 0 :未屏蔽; 1 :屏蔽)中断输入 00005 ( 0 :未屏蔽; 1 :屏蔽)中断输入 00006 ( 0 :未屏蔽; 1 :屏蔽)

字 D 的位

Page 198: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器( 4 ) .CC=003 更新计数器设定值 将中断输入 00003~ 00006 的计数器设定值更新。( CPM1

A规定, SR240~ SR243 为存放计数器设定值的通道, SR244

~SR247 为存放计数器当前值的通道。)中断输入 计数器设定值 计数器当前值- 1

输入 00003 (中断输入0 ) SR240 SR244

输入 00004 (中断输入1 ) SR241 SR245

输入 00005 (中断输入2 ) SR242 SR246

输入 00006 (中断输入3 ) SR243 SR247 设定值范围为 0000~ FFFF ( 0~ 65535 )。在程序中用

数据传送指令或其它指令将设定值写入 SR240~SR243即可。

Page 199: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器 计数方式为减 1 计数,即中断输入端子接通一次,当前值减1 一次,直到当前值为 0000 时,产生中断。产生中断后,计数器停止计数,同时中断被屏蔽,若想再次中断,需改写设定值,改写或不改写用 D 的 00~ 03 位设定。计数器中断模式下,最高计数频率可达 1KHz 。

3 2 1 0

中断输入 00003 的计数器设定值( 0 :更新; 1 :不更新)中断输入 00004 的计数器设定值( 0 :更新; 1 :不更新)中断输入 00005 的计数器设定值( 0 :更新; 1 :不更新)中断输入 00006 的计数器设定值( 0 :更新; 1 :不更新)

字 D 的位

Page 200: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器( 5 ) .CC=100 屏蔽所有中断

屏蔽所有中断输入中断间隔定时器中断高速计数器中断

当 CC=100 时,D固定为 0000 。

在屏蔽期间,若发生中断请求,将不会响应,但会将发生的输入中断、间隔定时器中断、高速计数器中断记录下来。去掉中断屏蔽后,马上进行中断服务。( 6 ) .CC=200 解除所有中断屏蔽 用来解除所有中断屏蔽。当 CC=200 时, D固定为 0000 。注意:解除所有中断屏蔽并不清除单独中断类型的屏蔽。

Page 201: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例:输入中断模式程序举例

…中断屏蔽的设定

中断处理子程序:000

…00003 、 00004 为非屏蔽, D 的 bit00~ bit03 为 1100

用编程器设定 DM6628

的内容为 0011 ,表示 0

0003 、 00004 为中断输入端子。

INT (89)

#000C

000

25315

000

0100020000 20001

SBN(92) 000

2000025313

RET(93)

SBN(92) 001

2000125313

RET(93)

…固定设置

中断处理子程序:001

Page 202: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例:计数器中断模式程序举例

中断输入 00004 的计数器设定值更新

中断处理子程序: 001

将 00FA 送入 00004 计数器设定值通道 SR241

用编程器设定 DM6628

的内容为 0010 ,表示00004 为中断输入端子,当输入 00004 接点闭合250 次时产生中断,转去执行中断处理子程序001 。

INT (89)

#000D

003

25315

000

20000

SBN(92) 001

2000025313

RET(93)

01000TIM000

MOV(21)

241#00FA

TIM 000#0050

Page 203: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例: INT 指令设定的编程方法

INT (89)

#000E

003

00000

000

MOV(21)

240#0030

RESET 20000

INT (89)

#000E

003

00001

000

MOV(21)

240#0050

RESET 20000

a

SBN(92) 000

2000025313

RET(93)

01000

a

INT (89)

#0001

000000

00005

INT (89)

DM0000

002000

00006

20000 25502

00000 为 ON ,传送计数器设定值 0030

00003 输入中断计数器设定值更新,计数 30 次产生中断。

00001 为 ON ,传送计数器设定值 0050

00003 输入中断计数器设定值更新,计数 50 次产生中断。

00005 为 ON ,屏蔽 00003

00006 为 ON ,读出当前屏蔽状态放在 DM0000 中。

Page 204: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器2. 间隔定时器中断指令- STIM(69)/@STIM(69)

STIM(69)

C2 C3

C1 C2 C3

C1@STIM(69)

IR , SR , HR , AR , LR , DM , TC , *DM , #

C2 :控制数据 2

000 、 003 、 006 、 010

C1 :控制数据 1

IR , SR , HR , AR , LR , DM , TC , *DM , #

C3 :控制数据 3

停止定时器010读出定时器当前值006启动重复中断模式003启动单次中断模式000

功能C1

控制数据 C1 的含义 当执行条件为 ON 时, STIM 用来控制间隔定时器根据 C1 的值完成 4 种功能中的一种。

间隔定时器的工作模式

单次模式重复模式

定时时间到,执行中断,且只执行一次。每隔一段时间,进行一次中断,是周期性中断。

功 能

Page 205: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器( 1 ) .C1=000 启动单次中断模式 C2 为间隔定时器定时设定值( BCD:0000~9999 ), C2+1为时间间隔, C3 为中断子程序号。定时时间到,发生一次中断,且只发生一次。C2 、 C2+1设定:

当 C2 为通道号时,其通道中数据 (BCD:0000~ 9999) 为递减计数器的设定值 SV 。时间间隔由 C2+1 中的数据决定。 C2+1 的数据范围为 0005~ 0320(BCD) 表示 0.5~ 32ms ,因此实际定时时间为 C2 中的内容 ×(C2+1 中的内容 )×0.1ms 实际定时范围为 0.5~ 319968ms 。

当 C2 为常数时,时间间隔固定为 1ms ,因此实际定时时间即为该常数。如: C2=0010 ,实际定时时间为 10ms 。

Page 206: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

( 2 ) .C1=003 启动重复中断模式 C2 为间隔定时器定时设定值( BCD:0000~9999 ), C2+1为时间间隔, C3 为中断子程序号。其设定与单次中断模式相同。

C3 的设定:C3 为常数时,常数即为子程序编号( BCD )

C3 为通道时,通道内数据即为子程序编号( BCD )子程序编号范围: 000~ 049

在重复模式下,定时时间到,产生中断,调用中断服务处理子程序,同时定时器的当前值 PV再次恢复到设定值 SV ,并重新开始递减计数。每隔一段时间发生一次中断,直到停止定时工作为止。

Page 207: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器( 3 ) .C1=006 读出定时器当前值 可以读出减 1 的次数、时间间隔、从上次减 1 到当前时刻的时间。从而可以计算出定时开始到当前时刻的时间。读出的三个参数分别存放在 C2 、 C2+1 、 C3 中。

C2+1开始时刻 结束时刻

C3

( 4 ) .C1=010 停止定时 C1=010 间隔定时器停止工作,此时 C2 、 C3固定为 0000

{ C2 中的内容 ×(C2+1 的内容 )+ C3 的内容} ×0.1ms

从定时开始到当前时刻的时间为:

Page 208: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例:单次中断模式程序举例

计数器初值设定: C2=0020,SV=0020;C2+1=0010, 时间间隔为 1ms

单次中断模式子程序编号: 010

将计数次数 0020 ( BCD )送入减法计数器设定值通道 DM0000

将时间间隔 0010 ( 1ms )送入时间间隔通道DM0001

STIM ( 69)

#0010

000

25315

DM0000

MOV(21)

DM0000#0020

MOV(21)

DM0001#0010

00000

2000001000

TIM 000#0050

TIM000RESET 20000

a

SBN(92) 010

2000025313

RET(93)

a

Page 209: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例:重复中断模式程序举例

中断处理子程序: 005

子程序编号: 005

间隔定时器重复中断模式 设定值( ms )STIM ( 69)

003#0005

25315

#000520000

01000

2000101001

SBN(92) 005

2000020001

RET(93)

2000120000

Page 210: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例: STIM 指令各种设定时的编程

STIM ( 69)003

#0400

00000

#000225500

25315

20000

CNT000

CNT 000

#0002

CNT000RESET 20000

a

SBN(92) 002

2000025313

RET(93)

a

STIM ( 69)006

DM000

00001

DM002

STIM ( 69)010000

00002

000

重复中断模式 间隔时间 400ms子程序编号: 002

重复中断模式 读出定时器当前值

停止定时器的定时

Page 211: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器3. 普通子程序和中断处理子程序总结 ( 1 ) . 两种子程序的相同点 两种子程序都有 SBN 和 RET 定义。 两种子程序都得放在主程序和 END 指令之间。 当未执行 SBS 指令或没有中断信号时, CPU都不扫描子程序。( 2 ) . 两种子程序的不相同之处 普通子程序必须由 SBS 调用,而中断处理子程序是否调用取决于是否有中断信号产生,中断源是否被屏蔽。 普通子程序返回到 SBS 的下一条指令处,而中断处理子程序返回地址是随机的。 用 SBS 的调用的子程序没有优先级问题,而中断处理子程序有优先级顺序。

Page 212: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器( 3 ) . 注意的问题 在中断处理子程序内部不可使用 SBS 指令,即中断处理子程序不可调用普通子程序。 不可用 SBS 指令去调用中断处理子程序,即普通子程序不可调用中断处理子程序。 中断处理子程序内部不可调用别的中断处理子程序。

返 回

Page 213: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-11 步进指令

在执行下一段程序之前, CPU将通过断点复位上一个程序段使用的定时器和数据区。因此,在步进程序段里可以重复使用 PLC 的内部资源。

步进指令 STEP 和 SNXT总是一起使用,用步进指令可以按照指定的顺序执行各个程序段,上一个程序执行完后再执行下一个程序段。

Page 214: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器单步指令- STEP(08) 步进指令- SNXT(09)

STEP(08) B STEP(08)B :控制位

IR , HR , AR , LR

SNXT(09) B

STEP(08) B 用来定义一个程序段的开始。无需执行条件,其执行与否由控制位决定。

功 能

SNXT(09) B 用来启动步号为 B 的程序段, SNXT(09) B 指令必须写进程序中,并置于 STEP(08) B 之前的位置,用来结束前一段程序,启动步号为 B 的程序段。前一段程序中用过的定时器复位成他们的设定值 SV , IR 、 SR 、 HR 、 LR 均变为 OFF ,计数器、移位寄存器保持原状态。

Page 215: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器 STEP(08) 无需执行条件,表示一系列程序段结束。在它之前必须有一条 SNXT(09) B 指令,其中 B 为虚控制位,无任何意义。

执行 STEP(08) B 指令时,单步启动标志 SR25407仅在一个扫描周期内为 ON 。

步可以连续编程,每一步必须以 STEP(08) 开始,通常以SNXT(09) 结束。

说 明B 的取值必须在同一个字中,并且要连续;

如果控制位 B 在 HR 或 AR 区中,可以掉电保护步程序段内编程同普通程序一样,但以下指令不能用在步程序段中。END(01) 、 IL(02)/ILC(03) 、 JMP(04)/JME(05) 、 SBN(92)

Page 216: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

第一步

第二步

启动步 LR1000

结束步执行

SNXT(09) LR1000

STEP(08) LR1000

SNXT(09) LR1001

STEP(08) LR1001

SNXT(09) LR1002

STEP(08)

00000

00001

00002

由 LR1000 控制的步

由 LR1001 控制的步

当 00000 为 ON 时,执行 SNXT

(09) LR1000 ,由 LR1000 控制的步被启动。当 00001 为 ON 时,执行 SNXT

(09) LR1001 ,结束由 LR1000

控制的步,启动由 LR1001 控制的步。当 00002 为 ON 时,执行 SNXT

(09) LR1002 ,结束由 LR1001

控制的步,下一条是不带操作数的 STEP(08) 指令,步程序到此结束。

§3-11-1. 步进程序的结构及程序的编写规则1. 步进程序的结构

Page 217: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

步进控制有三种类型

顺序执行 分支执行 并行执行

2. 步进程序结构的几种类型

步1

步1

步1

结束步

条件1

条件2

条件3

条件4

步A

步B

步E

结束步

条件1

条件2

条件5

条件7

步C

步D

条件3

条件4

条件6

步A

步B

步E

结束步

条件1

条件2

条件4

条件5

步C

步D条件3

Page 218: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器3. 编写步进程序时注意的问题1. 各步的控制位必须在同一区,并且前后步的控制位要连续。2. 步程序段内不允许使用如下指令: END 、 IL/ILC 、 JMP/JME 、 SBN 。3. 当 SNXT(09) B 执行时,将结束前级步( B-1 )的执行,并释放前级步使用的内部资源。4. 若步的控制位使用 HR 、 AR ,则具有掉电保持功能。5. 各步必须以前一级的结束为启动条件,即不能先启动中间步,在下一步开始执行后,若前一步的执行条件再次满足,前一步可再启动。如果不希望前一步再启动,应采取措施。6. 各步的执行条件是脉冲信号,所以 PLC 上电就为 ON 的执行条件无效。

Page 219: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

例 1 :顺序执行过程如图,整个过程分为三步:加载、安装部件和检验 /推出。具体过程过程为:当传感器 SW1 接通时,启动第一步加载,把工件装到输送带上;当传感器 SW2 接通时,结束第一步,同时启动第二步安装部件;当传感器 SW3 接通时,结束第二步,同时启动第三步检验 /推出,对工件进行检验,如有次品就弃掉;当传感器 SW4 接通时,结束第三步。

§3-11-3. 步进程序的执行过程

Page 220: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

过程 A

SW1

SW2

SW3

SW4

过程 B

过程 C

结束

加载

安装

检验 /推出

过程 A清除并复位过程 B启动

过程 A启动

结束步执行

过程 B清除并复位过程 C启动

SNXT(09) 20000

STEP(08) 20000

SNXT(09) 20001

STEP(08) 20001

SNXT(09) 20003

STEP(08)

00001(SW1)

00002(SW2)

00003(SW3)

过程 A

过程 B

SNXT(09) 20002

STEP(08) 20002

00004(SW4) 过程 C≈过程 C清除并复位

Page 221: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例 2 :下图为一分支执行过程示意图,过程 A 和过程 B 只能选择一个,选择哪一个取决于工件重量检测的结果。而过程 C (工件印字)不论前面选择过程 A还是过程 B都要进入。过程 A 和过程 B 不能同时进行。 分析:过程 A 和过程 B 不能同时执行,所以过程 A 和过程 B需要互锁。过程 A 结束启动过程 C ,过程 B 结束也要启动过程 C 。则它们的流程图和梯形图如图。

Page 222: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

过程A

过程B

过程C

结束

SW A1 SW B1

SW A2 SW B2

SW D

过程 A清除并复位过程 C启动

结束步执行

过程 B清除并复位过程 C启动过程 C清除并复位

SNXT(09) HR0000

STEP(08) HR0000

SNXT(09) HR0002

STEP(08) HR0001

SNXT(09) HR0003

STEP(08)

00001(SW A1)

00003(SW A2)

00004(SW B2)

过程 A

过程 B

SNXT(09) HR0002

STEP(08) HR0002

00005(SW D) 过程 C≈

SNXT(09) HR0001

00002(SW B1)

00001(SW A1) 00002(SW B1)选择过程 A或过程 B ,启动其中之一

Page 223: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例 3 :下图为一并行执行过程示意图,两个工件同时进行两种不同的加工处理过程,最后汇合在一起进行组装。具体过程如下:当 SW1 和 SW2都接通时,同时进行过程 A 和过程 C ;当 SW3 接通时,过程 A 结束,过程 B 开始,当 SW4 接通时,过程 C 结束,过程 D 开始;当 SW5 和 SW6都接通时,过程 B 、 D 同时结束,过程 E 开始。当 SW7 接通时,过程 E 结束。

Page 224: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

过程A

过程C

过程E

结束

SW1 和 SW2都接通

SW5 和 SW6都接通

SW3 SW4

SW7

过程B

过程D

SNXT(09) LR0000

SNXT(09) LR0002

STEP(08) LR0000

过程 A

SNXT(09) LR0001

SNXT(09) LR0003

STEP(08) LR0002

SNXT(09) LR0004

过程 B

STEP(08) LR0001

00001(SW1 和 SW2)

≈00002(SW3)

00004(SW5 和 SW6)

LR0003 LR0003

≈ 过程 C00003(SW4)

STEP(08) LR0003

过程 D

≈STEP(08) LR0004

过程 E00005(SW7)

SNXT(09) LR0005

STEP(08)

过程 A 和 C都启动

过程 A清除并复位过程 B启动

过程 B 、 D 同时清除并复位过程 E启动过程 C清除并复位过程 D启动

过程 E清除并复位结束步执行

Page 225: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器

程序说明:当过程 B 和 D都结束时( SW5 和 SW6都变为 ON ),在过程B 的结束处,过程 B 和 D 一起被 SNXT 指令复位。虽然在过程 D 结束时没有 SNXT 指令,但它的控制位通过执行 SNXT(09) LR0004而关闭,这是因为在该步中 LR0003 的输出是由 SNXT(09) LR0004 指令进行复位的。即当执行 SNXT(09) LR0004 指令时, LR0003被关闭,这样过程 B被直接复位,而过程 D 在过程 E 执行前被间接复位。

返 回

Page 226: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器§3-12 特殊指令1. 故障报警指令- FAL(06)/@ FAL(06)

严重故障报警指令- FALS(07)

FAL(06) N1 @FAL(06) N1 FALS(07) N2

N1 :故障代码,取值范围 00~ 99 ; N2 :故障代码,取值范围 01~ 99

非严重故障报警 当执行条件为 ON 时, FAL 指令将故障码 N1 送到 FAL 输出区( SR25300~SR25307 ),同时 CPU 面板上 ERROR 指示灯闪亮,但程序仍可以继续执行。 当 N1 取值为 00 时,执行 FAL(06) 00 指令将把 FAL 输出区清零。

Page 227: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器严重故障报警

执行条件为 ON 时, FALS 指令将故障码 N2 送到 FAL 输出区( SR25300~SR25307 ),同时 CPU 面板上 ERROR 指示灯常亮, RUN灯熄灭,程序停止执行,所有输出复位。

00000

00000

FAL ( 06 ) 01

FAL ( 06 ) 00

例: 当 00000 为 ON 时,表示发生某一非严重故障,故障码 01被送到 SR25300~ SR2530

7 ,同时 CPU 面板上的 ERROR灯闪亮。程序继续执行。 当 00000 为 OFF 时,即故障被排除,执行 FAL(06) 00 将 SR25300~SR25307清零。

FAL(06) 00 可以清零 FAL 输出区,也可以清除MSG 指令显示的信息。

注意

Page 228: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器2. 信息显示指令-MSG(46)/@ MSG(46)

MSG(46)FM

@MSG(46)FM IR , SR , HR , AR , LR , TC , DM , *DM

FM :信息开始通道

当执行条件为 ON 时, MSG从 FM至 FM+7 通道中读出 16个 ASC Ⅱ码,并把对应的字符显示在编程器的屏幕上。显示器一次可以显示 16个字符。

功 能

FMFM+1FM+6FM+7

第二个ASCⅡ码

第一个ASCⅡ码

第四个ASCⅡ码

第三个ASCⅡ码

第十三个ASCⅡ码

第十二个ASCⅡ码

第十六个ASCⅡ码

第十五个ASCⅡ码

显示信息分布情况:

Page 229: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器在指定的 8个通道中,若有一个不是 ASC Ⅱ 码,显示信息在这点上被截断。 若显示信息多于一个,则显示信息存入显示缓冲区,显示缓冲区最多可存入三个MSG 信息。

显示缓冲区中信息按先进先出原则显示,每次只能显示一个MSG 信息。 一次扫描循环中可能有多于三个MSG 信息要执行,所以就有一个优先级安排。优先级高的 MSG 信息先存入显示缓冲区。

MSG 信息的优先级是根据存储区域确定的。LR > I/O > IR( 非 I/O ) > HR > AR > TC > DM/*DM

在同一个区域,地址最小的信息优先级最高;在间接寻址情况下,最小DM地址的信息优先级最高。 要清除正在显示的信息,改为显示下一个MSG 信息,可在程序中执行 FAL(06) 00 指令。

Page 230: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器例:

00000

00001

MSG ( 46 )DM0010

FAL ( 06 ) 00

当 00000 为 ON 时, MSG将 DM0010~DM0

017 中的字符显示在屏幕上;当 00001 为 ON 时,显示信息被清除。

PO05E4DM0017NME4D4DM0016LKC4B4DM0015JIA494DM0014HG8474DM0013FE6454DM0012DC4434DM0011BA2414DM0010

DM 内容 ASC Ⅱ 字符MSG

ABCDEFGHIJKLMNOP

Page 231: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器3. I/O刷新指令- IORF(97)/@ IORF(97)

I/O刷新指令,在程序执行该指令时,可以对指定的 I/O 通道进行刷新,缩短了滞后时间,提高了 I/O 响应速度。

IORF(97)StE

@IORF(97)StE

IR000~ IR019E :结束通道IR000~ IR019St :开始通道

St > E 时, 25503 为 ON ,该指令不执行。

功 能当执行条件为 ON 时,刷新 St~ E 之间的所有 I/O 通道。

说 明

Page 232: CPM1A 系列 PLC 的指令系统

自动化工程学院Automation Engineering College

第二篇 可编程序控制器4. 位计数指令- BCNT(67)/@ BCNT(67)

BCNT(67)

SD

N @BCNT(67)

SD

N

IR , SR , HR , AR , LR , DM , *DM

D :目的通道

IR , SR , HR , AR , LR , TC , DM , *DM , #

N :通道数( BCD )

IR , SR , HR , AR , LR , TC , DM , *DM

S :源开始通道

当执行条件为 ON 时, BCNT 指令计算从 S 到 S+ (N- 1) 之间的 N

个通道中为“ 1” 的位的总数,结果以 BCD 码形式存入 D 中。

功 能

说明

出错标志 25503 : 25503 为 ON ,该指令不执行。通道数 N 不是 BCD 码 通道数 N 为 0000 S+(N-1) 超出数据区范围从 S 开始的 N个通道中为“ 1” 的位数的总数超过 9999*DM 通道不存在

相等标志 25506 :当目的通道 D 的内容为 0000 时, 25506 为 ON 。返 回