用PLC输出口显示4位数码的硬件电路及软件编程
对用PLC输出口进行多位数码显示,我曾以回帖与发帖形式讲了几次,是用6个输出口实现2位数字输出,输出形式是用4位BCD码(占4个输出口),2位片选线(占2个输出口)。这次是看到这样的求助帖:“我是个学生,对PLC的控制方式比较感兴趣,在学习西门子S7-200时,遇到了问题,请师傅们多多赐教。怎么样用PLC控制数码管的显示,是不是要类似于单片机的编程用数组啊?感觉不太对呢,没有思路。请各位师傅帮忙编个简单的程序作为例子来学习。比如自动售货机的那个投币的,不投币显示为0,投一个显示为1,以此类推,请各位师傅帮忙变这么一个程序,编这个投币的程序。再次谢谢了,多谢”
按着求助者的要求,设计了4位数字显示的硬件电路,即最大显示数值为:9999。
软硬件的设计构思:
1、数据输出格式选用S7-200的“SEG”段码指令(占据7个输出口),片选线4条(占4个输出口),分时轮流输出显示数据。
2、PLC的I1.0为投币口传感器输出信号,即每投入1元硬币,I1.0便输出一脉冲。使一字计数器加1(如MW2),PLC时时做这样处理:将计数值转换为BCD码,且按个、十、百、千位的数值,分别以段码指令SEG依次输出给对应的数码管予以显示。
3、硬件组成:4位数码管(LED-88),用于显示4位数值。4片8 D触发器(
PLC的Q0.0~Q0.6为段码输出口,Q0.7与Q1.0~Q1.2为片选线输出口,其输出=1的上跳沿将段码存入对应的273中。
硬件电路见下图:
图一、4位数字输出电路图
为什么要这样设计硬件电路,就是为了节省PLC的输出点,降低设计成本。我们知道用段码输出显示,一位数占近一个输出通道(不带小数点占7个输出口,带小数点占用8个输出口),4位数码需占用4个输出通道,所用光耦器件至少需7个,采用本方案,输出口只占11个输出口(如带小数点需12个输出口),光耦器件只用3个,硬件的成本是很低的(小于一个输出口的价钱),采用本方案的设计成本只占用4个输出通道的方案的设计成本的1/3。
为了发挥大家的积极性,本PLC显示编程暂不贴出,请大家参与编程设计,参与讨论。其目的就是想通过亲自参与才能真正理解编程原理与提高我们的解决实际问题的能力。谢谢大家!
楼主最近还看过
借了一本三菱PLC编程手册,查看一下确实有可同时驱动8个数码管的指令,即:SEGL(功能74)。但这个显示不是简单的8个数码管的组合,而是三菱厂家专门设计的数码显示器,其内含有硬件电路,通过介绍的知:其设计构思与我原设计的2位数码显示是一样的:数据输入不是7段码,而是一位BCD码(占4的输出口),另8个输出口为片选线,可显示8位数字,而我用2个口作片选线,故显示2位数码。它的8位BCD码数据是在显示器内通过硬件(或单片机)转换为7段码,并通过对应的片选线,将其锁存在存储器里,我用的是4511译码器,将输入的BCD码转变为7段码,也通过片选信号锁存在4511里,4511输出接数码管的对应引脚使其显示。数码显示是要通过编程才能实现的,三菱将编写的程序编为一个功能(即功能74 SEGL),而我也将编出的程序变为功能的子程序,可见二者是一样的。
回复本条
回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,数码管应选用共阳极型,说了这些,不知你是否明白?
回复本条