工控网首页
>

应用设计

>

对多输出点PLC设计与编程的实例展示与解析

对多输出点PLC设计与编程的实例展示与解析

2013/9/21 14:21:58

对多输出点PLC设计与编程的实例展示与解析

有这样一个PLC编程课题:某设备有六十个电磁阀,序号为L1L60按下启动按钮,设备将从序号为1的电磁阀开始依次循环启动下去,即:L1L2……L60L1L2……, 每个电磁阀的动作时间皆=1秒,相邻2个电磁阀启动间隔时间为10秒。当按下停止按钮设备停车。应如何进行PLC的硬件设计与编程 。能否不用60个输出口也能实现对60个电磁阀的顺序控制?

这是一个多输出点的PLC编程,按正常的PLC设计与编程,硬件上要求PLC至少应有60个输出口,来分别对60个电磁阀进行循环驱动。一般的中小型PLC是没有这么多的输出端口的,需外扩多个输出模块才能实现。这样就会使设备的设计费用大大提高。能否用较少的输出口来实现对这60各电磁阀的循环控制呢,这就是本文重点讨论的问题。

本文用二种方案对此命题进行设计与编程,并对电路原理与程序进行解析,供大家参考与分析。

第一设计方案:即常规的PLC设计与编程

1、硬件选择:(1)PLC选用为S7-200CPU226一台,其输入点为24,输出点为16。(2)、扩展输出模块选用EM2228点输出),共选用6块。合计输出口16+8×6=64个。输出地址为:Q0.0Q0.1Q0.2 …… Q0.7Q1.0Q1.1 ……Q1.7、……Q7.0Q7.1Q7.2Q7.3,共占用8个输出通道,60个输出点。剩下4点输出可作它用。

2、编程考虑:第一编程方案:

1)、编程令输出口Q0.0为第一电磁阀输出口,Q0.1为第二电磁阀输出口,Q0.2为第三电磁阀输出口……,这样当输出由Q0.0开始输出1秒宽脉冲后,Q0.1Q0.2……每隔10依次输出1秒宽的脉冲。如是这样,编程只能用字节左移指令来完成,而不能用字或双字左移指令来编程。(2)、60个输出口占据8个字节输出通道,为将Q0.0=1依次左移到Q7.3=1,需选用QB0QB1……QB88个字节的左移指令来编程。字节左移指令是不会将=1的移出位自动移入下一字节的最低位,故编程时应考虑字节之间的移位应如何进行。请见下面梯形图:

 

第二编程方案: 将第一电磁阀与输出口Q7.3连接,第二电磁阀与输出口Q7.4 连接……第60电磁阀与输出口Q0.0 连接(即与第一方案输出口与电磁阀的连接顺序正相反),这样编程就不必用8个字节的左移指令一一执行,而只用2个双字左移指令就可实现对60个电磁阀的顺序移位控制,使编写程序大大简化。见下梯形图:

    可见,该命题编程的简繁与输出口的顺序选择有很大关系,从中也给编程者一个启示:编程时要多思路、多对比,方可选择最优最简练的好方案。

第二设计方案:用硬件电路配合,仅用7个输出口的PLC设计与编程

从第一设计方案的硬件选择可知,为实现60个电磁阀循环启动,PLC需用60个输出口,这样除选用40点的CPU226外,还得扩展68点输出的I/O模块EM222。其设计成本是很昂贵的(高达78千元)。本设计方案借助硬件电路,仅用10点输出的CPU224一台,无需扩展I/O模块,就可实现对60个电磁阀的循环启动控制,大大降低设计费用。而且PLC的编程也变得简单。见下图:

   1、硬件电路构成:

该硬件电路是选用集成电路4514 45551413集成块各一片,NPN型功率管(BD13716只,PNP型功率管(BD1384只,及电阻等元件组成一个可控制60个电磁阀循环启动的控制电路。其4514的输入脚D1~D4PLC的输出口Q0.0~Q0.3,其4555的输入脚ABPLC的输出口Q0.4Q0.54514INH引脚与4555E脚相连,接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~G1616只晶体管的集电极。如:将L1L17L33L49的另一端接在一起,接G1集电极,将L2L18L34L50的另一端接在一起,接G2集电极,将L3L19L35L51的另一端接在一起,接G3集电极……,将L16L32L48的另一端接在一起,接G16集电极。

451416个输出点S0~S15分别接晶体管G1~G16管的基极电阻R1~R16,而G1~G16管的集电极,接4个电磁阀线圈的一端,如上所述:其G1的集电极接L1L17L33L49线圈的一端,G2的集电极接L2L18L34L50线圈的一端……,G16的集电极接L16L32L48线圈的一端。其L1~L16的上端并接一起,接G01管的集电极,其L17~L32的上端并接一起,接G02管的集电极,其L33~L48的上端并接一起,接G03管的集电极,其L49~L60的上端并接一起,接G04管的集电极,由于图面所限,上图仅画出4514S0S8S153个输出点的控制电路。

4555的输出点Q0~Q3分别接1413块的1~4脚,1413是由7个反向器组成集成电路,其1~7脚分别为7个反向器的输入端,其对应输出管脚分别为16151413121110。由于1413的各反向器输出无上拉电阻,故14脚对应的反向器输出16151413脚分别外接5K电阻,这45K电阻的上端接24V电源正极。同时14134个输出脚又各接一20K电阻,去G01G04管的基极。这里1413起反相与电平转换作用:如当4555的输出点Q0输出=0时,即使14131脚电压=0V,使该反向器截止,其输出16脚输出电压为+24V,通过R01加在G01管的基极上,由于此时G01管的基极与发射极电位相等,故使G01管截止,相当开关断开,使24V电压与L1L16线圈断开。如当Q0输出=1时,使14131脚电压=+15V,使该反向器导通,即1413的输出16脚输出电压=0V,0V通过R01使G01管的基极产生足够大的注入电流,使G01管饱和导通(管压降≈0V),相当开关闭合,将24V电压加在L1L16的上端。

即:G01相当L1L16的电源开关,它受4555Q0控制:Q0=0时使G01截止,使L1L16处于断电源状态,Q0=1时使G01导通,使L1L16的上端接通+24V电源。 同理G02相当L17L32的电源开关,它受4555Q1控制;G03相当L133L48的电源开关,它受4555Q2控制;G04相当L49L60的电源开关,它受4555Q3控制;

45144555COS电路。其最高工作电压≤18V,实选15V供电,该15V电源是用一只7815稳压块从24V电源中获取的。

PLC输出口Q0.0~Q0.6 分别接一3K电阻的一端,电阻的另一端接1M2MPLC输出测的1L+2L+15V电源的正极,1M2M15V电源的负极。这样连接会使PLC输出为1时使其电压=+15V,与接口元件45144555的输入电平匹配。

2COS集成电路功能介绍:

4514 为为高电平输出的4线-16线译码器,其输入 D1D2D3D4 4点,其输出 S0~S15 16点。 45141脚(即STR端)接+15V,而其23脚(INH端)的电位是可控制S0~S15输出有效的使能端,如 INH=0,容许S0~S15按输入信号(D1~D4)使对应输出点输出=1。如 INH=1,不管D1~D4为何种输入,都将强迫S0~S15输出状态皆=0

D1~D44位输入点其输入信号可从0000~1111,共有16种不同的输入状态,在INH=0时,其每一种输入,都会使其对应输出端的输出=1 (即+15V输出),如:输入为0000时,其对应输出点S0=1,而其它输出点输出=0。当输入为0111时,其对应输出点S7=1,而其它输出点输出=0。当输入为1111时,其对应输出点S15=1,而其它输出点输出=0

4555 为高电平输出的双2线-4线译码器(本电路只用其一个2-4译码器),其输入 AB 2点,其输出为Q0~Q3 4点,其1脚(E端)为控制Q0~Q3 输出的使能端,当E=1时将强迫Q0~Q3=0,当E=0时,将容许输出使能:如AB输入为00时,其对应输出点Q0=1,而Q1Q2Q3各点输出皆=0AB输入为01时,其对应输出点Q1=1,而Q1Q2Q3各点输出皆=0 ……

3、电路工作原理解析:

设计构思:用PLCQ0.0~Q0.5做输出,其输出状态为000000 ~111111,共有64种不同输出状态,设计时将它分为两组:(1)、低4Q0.0~Q0.3为一组,其输出数为0000~1111 ,(2)、高2Q0.4~Q0.5 为另一组,它可输出 00~11

从数学观点来看,Q0.0~Q0.3 代表二进制数的低4位数值, Q0.4~Q0.5 代表二进制数的第5与第6二位的数值:当Q0.4Q0,5=00 时,其6位输出数的值为十进制数0~15,即二进制数的00       _0000 ~ 00_1111。当Q0.4Q0.5=01 (即=10进制数16)时,其6位输出数的值为十进制数16+0~15=16~31,即二进制数的01_0000 ~ 01_1111。当Q0.4Q0,5=10 (即=10进制数32)时,其6位输出数的值为十进制数32+0~15= 32~47,即二进制数的10_0000 ~ 10_1111。当Q0.4Q0,5=11(即=10进制数48 时,其6位输出数的值为十进制数48+0~15= 48~64,即二进制数的11_0000 ~ 11_1111。。由于输出最大数为60 ,故在Q04Q0.5=11时,Q0.0~Q0.3 取值为0000~1011之间(即十进制数的0~11)。

硬件处理: 4514输入点D1D2D3D4PLCQ0.0Q0.3,作为6位二进制数的的低4位数输入点,用4555输入点ABPLCQ0.4Q0.5,作为6位二进制数的的高2位数输入点,当45141脚(即STR端)接+15V,其23脚(INH端)接0V时,D1~D4的输入值,会使S0~S1516个输出点有一个输出=1,其输出点的序号与D1~D4的输入值相同。如:D1~D4输入值=0000,则输出口S0=1,如D1~D4输入值=1000,则输出口S8=1……如D1~D4输入值=1111,则输出口S15=1

4555当其1E =0时,会使其一位输出点=1,其输出点的序号与其输入值相同。如:AB输入为00时,其对应输出点Q0=1,而Q1Q2Q3各点输出皆=0。如AB输入为01时,其对应输出点Q1=1,而Q0Q2Q3各点输出皆=0……

硬件这样处理的目的,是尽量减小硬件个数,使线路简化:通常60个电磁阀,要用60个晶体管来驱动,采用本电路却可只用20个晶体管就可实现对64个电磁阀的驱动。请见以下分析:

PLC6位输出值=00_0000时,其高2位数 00 输入给4555 A B输入点,使4555的输出Q0=1Q1Q4输出=0。这将使G01管导通,而G02G04管截止,从电路图可知:此时只有电磁阀L1L16线圈接通24V电源, 而L17L60处于断电源状态。其低4位数 0000 输入给4514D1D4输入点,使4514输出点S0=1(即+15V),输入给G01管的基极电阻R1,使G01导通,即使电磁阀L1得电动作。PLC6位输出值=01_0100时,其高2位数 01将使G02管导通,使L17L32接通24V电源,而其它电磁阀处于断电源状态,输出值的低4位数=0100输入给4514输入端,将使4514S4输出=1,即使L21得电动作。

451416个输出点(S0S15)分别与16个晶体管(G1G2……G16)的基极电阻相连接,而这16个晶体管的集电极分别4个电磁阀线圈,见下图:

 上图是仅画出4514的输出点S0一路的电路图:其晶体管G1的基极通过R1S0相接,G1的集电极与L1L17L33L494个电磁阀的下端相连接,这4个电磁阀的上端分别与G01G04的集电极相连。当PLC6为输入值为 00_0000时,其低4为使S0=1, 进而使G1导通,其高2为使Q0=1,进而使G01管导通,显然只有L1得电动作。当PLC6为输入值为 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, 使45144555的译码输出有效(即容许电磁阀动作1秒),之后的9秒时间,使Q0.6=1,即45144555的译码输出无效,电磁阀皆处于断电状态。具体编程请见下面梯形图:

5、梯形图:

    程序说明:网络116#40送入QB0的目的将Q0.6=1,即使45144555的各个输出点=0,确保开机后60个电磁阀皆为不动作状态。网络2网络4为启动运行:清QB0,使M8.0=1T101T102开始振荡。网络5T102=1(只存在1个扫描周期)使MB0计数加1,且确保MB060进制计数器。网络6:在M8.0=1T101=01秒间隔,此间隔内,其Q0.6输出=0,硬件电路45144555输出使能,即总有一路电磁阀动作,在M8.0=1T101=19秒间隔,此间隔内,其Q0.6输出=1,使硬件电路45144555输出皆=0,即60个电磁阀皆停止。网络7为按停止按钮,设备运行停。

6、二种设计方案比较:

1、用60个输出口的PLC设计比用硬件配合仅用7个输出口的PLC设计从元件成本上要高于12倍。如前面所讲:第一方案选用CPU226,为40PLC,价格要比24CPU224要高出1000多元,还需外配88输出扩展模块,仅从PLC与模块的费用就高到7,8千元。而第二方案选用CPU224与一块硬件电路板,其费用可在23千元:451445551413价格为10元左右,20个晶体管费用20元,再加上印刷板,加上电阻及印刷板,整个硬件成本只需几十元钱,低于PLC的一个输出口的价钱。

2、如电磁阀工作电流较大,第一方案就不能直接用PLC的输出口接电磁阀,需外加60个中间继电器或60只晶体功率管及电阻等元件,这样不仅费用增大,而且也要增加一块印刷电路板来安放60个继电器或60只晶体管与电阻等元件。其面积要大于第二方案的硬件电路板。而第二方案的硬件电路,只用3个集成电路,20只晶体功率管及电阻等件,其印刷板面积不大。由于电路中的20只晶体管(BD137BD138)是功率管,其输出电流可达1A,故对电磁阀工作电流较大的情况下,也不需再增加继电器或晶体管。

3、第一方案适应一般PLC的编程者,而第二方案要求PLC的编程者要有一定的电子线路知识与技能。

从中可以看出,多学点电子电路知识,会扩大我们的编程视野与能力,对PLC的设计编程是大有益处的。本文到此结束,谢谢大家!

投诉建议

提交

查看更多评论
其他资讯

查看更多

简短精炼的3例编程展示及编程思路与技巧解析

解析用S7-200编写的几个程序的构思与技巧

如何实现用PLC采集高于其高速计数器最高计数频率的脉冲数据的探讨

超声波时差法测量流量的公式推导及检测方法的探讨

PLC增扩输出口的硬件电路图及与之配合使用的PLC梯形图的构思与解析