cpm1a 系列 plc 的指令系统
DESCRIPTION
第三章. CPM1A 系列 PLC 的指令系统. 回到 主目录. 熟练掌握 PLC 的基本指令、编制梯形图的注意事项;熟练掌握分支程序的处理方法;熟练掌握定时器 / 计数器指令;数据比较 CMP 指令;数据移位 SFT 指令;数据传送 MOV 等指令。掌握其它应用指令的用法。能够读懂梯形图程序和语句表程序,并能够互相转换;能够编写简单的梯形图程序。. §3-1 概 述. §3-2 基本指令. §3-3 常用的应用指令. §3-4 数据传送和数据比较指令. 目 录. §3-5 数据移位和数据转换指令. §3-6 数据运算指令. §3-7 子程序控制指令. - PowerPoint PPT PresentationTRANSCRIPT
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
回到主目录
自动化工程学院Automation Engineering College
第二篇 可编程序控制器 熟练掌握 PLC 的基本指令、编制梯形图的注意事项;熟练掌握分支程序的处理方法;熟练掌握定时器 / 计数器指令;数据比较 CMP 指令;数据移位 SFT 指令;数据传送 MOV 等指令。掌握其它应用指令的用法。能够读懂梯形图程序和语句表程序,并能够互相转换;能够编写简单的梯形图程序。
自动化工程学院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 步进指令
目录
自动化工程学院Automation Engineering College
第二篇 可编程序控制器§3-1 概述 1. CPM1A 指令分类
直接对输入、输出进行操作。进行数据处理、运算和程序控制等操作。
基本指令应用指令
2. CPM1A 指令格式 助记符(指令码) [ 操作数
1] [ 操作数 2]
[ 操作数 3]
助记符:表示指令的功能 指令码:是指令的代码操作数:提供指令执行的对象或数据
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
操作数可以是通道号、继电器号或常数。 操作数的个数,取决于各种指令的需要。
★ 关于操作数的讨论
操作数设为常数时,在数据前面要加 # 号。 操作数采用哪种进制,取决于指令的需要。 间接寻址的操作数用 *DM×××× 来表示。 间接寻址的操作数,是以 DM×××× 中的数据为地址的另一个 DM 通道中的数据。 DM×××× 中 的 内容 必须是 BCD 码,且不得超出 DM 区的范围。
自动化工程学院Automation Engineering College
第二篇 可编程序控制器例如,计数器指令的格式为 CNT000
SV
000 是计数器的编号 SV 是操作数若 SV = 200
表明 000 号计数器的设定值是 200 通道中的内容。 若 SV= # 0200
表明 000 号计数器的设定值是常数 200 。
自动化工程学院Automation Engineering College
第二篇 可编程序控制器例如:计数器的指令格式为 CNT000
*DM1000
设 DM1000 的内容为 0010
则 000 号计数器的设定值是 2500
设 DM0010 的内容为 2500
如果设 DM1000 的内容为 9990
如果设 DM1000 的内容 08FA
超出 DM 范围非 BCD 码
自动化工程学院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
自动化工程学院Automation Engineering College
第二篇 可编程序控制器 4. 指令的微分、非微分形式微分型:要在指令的助记符前加标记 @ 。 两种指令的区别 非微分型指令:只要其执行条件为 ON ,每个扫描周期都执行该指令。 微分型指令:仅在指令的执行条件由 OFF 变为 ON 时才执行一次。
返 回
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
基本指令是最常用的指令要牢记 : 指令的功能、格式、符号和代码;指令操作数的范围;执行各指令对标志位的影响。
自动化工程学院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 常用的基本指令
自动化工程学院Automation Engineering College
第二篇 可编程序控制器2. OUT 和 OUT NOT 指令
N :继电器编号IR , SR , HR , AR , LR, TR
N N
功能OUT :指令输出逻辑运算结果OUT NOT :逻辑运算结果取反后输出OUT 、 OUT NOT 只能以位为单位进行操作不影响标志位
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
( 1 ) . 若输出位为 PLC 的输出点,则运算结果输出到 PLC
外部 若输出位为 PLC 的内部继电器,则运算结果为中间结果,
不输出到 PLC 外部。
( 4 ) . 线圈并联输出时,可以连续使用 OUT 、 OUT NOT 。
( 2 ) .IR 区已用作输入通道的位,不能作为 OUT 、 OUT N
OT 的输出位。
说明
( 3 ) .OUT 、 OUT NOT 指令常用于一条梯形图支路的最后,但有时也用于分支点(见 TR )。
自动化工程学院Automation Engineering College
第二篇 可编程序控制器例:
00000 01000
01001
00001 01002
LD 00000
OUT 01000
OUT NOT 01001
LD NOT 00001
OUT 01002
自动化工程学院Automation Engineering College
第二篇 可编程序控制器3. AND 和 AND NOT 指令
N N
IR , SR , HR , AR , LR , TCN :继电器编号
功能AND :表示常开触点与前面的触点电路相串联,或者说 AND 后面的位与前面的状态进行逻辑“与”运算。AND NOT :表示常闭触点与前面的触点电路相串联,或者说 A
ND NOT 后面的位取“反”后与前面的状态进行逻辑“与”运算。
自动化工程学院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 ) . 串联的触点数没有限制。
自动化工程学院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
自动化工程学院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 ) . 并联的触点数没有限制。
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
LD 00000
OR 00001
OUT 01000
LD 00000
OR NOT 00003
OUT 01001
例:00000 01000
00003
00001
0100100000
自动化工程学院Automation Engineering College
第二篇 可编程序控制器5. 结束指令 END ( 01 )
END ( 01) 无操作数功 能
表示程序结束。是程序的最后一条指令。 END ( 01 )后面的指令一概不执行。
利用 END 指令插在各程序段之间,可以进行分段调试。 若程序中没有 END 指令,则 PLC 不执行程序,并显示出错信息:“ NO END INST” 。执行 END 指令时, ER 、 CY 、 GR 、 EQ 、 LE 标志置为 OFF 。
无执行条件
自动化工程学院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
使步序号变更更少。
例如:
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
1. AND LD 指令
( 1 ) . 每个逻辑块都以 LD 或 LD NOT 指令开始。( 2 ) . AND LD 指令单独使用,后面没有操作数。( 3 ) . 使用这条指令有两种方法:分置法和后置法。两种方法可以得到相同的运算结果,但使用分置法时触点组数是没有限制的,而采用后置法时触点组数不能超过 8 。
功能:用于逻辑块串联连接,即对逻辑块进行逻辑“与”的操作。注 意
§3-2-2 AND LD 和 OR LD 指令
自动化工程学院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
自动化工程学院Automation Engineering College
第二篇 可编程序控制器2. OR LD 指令
功能:用于逻辑块并联连接,即对逻辑块进行逻辑“或”的操作。注 意
( 1 ) . 每个逻辑块都以 LD 或 LD NOT 指令开始。( 2 ) . OR LD 指令单独使用,后面没有操作数。( 3 ) . 使用这条指令有两种方法:分置法和后置法。两种方法可以得到相同的运算结果,但使用分置法时触点组数是没有限制的,而采用后置法时触点组数不能超过 8 。
自动化工程学院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
自动化工程学院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
自动化工程学院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
自动化工程学院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
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
( 1 ) . KEEP ( 11 )指令功能和 SET 、 RESET 指令的功能类似,但 KEEP 指令是一个整体,中间不允许插入任何指令。( 2 ) . KEEP ( 11 )指令完成一个起停保电路的功能。
HR0000
00002 00003
HR0000
00002
00003HE0000
( 3 ) . 当用 KEEP ( 11 )指令对保持继电器编程时,可实现断电保持的功能。
注 意
自动化工程学院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 。
自动化工程学院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 区中已经用作输入通道的位不能作为微分指令的输出位,输出通道的位最好也不要用。
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
1. 梯形图的每一行都是从左侧母线开始,线圈和指令应放在最右边。00000 00001
01000
错误的
00000 0000101000
正确的
3-2-6 基本编程规则和编程方法
2. 除少数指令(如 ILC 、 JME 等)不允许有执行条件外,几乎所有指令都需要执行条件。 若一条指令在 PLC 上电后需要一直执行,不能直接连在母线上,可以将SR 区的常 ON 标志 25313 或常 OFF 标志 25314 取反后作为执行条件。 若一条指令在 PLC 上电后只执行一次,则将 SR 区的 25315 作为执行条件。
一 . 基本编程规则。
自动化工程学院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. 尽量避免出现双线圈输出
自动化工程学院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
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
二 . 基本编程方法。1. 指令和线圈可以并联输出。2. 触点组与触点相并联时,将单个触点放在下面。(节省一个 OR LD 语句)图 3.13
3. 并联触点组与几个触点相串联时,并联触点组放在左面。(节省一个 AND LD 语句)图 3.14
6. 梯形图以 END 指令结束,否则不执行。
4. 如果指令只需上电时执行一次,则用 SR 区的 25315 作为执行条件。图 3.15
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
6. 当某梯级有两个分支时,若其中一条分支从分支点到输出线圈之间无触点,该分支应放在上方,这样可以使语句表更少(连续输出)。7. 尽量使用操作数少,执行时间短的指令,以缩短扫描周期,提高 I/O 响应速度。
5. 若有些梯形图难以用语句表编程,可以重新根据逻辑关系安排梯形图结构,使之能够用基本指令的语句表编程。如图 3.16
返 回
自动化工程学院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 常用的应用指令
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
( 1 ) . 不论 IL 前面的执行条件为 OFF 或 ON , PLC都要对 IL—ILC 中间的程序进行处理,要占用扫描时间。( 2 ) . IL 和 ILC 可以成对使用,也可以多个 IL 指令配一个 ILC 指令,但不允许嵌套。 IL---IL…..ILC (允许) IL IL…ILC ILC (不允许)
说 明
自动化工程学院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个分支的执行条件
注意区别并联输出、连续输出和复合输出的结构及其编程方法
自动化工程学院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 ,在程序检查时会出
现错误信息,但不影响程序执行。
自动化工程学院Automation Engineering College
第二篇 可编程序控制器注意区别并联输出、连续输出和复合输出的结构及其编程方法
并联输出 复合输出连续输出输出线圈并联 上支路无触点;下之路有触点。 分支点上下支路均有触点
00000 01000
01001
01002
A00000 01000
01001
01002
00001
00002
A00000 01000
01001
01002
00001
00002
00003
A
输出为并列关系,执行条件均为 00000
后一个触点支路与前一个触点为“与”关系 用连锁指令
自动化工程学院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 等指令一起使用。说明
自动化工程学院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 之间的程序段。
自动化工程学院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
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
跳转类型
N=00
N≠00 每个跳转号只能在程序中使用一次
可以在程序中使用多次CPU占时多
CPU占时少
说 明
多个 JMP N 可以公用一个 JME N , JMP—JMP—JME 。跳转指令可以使用嵌套,但必须是不同的跳转号的嵌套。 如: JMP 00—JMP 01----JME01---JME00.
自动化工程学院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会不准确。
自动化工程学院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
自动化工程学院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
自动化工程学院Automation Engineering College
第二篇 可编程序控制器例 3 :定时器定时时间的扩展。
TIM000
00000
01000
TIM 000SV1
TIM 001SV2
TIM001
00000
TIM000
SV1
01000
TIM001SV2
自动化工程学院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 通道不存在时
自动化工程学院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
自动化工程学院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 。
自动化工程学院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
自动化工程学院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
自动化工程学院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 。
自动化工程学院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 之间的关系如下(计数功能)
自动化工程学院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 开始进行加计数。
自动化工程学院Automation Engineering College
第二篇 可编程序控制器例 3 :循环计数器容量的扩展
25502
CNTR
000
HR00
2000020000
00000
25314
00001
20000
25315
CNT001
CNT000
CNT 001
SV225315
循环定时器
扩展循环定时器
循环定时时间 = ( HR00 ) * ( SV2 )
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
25503 置位为 ON
注 意(1). 可逆计数器编程时,先编写加计数脉冲输入端 ACP ,再编写减计数脉冲输入端SCP ,后编写复位端 R , 最后编 CNTR指令。(2). 可逆计数器具有断电保持功能,断电时计数器当前值保持不变。
(4). ER 标志 25503 :① . 当 SV不是 BCD码时; ②. 间接寻址DM 通道不存在时;
返 回
(3). 可逆计数器只在产生进位或借位时输出一个计数周期的 ON 。
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
数据传送指令 : 9 种数据比较指令: 4 种
自动化工程学院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
自动化工程学院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
自动化工程学院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 。
说明
自动化工程学院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 ,该指令不执行。
自动化工程学院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
…
自动化工程学院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
自动化工程学院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 指令,可以向多个通道传送同一个字。
自动化工程学院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 ,该指令不执行。
自动化工程学院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 指令可进行 单字数据分配 进栈操作
功 能
自动化工程学院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必须在同一数据区。
自动化工程学院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 的内容。
自动化工程学院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
自动化工程学院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 通道不存在。
自动化工程学院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 指令可进行 数据调用 出栈操作
功 能
自动化工程学院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 。
自动化工程学院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
自动化工程学院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 。
自动化工程学院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 。
自动化工程学院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
自动化工程学院Automation Engineering College
第二篇 可编程序控制器00000
#00FF#1201LR10
例:MOVB(82)
LD 00000MOVB(82) #00FF #1201 LR10
S: 111111110000000015 00
1
X XD:15 00
XXXXXXXXXXXXXX
自动化工程学院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 位数字。
不用
自动化工程学院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 。
自动化工程学院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 。
功 能
自动化工程学院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 ,此时该指令不执行。
自动化工程学院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
自动化工程学院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 区标志位。
功 能
自动化工程学院Automation Engineering College
第二篇 可编程序控制器注意 : ( 1 ) . 编程顺序同 CMP ; ( 2 ) . 出错标志同 CMP ; ( 3 ) . C1+ 1 和 C1 必须在同一数据区; C2+ 1 和 C2
必 须在同一数据。 ( 4 ) .CMPL ( 60 )不能用于带符号数的比较。
自动化工程学院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 。
功 能
自动化工程学院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 ,此时该指令不执行。
自动化工程学院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 中的对应位上。
自动化工程学院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 ,此时该指令不执行。
功 能
自动化工程学院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 中的对应位上。
返 回
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
数据移位指令 : 10 种数据转换指令: 6 种
自动化工程学院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 的数据。
自动化工程学院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必须在同一
区域。
注 意
自动化工程学院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
自动化工程学院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
自动化工程学院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
自动化工程学院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
-- : 不使用
自动化工程学院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保持不变。
自动化工程学院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必须在同一区域。
注 意
自动化工程学院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
自动化工程学院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
自动化工程学院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 。
说 明
自动化工程学院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 。
说 明
自动化工程学院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 。
说 明
自动化工程学院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
说 明
自动化工程学院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
自动化工程学院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
自动化工程学院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 各位的含义
自动化工程学院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
自动化工程学院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(下移)
自动化工程学院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 。
自动化工程学院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 。
自动化工程学院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
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
当执行条件为 ON 时, DMPX 对源通道进行 16- 4 编码,编码结果存入 R 中指定的数字位上。一次最多可对 4个源通道进行编码。
功 能
对源通道编码时,把该通道状态为 ON 的最高位的位号,编码成相应的一个十六进制数,然后传送到结果通道的指定数字位上。说 明 S+3 超出数据区范围,
*DM 通道不存在, 25503 为 ON ,该指令不执行。
自动化工程学院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
自动化工程学院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
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
当执行条件为 ON 时, MLPX 对 S 中指定的数字进行 4-16译码,译码结果存入 R 开始的通道中。最多可对 4 位数字译码。
功 能
对 S 中某位数字译码时,把这位数字( 1 位 16 进制数)转换为 00~ 15 的十进制数,然后将指定结果通道中与该位十进制数对应的位置为 ON ,其余各位置为 OFF 。
说 明出错标志 25503 :有下列情况之一时为 ON ,此时该指令不执行。
R+3 超出数据区范围,*DM 通道不存在, 25503 为 ON 。
自动化工程学院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
自动化工程学院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
自动化工程学院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 ,该指令不执行。结果通道超出数据区范围
自动化工程学院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
自动化工程学院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
自动化工程学院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:奇校验
自动化工程学院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需要三个通道。
一个通道可以存放两个数字的转换结果。
自动化工程学院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
自动化工程学院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 ,该指令不执行。结果通道超出数据区范围
返 回
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
十进制数运算指令 : 12 种二进制数运算指令 : 4 种逻辑运算指令 : 5 种
自动化工程学院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 时执行一次。
自动化工程学院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 。
自动化工程学院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 中。
自动化工程学院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 。
自动化工程学院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 中,表示负数
自动化工程学院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 。
自动化工程学院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 。
自动化工程学院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 。
自动化工程学院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 时,完成如图所示运算。
自动化工程学院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 。
自动化工程学院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 。
自动化工程学院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 。
自动化工程学院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 。
自动化工程学院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放余数。
自动化工程学院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 。
自动化工程学院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 。
自动化工程学院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 。
自动化工程学院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 。
自动化工程学院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放余数。
自动化工程学院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 。
自动化工程学院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 。
自动化工程学院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 。
自动化工程学院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 。
自动化工程学院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 。
自动化工程学院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 时执行
返 回
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
程序结构相同的、需多次使用的程序可以编成子程序,在满足一定条件时,转去执行子程序,子程序执行完毕后,再返回断点处继续执行主程序。
自动化工程学院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级
自动化工程学院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 之后。
自动化工程学院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 号子程序。
主程序段
子程序段
自动化工程学院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 号子程序。
自动化工程学院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 通道。
自动化工程学院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
自动化工程学院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 中。
功 能 宏指令允许用一个单一子程序代替数个具有相同结构但不同操作数的子程序。
自动化工程学院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
自动化工程学院Automation Engineering College
第二篇 可编程序控制器注 意
指定的子程序编号不存在 操作数超出数据区范围*DM 通道不存在 子程序自调用。
有下列情况之一,出错标志 25503 为 ON ,该指令不执行。
返 回
自动化工程学院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 两相谁超前取决于编码器的旋转方向。
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
一 . 高速计数器的计数模式
计数脉冲输入端子为 00000 ,复位信号输入端子为 00002 。对单项脉冲进行递增计数。计数范围为 0~ 65535 ,最高计数频率为 5KHz 。
1 2 3 4 5
递增模式
§3-8-2 高速计数器的计数功能
自动化工程学院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 相信号的相位关系进行递增或递减计数。
自动化工程学院Automation Engineering College
第二篇 可编程序控制器二 . 高速计数器的复位功能
用 SR25200 作为高速计数器的复位标志。在 SR25200 为 ON 的条件下,Z 相信号为 ON 时,高速计数器当前值复位为 0 。
只要 SR25200 为 ON 时,高速计数器的当前值复位为 0.
高速计数器使用前必须进行设定,用编程器设置 DM6642 中的内容, P
LC设置后,高速计数器进行计数动作。但在执行 CTBL(63) 指令前,并不用比较表进行比较,也不会产生中断。电源掉电重新上电时,高速计数器复位为 0 。
Z 相信号+软件复位
软件复位
三 . 高速计数器的设定
自动化工程学院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 表示负数)。五 . 高速计数器的当前值存储区
自动化工程学院Automation Engineering College
第二篇 可编程序控制器§3-8-3 高速计数器的中断功能
最多 16个比较条件(目标值)和中断子程序组合在比较表中,当 PV值与目标值一致时,执行指定的中断程序。(两个通道构成一个目标值,中断子程序占一个通道)
8个比较条件(上限和下限)和中断子程序组合在比较表中, 当 下限值 ≼ PV ≼ 上限值时,执行指定的子程序。(四个通道构成一个比较区域,中断子程序占一个通道,比较区域不足 8个,设定其余的子程序号为 FFFF 。)
1. 目标值比较中断
2. 区域比较中断
自动化工程学院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 高速计数器的控制指令
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
( 4 ) . C=003 仅登录区域比较表,不启动比较。若要比较,需使用 INI 指令启动。
( 1 ) . C=000 登录目标值比较表,并启动比较。目标值比较表中包含 16个目标值和与各自目标值对应的中断子程序号。当 PV=目标值时,执行对应的子程序。( 2 ) . C=001 登录区域比较表,并启动比较。区域比较表中包含 8个区域和与之对应的中断子程序号。当下限值 ≼ PV ≼ 上限值时,执行对应的子程序。( 3 ) . C=002 仅登录目标值比较表,不启动比较。若要比较,需使用 INI 指令启动。
自动化工程学院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 指令。
自动化工程学院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
自动化工程学院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
……
自动化工程学院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 )。
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
出错标志 25503 : 25503 为 ON ,该指令不执行。P1+1 超出取值区域( C=002)*DM 通道不存在 操作数设置错误
主程序中执行脉冲 I/O 或高速计数器指令时,中断子程序执行了 INI 指令。
说 明
自动化工程学院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 中。
功 能
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
出错标志 25503 : 25503 为 ON ,该指令不执行。D+1 超出取值区域*DM 通道不存在 操作数设置错误
主程序中执行脉冲 I/O 或高速计数器指令时,中断子程序执行了 INI 指令。
说 明
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
返 回
总结1. 使用前必须设定2. 高速计数器当前值放在 SR248 和 SR249 通道,不能用作它用。3. 高速计数器使用时, 00000~00002三个输入点被占用,不能用作它用。4. 高速计数器有两种计数模式,递增计数和增减计数。5. 高速计数器有中断功能,使用其中断功能时要用 CTBL 指令登录一个目标值比较表或区域比较表。6. 高速计数器的中断处理子程序与普通子程序的编写规则一样。
自动化工程学院Automation Engineering College
第二篇 可编程序控制器§3-9 脉冲输出控制指令 CPM1A 中的晶体管输出型具有单相脉冲输出功能,可以从 01000 或 01001 某一点输出 20Hz~ 2KHz 的脉冲。脉冲输出可以设置成连续模式或独立模式。脉冲输出模式
连续模式:以指定的频率输出脉冲,由指令控制脉冲输出停止。独立模式:输出脉冲数达到指定的数目时 (1~ 16777215), 脉冲输出停止。
……
独立模式:连续模式:
以指定的频率输出脉冲直到用指令停止脉冲输出
当输出脉冲数达到指定的数目时,脉冲输出停止
自动化工程学院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 指令。
自动化工程学院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 指令设定脉冲输出位、输出模式和设定脉冲输出频率。
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
在连续模式下,有两种停止脉冲输出的方法用 SPED 指令 (设定 F=0000)用 INI 指令( C=003)
在同一时刻只能从一点输出脉冲,在脉冲输出时,不能用 PLUS 指令改变输出的脉冲数。
在脉冲输出过程中。可以用 SPED 指令通过改变 F 来改变脉冲的频率。 在独立模式下,当输出脉冲数达到 PLUS 指定的数目时,脉冲输出会自动停止。
说 明出错标志 25503 : 25503 为 ON ,该指令不执行。
指令设置有错误 *DM 通道不存在 当间隔定时器运行时执行 SPED 指令主程序中执行脉冲 I/O 或高速计数器指令时,中断子程序执行了 SPED 指令
自动化工程学院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启动脉冲输出,当输出脉冲数达到指定数目时,脉冲输出自动停止。
返 回
自动化工程学院Automation Engineering College
第二篇 可编程序控制器§3-10 中断控制指令
CPM1A 中断外部输入中断 间隔定时器中断 高速计数器中断
外部输入中断计数器中断
单次模式中断重复模式中断
目标值比较表中断区域比较表中断
中断子程序同一般子程序一样,用 SBN(92) 和 RET(93) 定义。
自动化工程学院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
优先级顺序为:
自动化工程学院Automation Engineering College
第二篇 可编程序控制器3. 外部输入中断模式( 1 ) . 输入中断模式 只要中断输入点接通就产生中断请求。若在非屏蔽情况下,则立即响应;若在屏蔽状态下,则该中断请求信号被记录下来,待屏蔽解除后,立即响应。若不希望屏蔽解除后响应该中断信号,可以用指令清除该记忆。 ( 2 ) . 计数器中断模式 当中断输入点接通的次数达到计数器的设定值时产生中断,且计数器停止计数,中断被屏蔽。若想再产生中断,需使用指令进行设定。计数器的计数范围为 0~65535 ,计数频率最高为1KHz 。
自动化工程学院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
自动化工程学院Automation Engineering College
第二篇 可编程序控制器5. 外部输入中断的设定
DM6628 3 2 1 0
输入中断 0 (输入端子 00003 )设定输入中断 1 (输入端子 00004 )设定输入中断 2 (输入端子 00005 )设定输入中断 3 (输入端子 00006 )设定
0 :普通输入端子1 :中断输入端子
外部输入中断使用前,应用编程器设定 DM6628
自动化工程学院Automation Engineering College
第二篇 可编程序控制器§3-10-2 间隔定时器的中断功能1. 间隔定时器 间隔定时器是递减计数器,当其定时时间到时,可以不受扫描周期的影响,停止执行主程序并建立断点,立即转去执行中断子程序,从而实现高精度的定时中断处理。
间隔定时器的中断模式
单次模式重复模式
定时时间到,执行中断,且只执行一次。每隔一段时间,进行一次中断,是周期性中断。
2. 间隔定时器的中断模式
自动化工程学院Automation Engineering College
第二篇 可编程序控制器3. 间隔定时器的中断处理子程序 不论是单次中断模式还是重复中断模式,其子程序号都是由STIM 指令来确定,其范围为 000~049 。
编写中断处理子程序应注意以下几点:1. 在中断处理子程序内部可以定义新的中断,也可以解除中断。2. 在中断处理子程序内部不可以调用别的中断处理子程序。3. 在中断处理子程序内部不可以调用普通子程序。4. 在普通子程序中不可以调用中断处理子程序。
自动化工程学院Automation Engineering College
第二篇 可编程序控制器§3-10-3 中断的优先级
CPM1A系列 PLC 有高速计数器中断、外部输入中断、间隔定时器中断时,执行各种中断的优先级的顺序是: 外部输入中断 0 → 外部输入中断 1 → 外部输入中断 2 → 外部输入中断 3
→间隔定时器中断→高速计数器中断
自动化工程学院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)
自动化工程学院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 :屏蔽)
自动化工程学院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 清除 / 不清除输入中断记忆
自动化工程学院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 的位
自动化工程学院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即可。
自动化工程学院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 的位
自动化工程学院Automation Engineering College
第二篇 可编程序控制器( 5 ) .CC=100 屏蔽所有中断
屏蔽所有中断输入中断间隔定时器中断高速计数器中断
当 CC=100 时,D固定为 0000 。
在屏蔽期间,若发生中断请求,将不会响应,但会将发生的输入中断、间隔定时器中断、高速计数器中断记录下来。去掉中断屏蔽后,马上进行中断服务。( 6 ) .CC=200 解除所有中断屏蔽 用来解除所有中断屏蔽。当 CC=200 时, D固定为 0000 。注意:解除所有中断屏蔽并不清除单独中断类型的屏蔽。
自动化工程学院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
自动化工程学院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
自动化工程学院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 中。
自动化工程学院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 种功能中的一种。
间隔定时器的工作模式
单次模式重复模式
定时时间到,执行中断,且只执行一次。每隔一段时间,进行一次中断,是周期性中断。
功 能
自动化工程学院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 。
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
( 2 ) .C1=003 启动重复中断模式 C2 为间隔定时器定时设定值( BCD:0000~9999 ), C2+1为时间间隔, C3 为中断子程序号。其设定与单次中断模式相同。
C3 的设定:C3 为常数时,常数即为子程序编号( BCD )
C3 为通道时,通道内数据即为子程序编号( BCD )子程序编号范围: 000~ 049
在重复模式下,定时时间到,产生中断,调用中断服务处理子程序,同时定时器的当前值 PV再次恢复到设定值 SV ,并重新开始递减计数。每隔一段时间发生一次中断,直到停止定时工作为止。
自动化工程学院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
从定时开始到当前时刻的时间为:
自动化工程学院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
自动化工程学院Automation Engineering College
第二篇 可编程序控制器例:重复中断模式程序举例
中断处理子程序: 005
子程序编号: 005
间隔定时器重复中断模式 设定值( ms )STIM ( 69)
003#0005
25315
#000520000
01000
2000101001
SBN(92) 005
2000020001
RET(93)
2000120000
自动化工程学院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
重复中断模式 读出定时器当前值
停止定时器的定时
自动化工程学院Automation Engineering College
第二篇 可编程序控制器3. 普通子程序和中断处理子程序总结 ( 1 ) . 两种子程序的相同点 两种子程序都有 SBN 和 RET 定义。 两种子程序都得放在主程序和 END 指令之间。 当未执行 SBS 指令或没有中断信号时, CPU都不扫描子程序。( 2 ) . 两种子程序的不相同之处 普通子程序必须由 SBS 调用,而中断处理子程序是否调用取决于是否有中断信号产生,中断源是否被屏蔽。 普通子程序返回到 SBS 的下一条指令处,而中断处理子程序返回地址是随机的。 用 SBS 的调用的子程序没有优先级问题,而中断处理子程序有优先级顺序。
自动化工程学院Automation Engineering College
第二篇 可编程序控制器( 3 ) . 注意的问题 在中断处理子程序内部不可使用 SBS 指令,即中断处理子程序不可调用普通子程序。 不可用 SBS 指令去调用中断处理子程序,即普通子程序不可调用中断处理子程序。 中断处理子程序内部不可调用别的中断处理子程序。
返 回
自动化工程学院Automation Engineering College
第二篇 可编程序控制器§3-11 步进指令
在执行下一段程序之前, CPU将通过断点复位上一个程序段使用的定时器和数据区。因此,在步进程序段里可以重复使用 PLC 的内部资源。
步进指令 STEP 和 SNXT总是一起使用,用步进指令可以按照指定的顺序执行各个程序段,上一个程序执行完后再执行下一个程序段。
自动化工程学院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 ,计数器、移位寄存器保持原状态。
自动化工程学院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)
自动化工程学院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. 步进程序的结构
自动化工程学院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
自动化工程学院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 的执行条件无效。
自动化工程学院Automation Engineering College
第二篇 可编程序控制器
例 1 :顺序执行过程如图,整个过程分为三步:加载、安装部件和检验 /推出。具体过程过程为:当传感器 SW1 接通时,启动第一步加载,把工件装到输送带上;当传感器 SW2 接通时,结束第一步,同时启动第二步安装部件;当传感器 SW3 接通时,结束第二步,同时启动第三步检验 /推出,对工件进行检验,如有次品就弃掉;当传感器 SW4 接通时,结束第三步。
§3-11-3. 步进程序的执行过程
自动化工程学院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清除并复位
自动化工程学院Automation Engineering College
第二篇 可编程序控制器例 2 :下图为一分支执行过程示意图,过程 A 和过程 B 只能选择一个,选择哪一个取决于工件重量检测的结果。而过程 C (工件印字)不论前面选择过程 A还是过程 B都要进入。过程 A 和过程 B 不能同时进行。 分析:过程 A 和过程 B 不能同时执行,所以过程 A 和过程 B需要互锁。过程 A 结束启动过程 C ,过程 B 结束也要启动过程 C 。则它们的流程图和梯形图如图。
自动化工程学院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 ,启动其中之一
自动化工程学院Automation Engineering College
第二篇 可编程序控制器例 3 :下图为一并行执行过程示意图,两个工件同时进行两种不同的加工处理过程,最后汇合在一起进行组装。具体过程如下:当 SW1 和 SW2都接通时,同时进行过程 A 和过程 C ;当 SW3 接通时,过程 A 结束,过程 B 开始,当 SW4 接通时,过程 C 结束,过程 D 开始;当 SW5 和 SW6都接通时,过程 B 、 D 同时结束,过程 E 开始。当 SW7 接通时,过程 E 结束。
自动化工程学院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清除并复位结束步执行
自动化工程学院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 执行前被间接复位。
返 回
自动化工程学院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 输出区清零。
自动化工程学院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 指令显示的信息。
注意
自动化工程学院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Ⅱ码
显示信息分布情况:
自动化工程学院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 指令。
自动化工程学院Automation Engineering College
第二篇 可编程序控制器例:
00000
00001
MSG ( 46 )DM0010
FAL ( 06 ) 00
当 00000 为 ON 时, MSG将 DM0010~DM0
017 中的字符显示在屏幕上;当 00001 为 ON 时,显示信息被清除。
PO05E4DM0017NME4D4DM0016LKC4B4DM0015JIA494DM0014HG8474DM0013FE6454DM0012DC4434DM0011BA2414DM0010
DM 内容 ASC Ⅱ 字符MSG
ABCDEFGHIJKLMNOP
自动化工程学院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 通道。
说 明
自动化工程学院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 。返 回