首页 上一页 1 2 下一页 尾页

PLC增扩输入口的硬件电路及与之配合使用的PLC梯形图的构思与解析 点击:3171 | 回复:32



wyb2866255---王者之师

    
  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-05-09 08:54:37
楼主

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

 

        正常情况下PLC设计要求其I/O点应留有一定的余量。如PLC的I/O点不够,可增加I/O扩展模块。但有些特殊情况,例如对一台旧设备进行改造,要求要利用设备上原有的PLC,而原PLC的输入与输出口已用到其I / O口的最大数量,还需再增加多个输入点及输出点才能实现改造后的控制功能。在此情况下,用增加I/O扩展模块的办法是行不通的,就得采用硬件电路配合PLC编程,来实现I / O口的扩增。下面就这一问题谈谈个人的想法(本文仅谈输入口的扩展,输出口扩展将在另文论述)。

 

      第一种扩展输入口的构思:采用数学组合的思路扩展输入口:如选用N个输入口,除每个口接一输入开关(或电位输入信号)外,还可用俩俩组合来代表一个新的输入点。

        图一的K1~K4为原I0.0~I0.3的输入开关,K5~K10 这6个开关是利用数学组合思路扩展的6路输入开关,即每个开关连接2个二极管的正极,而二极管的负极分别接2个输入口,如K5的触点,其一端接+24V,另一端接2个二极管的正极。这2个二极管的负极分别接I0.0与I0.1输入口,当按下K5开关时,将使其I0.0=1与I0.1输入电压=+24V,此时4个输入口的输入值=0011。即0011则表示K5的信号代码。如K6连接的2个二极管的负极分别接I0.0与I0.2,其0101输入状态则代表K6的信号输入代码……,而K1~K4的输入代码分别为:0001、0010、0100、1000表示。

 

        第二种扩展输入口的构思:采用二进制编码组合的思路扩展输入口:如选用N个输入口,其各个输入口分别代表二进制数的各位的值:如I0.0=1代表二进制数的个位数“1”(即十进制数1), I0.1=1代表二进制数的十位数“1”(即十进制数2),I0.2=1代表二进制数的百位数“1”(即十进制数4)……,如用N个输入口表示N位二进制数,它将有2的N次方个不同数字组合。

如仍取N=4,用I0.0~I0.3这4个数入口分别作为二进制数的个位、十位、百位、千位的数,从0000 到4位二进制数的最大值 1111,共含有:0000、0001、0010、0011、0100、0101、0110、0111、1000、1001、1010、1011、1100、1101、1110、1111这16个不同数值,除0000外,其余15个数中的4位数至少有一位=1,即相当有1个输入开关接通该输入口使其置1。我们可用15个开关,按着这15种4位数不同的数字组合,用二级管连接该对应输入口,就可构成用4个输入点实现15个输入信号的控制功能。见下图:

 

  

          图二、4位二进制数编码式组合构成的输入控制电路图

 

       图二中的K1、K2、K4、K8 这4个开关分别直接与I0.0~I0.3输入口相连,其输入值为0001、0010、0100、1000这4个二进制数,其余11个开关则通过二极管不同组合与I0.0~I0.3连接,即按各开关序号值对应的二进制数中的各位值=1的输入口相连接,构成11个扩增输入点。

        通过图一与图二比较可已看出:选用相同数量输入口。采用第二种方式扩展输入口比采用第一种扩展方式所扩展的输入口要多,而且N数越大,扩增的输入口越多:

 

下面图三是用S7-200编写的用4个输入口按组合思路实现扩展10路输入开关的梯形图:

       

下面图四是采用第二种扩展方式用S7-200编写的用4个输入口实现15路输入开关的梯形图:

 

 

      图四、4个输入口扩展为15个输入信号的梯形图

 

    二、硬件电路图与梯形图的分析

        上述这二种扩展方案虽然能扩增输入口,但都存在着一个致命的弱点,即:各个输入开关(或输入信号)只容许独自进行输入控制,即不容许同时进行二个以上的信号输入。否则就会造成错误的输入命令。以图二为例:如同时按下K1、K2、K5三个按钮,其此时I0.0~I0.3的输入状态只能为一种:I0.0=1、I0.1=1、I0.2=1、I0.3=0,而这种输入状态是K7的输入代码,而K1与K2及K5的输入代码却不存在,其结果,PLC将执行K7指令动作,K1、K2、K5指令皆不予执行,这是控制程序所不容许的。

        这个问题如不能解决,此设计方案就没有实用价值,为解决这个难题。为使这一设计思想不予流产,对此方案进行深入的研究与分析,最终选用如下的解决方案,见图五与图六。

 

 

 

    图五、在图一基础上改进的用4个输入口扩展为10路输入控制的电路图

 

 

图六、在图二基础上改进的用4个输入口扩展为15路输入控制的电路图

 

       图五是在图一的基础上改进的用4个输入口扩展为10路输入信号的电路图。图六是在图二的基础上改进的用4个输入口扩展为15路输入信号的电路图。二者电路构思是相似的,下面只讲解图五电路的工作原理及其编程:

      图五是用COS集成电路按第一扩展思路构成的用4个输入口扩展为10路输入信号的控制电路,图中用3个4011(为四2输入与非门集成块),共含12个2输入与非门,其中二个与非门门(U3C、U3D)用于做振荡器,剩下的10个与非门的二个输入端分别连接10个输入信号(K1~K10)和4028 的10个输出端(Q0~Q9)。如:U1A门的一个输入端(1脚)接输入信号K1,另一个输入端(2脚)接4028的Q0输出端, U1B门的一个输入端(5脚)接输入信号K2,另一个输入端(6脚)接4028的Q1…。

       连接10个输入信号(K1~K10)的10个与非门的输入端各加一下拉电(4.7K),其作用是:当各输入点的输入信号=0时(即K1~K10处于断开),使其与非门的输出=1。即10个与非门输出皆为1,那么后级的四个4输入与非门(U6与U7)的输出皆为0,又使之连接的NPN型晶体管G1~G4截止,输出高电平,即G1~G4管输出为1,又使后面4个PNP晶体管截止。使PLC的I0.0~I0.3无注入电流,即I0.0~I0.3输入皆0.

     如K1闭合(即K1=1,输入高电压),4028的Q0也输出为1时,与非门U1A的二个输入皆为1,使其输出(3脚)为0,即使U6A的输入2脚=0,其U6A的输出1脚=1,U6A的1脚输出高电位加在G1晶体管的基极,使G1导通,其集电极输出0电压加在G5的基极,又使G5导通,使24V正电压加在I0.0输入口,即I0.0=1。此时由于U6B与U7A、U7B 的输入端无输入信号,其输出仍保持0,故使其后面的晶体管截止,使I0.1、I0.2及I0.3的输入皆为0。  

       图五中的与非门U3C与U3D构成自激振荡器,其振荡频率为1.2KHz,该振荡脉冲输入给十进制计数器4518,4518 的4个输出端:Q0~Q3,分别代表1、2、4、8,其十种输出状态为0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 ,随着输入脉冲的连续触发,上述的十种输出状态会依次重复出现,每种输出重复出现的间隔为10个计数脉冲间隔,其频率为计数脉冲频率的十分之一(即为120Hz,周期=83.3mS)。

     4518的4位输出(Q0~Q3)输送给4028 的4个输入端(A、B、C、D),4028为BCD输入4线-10线译码器,当其输入端A、B、C、D的输入信号由000、0001…1001依次变化时,其10个输出端Q0~Q9也随之由Q0、Q1…Q10依次轮流输出为1。例如:当输入为0000时,其输出Q0=1,其余输出端输出为0,当输入为0001时,其输出只有Q1=1。

      那么这10个与非门起什么作用呢?现举一例说明:以U1A门为例,假设K1输入脉宽为1分的正方波,而4028的Q0输出为120Hz的连续脉冲,这二种信号相与,使与非门U1A的输出端1脚的输出波形变为频率=120Hz,长度为1分钟的脉冲串。见下图:

 

       此脉冲串的脉冲个数=60×120=7200.4028的10个输出端是分时轮流输出的(即互不重叠),故10个与非门的输出也一定互不重叠,即在K1=1而Q0也=1时,只有U1A输出=0,其它9个与非门因Q1~Q9皆为0其输出都=1。此时4个4输入与非门只有U6A的输出端=1,其它3个输出为0,使PLC的I0.0~I0.3的输出状态为:0001。这0001输入状态是每隔83mS重复出现一次,在1分钟内将出现7200次。

对应K1输入,PLC是这样编程的:见下图

 

      当K1=1,4028的Q0输出端第一次=1时,其上图支路通导,使定时器T101得电且使T101=1,当4028转为下一个输出时(如Q1=1)该支路断,但T101仍保持输出为1(它需延时100mS才可断),延时83.3Ms,此支路又通导,使定时器T101又得电且使T101=1……,在K1的输入1分钟的方波脉宽内,T101从第一个脉冲使其数出=1起,一直保持输出为1状态,直到K1的脉冲结束,其脉冲串的最后一个脉冲结束,再延时100mS,T101才由1下跳回0状态,见下图:

 

      从上图可见。通过T101使输入的脉冲串又转换为脉宽为1分的方波。从图中会发现T101输出波形与K1波形稍有滞后(小于100mS),这对K1的长时间通导是微乎极微的。

      再举一例:K1与K2分别输入正方波,二者是同时出现但导通时间不等,见下图:

 

         图七、电路波形图

      

     从图七可见,由于4028的输出端Q0波形比输出端Q1波形提前一个正方波脉冲宽度,确保二者形成的脉冲串(U1A3脚波形与U1B4脚波形)互不重叠,二者先后送入PLC的I0.0~I0.3口,由下梯形图实现T101与T02二个方波输出(见上图七)。

 

      通过上述讲解,可以知道,用硬件电路配合PLC编程来增扩输入口的设计构思:

    1、硬件电路:完成将10路输入信号,转换为与原信号等宽度的脉冲串,各路脉冲串的频率相同,但相位依次相差十分之一脉冲的周期,它们是分时循环输入给PLC的I0.0~I0.3各端口,

    2、PLC编程:PLC输入口(I0.0~I0.3)的10种输入状态:0001、0010、0100、1000、0011、0101、1001、0110、1010、1100,对外分别对应K1、K2……K10十个输入信号,对内分别对应T101、T102……T110十个断电延时定时器,由于这10种信号是分时传送给PLC输入端的脉冲串,使各定时器能分别产生与对应输入相似的方波脉冲,从而达到10路输入信号通过4个数入口可以随意输入,PLC照样可以获得与之同时序的10路输入信号。

    图七为配合图五输入电路图编写的PLC梯形图:

 

                 图七、与图五硬件电路相配合的PLC梯形图

 

      关于图六的电路图原理及其编程思路与上述图五相似,本文就不再作重复讲解。就写到这里,供大家分析与参考。谢谢大家!

 




江湖混混-余辉

  • [版主]
  • 精华:53帖
  • 求助:44帖
  • 帖子:3351帖 | 28451回
  • 年度积分:603
  • 历史总积分:131640
  • 注册:2006年4月25日
发表于:2013-05-09 12:51:29
1楼

很详细  王老的帖子总是那么耐人寻味      

yifan1988

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:0
  • 历史总积分:67
  • 注册:2011年4月14日
发表于:2013-05-09 14:29:27
2楼

王老的帖子确实详细深刻  

chinacupor

  • 精华:2帖
  • 求助:13帖
  • 帖子:25帖 | 845回
  • 年度积分:0
  • 历史总积分:2751
  • 注册:2013年2月16日
发表于:2013-05-09 19:21:34
3楼

这么狠哪。。。说白了就是拿IO当通信呗。不过这么搞也离不开单片机啊,总得有个东西来翻译这些控制意图吧。


其实扩展IO口很简单,弄个带通讯的单片机接口板就行了啊,然后自己写通讯程序控制接口板各个端子输出与否。话说一个双字就能控制32个IO点啊。。。


不过还是佩服楼主的钻研精神,因为这个问题我也考虑过。。。

lzgz00

  • 精华:0帖
  • 求助:0帖
  • 帖子:445帖 | 1223回
  • 年度积分:0
  • 历史总积分:4892
  • 注册:2008年9月02日
发表于:2013-05-09 20:29:09
4楼

这样搞的意义很大吗????

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-05-09 20:51:10
5楼

        回3楼:这样作绝不是拿IO当通信,这里也没有用单片机,是纯硬件电路与PLC的4个输入口连接,通过PLC编程,就可实现正常情况下的用15个开关连接PLC的15个输入口的控制功能。硬件电路工作原理及其PLC配合硬件的编程我在文已讲过,你最好仔细看看。

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-05-09 21:19:10
6楼

回4楼:此文的目的就是锻炼与提高设计者的编程构思与硬件电路配合使用的能力。作为一个PLC编程者,要掌握多学科知识,不仅要会PLC的编程,还应具备一定的电路设计知识,这对你的设计工作是大有益处的。

pipimuzi

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 21回
  • 年度积分:0
  • 历史总积分:57
  • 注册:2011年1月25日
发表于:2013-05-09 23:22:08
7楼

真是牛人啊,学习啦                      

骏马千里

  • 精华:0帖
  • 求助:0帖
  • 帖子:152帖 | 1762回
  • 年度积分:0
  • 历史总积分:14240
  • 注册:2002年8月21日
发表于:2013-05-11 08:14:04
8楼

引用 yifan1988 的回复内容: 王老的帖子确实详细深刻  



wooogeoff

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 24回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2013年4月25日
发表于:2013-05-13 20:32:45
9楼

无论如何,都是好贴,学习!

鄂-电气自动化

  • 精华:0帖
  • 求助:7帖
  • 帖子:30帖 | 495回
  • 年度积分:29
  • 历史总积分:4279
  • 注册:2011年3月09日
发表于:2013-05-13 20:55:30
10楼

不错的想法。             

风中cloud

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 29回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2013年4月27日
发表于:2013-05-13 21:28:43
11楼

无论如何,都是好贴,学习!

研讨会宣传员_3259

  • [版主]
  • 精华:3帖
  • 求助:110帖
  • 帖子:1927帖 | 14403回
  • 年度积分:102
  • 历史总积分:64749
  • 注册:2020年3月27日
发表于:2013-05-14 16:27:58
12楼

把数字电路引到这里来了,非常有创意。

pomieshenhua

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 11回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2013年5月13日
发表于:2013-05-15 22:40:11
13楼

不错,大神呀,以后多发点帖子,大家互相学习!

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2013-05-17 14:23:29
14楼

太好了!

最近在单片机高手的指导下,利用四个输入口,四个输出口来接收16路按键信号输入,其给我简单讲了一下,我接手任务后突然发现没有那么简单,累的我差点吐血。对单片机外围输入信号电路板发信号规则不熟啊!

楼主在这方面有没有好的经验分享。

乖乖小笨熊

  • 精华:2帖
  • 求助:0帖
  • 帖子:1200帖 | 11283回
  • 年度积分:2326
  • 历史总积分:62523
  • 注册:2006年8月05日
发表于:2013-05-18 01:12:51
15楼

引用 鄂-电气自动化 的回复内容: 不错的想法。              


但是实际应用意义不大了

美天使

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 16回
  • 年度积分:0
  • 历史总积分:171
  • 注册:2009年9月29日
发表于:2013-05-24 09:23:50
16楼

这样会有一个问题的呀,如果我要是同时多个按键按下,就识别不了了。

 

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-05-24 13:22:27
17楼

16楼:本文你没有看明白吧!  本文中心论述的就是解决如何可同时按多个键使程序都能识别的问题,望你仔细看看。

hejiajian139

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 11回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2013年6月23日
发表于:2013-06-23 15:38:37
18楼

学到了,学到了啊!换种想法很重呀啊!

非凡2013

  • 精华:0帖
  • 求助:54帖
  • 帖子:64帖 | 350回
  • 年度积分:3
  • 历史总积分:1036
  • 注册:2013年6月17日
发表于:2013-08-16 10:24:17
19楼

很好的帖子啊  好好学习

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-08-19 16:38:10
20楼

  回14楼:关于用单片机的一个8位 口(如P1口)连接16键键盘的编程,20多年前是经常使用的,由于多年不搞单片机,编程软件使用都有点忘记了,我找到过去编写的键盘程序,贴出来供你参考:

     KYCL:    MOV    P1,#0F0H     //将#F0—>P1口

              MOV     A,P1        // 将P1—> A 累加器

              ORL     A,#0FH      // #0F 或到 A 里

              MOV     P1,A

              MOV     A,P1

              CPL     A

              RET

     KYDC:    ACALL   KYCL        //调KYCL子程序

              ADD     A,#0EFH

              JNC    KYDC

              ADD    A,#11H

              MOV     R3,A

              ACALL   KYCL

              CPL    A

              INC     A

              ADD     A,R3

              JNZ     KYDC

     KYDC1:   ACALL  KYCL

              JNZ     KYDC1

              CLR     A

              MOV     R4,A

              MOV     DPTR,#KYBL

     KYDC2:   MOVC   A,@A+DPTR

              ADD     A,R3

              JZ      KYDC3

              INC     R4

              MOV     A,#0F0H

              ADD     A,R4

              JZ      KYDC

              MOV     A,R4

              SJMP    KYDC2

     KYDC3:   MOV     A,R4

              ADD     A,#0F6H

              JC      KYDC5

              MOV     R5,#4

              MOV     R0,#33H

              MOV     R1,#34H

      KY1:     CLR    C

               MOV     A,@R1

               RLC     A

               MOV    @R1,A

               MOV     A,@R0

               RLC     A

               MOV     @R0,A

               DJNZ    R5,KY1

               MOV     A,@R1

               ORL     A,R4

               MOV     @R1,A

               ACALL   CSZC

               AJMP    KYDC

      KYDC5:   MOV    A,R4

               ADD     A,#0F6H

               JZ      KYA

               DEC     A

               JZ      KYB

               DEC     A

               JZ      KYC

               DEC     A

               JZ      KYD

               DEC     A

               JZ      KYE

               AJMP    KYDC

      KYA:     MOV    33H,#1FH

      KYA1:    MOV    34H,33H

               ACALL   CSZC

               AJMP    KYDC

      KYB:     MOV    33H,#2FH

               SJMP    KYA1

      KYC:     MOV    33H,#3FH

               SJMP    KYA1

      KYD:     MOV    33H,#4FH

               SJMP    KYA1

      KYE:     MOV    33H,#5FH

               SJMP    KYA1

  键盘与P1口连接图:


  你可根据上图与程序仔细分析此就可搞懂,有不明白的地方,可提出来。



热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页