供稿:工控网
发布时间:2013/9/21 14:21:58
对多输出点PLC设计与编程的实例展示与解析
有这样一个PLC编程课题:某设备有六十个电磁阀,序号为L1~L60。按下启动按钮,设备将从序号为1的电磁阀开始依次循环启动下去,即:L1、L2……L60、L1、L2……, 每个电磁阀的动作时间皆=1秒,相邻2个电磁阀启动间隔时间为10秒。当按下停止按钮设备停车。应如何进行PLC的硬件设计与编程 。能否不用60个输出口也能实现对60个电磁阀的顺序控制?
这是一个多输出点的PLC编程,按正常的PLC设计与编程,硬件上要求PLC至少应有60个输出口,来分别对60个电磁阀进行循环驱动。一般的中小型PLC是没有这么多的输出端口的,需外扩多个输出模块才能实现。这样就会使设备的设计费用大大提高。能否用较少的输出口来实现对这60各电磁阀的循环控制呢,这就是本文重点讨论的问题。
本文用二种方案对此命题进行设计与编程,并对电路原理与程序进行解析,供大家参考与分析。
第一设计方案:即常规的PLC设计与编程
1、硬件选择:(1)、PLC选用为S7-200的CPU226一台,其输入点为24,输出点为16。(2)、扩展输出模块选用EM222(8点输出),共选用6块。合计输出口16+8×6=64个。输出地址为:Q0.0、Q0.1、Q0.2 …… Q0.7、Q1.0、Q1.1 ……Q1.7、……Q7.0、Q7.1、Q7.2、Q7.3,共占用8个输出通道,60个输出点。剩下4点输出可作它用。
2、编程考虑:第一编程方案:
(1)、编程令输出口Q0.0为第一电磁阀输出口,Q0.1为第二电磁阀输出口,Q0.2为第三电磁阀输出口……,这样当输出由Q0.0开始输出1秒宽脉冲后,Q0.1、Q0.2……每隔10秒依次输出1秒宽的脉冲。如是这样,编程只能用字节左移指令来完成,而不能用字或双字左移指令来编程。(2)、60个输出口占据8个字节输出通道,为将Q0.0=1依次左移到Q7.3=1,需选用QB0、QB1……QB8这8个字节的左移指令来编程。字节左移指令是不会将=1的移出位自动移入下一字节的最低位,故编程时应考虑字节之间的移位应如何进行。请见下面梯形图:
第二编程方案: 将第一电磁阀与输出口Q7.3连接,第二电磁阀与输出口Q7.4 连接……第60电磁阀与输出口Q0.0 连接(即与第一方案输出口与电磁阀的连接顺序正相反),这样编程就不必用8个字节的左移指令一一执行,而只用2个双字左移指令就可实现对60个电磁阀的顺序移位控制,使编写程序大大简化。见下梯形图:
可见,该命题编程的简繁与输出口的顺序选择有很大关系,从中也给编程者一个启示:编程时要多思路、多对比,方可选择最优最简练的好方案。
第二设计方案:用硬件电路配合,仅用7个输出口的PLC设计与编程
从第一设计方案的硬件选择可知,为实现60个电磁阀循环启动,PLC需用60个输出口,这样除选用40点的CPU226外,还得扩展6个8点输出的I/O模块EM222。其设计成本是很昂贵的(高达7~8千元)。本设计方案借助硬件电路,仅用10点输出的CPU224一台,无需扩展I/O模块,就可实现对60个电磁阀的循环启动控制,大大降低设计费用。而且PLC的编程也变得简单。见下图:
1、硬件电路构成:
该硬件电路是选用集成电路4514、 4555及1413集成块各一片,NPN型功率管(BD137)16只,PNP型功率管(BD138)4只,及电阻等元件组成一个可控制60个电磁阀循环启动的控制电路。其4514的输入脚D1~D4接PLC的输出口Q0.0~Q0.3,其4555的输入脚A、B接PLC的输出口Q0.4与Q0.5,4514的INH引脚与4555的E脚相连,接PLC的输出口Q0.6。
60个电磁阀按序号分为4组,前3组每组16个,第4组为12个电磁阀(L49~L60)。将各组所有的电磁阀线圈的一端各自连接在一起,分别接图中G01~G03四只晶体管的发射极:第一组(L1~L16)接G01发射极,第二组(L17~L32)接G02发射极,第三组(L33~L48)接G03发射极,第四组(L49~L60)接G04发射极。再将四组中对应排列顺序相同电磁阀线圈的另一端并接一起,分别接图中G1~G16这16只晶体管的集电极。如:将L1、L17、L33、L49的另一端接在一起,接G1集电极,将L2、L18、L34、L50的另一端接在一起,接G2集电极,将L3、L19、L35、L51的另一端接在一起,接G3集电极……,将L16、L32、L48的另一端接在一起,接G16集电极。
4514的16个输出点S0~S15分别接晶体管G1~G16管的基极电阻R1~R16,而G1~G16管的集电极,接4个电磁阀线圈的一端,如上所述:其G1的集电极接L1、L17、L33、L49线圈的一端,G2的集电极接L2、L18、L34、L50线圈的一端……,G16的集电极接L16、L32、L48线圈的一端。其L1~L16的上端并接一起,接G01管的集电极,其L17~L32的上端并接一起,接G02管的集电极,其L33~L48的上端并接一起,接G03管的集电极,其L49~L60的上端并接一起,接G04管的集电极,由于图面所限,上图仅画出4514的S0、S8、S15的3个输出点的控制电路。
4555的输出点Q0~Q3分别接1413块的1~4脚,1413是由7个反向器组成集成电路,其1~7脚分别为7个反向器的输入端,其对应输出管脚分别为16、15、14、13、12、11、10。由于1413的各反向器输出无上拉电阻,故1~4脚对应的反向器输出16、15、14、13脚分别外接5K电阻,这4个5K电阻的上端接24V电源正极。同时1413这4个输出脚又各接一20K电阻,去G01~G04管的基极。这里1413起反相与电平转换作用:如当4555的输出点Q0输出=0时,即使1413的1脚电压=0V,使该反向器截止,其输出16脚输出电压为+24V,通过R01加在G01管的基极上,由于此时G01管的基极与发射极电位相等,故使G01管截止,相当开关断开,使24V电压与L1~L16线圈断开。如当Q0输出=1时,使1413的1脚电压=+15V,使该反向器导通,即1413的输出16脚输出电压=0V,该0V通过R01使G01管的基极产生足够大的注入电流,使G01管饱和导通(管压降≈0V),相当开关闭合,将24V电压加在L1~L16的上端。
即:G01相当L1~L16的电源开关,它受4555的Q0控制:Q0=0时使G01截止,使L1~L16处于断电源状态,Q0=1时使G01导通,使L1~L16的上端接通+24V电源。 同理G02相当L17~L32的电源开关,它受4555的Q1控制;G03相当L133~L48的电源开关,它受4555的Q2控制;G04相当L49~L60的电源开关,它受4555的Q3控制;
4514与4555是COS电路。其最高工作电压≤18V,实选15V供电,该15V电源是用一只7815稳压块从24V电源中获取的。
PLC输出口Q0.0~Q0.6 分别接一3K电阻的一端,电阻的另一端接
2、COS集成电路功能介绍:
4514 为为高电平输出的4线-16线译码器,其输入 为 D1、D2、D3、D4 共4点,其输出 为S0~S15 共16点。 4514的1脚(即STR端)接+15V,而其23脚(INH端)的电位是可控制S0~S15输出有效的使能端,如 INH=0,容许S0~S15按输入信号(D1~D4)使对应输出点输出=1。如 INH=1,不管D1~D4为何种输入,都将强迫S0~S15输出状态皆=0。
D1~D4这4位输入点其输入信号可从0000~1111,共有16种不同的输入状态,在INH=0时,其每一种输入,都会使其对应输出端的输出=1 (即+15V输出),如:输入为0000时,其对应输出点S0=1,而其它输出点输出=0。当输入为0111时,其对应输出点S7=1,而其它输出点输出=0。当输入为1111时,其对应输出点S15=1,而其它输出点输出=0。
4555 为高电平输出的双2线-4线译码器(本电路只用其一个2-4译码器),其输入 为A、B 2点,其输出为Q0~Q3 共4点,其1脚(E端)为控制Q0~Q3 输出的使能端,当E=1时将强迫Q0~Q3皆=0,当E=0时,将容许输出使能:如A、B输入为00时,其对应输出点Q0=1,而Q1、Q2、Q3各点输出皆=0。A、B输入为01时,其对应输出点Q1=1,而Q1、Q2、Q3各点输出皆=0 ……。
3、电路工作原理解析:
设计构思:用PLC的Q0.0~Q0.5做输出,其输出状态为000000 ~111111,共有64种不同输出状态,设计时将它分为两组:(1)、低4位Q0.0~Q0.3为一组,其输出数为0000~1111 ,(2)、高2位Q0.4~Q0.5 为另一组,它可输出 00~11。
从数学观点来看,Q0.0~Q0.3 代表二进制数的低4位数值, Q0.4~Q0.5 代表二进制数的第5与第6二位的数值:当Q0.4与Q0,5=00 时,其6位输出数的值为十进制数0~15,即二进制数的00 _0000 ~ 00_1111。当Q0.4与Q0.5=01 (即=10进制数16)时,其6位输出数的值为十进制数16+(0~15)=16~31,即二进制数的01_0000 ~ 01_1111。当Q0.4与Q0,5=10 (即=10进制数32)时,其6位输出数的值为十进制数32+(0~15)= 32~47,即二进制数的10_0000 ~ 10_1111。当Q0.4与Q0,5=11(即=10进制数48) 时,其6位输出数的值为十进制数48+(0~15)= 48~64,即二进制数的11_0000 ~ 11_1111。。由于输出最大数为60 ,故在Q04与Q0.5=11时,Q0.0~Q0.3 取值为0000~1011之间(即十进制数的0~11)。
硬件处理: 用4514输入点D1、D2、D3、D4接PLC的Q0.0~Q0.3,作为6位二进制数的的低4位数输入点,用4555输入点A、B接PLC的Q0.4~Q0.5,作为6位二进制数的的高2位数输入点,当4514的1脚(即STR端)接+15V,其23脚(INH端)接0V时,D1~D4的输入值,会使S0~S15这16个输出点有一个输出=1,其输出点的序号与D1~D4的输入值相同。如:D1~D4输入值=0000,则输出口S0=1,如D1~D4输入值=1000,则输出口S8=1……如D1~D4输入值=1111,则输出口S15=1。
4555当其1脚E =0时,会使其一位输出点=1,其输出点的序号与其输入值相同。如:A、B输入为00时,其对应输出点Q0=1,而Q1、Q2、Q3各点输出皆=0。如A、B输入为01时,其对应输出点Q1=1,而Q0、Q2、Q3各点输出皆=0……
硬件这样处理的目的,是尽量减小硬件个数,使线路简化:通常60个电磁阀,要用60个晶体管来驱动,采用本电路却可只用20个晶体管就可实现对64个电磁阀的驱动。请见以下分析:
当PLC的6位输出值=00_0000时,其高2位数 00 输入给4555 A B输入点,使4555的输出Q0=1,Q1~Q4输出=0。这将使G01管导通,而G02~G04管截止,从电路图可知:此时只有电磁阀L1~L16线圈接通24V电源, 而L17~L60处于断电源状态。其低4位数 0000 输入给4514的D1~D4输入点,使4514输出点S0=1(即+15V),输入给G01管的基极电阻R1,使G01导通,即使电磁阀L1得电动作。如PLC的6位输出值=01_0100时,其高2位数 01将使G02管导通,使L17~L32接通24V电源,而其它电磁阀处于断电源状态,输出值的低4位数=0100输入给4514输入端,将使4514的S4输出=1,即使L21得电动作。
4514的16个输出点(S0~S15)分别与16个晶体管(G1、G2……G16)的基极电阻相连接,而这16个晶体管的集电极分别4个电磁阀线圈,见下图:
上图是仅画出4514的输出点S0一路的电路图:其晶体管G1的基极通过R1与S0相接,G1的集电极与L1、L17、L33、L49这4个电磁阀的下端相连接,这4个电磁阀的上端分别与G01~G04的集电极相连。当PLC的6为输入值为 00_0000时,其低4为使S0=1, 进而使G1导通,其高2为使Q0=1,进而使G01管导通,显然只有L1得电动作。当PLC的6为输入值为 10_0000时,其低4仍使S0=1,进而使G1导通,其高2却使Q2=1,进而使G03管导通,显然只有L33得电动作。
对硬件电路就讲解到此,下面再讲讲配合该电路的PLC应如何编程:
4、编程说明:用该硬接电路作控制60个电磁阀依次循环动作,PLC编程只需编写一个6位输出60进制数的计数器即可。用计数器的6位值送入QB0的低6位。计数脉冲周期为10秒,即每隔10秒,使计数器加1,计数器计到61时立即使计数器清0。
在计数脉冲触发后的头1秒内,使Q0.6=0, 使4514与4555的译码输出有效(即容许电磁阀动作1秒),之后的9秒时间,使Q0.6=1,即4514与4555的译码输出无效,电磁阀皆处于断电状态。具体编程请见下面梯形图:
5、梯形图:
程序说明:网络1将16#40送入QB0的目的将Q0.6=1,即使4514与4555的各个输出点=0,确保开机后60个电磁阀皆为不动作状态。网络2~网络4为启动运行:清QB0,使M8.0=1,T101与T102开始振荡。网络5:T102=1(只存在1个扫描周期)使MB0计数加1,且确保MB0为60进制计数器。网络6:在M8.0=1、T101=0为1秒间隔,此间隔内,其Q0.6输出=0,硬件电路4514及4555输出使能,即总有一路电磁阀动作,在M8.0=1、T101=1为9秒间隔,此间隔内,其Q0.6输出=1,使硬件电路4514及4555输出皆=0,即60个电磁阀皆停止。网络7为按停止按钮,设备运行停。
6、二种设计方案比较:
1、用60个输出口的PLC设计比用硬件配合仅用7个输出口的PLC设计从元件成本上要高于1~2倍。如前面所讲:第一方案选用CPU226,为40点PLC,价格要比24点CPU224要高出1000多元,还需外配8个8输出扩展模块,仅从PLC与模块的费用就高到7,~8千元。而第二方案选用CPU224与一块硬件电路板,其费用可在2~3千元:4514、4555及1413价格为10元左右,20个晶体管费用20元,再加上印刷板,加上电阻及印刷板,整个硬件成本只需几十元钱,低于PLC的一个输出口的价钱。
2、如电磁阀工作电流较大,第一方案就不能直接用PLC的输出口接电磁阀,需外加60个中间继电器或60只晶体功率管及电阻等元件,这样不仅费用增大,而且也要增加一块印刷电路板来安放60个继电器或60只晶体管与电阻等元件。其面积要大于第二方案的硬件电路板。而第二方案的硬件电路,只用3个集成电路,20只晶体功率管及电阻等件,其印刷板面积不大。由于电路中的20只晶体管(BD137与BD138)是功率管,其输出电流可达
3、第一方案适应一般PLC的编程者,而第二方案要求PLC的编程者要有一定的电子线路知识与技能。
从中可以看出,多学点电子电路知识,会扩大我们的编程视野与能力,对PLC的设计编程是大有益处的。本文到此结束,谢谢大家!
如需了解更多信息,请访问 (工控网)官网 http://www.gongkong.com/
工控网
地 址:北京市海淀区紫竹院路116号嘉豪国际中心B座8层
邮 编:100097
电 话:010-58930088
传 真:010-58930018
网 址:http://www.gongkong.com/
E-mail:welcome@gongkong.com
联系人:工控网