基于PLC的LED数码管动态扫描数据显示设计浅析
扫描二维码
随时随地手机看文章
PLC的数据显示功能一直是困扰PLC使用的难题。在PLC的应用中,经常要监测一些重要数据,但PLC的数据显示通常是使用外部显示设备,如显示屏或触摸屏,而这些显示设备的价格一般比较昂贵,对一些小型系统来说更浪费。因此,如何显示PLC的数据,并尽可能做到高效率、高稳定性、抗干扰能力强、硬件投资少,是许多设计中需要考虑的问题。笔者使用的西门子S7-200PLC中有专门的指令控制LED数码管显示,SEGIN,OUT指令就是将IN端输入字节的低4位确定的16进制数自动转换为相对应的7段LED数码管各段的代码,并送到输出字节OUT端显示。若采用静态LED数码显示,PLC显示一位十进制数据需要7个输出点予以控制,如果要显示n位数据,则需要7n个输出点。所以,使用这种方式对于显示数据的位数较多时,需要大量的输出点,而PLC的价格是以输入输出点数来计算的,这直接导致硬件成本的上升,鉴于此种原因,寻找一种廉价的显示技术就显得尤为必要。提出借鉴单片机的LED数码管动态扫捕显示原理,结合PLC周期性扫捕的特点,采用PLC直接输出数字量驱动数码管,将PLC开关量输出分为两部分,一部分用作数据输出,另一部分用作控制数码管公共端信号的输出。利用人眼的余辉效应,循环点亮每个数码管,本方法操作简单、成本低廉。
1 设计实现
所谓动态扫描就是利用PLC周期性扫描的特点,在编程时要做到每个周期只有一个数码管能够形成通电回路,从而得电点亮,因为一个扫描周期的时间过短,只有几十ms,所以人眼感觉每个数码管都是均匀通电亮着的,同时没有拖尾现象。
1.1 硬件设计
设计方法的硬件电路实现是一个起动按钮SB1和一个停止按钮SB2,两个数码管的a、b、c、d、e、f、g段分别连在一起,再与PLC的输出端Q0.0~Q0.7通过限流电阻连接,两个数码管的公共端com1和com2分别通过三极管由PLC的输出端Q1.0和Q1.1控制,其接线原理如图1所示。
图1 双数码管扫描显示PLC驱动电路
由PLC输出端Q1.0和Q1.1的高低电平控制处于开关工作状态的三极管,使数码管com1和com2端循环与PLC公共端M导通输出,分时选中不同的数码管,由PLC输出端Q0.0~Q0.7输出相应的数据再根据公共端信号使相应的数码管a、b、c、d、e、f、g段显示。通过软件编程可实现用一组起停按钮控制两组数码管显示相应的数据。
1.2 软件设计
通过两个软件设计实现同一硬件电路不同功能的实例来阐述设汁的软件实现。
1.2.1 软件设计实例1
此程序实现0~99s反复计数功能,按动SB1起动计数,按动SB2使计数停在计数所停位置,再按动启动按钮重新从0开始计数,计数到99后重新从0开始计数。该程序梯形图如图2所示。
图2 软件设计实例1的梯形图程序
以上软件对特殊存储器位SM0.5产生的1s的时钟脉冲计数,使用PLC数据运算、传送、转换的功能指令传送、处理变化的计数数据,然后用段译码SEG指令驱动7段数码管,由两个定时器分别产生周期为200ms、相互反相的时钟脉冲控制显示变化的计数数据。
1.2.2软件设计实例2
此程序实现50s倒计时功能,按动SB1起动计时,按动SB2停止计时,同时数码管熄灭,再按动启动按钮重新50s倒计时,计时到0s时,数码管自动熄灭。
2 结束语
设计主要是将一个两位数分成两组数据分别在十位和个位数码管上显示,程序采用循环控制方式,则一个扫描周期显示一组数据,即两组数据循环显示。假设程序扫描周期为100ms,定时器定时100ms,那么每组数据的更新周期为100×2=200ms,这样的显示频率足可以达到一般的工业控制要求,完全可以用作实时显示。同样,若显示多组数据,其数据线接法是一样的,只需增加控制数码管公共端信号的PLC输出点,PLC输出点数为7+n,n为数码管个数;软件稍加改动即可。笔者介绍的方法软、硬件设计均在实验室调试成功,完全满足设计要求,并且降低了硬件成本,取得了较好的效果。