基于PLC的七段码显示数码管控制

时间:2022-09-28 04:22:23

基于PLC的七段码显示数码管控制

【摘要】主要介绍了S7-200型PLC传输指令和移位指令的特点和使用方法,并以七段码显示为例,给出了应用不同类型的指令进行显示和编程的方法。

【关键词】传送指令;移位指令;程序设计;七段显示译码指令

生活中,经常能见到电梯楼层显示、抢答器、交通灯剩余时间数码显示以及生产线上的显示系统,可以显示数字或字母,本文利用S7-200系列PLC的指令实现对七段显示数码管的控制。在西门子S7-200系列PLC中,有多种方法可以实现七段码显示,其中比较常用的有基本指令、传送指令和七段显示译码指令SEG,笔者结合自己的工作经验,对几种控制七段码显示的指令进行比较,供大家学习和参考。

1.传输指令和七段码显示译码指令

1.1 传输指令

传送指令用于在各个编程元件之间进行数据传送[1]。西门子S7-200系列PLC的传输指令包括单个传送指令和块传送指令。单个传送指令助记符为MOV,当传送的数据长度不同时,助记符也不尽相同。单个传送指令根据传送数据长度可以分为:字节传送指令MOVB,字传送指令MOVW,双字传送指令MOVDW,实数传送指令MOVR,利用传送指令可以在不改变原数据值的情况下将IN中的数据传送到OUT。块传送指令用来进行一次传送多个数据。

单个传送指令的应用如图1所示

图1 传送指令的应用

在传送指令中,EN端为允许输入端;ENO端为允许输出端。当输入I0.1为“1”时,传送指令将MB0中的字节传送给MB1,如果指令正确执行,则输出Q4.0为“1”,否则,如果输入I0.0为“0”,则数据不传送。一旦传送成功,输出Q4.0将一直保持为1,直到将Q4.0复位。在为变量赋初始值时,为了保证传送只执行一次,一般MOV方块指令和边缘触发指令联合使用。

1.2 移位指令

移位指令是使位组合的字节数据、字数据或双字数据向指定方向移位的指令[2]。根据移位的数据长度可分为字节型移位、字型移位、双字型移位。还可以进行循环移位。数据长度不同,移位方向不同,其功能指令也不相同。例如:将字节型数据向左移位,功能指令为SHL_B,将字型数据向右移位,功能指令为SHR_W,将双字型数据循环左移,功能指令为ROL_DW。表1列出了左移指令,右移指令与左移指令相同,把梯形图功能框中的字母L变成R,就全部变成了右移指令,指令功能将对应的左移改成右移。

1.3 七段显示译码指令

图2 七段码显示指令

在S7-200系列PLC中,有一条指令SEG可以直接驱动七段显示数码管[3],如图2所示,当把PLC的输出端用一个字节的前七个端口与数码管的7个段(a、b、c、d、e、f、g)对应接好,当SEG指令的允许输入端EN有效时,将字节型输入数据IN的低四位对应的数据输出到OUT指定的字节单元,这时IN处 的数据就可以通过数码管显示出来。在梯形图中,七段数码指令以功能框形式编程,语句表中的指令格式为SEG IN,OUT。

2.七段显示数码管系统分析

电梯上楼时七段显示数码管的顺序显示,十字路口红绿灯的倒计时七段显示数码管的逆序显示,以及抢答器的随机显示,都是七段码的控制要求。

2.1 控制系统的分析

本文利用不同指令使七段显示数码管按0~9~A~F的顺序显示,其他显示方法与这些方法大体相同。七段显示数码管a、b、c、d、e、f、g的位置关系如图所示,在PLC电路图中a~g分别与LED0~LED6对应。

由图3可知,欲使七段显示数码管显示不同的数字或字母,只需将a、b、c、d、e、f、g各段按照不同的规律显示即可。例如:显示数字“1”,需要将“b、c”两端置“1”,其余各段置“0”。数字0~9和字母A~F与七段显示码的对应关系如表2所示。

图3 数码管的七段标注

输出Q0.0~Q0.6代表一个字节的后七位,其第一位为0。在S7-200系列PLC中,一个字节代表八个位,当这八个位置按0或1显示不同的组合时时,代表了二进制中的不同数值,通过转换,可以转换为10进制数字和16进制数字,如上表所示。当用传送指令把10进制或16进制数字传送给输出地址Q时,相当于传输给了Q0.0~Q0.6不同的数值,传输数值“0”,对应的LED灯不亮,传输数值“1”,对应的LED灯亮,通过上表的组合,便能显示出不同的数字或字母。例如显示数字0,需要将10进制数“63”或16进制数“3F”传输给Q0.0~Q0.6。若要显示字母A,需要将10进制数“119”或16进制数“77”传输给Q0.0~Q0.6。以此类推。

2.2 PLC的输入输出地址分配

确定系统I/O地址分配如表3所示。

表3 七段显示数码管符号及变量表

PLC地址 数据类型 变量名 地址分类

I0.0 BOOL 起动按钮 输入

I0.1 BOOL 停止按钮 输入

Q0.0 BOOL a(LED0) 输出

Q0.1 BOOL b(LED1) 输出

Q0.2 BOOL c(LED2) 输出

Q0.3 BOOL d(LED3) 输出

Q0.4 BOOL e(LED4) 输出

Q0.5 BOOL f(LED5) 输出

Q0.6 BOOL g(LED6) 输出

2.3 PLC的外部接线图

根据上表,可以画出PLC与外部元件的接线图,如图4所示。

图4 PLC外部接线图

2.4 系统要求

利用PLC编程实现以下功能要求:

按下起动按钮SB1,系统按照0、1、2、4、5、6、7、8、9、A、B、C、D、E、F的顺序循环显示。

3.程序设计方法

3.1 利用传输指令实现

图5 传输指令实现七段码显示梯形图

图6 利用SEG指令实现七段码显示梯形图

利用循环移位指令和传输指令可以实现以上的控制要求。首先利用起动按钮起动辅助继电器M0.0,利用定时器设定一个脉冲发生电路,并使其周期为2s,占空比50%,再利用循环移位指令使其每次向左移动一位,每次移动的过程中,由传送指令向输出地址传送不同的数据,实现数字和字母的循环显示。例如:辅助继电器M1.0数值为1时,向QB0中输入10进制数字63或16进制数字3F,循环移位指令移动至M1.7时,应该向QB0中传输代表数字8的10进制数127,M2.0闭合时,传输数字9,以此类推,M2.7闭合时,传送字母F。梯形图如图5所示。

3.2 利用七段码译码指令实现

利用译码指令实现可以更简单、方便的实现以上控制。梯形图如图6所示。

4.结语

在PLC的编程中,用基本指令和辅助继电器也能够实现七段数码管显示控制。不同的编程方法可以达到相同的效果。利用传输指令来实现可以使读者更好的理解位、字节、字、双字的区别与联系。对于理解西门子编程软件中的数据类型以及寻址范围有很大的帮助。而对于利用SEG功能指令实现七段码显示,则显得程序简单、条理清晰,逻辑关系明确。

因此,在利用PLC编程的过程中,我们如果能够尝试不同的方法实现同一种功能,不仅能提高自己的编程水平,还能够更好的理解功能指令的强大用途。既充实了自己的知识,又能达到事半功倍的效果。

参考文献

[1]陈海霞,柴瑞娟,任庆海,孙承志编著.西门子S7-300/400PLC编程技术及工程应用[M].机械工业出版社.

[2]郭继红主编.电气控制与PLC技术实例教程[M].机械工业出版社.

[3]陈丽主编.PLC控制系统编程与实现[M].中国铁道出版社.

作者简介:赵金山(1972―),男,山西翼城人,硕士,讲师,现供职于临汾职业技术学院,主要从事电气自动化,机电一体化方面的研究。

上一篇:线路检修及配电运行中设备的检修与维护 下一篇:云计算数据中心的网络通讯技术