可编程序控制器21.docx
《可编程序控制器21.docx》由会员分享,可在线阅读,更多相关《可编程序控制器21.docx(31页珍藏版)》请在冰点文库上搜索。
可编程序控制器21
第二章基本的指令编程
2—1基本指令及编程
基本知识
一、PLC如何控制电动机工作
如果采用接触器控制电动机工作,则其控制线路图如图2—1所示,由这个控制线路可知,操作人员通过按扭SB1发出电动机启动的命令,由接触器KM控制电动机启动,当KM主触点闭合时,电动机接入电源,电动机启动;通过按扭SB2发出电动机停止的命令,由接触器KM控制电动机停止,当KM主触点断开时,切断电动机电源,停止工作。
采用PLC控制电动机工作时,由于PLC的输出点带负载的能力受到限制,电动机不可能直接接在PLC的输出点上,所以,是PLC通过接触器控制电动机启动或停止。
1、PLC控制电动机连续运转
(1)分析控制要求,分配输入点和输出点
电动机的启动或停止,是由操作人员通过按扭,将要求电动机启动或停止的信号送到PLC的输入端子,通过控制程序,由PLC控制接在PLC输出点上的接触器线圈得电或失电,使接触器主触点闭合或断开,电动机启动或停止工作。
启动按扭和停止按扭分别接一个输入点。
当电动机单向运行时,由一个接触器控制,占用PLC的一个输出点,输入/输出地址表,见表2—1。
(2)画出PLC接线图
根据输入/输出地址表画出画出电动机控制系统的PLC接线图,如图2—2所示。
(3)编写控制程序编程思路如下:
由图2—2可看到,按下SB1,输入继电器X1线圈得电,X1常开触点闭合,则在梯形图中通过X1常开触点驱动Y0线圈得电,Y0常开触点闭合,PLC的Y0输出端子有信号输出,PLC驱动接触器KM的线圈得电,KM主触点闭合,电动机接通电源启动运行,其梯形图如图2—3a所示。
松开SB1,电动机会停止运行,这是因为:
松开SB1,输入继电器X1线圈失电,X1常开触点断开,Y0线圈失电,Y0输出端子没有信号输出,KM的线圈失电,KM主触点断开,电动机断开电源停止运行,为解决该问题,程序中要加自锁环节,其梯形图如图2—3b。
按下SB2,输入继电器X2线圈得电,X2
常闭触点断开,程序中利用X2常闭触点,使
Y0线圈失电,Y0常开触点断开,PLC的Y0输出端子将没有信号输出,KM的线圈失电,KM主触点断开,则电动机停止运行,其梯形图如图2—4所示。
(4)程序调试
首先,将控制程序传送到PLC,然后运行PLC进行调试。
程序的调试是程序开发的重要环节同,编写的控制程序只有经过试运行甚至现场调试运行才能发现程序中不合理的地方并进行修改。
SWOPC—FXGP/WIN—C编程软件具有监控工功能,可用于程序的监控及调试。
程序的监控状态:
程序下载后,启动程序运行,在编辑区显示梯形图状态下,单击菜单栏中“监控/测试”菜单项后,选择“开始监控”菜单条即可进入元件的监控状态,如图2—5所示。
进入元件的监控状态后,梯形图上将显示PLC中各触点的状态及各数据存储单元的数值变化。
如图2—6所示,图中有长方形光标显示的元件处于接通状态,数据元件中的存数则直接标出。
在监控状态时单击菜单栏中的“监控/调试”菜单项并选择“停止监控”则终止监控状态,回到编辑状态。
程序调试步骤:
程序调试按表2—2所示步骤进行,并填写观察结果。
2、PLC控制电动机正反转运转
(1)分析控制要求,分配PLC输入点和输出点按下正转启动按扭SB1,电动机正转运行;按下反转启动按扭SB2,电动机反转运行;按下停止按扭SB3,电动机停止正转或反转运行。
输入信号有3个:
SB1、SB2、SB3。
输出信号有2个:
KM1(控制正转)、KM2(控制反转)。
PLC输入/输出地址表见表2—3。
(2)画出PLC的接线图根据输入/输出地址
表画出电动机正反转控制的,PLC接线,如图2—7
所示。
(3)编写控制程序设计梯形图:
1)正反转控制都需要连续工作,
则梯形图如图2—8所示。
2)正反转控制需要联锁,则梯形图
如图2—9所示。
(4)程序调试程序调试按表
2—4所示步骤进行,并填写观察结
果。
二、PLC基本指令
上面编写的控制程序,都是用梯形图表示的,也可用基本指令表示。
PLC的基本指令是最常用的指令。
FX1S系列PLC的基本指令共有27条。
1、连接和驱动指令
这一类指令主要用于表示触点之间逻辑关系和驱动线圈的驱动指令。
(1)LD指令和LDI指令
在梯形图中,每个逻辑行都是从左母线开始的,并通过各类常开触点或常闭触点与左母线连接,这时,对应的指令应该用LD指令或LDI指令。
1)LD指令称为“取指令”。
其功能是使常开触点与左母线连接。
2)LDI指令称为“取反指令”。
其功能是使常闭触点与左母线连接。
“LD”和“LDI”分别为取指令和取反指令的助记符,LD指令和LDI指令的操作元件可以是输入继电器X、输出继电器Y、辅助继电器M、状态继电器S、定时器T、计数器C中的任何一个。
LD指令和LDI指令的应用如图2—10所示。
3)LD指令和LDI指令的说明:
由触点混联组成的电路块梯形图中,虽然某触点不是接左母线,但它属于电路块第一个触点,即分支起点,如图2—11所示梯形图中,X1、X3的常开触点和X4的常闭触点,这时也要用LD指令或LDI指令。
(2)OUT指令
“OUT”指令称为“输出指令”或“驱动指令”,“OUT”是“驱动指令”的助记符,驱动指令的操作元件可以是输出继电器Y、辅助继电器M、状态继电器S、定时器T、计数器C中的任何一个。
OUT指令的功能是输出逻辑运算结果,也就是根据逻辑运算结果去驱动一个指定的线圈。
OUT指令的应用如图2—12所示。
当输入继电器X0的常开触点闭合时,PLC执行OUTX1指令,输出继电器Y1线圈被驱动接通,则Y1的常开触点闭合,Y1的常闭合触点断开。
OUT指令的说明:
1)OUT指令不能用于驱动输入继电器,因为输入继电器的状态是由输入信号决定的。
2)OUT指令可以连续使用,称为并行输出,且不受使用次数的限制,如图2—13所示。
3)定时器T和计数器C使用OUT指令后,还需有一条常数设定值语句,如图2—13所示
(3)AND指令和ANI指令
当继电器的常开触点或常闭触点与其他继电器的触点串联时,就应该使用AND指令或ANI指令。
1)AND指令称为“与指令”。
AND指令的功能是使继电器的常开触点与其他继电器的触点串联。
2)ANI指令称为“与非指令”,或称为“与反指令”。
ANI指令的功能是使继电器的常闭触点与其他继电器的触点串联。
“AND”和“ANI”分别是与指令和与非指令的助记符。
AND指令和ANI指令的操作元件可以是输入继电器X、输出继电器Y、辅助继电器M、状态继电器S、定时器T、计数器C中的任何一个。
3)AND指令和ANI指令使用说明:
①AND指令和ANI指令可以;连续使用,并且不受使用次数的限制,如图2—14所示。
②如果在OUT指令之后,再通过触点对其他线圈使用OUT指令,称之为纵接输出,如图2—15所示,X1的常开触点与M1的线圈串联后,与Y0线圈并联,就是纵接输出。
这种情况下,X1仍可以使用AND指令,并可多次重复使用,如图2—16所示。
应注意,图2—17所示的梯形图,不能使用AND指令或ANI指令。
③当继电器的常开触点或常闭触点与其他继电器的触点组成的电路块串联时,也可以使用AND指令或ANI指令,如图2—18所示。
(4)OR指令和ORI指令
在梯形图中,继电器的常开触点或常闭触点与其他继电器的触点并联时,就应该使用OR指令或ORI指令。
1)OR指令称为“或指令”。
OR指令的功能是使继电器的常开触点与其他继电器的触点并联。
2)ORI指令称为“或非指令”或“或反指令”。
ORI指令的功能是使继电器的常闭触点与其他继电器的触点并联。
“OR”和“ORI”分别是或指令和或非指令的助记符。
OR指令和ORI指令的操作元件可以是输入继电器X、输出继电器Y、辅助继电器M、状态继电器S、定时器T、计数器C中的任何一个。
OR指令的应用如图2—19所示。
输入继电器X0和X1的常开触点并联,它们之间的逻辑关系是“或”逻辑。
当X0常开触点或X1常开触点中有一个是闭合时,输出继电器Y2的线圈就被驱动。
ORI指令的应用如图2—20所示,当辅助继电器M1的常开触点闭合或定时器T1的常闭触点闭合时,输出继电器Y0线圈被驱动。
3)OR指令和ORI指令使用说明:
①OR指令和ORI指令可以连续使用,并且不受次数的限制,如图2—21所示。
②当继电器的常开触点或常闭触点与其他继电器的触点组成的混联电路块并联时,也可以使用OR指令或ORI指令,如图2—22所示。
图中X0常开触点与M1常闭触点串联组成串联电路块,X1常开触点与串联电路块并联后组成一个混联电路块,C1的常开触点又与这个混联电路块并联。
(5)FX1S的触点指令
在FX1S中,增加了常开触点闭合或断开瞬间动作的指令。
1)LDP指令和LDF指令LDP指令和LDF指令的应用如图2—23所示。
其指令功能和LD指令基本一样,用于常开触点接左母线,但不同是LDP指令让常开触点只在闭合的瞬间接到左母线一个扫描周期,而LDF指令让常开触点只在断开的瞬间接到左母线一个扫描周期。
由图2—24a可以看到,X1的常开触点闭合后虽然一直保持闭合状态,但由于X1的常开触点只在闭合的瞬间接到左母线上一个扫描周期,Y1的线圈只得电一个扫描周期后就失电了。
图2—24b反映了X1的常开触点闭合的瞬间,Y1的线圈得电并自锁,因此,Y1的线圈一直保持得电状态。
LDP指令和LDF指令的操作元件可以是输入继电器X、输出继电器Y、辅助继电器M、状态继电器S、定时器T、计数器C中的任何一个。
2)ANDP指令、ANDF指令、ORP指令、ORF指令
ANDP指令的应用如图2—25所示。
其指令功能是在X3常开触点闭合的瞬间与前面的触点串联一个扫描周期。
ANDF指令的应用如图2—26所示。
其指令功能是在X4常开触点断开的瞬间与前面的触点串联一个扫描周期。
ORP指令的应用如图2—27所示。
其指令功能是在X5常开触点闭合的瞬间与上面的触点并联一个扫描周期。
ORF指令的应用如图2—28所示。
其指令功能是在X6常开触点断开的瞬间与上面的触点并联一个扫描周期。
(6)ANB指令和ORB指令
在梯形图中,可能会出现电路块与电路块串联,或者电路块与电路块并联的情况,这时,就要使用AND指令或ORB指令。
将每个电路块看成一个分支电路,每个分支电路的第一个触点为分支起点,这时,规定要使用LD指令或LDI指令。
也就是写每个电路块的指令语句表时,如果每一个触点是常开触点,则要用LD指令,不管这个触点是否接在左母线,如果第一个触点是常闭触点,则要用LDI指令。
1)ANB指令称为“电路块与指令”。
ANB指令的功能是使电路块与电路块串联。
2)ORB指令称为“电路块或指令”。
ORB指令的功能是使电路块与电路块并联。
“ANB”是电路块“与指令”的助记符,“ORB”是电路块“或指令”的助记符。
ANB指令和ORB指令是独立指令,没有操作元件。
ANB指令的应用如图2—29所示。
ORB指令的应用如图2—30所示。
3)ANB指令和ORB指令的使用说明:
①使用ANB指令和ORB指令编程时,最好采用图2—29和图2—30所示的编程方法,这时,ANB指令和ORB指令的使用次数不受限制,且指令语句表的可读性相对来说比较好,两个电路块之间的联系比较直观。
②使用ANB和ORB指令编程时,也可以采用ANB指令和ORB指令连续使用的方法。
这时,先按顺序将所有电路块的指令写出,再连续写出ANB指令或ORB指令,如果电路块数为n个,则应连续写n-1个ANB指令或ORB指令。
③应注意ANB指令与AND指令之间的区别,能不用ANB指令就尽量不用,因为这样可以节省指令。
如,图2—31所示的梯形图中,M1常开触点与右边的电路块串联,这时,最好把电路块放在左边,单个触点放在电路块的右边,梯形图如图2——32所示。
经过等效变换后的梯形图可少用一条ANB指令。
④要注意ORB指令与OR指令之间的区别,有时也可以省略ORB指令。
如图2—33所示梯形图中,串联触点较多的电路在单个触点下面,这时编程要用ORB指令。
如果将串联点较多的电路块放在上方,如图2.—34所示,这时,X1常开触点就是与上面电路块并联,用OR指令即可。
2、多路输出指令
对于图2—35所示的梯形图可以用基本指令写出相应的指令语句表,但是,对于图2—36所示的梯形图则不能用已讲过的基本指令进行编辑。
如对图2—36a所示梯形图编程,写成如下形式的指令语句表:
0LDX000
1OUTY000
2ANDX001
3OUTY001
4ANDX002
5OUTY002
则是错误的,因为从该指令语句表可以看出OUTY1语句后面紧跟着ANDX2和OUTY2语句,这可以认为是逐级输出,该指令语句表所表示的梯形图,与图2—37a所示的
梯形图一致,但图2—37b所示梯形图与图2—36a所示梯形图所表示的控制功能是不一样的。
因此,要正确写出图2—36所示的两个梯形图的指令语句表,必须学习多路输出指令。
多路输出是指一个触点或触点组控制多个逻辑行的梯形图结构。
如图2—36a所示梯形图中,常开触点X0除驱动输出继电器Y0线圈接通外,还控制Y1线圈和Y2线圈对应的两个逻辑行,触点X0、X1、X2之间既不是串联关系,也不是并联关系,也不是纵接输出,图2—36b所示的梯形图中,触点X4控制Y3线圈、Y4线圈和Y5线圈对应的三个逻辑行,触点X4、X5、X6、X7之间既不是串联关系,也不是并联关系,更不能理解为纵接输出,要写出这种梯形图对应指令语句表,应采用多路输出的指令。
多路输出指令共有两组,下面分别介绍:
(1)MC指令和MCR指令
1)MC指令称为“主控指令”。
MC指令的功能是:
通过MC指令的操作元件Y或M的常开触点将左母线临时移到一个所需的位置,产生一个临时左母线,形成一个主控电路块。
2)MCR指令称为“主控复位指令”。
MCR指令的功能是取消临时左母线,即将左母线返回到原来位置,结束主控电路块,MCR指令是主控电路块的终点。
“MC”为主控指令的助记符。
MC指令操作元件由2部分组成,一部分是主控指令使用次数(N0~N7),也称主控嵌套层数,一定要从小到大按顺序使用;另一部分是具体操作元件,可以是输出继电器Y或辅助继电器M,但不能是特殊继电器。
“MCR”为主控复位指令的助记符。
MCR指令的操作元件只有主控指令使用次数N0~N7,但一定要与MC指令中嵌套层数相一致。
如果是多极嵌套产,则主控返回时,一定要从大到小按顺序返回。
MC指令和MCR指令的应用如图2—38所示。
采用主控指令对图2—38a所示梯形图进行编程时,可以将梯形图改画成图2—38b所示形式。
在图2—38b所示梯形图中,当常开触点X0闭合时,嵌套层数为N0的主控指令执行,辅助继电器M0线圈被驱动接通,辅助继电器M0的常开触点闭合,此时常开触点M0称为主控触点,规定主控触点只能画在垂直方向,使它有别于规定只能画在水平方向的普通触点。
当主控触点M0闭合后,左母线由A的位置,临时移到B位置,接入主控电路块。
对主控电路块就可以用前面介绍过的基本指令写出指令语句表。
当PLC逐行对主控电路块所有逻辑行进行扫描,执行到MCRN0指令时,嵌套层数为N0的主控指令结束,临时左母线由B点返回到A点。
如果N0常开触点是断开的,则主控电路块这一段程序不执行。
用MC指令和MCR指令编程时,MC指令和MCR指令必须成对出现,缺一不可。
所以,程序中一定要有主控返回MCRN0指令和MCRN1,而且一定要按MCRN1和MCRN0顺序排列。
3)MC指令和MCR指令使用说明:
①MC指令的操作元件可以是输出继电器Y或辅助继电器M,在实际使用时,一般都是使用辅助继电器M。
当然,不能用特殊继电器。
②执行MC指令后,因左母线移到临时位置,即主控电路块前,所以,主控电路块必须用LD指令或LDI指令开始写指令语句表,主控电路块中触点之间的逻辑关系可以用触点连接的基本指令表示。
③执行MC指令后,必须用MCR指令使左母线由临时位置返回到原来位置。
④MC指令和MCR指令可以嵌套使用,即MC指令内可以再使用MC指令,这时嵌套级编号是从N0到N7按顺序增加,顺序不能颠倒。
最后主控返回用MCR指令时,必须从大的嵌套级编号开始返回,不能颠倒,最后一定是MCRN0指令。
(2)MPS指令、MRD指令、MPP指令
在FX1S系列PLC中,有11个存储运算中间结果的存储器,称为栈存储器。
这个栈存储器将触点之间的逻辑运算结果存储后,可以用指令将这个结果读出,再参与其他触点之间的逻辑运算。
1)MPS指令称为“进栈指令”,“MPS”为进栈指令的助记符。
MPS指令没有操作元件。
MPS指令的功能是将触点的逻辑运算结果推入栈存储器1号单元中,存储器每个单元中原来的数据依次向下推移。
执行一次MPS指令,完成两个动作,如图2—39b所示。
]每一个动作是栈存储器中每一个单元中数据依次向下一个单元推移,栈存储器中11号单元的结果移出存储器,10号单元中结果移至11号单元……,1号单元中结果移向2号单元,这时,腾出1号单元,这个动作称为数据下压。
第二个动作是将新的逻辑运算结果存入1号单元中。
2)MRD指令称为“读栈指令”,“MRD”为读栈指令的助记符,MRD指令也没有操作元件。
MRD指令的功能是将栈存储器中1号单元的内容读出。
执行MRD指令时,栈存储器中每个单元中内容不发生变化,既不会使数据下压,也不会使数据上托,如图3—39c所示。
3)MPP指令称为“出栈指令”,“MPP”为出栈指令的助记符,MPP指令也没有操作元件。
MPP指令的功能是将栈存储器中1号单元的结果取出,存储器中其他单元的数据依次向上推移。
在多重输出的最后一个分支,采用MPP指令时完成两个动作的,如图3—39d所示。
第一个动作是将栈存储器中1号单元中结果取出。
第二个动作是将2号单元中结果移到1号单元中……,11号单元中结果移到10号单元中,这个动作称为数据上托。
MPS指令、MRD指令和MPP指令的应用如图2—40所示。
在这一段程序中,使用MPS指令后,将常开触点
X0的逻辑值(X0闭合为“1”,X0断开时为“0”)存入到栈存储器1号单元,同时,这个结果与常开触点X1的逻辑值进行“与”逻辑运算,运算结果为“1”时,线圈Y0被驱动。
第一次执行MRD指令时,栈存储器中1号单元中结果被读出,与多路输出中第二个逻辑行中触点X2的逻辑值进行“与”逻辑运算,其运算结果如果为“1”,线圈Y1的被驱动。
第二次执行MRD指令时,栈存储器中1号单元中结果为“1”,将直接驱动线圈Y2。
第三次执行MRD指令时,栈存储器中1号单元中结果与多路输出第四个逻辑行中电路块进行“与”逻辑运算,如果运算结果为“1”,将驱动线圈Y3。
在执行MPP指令后,将栈存储器中1号单元内容取出,与多路输出最后一个逻辑行中触点X3的逻辑值进行逻辑运算,如果运算结果为“1”,将驱动线圈Y4。
执行这一条指令后,栈存储器中数据发生上托。
4)MPS指令、MRD指令、MPP指令使用说明:
①MPS指令和MPP指令必须成对使用,缺一不可,MRD指令有时可以不用。
②MPS指令连续使用次数最多不能超过11次。
图2—41所示梯形图中,MPS指令连续使用了3次。
③MPS指令、MRD指令或MPP指令之后若有单个常闭触点或常开触点串联,则应该用ANI指令或AND指令,如图2—40所示指令语句表中第2句和第5句。
④MPS指令、MRD指令或MPP指令之后若有触点组成的电路块串联,则应该用ANB指令,如图2—40所示指令语句表中第9句至第12句。
⑤MPS指令、MRD指令或MPP指令之后若无触点串联,直接驱动线圈,则应该用OUT指令,如图2—40所示指令语句表中第7句至第8句。
3、置位与复位指令
实际生产中,许多情况往往需要自锁控制。
在PLC控制系统中,自锁控制可以用置位指令实现。
(1)SET指令
SET指令称为“置位指令”。
SET指令的功能是驱动线圈,使其具有自锁功能,维持线圈状态。
“SET”为置位指令的助记符。
置位指令的操作元件为输出继电器Y、辅助继电器M、状态继电器S。
SET指令的应用如图2—42所示。
在图2—42中,当常开触点X0闭合时,执行SET指令,使M0线圈接通。
在X0断开后,M0线圈继续保持接通状态,要使M0线圈失电,则必须要用复位指令。
(2)RST指令
RST指令称为“复位指令”。
RST指令的功能是使线圈复位。
“RST”为复位指令的助记符。
复位指令的操作元件为输出继电器Y、辅助继电器M、状态继电器S、积算定时器T、计数器C。
RST指令的应用如图2—43所示。
4、脉冲微分指令
脉冲微分指令,主要用于检测输入脉冲的上升沿或下降沿,当条件满足时,产生一个很窄的脉冲信号输出。
(1)PLS指令
PLS指令和为“上升沿脉冲微分指令”。
PLS指令的功能是:
当检测到输入脉冲的上升沿时,PLS指令的操作元件Y或M的线圈得电一个扫描周期,产生一个宽度为一个扫描周期的脉冲信号输出。
“PLS”为上升沿脉冲微分指令的助记符。
PLS指令的操作元件为输出继电器Y、辅助继电器M,不含特殊继电器。
PLS指令的应用如图2—44所示。
(2)PLF指令
PLF指令称为“下降沿脉冲微分指令”。
PLS指令的功能是:
当检测到输入脉冲信号的下降沿时,PLS指令的操作元件Y或M的线圈得电一个扫描周期,产生一个脉冲宽度为一个扫描周期的脉冲信号输出。
“PLS”为下降沿微分脉冲指令的助记符。
PLS指令的操作元件为输出继电器Y、辅助继电器M,不含特殊继电器。
5、空操作与结束指令
(1)NOP指令
NOP指令称为“空操作指令”。
NOP指令的主要功能是:
在调试程序时,用它来取代一些不必要的指令,即删除由这些指令构成的程序。
但现在编程器的功能越来越强,修改程序时可直接删除指令而基本上很少使用NOP指令。
其次,程序可用NOP指令延长扫描周期。
(2)END指令
END指令称为“结束指令”。
END指令没有操作元件。
END指令的功能是:
程序执行到END指令后,END指令后面的程序则不执行。
如图2—46所示,PLC工作过程分为输入处理、程序处理和输出处理3个阶段,当程序处理阶段执行到END指令后便直接运行输出处理。
在调试程序时,插入END指令,可以逐段调试程序,提高程序调试速度。
注意:
END指令并不是PLC的停机指令,它仅说明了执行用户程序的一个周期结束。
三、指令应用
1、电动机控制要求
(1)点动控制电路
(2)自锁控制电路
(3)点动加自锁控制电路
根据继电器控制原理可以画出点动加自锁控制电路及具有保持功能的正反转控制电路的梯形图,分别如图2—47、2—48、2—49所示。
2、程序调试
程序调试按表2—5所示步骤进行,并填写观察结果。
基本指令由两部分组成:
第一部分是指令的助记符,如:
LD、OUT等。
第二部分是指令要操作的元件,如:
Y、M、T等。
基本指令表如下:
基本指令表
序号
名称
说明
功能
可操作的元件
1
LD
取指令
常开触点与左母线连接
X、Y、M、S、T、C
2
LDI
取反指令
常闭触点与左母线连接
X、Y、M、S、T、C
3
OUT
输出指令
输出逻辑结果,驱动一个指定的线圈
Y、M、S、T、C
4