用PLC输出口显示4位数码的硬件电路及软件编程 点击:10399 | 回复:16



wyb2866255---王者之师

    
  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-04-11 00:05:26
楼主

    用PLC输出口显示4位数码的硬件电路及软件编程

对用PLC输出口进行多位数码显示,我曾以回帖与发帖形式讲了几次,是用6个输出口实现2位数字输出,输出形式是用4BCD(4个输出口)2位片选线(占2个输出口)。这次是看到这样的求助帖:“我是个学生,对PLC的控制方式比较感兴趣,在学习西门子S7-200时,遇到了问题,请师傅们多多赐教。怎么样用PLC控制数码管的显示,是不是要类似于单片机的编程用数组啊?感觉不太对呢,没有思路。请各位师傅帮忙编个简单的程序作为例子来学习。比如自动售货机的那个投币的,不投币显示为0,投一个显示为1,以此类推,请各位师傅帮忙变这么一个程序,编这个投币的程序。再次谢谢了,多谢”

按着求助者的要求,设计了4位数字显示的硬件电路,即最大显示数值为:9999

软硬件的设计构思:

1、数据输出格式选用S7-200的“SEG”段码指令(占据7个输出口),片选线4条(占4个输出口),分时轮流输出显示数据。

2PLCI1.0为投币口传感器输出信号,即每投入1元硬币,I1.0便输出一脉冲。使一字计数器加1(如MW2),PLC时时做这样处理:将计数值转换为BCD码,且按个、十、百、千位的数值,分别以段码指令SEG依次输出给对应的数码管予以显示。

3、硬件组成:4位数码管(LED-88,用于显示4位数值。48 D触发器(74L S273),用于锁存4位数据且提供数码管显示。3TLP620-44个光耦器件)用于光电隔离及电平转换用:PLC输出信号幅度=24V,显示电路电压=5V    

PLCQ0.0Q0.6为段码输出口,Q0.7Q1.0Q1.2为片选线输出口,其输出=1的上跳沿将段码存入对应的273中。

硬件电路见下图:

                        图一、4位数字输出电路图

        为什么要这样设计硬件电路,就是为了节省PLC的输出点,降低设计成本。我们知道用段码输出显示,一位数占近一个输出通道(不带小数点占7个输出口,带小数点占用8个输出口),4位数码需占用4个输出通道,所用光耦器件至少需7个,采用本方案,输出口只占11个输出口(如带小数点需12个输出口),光耦器件只用3个,硬件的成本是很低的(小于一个输出口的价钱),采用本方案的设计成本只占用4个输出通道的方案的设计成本的1/3

为了发挥大家的积极性,本PLC显示编程暂不贴出,请大家参与编程设计,参与讨论其目的就是想通过亲自参与才能真正理解编程原理与提高我们的解决实际问题的能力。谢谢大家!

 

 

 

 



楼主最近还看过



wyb2866255---王者之师

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-04-11 13:06:50
1楼
顶一下,希望大家积极参与!!!          

plc&inverter

  • 精华:4帖
  • 求助:6帖
  • 帖子:84帖 | 658回
  • 年度积分:0
  • 历史总积分:1812
  • 注册:2004年9月04日
发表于:2012-04-11 15:20:53
2楼

采用三菱PLC 2条指令就行了

LD M8000

SEGL D0 Y0 K7

最多可同时驱动8个数码管含小数点。

占用Y0-Y13 共12个输出点。选用晶体管输出的。

wyb2866255---王者之师

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-04-11 16:27:34
3楼

三菱PLC没有搞过,但只用12个输出点,输出直接接数码管,最多可同时驱动8个数码管含小数点且不需其它硬件。。。可能吗?请问:

    1、这8只数码管(共56只引脚)怎样与PLC的12个输出点输出点链接?

    2、这8只数码管怎样实现分别显示个、十、百。。。各位的数值?

wyb2866255---王者之师

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-04-12 19:05:55
4楼

借了一本三菱PLC编程手册,查看一下确实有可同时驱动8个数码管的指令,即:SEGL(功能74)。但这个显示不是简单的8个数码管的组合,而是三菱厂家专门设计的数码显示器,其内含有硬件电路,通过介绍的知:其设计构思与我原设计的2位数码显示是一样的:数据输入不是7段码,而是一位BCD码(占4的输出口),另8个输出口为片选线,可显示8位数字,而我用2个口作片选线,故显示2位数码。它的8位BCD码数据是在显示器内通过硬件(或单片机)转换为7段码,并通过对应的片选线,将其锁存在存储器里,我用的是4511译码器,将输入的BCD码转变为7段码,也通过片选信号锁存在4511里,4511输出接数码管的对应引脚使其显示。数码显示是要通过编程才能实现的,三菱将编写的程序编为一个功能(即功能74 SEGL),而我也将编出的程序变为功能的子程序,可见二者是一样的。

     

wyb2866255---王者之师

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-04-12 19:33:34
5楼

     本文的电路与三菱不同的地方就是输入数据不用BCD码,而是7段段码。S7-200有7段段码指令,三菱也有7段段码指令,即:SEGD(功能73),二者都只介绍一位7段码的显示,没有看到多位7断码的显示硬件及程序。本文的原义,就是如何根据提供的硬件电路编出程序,完成将动态的4位数据显示出来。

     还有一个简单的4位数显示电路:不用电平转换,直接用PLC输出侧的24V电源,也不用锁存器所存数据,采用动态扫描方式来显示数据,您能画出这个电路并把显示程序编写出来吗?

wyb2866255---王者之师

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-05-16 13:22:14
6楼

       本文发表至今已有一个多月了,至今仍无人编写程序,令人遗憾!先将显示程序贴出来,供大家参考:

主程序:

      SBR_0子程序:

     INT_0 中断程序:

       如有什么不对或疑问之处 可以提出来,本人给予解答。谢谢!

共控频道

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2012年5月26日
发表于:2012-05-26 09:25:36
7楼
你好,能问一下你关于PLC的问题吗?怎么样使用三菱PLC将旋转编码器的脉冲信号处理然后通过两位led数码管显示出来偏转转角度

wyb2866255---王者之师

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-05-26 13:09:56
8楼
可以,将上述程序翻译为三菱程序,将该计数器记得的编码器脉冲进行处理后,再转换为BCD码放入显示区(即程序中的MW4),就可显示数据了。

共控频道

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2012年5月26日
发表于:2012-05-26 14:24:31
9楼
你QQ多少呢加你吗?最近在做毕业设计,比较急,有些地方比较模糊。

共控频道

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2012年5月26日
发表于:2012-05-26 14:32:01
10楼
这个好像是s7系列的,有没有FX2N的程序

wyb2866255---王者之师

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-05-26 16:08:45
11楼

上面的程序是S7-200的程序,三菱的不熟悉,我没有QQ,抱歉!

dqy13983279700

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2011年9月21日
发表于:2012-09-19 17:58:38
12楼

这个是设计思路是怎么样的呢 如果我需要PLC实现四位数码管的动态显示而人眼看不出闪动的 怎么下手哦 求教

非凡2013

  • 精华:0帖
  • 求助:54帖
  • 帖子:64帖 | 350回
  • 年度积分:1
  • 历史总积分:1042
  • 注册:2013年6月17日
发表于:2013-09-05 11:15:24
13楼

楼主您好  最近才看到你的这篇文章,有个疑问想请教一下,s7-200的段码指令的运用,比如下图

我看的资料是该指令可以将字节数据转换成7段段码输出,我有疑问的地方是输出怎么样跟数码管连接?数据是怎样传输给数码管的?

wyb2866255---王者之师

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-09-05 17:25:43
14楼

  回13楼:7段显示数码管的每一段均由一发光二极管构成,7段即为7个发光二极管,如将7个发光二极管的正极接一起做公共端输出,则此数码管即为共阳式接法的数码管。如将7个发光二极管的负极接一起做公共端输出,则此数码管即为共阴式接法的数码管。即数码管有共阳与共阴二种型号之分。见下图:


  比如:用S7-200的QB0输出口接一位7段数码管,应选用共阴极数码管,PLC输出侧的L+接+24V,数码管的公共角(M)接PLC输出口侧的公共地(M),数码管的a、b、c、d、e、f、g脚分别接一只 2.2K电阻,电阻另一端分别接Q0.0、Q0.1...Q0.6(要a-Q0.0、b-Q0.1...f-Q0.6一一对应)。

  如要显示数“0”,应将低4位=0000的值,通过SEG指令,输送给QB0,此时的QB0=0011_1111,即Q0.0~Q0.5输出=1(+24V),只有Q0.6=0(0V),使数码管的a、b、c、d、e、f这6段发光二极管亮,g段不亮,显然数码管显示“0”数。

  如要显示数“5”,应将低4位=0101的值,通过SEG指令,输送给QB0,此时的QB0=0110_1101,即Q0.0、Q0.2、Q0.3、Q0.5、Q0.6输出=1(+24V),而Q0.1、Q0.4=0(0V),使数码管的a、c、d、f、g这5段发光二极管亮,而b、e段不亮,显然数码管显示“5”数。

  如果PLC输出侧使24V正极接地(公共端M),输出口输出=1为-24V,数码管应选用共阳极型,说了这些,不知你是否明白?

435504388

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 10回
  • 年度积分:0
  • 历史总积分:5
  • 注册:2013年3月31日
发表于:2014-05-13 23:06:12
15楼

你好,我有一个存储单元MW20 ,我想用七段数码管显示这个单元里的值,该怎么编程,谢谢

BB6DDF

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 9回
  • 年度积分:0
  • 历史总积分:66
  • 注册:2015年8月24日
发表于:2015-08-24 15:52:19
16楼

不错,没看太懂,能聊聊吗


热门招聘
相关主题

官方公众号

智造工程师