bcb12Word文档下载推荐.docx
《bcb12Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《bcb12Word文档下载推荐.docx(26页珍藏版)》请在冰豆网上搜索。
2.分配I/O:
一般讲,配置好的PLC,其输入点数与控制对象的输入信号数总是相应的,输出点数与输出的控制回路数也是相应的。
3.编写程序:
一般总是先脱机编写,这是编程的最核心的内容。
要画出梯形图或写出语句表清单。
4.装载与调试程序:
编好的程序要装载入PLC,然后才能进行调试。
5.存储程序:
调试通过的程序,要作好存储,以免程序损坏时便于恢复。
存储时还可加密,以保护知识产权。
OMRONPLC加密的方法是:
在程序的最前端(00000地址)加入如下指令:
00000LDAR1001
00001FUN(49)
000
密码
密码为#0000~#FFFF(16进制)任一数字,用户自己确定。
三、编程方法
编程常用方法有:
经验法、顺序法、时序图法、技巧法等设计法。
1.经验法它是应用自己的或别人的经验进行设计。
2.顺序法它是用框图表示PLC程序的执行过程及输入条件与输出间的关系,在使用步进指令的情况下,用它进行设计,是很方便的。
3.时序图法时序图法是靠画图进行PLC程序设计。
时序图法很适合于时间控制电路。
它先把对应信号的波形画出,再依时间用逻辑关系去组合,就可很容易把电路设计出来。
4.技巧法技巧法是经验法及顺序法的基础上,运用技巧进行编程,以提高编程的质量。
四、编程要求
编程要求涉及到对PLC程序的评价问题。
到底怎么评价PLC程序呢?
1.正确PLC的程序一定要正确,并要经实际工作验证,证明其能够正确工作。
2.可靠程序不仅要正确,而且要可靠。
3.简短使PLC的程序尽可能简短,也是应追求的目标。
4.省时程序简短可以节省程序运行时间,但简短与省时并不完全是一回事。
因为:
运行程序时间虽与程序所拥有指令条数有关,而且还与所使用的是什么指令有关。
PLC指令不同,执行的时间也不同。
5.可读还要求所设计的程序可读性要好。
这不仅便于程序设计者加深对程序的理解,便于调试,而且,还便于别人读懂你的程序,便于使用者维护。
必要时,也可使程序得以推广。
6.易改还要使程序易改,即便于修改。
第二章可编程控制器指令系统
早期可编程控制器指令较少,如OMRON公司的C20机,才27条指令。
而且指令的功能也不强。
而近期的产品,如CPM1A机,尽管为微型机,就有93种,149条。
中、大型机更多,如CS1,多达800多条。
而且还有功能很强的指令,如PID指令,可对数据作比例、微分、积分数字处理,可用于模拟量的控制。
诸多指令,可对其进行分类分析。
若按指令的长度划分,有:
(1)单字指令。
(2)双字指令。
(3)多字指令
若按操作数的特点分,有:
(1)位(bit)操作数。
(2)数位(digit)操作数。
(3)字节(byte)操作数。
(4)字(word)操作数。
(5)双字(Doubleword)操作数。
(6)多字操作数。
若按使用的情况分,有:
(1)基本逻辑(有的称顺序)指令。
(2)应用指令,有的称功能指令。
随着PLC技术的发展,功能指令越来越多。
OMRONCS1机,其功能码已超过两位数,如END指令,过去为FUN(01),而现在为FUN(001)。
而有的中、小型PLC,如C200HS、C200Ha机及CQM1H机,功能指令也已是100多个,但多的不太多。
OMRON仍用两位数的功能码。
两位数要区别100多个功能指令,怎么办?
办法是:
把功能指令分为两种:
一为有固定的功能码,如01,固定代表END指令;
另一为无固定功能码,如PULS(-)指令,就没有固定的功能码,使用前需现指定。
CQM1H机约有66个无固定功能码的指令,有固定功能码的有82个。
留下18个功能码分配给无固定功能码的指令使用。
即在一个程序中,这种无固定功能码的指令只能使用其中的18种。
好在这种指令功能均较特殊,多数情况不必同时使用,所以,用户不会有什么不便。
产品出厂时,工厂已对其中的18个指定了功能码,不另作设定就可以用。
其余的48个没有码,不能使用。
若要使用,就得另改作设定。
设定是通过编程器送入相应命令。
或通过计算机(上位编程软件,如:
CX-P)。
这个设定要与用户程序一起存储,一起使用。
否则PLC无法认识,因而程序也不能正确执行了。
若按在梯形图中的位置,或按作用分,有:
(1)右方指令。
(2)左方指令。
(3)中间指令
若按功能分,有:
(1)基本逻辑指令
(2)定时、计数类指令。
(3)数据处理类指令
(4)流程控制类指令。
(5)监控类指令
(6)处理I/O类指令
(7)通讯类指令
(8)内存管理指令
本章将按其功能,对下述七类指令作介绍:
一、基本逻辑操作指令
1.LD和LDNOT指令
功能:
LD指令表示常开触点与左侧母线连接;
LDNOT指令表示常闭触点与左侧母线连接。
LD、LDNOT指令只能以位为单位进行操作,且不影响标志位。
N为操作数。
2.OUT和OUTNOT指令
OUT指令输出逻辑运算结果,OUTNOT指令将逻辑运算结果取反后再输出。
3.AND和ANDNOT指令
AND指令表示常开触点与前面的触点电路相串联,或者说AND后面的位与其前面的状态进行逻辑“与”运算;
ANDNOT指令表示常闭触点与前面的触点电路相串联,或者说ANDNOT后面的位取“反”后再与其前面的状态进行逻辑“与”运算。
4.OR和ORNOT指令
OR指令表示常开触点与前面的触点电路相并联,或者说OR后面的位与前面的状态进行逻辑“或”运算;
ORNOT指令表示常闭触点与前面的触点电路相并联,或者说ORNOT后面的位取“反”后再与其前面的状态进行逻辑“或”运算。
说明:
1.串联接点,并联接点的数目,在程序范围内可无限制的使用。
2.IR区中已用作输入通道的位不能用作为OUT、OUTNOT的输出位。
5.ANDLD指令
ANDLD指令用于逻辑块的串联连接,即对逻辑块进行逻辑“与”的操作。
如图所示:
两个虚框就是逻辑块“与”。
6.ORLD指令
ORLD指令用于逻辑块的并联连接,即对逻辑块进行逻辑“或”的操作。
两个虚框就是逻辑块“或”。
7.置位和复位指令—SET和RESET
当SET指令的执行条件为ON时,使指定继电器置位为ON,当执行条件为OFF时,SET指令不改变指定继电器的状态。
当RESET指令的执行条件为ON时,使指定继电器置位为OFF,当执行条件为OFF时,RESET指令不改变指定继电器的状态。
如下图所示:
当00000从OFF变为ON时,20010被置为ON,即使00000位变为OFF,20010并保持ON。
当00003从OFF变为ON时,20010被复位为OFF,即使00003位变为OFF,20010并保持OFF。
8.保持指令—KEEP(11)
根据两个执行条件,KEEP用来保持指定继电器N的ON状态或OFF状态。
当置位输入端为ON时,继电器N保持为ON状态直至复位输入端为ON时使其变为OFF。
复位具有高优先级,当两个输入端同时为ON时继电器N处在复位状态OFF。
当00000由OFF变为ON时,HR0000被置为ON。
,即使00000为OFF,HR0000保持ON,直到00002由OFF变为ON,HR0000才被复位为OFF,即使00002变为OFF,HR0000保持OFF。
9.上升沿微分和下降沿微分指令—DIFU(13)/DIFD(14)
当执行条件由OFF变为ON时,上升沿微分DIFU使指定继电器在一个扫描周期内为ON;
当执行条件由ON变为OFF时,下降沿微分DIFD使指定继电器在一个扫描周期内为ON。
输入00000的上升沿(OFF→ON)时,内部辅助继电器20000在一个扫描周期内ON,MOV(21)指令在一个扫描周期内执行。
输入00000的下降沿(ON→OFF)时,内部辅助继电器20001在一个扫描周期内ON,BSET(71)指令在一个扫描周期内执行。
10.脉冲指令—PULS(-)、SPED(-)
有的可编程控制器,如CQM1H机,不仅输出ON-OFF状态,还可输出脉冲量。
这种情况就要用到脉冲指令。
CQM1H机的脉冲指令有两种,四条。
一种为设定输出脉冲数的PULS(-);
另一设定输出脉冲的速度并产生脉冲的SPED(-)。
其在梯形图上的符号为:
这里P---设定脉冲数的通道或字的低字地址,如设其为DM100,则DM101,DM100的内容即为脉冲数,CQM1H机最大脉冲数为16777215。
000---无功能,但占程序内存单元,不可省略。
D---指定100通道的输出位。
确定脉冲在那个输出点输出。
设定的范围为000~150。
这里第1位数恒0,第2、3位指定输出位。
如140,输出位为10014,即100通道的14位为输出位。
M---脉冲输出模式,CQM1H有两种,一为独立模式,M设定为000,正常情况下,其输出脉冲数由P决定;
另一为连续模式,M设定伪001,其输出脉冲数不受P值影响。
F---设定频率,单位为10赫兹,可能的范围为0002~0100,其相应的频率为20~1000赫兹。
如果设F=0000,则停止脉冲输出。
@---为微分执行。
不加@为正常执行。
微分执行含义是当R寄存器的内容从0变到1时,它执行一个扫描周期。
由于有了它。
这两种指令,就可组合成4条指令。
上面提到的CPM1A机有93种,149条指令,条比种多,就可靠@组合后增多的
这两种指令的作用是:
PLUS---设定要输出的脉冲数,它是进行脉冲输出的准备,要先运行。
如果SPED指令设成连续模式,本指令可不用。
SPED---产生脉冲输出,并决定以什么速度(每秒输出多少脉冲)输出。
此外,中断指令INI(-)(见后)功能设成003时,也可用以停止脉冲输出。
还有PWM(-)指令,可使指令线圈产生指定频率91.6HZ、1.5KHZ、5.9KHZ及脉冲宽度1%~99%的占空比可调脉冲输出,可用于进行脉宽调制。
OMRON公司CPM2APLC机也有这种指令。
二、定时、计数指令
1.定时器指令—TIM
定时器为通电延时,当定时器的输入为OFF时,定时器的输出为OFF。
当定时器的输入为ON时,开始定时,定时时间到,定时器的输出为ON。
若输入继续为ON时,则定时器的输出保持为ON。
当定时器的输入为OFF时,定时器的输出随之变为OFF。
当00000为ON时,TIM000开始定时,定时时间为15秒(#0150×
0.1S),定时到,位20000为ON。
2.高速定时器—TIMH
与普通TIM指令无重大区别,只是它的计数单位为0.01秒。
有的高速计数器的单位为0.001秒,可实现毫秒级的计数。
TIMH不太常用,为功能指令。
OMRON指定其功能码为15。
高速指令所用的定时器编号有限制,一般用前边的号(000~014)。
这些定时器可中断工作,可保证能区分较小的定时单位。
3.累计定时器指令—TTIM
C200Ha机有此指令,用以累计计时。
它是增计时,计时单位为0.1秒。
输入端ON计时,OFF不计时,但不复位。
再ON,再计,并累计计时,直到达到设定值,计时停止,并产生输出。
计时复位靠复位位ON。
4.计数器指令—CNT
CP为计数脉冲输入端,R为复位端,SV是BCD数,取值范围为0~9999。
计数器为递减计数器,计数器和定时器的编号是共用的,使用时编号不能重复。
当计数脉冲输入端00000输入上升沿(OFF→ON)时,计数一次,如当前值为0000时,计数器到数并输出为ON。
在复位端00001输入的上升沿,当前值返回为设定值,在复位端输入为ON时,不接受计数输入。
5.可逆计数指令—CNTR
它为功能指令,功能号为12,除了有复位端,还有两个计数端,一个为正计数,一个为减计数。
其工作情况是,初始状态,当复位端ON时,现值为0,不计数。
复位端OFF,允许计数。
正端从OFF到ON,正计数,现值加1;
负端从OFF到ON,减计数,现值减1;
正计数达到设定值时,再增计一个数,则现值变为0,且产生输入。
现值为0时,再减计一个数,则现值变为设定值,也产生输出。
6.高速计数指令
主要用于小型机。
因为中、大型机高速计数由高速计数模块实现,PLC的CPU不必用指令去直接处理它。
CQM1H机高速计数功能有较大增强,可按两种方式(靠软件设定)计数:
增量模式:
只能增计数,单相输入,仅用00004—计数、00006—复位两输入端。
计数频率可高达5kHz。
计数范围为0~65535。
增减模式:
可增减计数,三相输入。
三个输入端,00004-A,00005-B端,00006-Z端。
A相超前90°
为增计数,B相超前90°
为减计数。
此两状态即对应于旋转编码器的正反转。
Z相用于复位。
计数范围为±
32767。
两种模式的计数复位均可用硬件或软件实现,也可仅用软件复位。
程序起停时,高速计数器自动复位。
但其初值可由初始化程序通过相应指令给以预置。
CQM1H的高速计数输入,比较及输出均可处理为中断方式,可用表比较或范围比较,可分成16个或8组目标值,所以,响应速度较快,用起来也方便。
CQM1H高速计数时要用到的指令有比较(CTBL)、控制比较及置现值(INI)、读现值(PRV)等多条。
同时要对DM6638,DM6615,DM6642作相应设定。
三、数据处理指令
随着PLC技术的发展,其数据处理指令越来越多,功能也越来越强,使当今的PLC不仅可方便地用于逻辑量的控制,而且也可方便地用于模拟量的处理与控制。
数据处理指令很多,占PLC指令集的相当大部分。
大多以字、多字为单位操作。
具体有:
传送指令、比较指令、译码指令、数字运算指令、逻辑运算指令等等。
1.传送指令—MOV(21)/@MOV(21)
当执行条件为ON时,将S中的数据传送到D通道中。
定时器/计数器TC不能作为目的数据。
当00000为ON时,输出通道010的内容传送至HR09通道。
还有MVN(22)指令,它与MOV不同的只是传送之前,先把要传的内容取反,然后再传。
高档PLC还有双字传送指令,MOVL、MVNL。
此外,还有多种传送指令。
有:
多字传送指令XFER(70)。
也称块传送指令,可把若干连续地址的内容分别传送给对应的连续的目标地址。
只要设好要传的数据的起始地址,目标的起始地址及要传的字数就可以了。
块设定指令BSET(71)指令。
它可把一个字的内容设定到指定的连续存储区中,只要指出该区的起始地址及末了地址。
这个指令可很方便地用于对PLC的一些存储区进行初始化。
字交换指令XCHG(73)。
可进行两个地址内容的交换。
高档的PLC还有双字交换指令XCHGL。
带偏移目标地址的传送指令DIST(80)。
可把源地址的内容传送给某址加偏移地址后的地址。
这种传送较灵活,便于存储数据,或从同一子程序中取出的数存于不同的单元中。
带偏移源地址的传送指令,COLL(81)指令。
可把某基址后的地址的内容传送到某个目标地址。
这种传送便于取数,或同一子程序可使用不同的参数。
除了字、双字、多字传送,还有BCD码的数(digit)及16进制的位(Bit)传送,等等。
这些指令给数据处理都提供了方便。
2.单字比较指令—CMP(20)
当执行条件为ON,比较C1和C2的大小,将比较结果送SR区的标志位。
大于标志位25505,当C1>
C2置位为ON。
等于标志位25506,当C1=C2置位为ON。
小于标志位25507,当C1<
输入位00000为ON时,输出通道IR010的的内容与保持继电器HR09的内容进行比较。
比较后的结果由25505或25506或25507标志位输出。
3.移位寄存器指令—SFT(10)
当复位端R为OFF时,在移位脉冲端SP由OFF→ON的上升沿时,St到E通道中的所有位依此移一位,E通道的最高位丢失,St通道的最低位则移进数据输入端IN的数据。
当复位端R为ON时,从St到E通道中的所有位置OFF,此时移位脉冲端SP和数据输入端IN无效。
开始通道St必须小于或等于结束通道E,而且St和E必须在同一区域。
这三个端(IN、SP、R)用三个LD开头的输入指令产生,在语句表上必须为:
×
×
LD×
……
SFT(10)
St
E
凡需多个输入端的梯形图,也都是这么处理的。
在移位脉冲端00001上升沿(OFF→ON)时,HR1000读入数据端00000输入的内容1(ON)或0(OFF),同时,把HR1000~1014的内容分别向HR1001~HR1015,一个位一个位地移动,原HR1015的内容消失。
输出位01000在HR1005为“1”时ON。
此外,还有多种多样的移位指令:
算术左移ASL(25):
仅对一个字的位移位,执行一次本指令移一次位。
移位时用0移入最低位(00位)。
原00位的内容,移入01位……15位的内容移入进位位CY(25504)。
而进位位的内容丢失。
算术右移ASR(26):
它与ASL不同的只是它为右移,先把进位位的内容移入字的最高位(15),原15位的内容移入14位……原00位的内容丢失。
循环左移ROL(27):
它与ASL不同的只是它的CY的内容不丢失,要传给00位,以实现循环。
循环右移ROR(28);
与ASR不同的是00的内容不丢失,传给进位位,以实现循环。
还有可逆移位指令,由控制字控制左还是右移,并可实现多字移位。
除了二进制的位(bit)移位,还有BCD码的数(digit)移位,可左移SLD(74),也可右移SRD(75)。
移位的对象可以多个字。
还有字移位WSFT(16),以字为单位的移,执行一次本指令移一个字。
移时0000移入起始地址(最小地址),起始地址的原内容移入相邻的较高地址,……最高地址(结束地址)的内容丢失。
多次执行本指令,可对从起始到结束地址的内容清零。
还有非同步移位ASFT(17)。
也是字为单位。
执行时,只是对其相邻低地址的内容的字作移位(它的内容移入相邻地址,原地址置成0000,实质为两相邻字交换)。
多次执行本指令,可把所有0000的内容移向高地址。
4.译码指令
用以译码,以适应显示或逻辑控制的需要。
最常用为BCD码与BIN二进制码转换用指令。
BCD(24)为二进制码转换成BCD码指令。
BIN(23)为BCD码转换二进制码指令,还可用BCDL及BINL进行两字转换。
此外,还有其它译码指令。
如:
4转16的MLPX(76)指令:
它可根据源地址16进制数位(digit)的内容(0~F)使相应通道的二进制位(bit)置成1(其它非指定位置成0)如果位内容为7,可使指定通道的07位(bit)置成1,其余的均为0。
最多可用4个数位(digit)使4个通道的相应位置1。
到底有多少个数位,各数位对应于哪个通道由控制字确定。
还有与MLPX(76)相反的译码指令DMPX(77)。
它为16到4译码,是前者的反过程,把一到四个通道中最高位(bit)为1的位号,分别置入指定通道的某个数位(digit)。
有多少通道及通道与哪个指定字位(digit)对应由控制字确定。
这两个译码指令常用数值与输出位的对应变换。
a机还对这两条功能予以增强,可通过控制字高位设成1,进行8到256或256到8的译码。
256作为16个字组成的256个位(bit)。
8作为1个字节称为一组,每组两位16进制数,其值变化范围为00~FF,正好对应于256位(bit)的00~255位。
总之,8到256及256到8译码,本质上与4到16及16到4是相同的,只是它的通道长(位数)不是16,而是256,位(号)不是0~F,而是两位16进制数00~FF。
8到256,或256到8最多只能进行两组,不像4到16及16到4可进行4组。
7段译码指令SDEC(78):
把BCD码译成7段码,用于数字显示。
ASCⅡ码转换指令ASC(86):
把16进制数译成ACSⅡ码,还可加或不加奇或偶校验。
16进制码译码HEX(-):
把ACSⅡ码译成16进制码。
小时到秒译码指令SEC(-):
把小时数译成秒数。
秒到小时译码指令HMS(-):
把秒数译成小时数。
列译成行译码LINE(-):
把16个字的指定同一个位(bit)的内容,变成一个指定字的内容。
行译成列译码COLM(-):
与LINE具有相反的过程。
等等。
5.数字运算指令
最常用的为一个字的BCD码+、—、×
、\指令。
还有两个字(8位BCD码)+、-、×
、\。
还有16位及32位二进制的+、—、×
、\,a机还可带符号位的运算。
还有加1,INC(38)。
减1,DEC(39)两个也是较常用的指令。
这些运算都要影响进位位也都参加运算。
为此,在运算之前要对进位位(CY)进行操作。
有两个指令可做此工作。
即:
STC(40):
置进位位,使进位置1。
CLC(41):
清进位位,使进位置0。
此外,还有开方,浮点除。
高档及新型的PLC还有可进行终合运算的指令。
在一组数中求最小值MIN(-);
在一组数中求最大值M