PLC第四章.docx
- 文档编号:5458766
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:112
- 大小:961.28KB
PLC第四章.docx
《PLC第四章.docx》由会员分享,可在线阅读,更多相关《PLC第四章.docx(112页珍藏版)》请在冰点文库上搜索。
PLC第四章
第四章指令系统
4.1概述
助记符指令的一般格式为:
指令码
操作数1
操作数2
操作数3
或
指令码操作数
【例1】某指令
ADD(30)
#1270
*DM0101
DM0123
由指令码可知,该指令为一条BCD码加法运算指令。
指令的三个操作数分别为参加运算的加数、被加数和结果。
其中加数为立即数操作数1270。
被加数为间接寻址操作数,程序在DM0101通道中取出操作数的实际地址。
运算结果为直接寻址操作数,即把和数送至DM0123通道。
CPM2A共有基本指令14条,应用指令185条。
指令执行的典型时间是:
基本指令:
LD指令的执行时间为0.64μs。
应用指令:
MOV指令:
16.3μs。
在CPM2A中绝大多数应用指令都有微分型和非微分型两种指令形式。
微分型指令由在指令码前面加上前缀@来区分。
两种形式指令在执行中的区别是:
非微分指令在条件满足时,每个循环周期都将被执行一次;而微分形式指令则只在其条件由OFF变为ON的上升沿时才会被执行。
【例2】数据传送指令如下:
LD00000
MOV(21)
#2000
DM0000
【例3】数据传送指令如下:
LD00000
@MOV(21)
#2000
DM0000
小于标志LE(25507),执行比较指令时,如果第一操作数小于第二操作数,该位置ON。
等于标志EQ(25506),执行比较指令时两操作数相等,或执行运算指令时运算结果等于0,该位置ON。
大于标志GR(25505),执行比较指令时,如果第一操作数大于第二操作数,该位置ON。
进位标志CY(25504),执行运算指令时,如果结果最高位向上有进位或借位,该位置ON。
出错标志ER(25503),执行指令出错时该位置ON。
典型的执行错误有操作数地址错、控制字无定义等。
出错标志为ON时,指令将停止执行。
4.2基本编程指令
4.2.1LD和LDNOT指令
格式:
LDN
LDNOTN
其中的操作数N为位,即LD和LDNOT指令只能以位为单位进行操作。
这里的N可以是IR、SR、AR、HR、LR、TR或TC。
功能:
装入指令。
用来表示一个逻辑运算的开始,它们的执行不会影响标志位。
LD表示N的常开触点与左端母线相连。
LDNOT表示N的常闭触点与左端母线相连。
说明:
LD和LDNOT指令的执行不会影响标志位。
4.2.2OUT和OUTNOT指令
格式:
OUTN
OUTNOTN
其中的操作数N也是位,它可以是IR、SR、AR、LR、TR或HR。
功能:
输出指令。
用来表示一个运算结果。
OUT指令将运算结果输出到N。
OUTNOT指令将运算结果取反后输出到N。
说明:
OUT和OUTNOT指令也只能以位为单位进行操作。
它们的执行不会影响标志位。
在程序中不同的线圈可以同条件并联输出。
【例1】OUT和OUTNOT等指令的应用,指令的程序如下:
LD00000
OUT01000
OUTNOT01001
LDNOT00002
OUT01002
图4.2.1LD、LDNOT、OUT、OUTNOT指令应用例梯形图
功能:
逻辑与运算指令。
AND表示N与前面的逻辑结果进行与运算。
即N的常开触点与前面的逻辑串联。
ANDNOT表示N取非并与前面的逻辑结果进行与运算。
即N的常闭触点与前面的逻辑串联。
说明:
AND和ANDNOT指令只能以位为单位进行操作。
它们的执行不会影响标志位。
在程序中逻辑与运算的串联触点个数是没有限制的。
【例2】AND和ANDNOT指令的应用。
指令的程序如下:
LD00001
AND00002
ANDNOT00003
OUT01000
图4.2.2AND、ANDNOT指令应用例梯形图
4.2.4OR和ORNOT指令
格式:
ORN
ORNOTN
其中的操作数N也是位,它可以是IR、SR、AR、LR、HR或TC。
功能:
逻辑或运算指令。
OR表示N与前面的逻辑结果进行或运算。
即N的常开触点与前面的逻辑并联。
ORNOT表示N取非并与前面的逻辑结果进行或运算。
即N的常闭触点与前面的逻辑并联。
说明:
OR和ORNOT指令只能以位为单位进行操作。
它们的执行不会影响标志位。
在程序中逻辑或运算的并联触点个数是没有限制的。
【例3】OR和ORNOT等指定的应用程序段为:
LD00000
OR00001
ORNOT00002
OUT01000
这段程序表示的运算逻辑为:
当三个输入条件00000为ON或00001为ON,或00002为OFF中有一个被满足时,输出01000就会被置ON。
4.2.5ANDLD和ORLD指令
格式:
ANDLD
ORLD
功能:
触点组操作指令。
ANDLD指令表示对触点组进行逻辑与运算。
ORLD指令表示对触点组进行逻辑或运算。
说明:
ANDLD指令和ORLD指令不需要任何操作数,只表明触点组之间的逻辑运算关系。
使用这两条指令有两种方法:
分置法和后置法。
两种方法可以得到相同的运算结果,但使用分置法时触点组数是没有限制的,而采用后置法时触点组数不能超过8。
【例4】设有梯形图为图4.2.3(a)、(b)所示的两个逻辑运算。
将该运算用ANDLD和ORLD指令完成,有两种方法实现助记符程序段,分别如下:
图4.2.3 ANDLD和ORLD指令应用例梯形图
①图(a)逻辑分置法实现程序段:
LD00000
OR00003
LD00001
OR00004
ANDLD
LDNOT00002
ORNOT00005
ANDLD
OUT01001
②图(a)逻辑后置法实现程序段:
LD00000
OR00003
LD00001
OR00004
LDNOT00002
ORNOT00005
ANDLD
ANDLD
OUT01001
③图(b)逻辑分置法实现程序段:
LD00000
AND00002
LD00003
ANDNOT00004
ORLD
LDNOT00005
ANDNOT00006
ORLD
OUT01001
④图(b)逻辑后置法实现程序段:
LD00000
AND00002
LD00003
ANDNOT00004
LDNOT00005
ANDNOT00006
ORLD
ORLD
OUT01001
4.2.6SET和RESET指令
格式:
SETN
RESETN
其中的操作数N也是位,它可以是IR、SR、AR、LR或HR。
功能:
置位和复位指令。
用来完成直接对位的置位或复位操作。
当SET指令的执行条件满足时置N为ON。
当RESET指令的条件满足时置N为OFF。
【例5】在00000和00002的状态变化已知的条件下,下面程序段执行的结果如图4.2.4所示。
LD00000
SET20000
LD00002
RESET20000
图4.2.4 SET和RESET指令应用例梯形图及相应的波形
4.2.7KEEP指令
格式:
条件S
条件R
KEEP(11)N
其中的操作数N也是位,它可以是IR、SR、AR、LR或HR。
功能:
锁存指令。
KEEP相当于一个软件保持器。
它前面要有两个条件,故在格式中专门列出。
条件S为保持器的置位输入。
条件R为保持器的复位输入。
即:
当条件S满足,操作数N置ON并保持;当条件R满足,则操作数N置OFF。
特别地,当S和R同时满足时,按复位优先的运算,操作数N置OFF。
【例6】KEEP指令的应用。
KEEP指令的程序段如下:
LD00001
LD00002
KEEP(11)01000
与程序段对应的梯形图例及其相应波形如图4.2.5所示。
例中的置位输入为00001,复位输入为00002,显然利用KEEP指令可以代替相应的自锁运算逻辑。
图4.2.5 KEEP指令应用梯形图例及相应的波形
4.2.8DIFU(13)和DIFD(14)指令
格式:
DIFU(13)N
DIFD(14)N
其中的操作数N也是位,它可以是IR、SR、AR、LR或HR。
功能:
微分指令。
DIFU为上升沿微分指令,当执行条件上升沿时使操作数N有一个扫描周期的ON。
DIFD为下降沿微分指令,当执行条件下降沿时使操作数N有一个扫描周期的ON。
【例7】DIFU和DIFD指令的应用。
DIFU和DIFD指令的程序段如下:
LD00001
DIFU(13)20001
DIFD(14)20002
与程序段的对应的梯形图例及其相应波形如图4.2.6所示。
其中微分指令的输出脉冲宽度为一个扫描周期。
图4.2.6DIFU(13)和DIFD(14)指令应用梯形图例及相应的波形
4.2.9NOP(00)指令
格式:
NOP(00)
功能:
空操作指令。
不做任何操作,可用于程序调试时的指令暂时删除或程序执行时间微调等特殊用途。
4.2.10END(01)指令
格式:
END(01)
功能:
结束指令。
表示程序的结束。
每一程序的最后一条指令必须是END指令。
没有END指令的程序不能被执行并会显示相应的出错信息。
END指令以后的程序段将不会被执行。
说明:
执行END指令时标志位ER、CY、GR、EQ和LE将被置OFF。
4.3编程规则
在编制梯形图或助记符程序时,应注意遵循以下编程规则:
(1)每一个内部继电器的触点在程序中可以无限次重复使用,但其线圈在同一程序中一般只能使用一次。
同一继电器的多线圈使用会引起逻辑上的混乱,应尽量避免。
(2)梯形图信号流向只能自左向右,垂直分支上不可以有任何触点。
【例1】梯形图的编制举例。
在图4.3.1的梯形图例中,图(a)为错误的梯形图,图(b)为正确的梯形图。
图4.3.1梯形图例
(a)错误的梯形图例;(b)正确的梯形图例
(3)继电器的线圈应该放在每一运算逻辑的最右端,在线圈右端不能再有任何触点。
线圈不可以与左端母线直接相连,如果逻辑上有这种需要时也要通过一合适的常闭触点来实现。
【例2】图4.3.2所示逻辑应用了特殊继电器中的常ON触点来实现上电后一直执行的操作。
(4)编程时对于复杂逻辑关系的程序段,可按照先难后易的基本原则实现。
当有几个串联支路相并联时,可按先串后并的原则将触点多的支路放在梯形图的最上端。
当有几个并联支路相串联时,可按先并后串的原则将触点多的支路放在梯形图的最左端。
【例3】梯形图等效变换图例如图4.3.3所示。
图4.3.3梯形图等效变换例
图(a)等效变换前程序段图(a)等效变换后程序段
LD00001LD00002
LD00002AND00003
AND00003OR00001
ORLDOUT01001
OUT01001
图(b)等效变换前程序段图(b)等效变换后程序段
LD00001LD00002
LD00002OR00003
OR00003AND00001
ANDLDOUT01001
OUT01001
(5)在不影响逻辑功能的情况下,应尽可能地将每一个阶梯简化成串联支路或先并后串支路,尽量减少串并交叉的情况。
有时采用触点多次使用的办法,反而使程序结构更为简单。
4.4顺序控制和暂存指令
4.4.1IL和ILC指令
格式:
IL(02)
ILC(03)
功能:
互锁和互锁解除指令。
IL定义互锁程序段的开始,IL指令的条件就是互锁的条件。
ILC定义互锁程序段的结束。
当IL前的逻辑条件为ON时,位于IL和ILC指令之间的互锁程序段照常运行。
当IL前的逻辑条件为OFF时,互锁程序段将不被执行。
此时该程序中的各个输出的状态为:
所有的输出线圈置为OFF,所有的定时器被复位,所有的计数器、保持继电器和移位寄存器保持当前状态不变。
说明:
IL和ILC指令应成对使用,否则在检查程序时会得到出错信息。
但该错误并不影响程序的执行。
【例1】IL和ILC指令的应用。
有互锁程序段如图4.4.1(a)所示,无互锁程序段如图4.4.1(b)所示。
当互锁条件00001为OFF时,无论其他条件如何变化,程序段中的所有输出均保持OFF不变。
从逻辑运算上看图(a)和图(b)具有完全相同的功能。
图4.4.1IL和ILC指令应用例梯形图
4.4.2TR指令
功能:
TR被称为暂存继电器。
与LD和OUT指令配合,TR可以用来暂存程序运行的中间结果。
利用TR可以方便编程。
在程序中可以使用的TR共有8个,分别编号为TR0到TR7。
【例2】TR指令的应用。
TR指令的程序段如下:
LD00000
OUTTR0
AND00001
OUT01000
LDTR0
AND00002
OUTTR1
AND00003
OUT01001
LDTR1
AND00004
OUT01002
图4.4.2TR指令应用例梯形图
4.4.3JMP和JME
格式:
JMP(04)N
JME(05)N
N为跳转号,可以是00~49之间任何十进制数字。
功能:
跳转和跳转结束指令。
当JMP指令前的执行条件为ON时,则不进行跳转,如同没有跳转指令时一样执行。
当JMP指令前的执行条件为OFF时,CPU将跳过JMP和JME指令之间的程序段,直接执行其后面的程序内容。
JMP、JME指令和互锁程序的最大不同是,当发生跳转时,JMP和JME指令之间程序段中的所有输出、保持器、定时器和计数器状态都会保持不变。
且被跳转的程序段不再占用扫描时间。
【例3】JMP和JME指令应用图例如图4.4.3所示。
图4.4.3JMP和JME指令应用例梯形图
4.4.4JMP指令嵌套应用例梯形图
4.5定时器和计数器应用指令
4.5.1TIM指令
格式:
TIMN
SV
其中:
操作数N为定时器TC号,取值范围为十进制数000~255(CPM1A为000~127)。
操作数SV为定时器的设定值,由4位BCD码组成,可以是IR、SR、HR、AR、LR、DM、*DM、#,取值范围0000~9999。
功能:
定时器指令。
TIM是最小单位为0.1秒的减一计数器,故定时范围为0~999.9秒。
当输入条件为ON时,TIM开始记时。
记时操作为每0.1秒当前值PV减一。
当PV等于0时,定时到,TIM状态置ON。
当输入条件为OFF或电源掉电时,TIM被复位。
复位后状态置OFF,送SV为新的PV值。
【例1】TIM指令应用图例之一如图4.5.1所示。
图4.5.1中的定时器TIM000的定时时间为60秒,即当00000为ON时,TIM开时记时。
60秒以后定时器定时到,程序段中的01000为ON。
相应的梯形图程序如下:
LD00000
TIM000
#0600
LDTIM000
OUT01000
图4.5.1TIM指令应用梯形图例之一
【例2】TIM指令用图例之二如图4.5.2所示。
图4.5.2TIM指令应用梯形图例之二
4.5.2TIMH指令
格式:
TIMH(15)N
SV
其中:
操作数N和SV的定义和取值范围与TIM指令相同。
功能:
高速定时器指令。
最小定时单位为0.01秒。
定时范围为0~99.99秒。
其应用和使用方法与TIM指令相同。
4.5.3CNT指令
格式:
CP条件
R条件
CNTN
SV
其中:
操作数N为计数器TC号,取值范围为十进制数000~225(CPM1A为000~127)。
操作数SV为计数器的设定值,由4位BCD码组成,可以是IR、SR、HR、AR、LR、DM、*DM、#,取值范围0000~9999。
CNT在程序中有两个输入条件,故在格式中专门列出。
在这里CP为计数脉冲输入端。
R为复位端。
功能:
计数器指令。
减一计数器。
当R为OFF时计数器为计数状态。
计数时,CP每次由OFF变为ON计数一次。
计数操作由PV值减一完成。
当PV值减到0时计数到,计数器输出状态置ON。
当R为ON时计数器为复位状态,复位后计数器输出状态置OFF,PV被重新置入SV值。
【例3】ONT指令的应用。
CNT指令的程序段如下:
LD00000
LD00001
CNT127
#0050
LDCNT127
OUT01001
图4.5.3CNT指令应用例梯形图
4.5.4CNTR指令
格式:
ACP条件
SCP条件
R条件
CNTR(12)N
SV
其中:
操作数N为计数器TC号,取值范围为十进制数000~225(CPM1A为000~127)。
操作数SV为计数器的设定值,由4位BCD码组成,可以是IR、SR、HR、AR、LR、DM、*DM、#,取值范围0000~9999。
CNTR在程序中有三个输入条件。
ACP为加计数脉冲输入端。
SCP为减计数脉冲输入端。
R为复位端。
功能:
可逆循环计数器指令。
当R为OFF时,为计数状态。
计数时每当ACP由OFF变为ON时,PV值做一次加法运算。
每当SCP由OFF变为ON时,PV值做一次减法运算。
当PV值加到等于SV后再有加一脉冲,CNTR的状态置ON,PV值变为0。
当PV值减到0再有减一脉冲,CNTR的状态置ON,PV值被置入SV值。
当R为ON时为复位状态。
复位时CNTR状态为OFF,ACP和SCP脉冲不起作用。
【例4】CNTR指令的应用。
CNTR指令的程序段如下:
LD00000
LD00001
LD00002
CNTR(12)126
#0100
LDCNT126
OUT01000
由程序可知可逆计数器CNTR126的SV=100,在加一运算时,当加到PV=SV,再加一,PV=0,CNTR为ON。
若再加一,PV=1,CNTR为OFF。
在减一运算时,当减到PV=0,再减一,PV=SV,CNTR为ON。
若再减一,PV=SV-1,CNTR为OFF。
与程序段对应的梯形图例及其相应的工作时序波形如图4.5.4所示。
图4.5.4CNTR指令应用例梯形图及工作时序波形图
4.5.5TIML指令
格式:
TIML(--)
N
SV
C
其中:
操作数N为定时器TC号,取值范围为十进制数000~255。
操作数SV为定时器的设定值,由4位BCD码组成,可以是IR、SR、HR、AR、LR、DM、#,取值范围0000~9999。
操作数C为控制字。
当C=000时,定时单位为1秒。
当C=001时,定时单位为10秒。
功能:
长时间定时器指令。
C=000,定时范围是0~9999秒。
C=001,定时范围是0~99990秒。
在互锁程序段中的TIML当IL条件为OFF时要被复位。
在跳转程序段中的TIML当JMP条件为OFF时会暂停记时,PV值保持不变。
直到JMP条件转为ON后继续。
另外,当系统扫描周期超过1秒(C=000)或10秒(C=001)时,可能会影响TIML的定时精度。
4.5.6TMHH指令
格式:
TMHH(--)
N
SV
000
其中:
操作数N为定时器TC号,取值范围为十进制数000~255。
操作数SV为定时器的设定值,由4位BCD码组成,可以是IR、SR、HR、AR、LR、DM、#,取值范围0000~9999。
功能:
超高速定时器指令,定时精度为1ms。
SV取值0000~9999,对应定时范围0~9.999秒。
TMHH的TC号使用004~007时,定时不会受到系统扫描周期的影响。
跳转程序段中TMHH的TC号使用004~007,跳转号使用除00外的其他值时,定时不会受到跳转的影响。
4.6数据比较类应用指令
4.6.1CMP和CMPL指令
格式:
CMP(20)
C1
C2
CMPL(60)
C1
C2
其中:
操作数C1为比较数1,操作数C2为比较数2。
CMP的两个比较数可以是IR、SR、AR、LR、HR、TC、DM、*DM、#。
CMPL的两个比较数可以是IR、SR、AR、LR、HR、TC、DM、*DM。
功能:
CMP为单字比较指令,完成C1和C2两个字的比较。
CMPL为双字比较指令,完成C1与C1+1组成的双字和C2与C2+1组成的双字的比较。
当指令前的执行条件为ON时执行比较操作,比较操作的结果送SR中的标志位。
若C1>C2,大于标志位(LG)25505置ON。
若C1=C2,等于标志位(EQ)25506置ON。
若C1>C2,小于标志位(LE)25507置ON。
SR中的比较结果,可以用做其他运算的条件。
【例1】CMP指令的应用。
CMP指令的程序段如下:
LD00000
CMP(20)
HR10
#0100
LD00000
AND25505大于
OUT01000
LD00000
AND25506等于
OUT01001
LD00000
AND25507小于
OUT01002
图4.6.1CMP指令应用例梯形图
4.6.2BCMP指令
格式:
BCMP(68)@BCMP(68)
CDCD
CBCB
RR
其中:
操作数CD为比较数据,它可以是IR、SR、AR、LR、HR、TC、DM、*DM、#。
操作数CB为比较数据块起始通道,它可以是IR、SR、AR、LR、HR、TC、DM、*DM。
操作数R为比较结果通道,它可以是IR、SR、AR、LR、HR、TC、DM、*DM。
功能:
块比较指令。
用数据CD和CB开始的16个上下限数据进行比较,比较结果送R通道。
表4.6.1CB通道与R位的对应关系
【例2】设以下数据存储区中的数据值为:
DM0005=0000
DM0006=0100
DM0007=0101
DM0008=0200
DM0009=0201
DM0010=0300
。
。
DM0036=1600
执行下边程序段:
LD20000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PLC 第四
![提示](https://static.bingdoc.com/images/bang_tan.gif)