项目要求:按照项目的功能完成按键控制数码管的技术显示。

项目目的:学习比较指令、数学函数指令和加减计数指令和数码管的显示原理。

项目功能:数码管可以显示两位数00-99,然后可通过四个按键完成数码管的技术显示。其中四个按键功能如下:ESC按键为取消按钮,按下它之后计数器清零,回车按钮,按下它之后计数器直接装载为99。UP按键为加计数按钮,按下之后计数器加一,相应的DOWN按键为减计数按钮,按下之后计数器减一。

本期项目给大家带来的是数码管显示的实验,之前学习的项目仅仅是点亮单个的灯。这个过程是非常简单的,然我们先回顾一下。

一、知识回顾

只需要4个步骤即可完成HMI的灯的编程。

1.在HMI界面的右侧基本对象中选择一个圆形。

2.将基本对象中的圆形直接拖拽到编程的主界面中。

3.点击属性对话框,然后添加新动画后,在外观--变量处点击后面的三个点,选择想关联的变量。

4.选中变量后,在下面的对画框中选择想要HMI最终显示效果。例如上图中的设置为,当“motor”变量为0是,我们选择的圆形显示红色;当“motor”变量为1是,我们选择的圆形显示绿色。

这样就可以,我们来看一下仿真效果,见下图。刚开始仿真时,初始显示“motor”变量为0,则对应HMI画面显示为红色,待“motor”变量为1时,则对应的HMI画面显示为绿色。

所以说无论博途的PLC编程还是HMI编程均不需要编写任何代码,熟悉软件的操作和一般流程后,只需要进行相应的规划设置之后,即可以完成一定的功能。这就是PLC上手简单,不需要C语言基础的好处。当然做到一定的复杂的程序,还需要具备一定的程序思维比较好一些,好在这些都可以通过教程一步一步锻炼出来。

二、数码管原理

在嵌入式的章节我们介绍过数码管的基本原理。但是考虑到大部分玩PLC的同学和嵌入式的同学一般是两个领域的,所以说这里我们还是当大家不知道,重复介绍一下数码管的原理。或者说如何从一个圆形的灯过渡到数码管的显示。本质上数码管就是多个灯通过不同的形状排列成数字和字母的样子,再通过程序展示给用户。

LED数码显示器价格低廉、体积小、功耗低、而且可靠性好,因此得到广泛使用。它其实是张这个样子,细心的同学其实在街边的小店的广告牌中随处可见。


数码管的结构和工作原理
数码管内部是由八个LED(简称位段)组成,其中有七个条形LED和一个小圆点LED。
LED导通时,相应的线段或点发光,将这些LED排成一定图形,常用来显示数字0~9、字符A~G,还可以显示H、L、P、R、U、Y、符号“—”及小数点“.”等。通常来说,我们那个小数点用的时候比较少。故我们一般用常用的7段来显示数字和字母,故这个数码管又俗称7段数码管。

正常来说一个数码管里的一个LED有两个引脚,我们通常称之为阴极和阳极,就是可以理解为正和负。阳极通入正向的电压可以导通,因此称之为单向导电性。那么当7个LED二极管放在一起的话,我们正常应该有14个引脚。为了方便集成,让产品更小型化一些,我们可以把7个LED的阴极或者阳极分别捆在一起方便使用。这样就形成了市面上常见的LED数码管,也就是说共阴极和共阳极两种结构,即共阴极(阴极捆一起)数码管和共阳极(阳极捆一起)数码管。

千言万语汇成一句话,LED数码管本质就是多个led灯摆成了数码的形状而已。

那么写HMI程序的时候我们可以直接做成上图的样子,并按照他们的标记将A-G都标识好。方便在程序引用,且读起来也方便一些。

接下来看一下硬件电路,以接单个数码管为例,两个数码管大家自行扩展一下。

其中每一段的串联电阻R为限流电阻,要根据具体的数码管型号和电源进行选择,此处仅为示意。

三、PLC程序

1.HMI中制作数码管显示

趁热打铁,我们先来介绍一下HMI部分如何操作的。本次要做的是显示两位的数码管。那么我们照猫画虎,按照上面介绍的原理,依次制作多个矩形的图形到HMI的编程界面上。并将a-g全部标记到对应的数码管的图形上,方便编程使用。

至此,我们可以放心的编写PLC程序了,然后再到HMI画面这里按照第一节介绍的方法关联PLC程序的变量就可以完成数码管的显示了。

2.数码管显示程序编写

接下来开始回到PLC的编程界面,根据本次项目的需求需要完成按键操作控制数码管的显示。按照之前的模块化的思维,我们至少可以把这个项目的程序分解成按键子程序和数码管显示子程序。延续之前的思路,我们先把数码管子程序做了,打下一个良好的基础。

数码管的显示无非是显示数字的时候,自己要清楚对应上面的图中a-g中哪些为1,哪些为0。

通过上图可以看出,当显示数字0的时候a,b,c,,d,e,f应该置1,g应该置0。当显示数字1的时候,b,c应该置1,a,d,e,f,g应该置0。根据以上描述,我们可以通过两种方法实现编程。

方法一:

第一个指令很简单就是比较指令中的等于,当你要显示1的时候,也就是当数值等于1的时候,直接输出多路分别给到a-g,然后根据实际b,c应该置1,a,d,e,f,g应该置0,具体如图设置。然后分别当数值等于0-9时候,对应的程序都写出来。

方法二:

相对于方法一,此方法正好相反,就是在哪几个数字显示时候LED数码管对应的a段会点亮。上图中的比较指令为不等于指令,即当数字不等于1和4的时候数码管理的段a需要点亮。同学们可以依此法将其他的情况总结出来,写成自己的程序。

本例程中使用的是方法一,那么根据需求我们要分别做出来个位和十位的数码管显示程序,如下。

3.按键PLC程序编写。

在完成了数码管显示后,整个项目我们完成了一半的工作,剩下的就是按键部分的PLC程序了。

根据项目要求,我们需要完成按键控制数码管的显示和增加计数和减少计数等功能。那么这里我们就要学习的新指令就是计数器中的指令了。计数器里的指令有加计数指令,减计数指令和加减计数指令。这里我们使用的是加减计数指令,它相当于将加计数和减计数合在一起。

分别解释一下各个引脚的作用。首先介绍PV--计数终值,你想计数到多少就写多少。而CU--加指令,与它对应的是R--清零,即当你一直加的时候加到计数终值之后,QU输出端将输出置1。此时需要控制R端对计数进行清零,否则QU端将持续置1。而CD--减指令,与它对应的是LD--重新装载PV值,即当你一直减的当减到0的时候,QD输出端将输出置1。此时需要控制LD端重新装载PV值,本例为99,否则QD端将持续置1。CV--计数值为当前操作后的实时计数值。

通过上面的介绍得知了各个引脚的作用之后,我分别将四个按钮,上按钮为加计数,下按钮为减计数,取消按钮为清零按钮,确定按钮为装载按钮连接到CTUD指令的对应引脚中。

在完成了对计数的控制之后,我们需要将我们计数的数值通过数码管显示出来。那么如何将其连接起来呢?我们需要控制两个数码管的显示,也就是一个显示十位,一个显示个位。那么我们用到了PLC的数学函数指令的DIV和MOD。他们分别为除法指令和取余指令,这里跟C语言单片机的编程是一样的操作。通过这两个指令,我们分别可以得到当前计数值的十位和计数值的个位数值。那么,我们就可以直接调用之前做好的数码管显示子程序直接进行显示操作了。

四、PLC和HMI联动仿真效果

经过上面的仿真效果,大家可以看到,ESC按键为取消按钮,按下它之后计数器清零,回车按钮,按下它之后计数器直接装载为99。UP按键为加计数按钮,按下之后计数器加一,相应的DOWN按键为减计数按钮,按下之后计数器减一。功能来说非常的简单,但是整个开发过程的程序思维大家需要好好学习,建立起自己的项目开发思维,为以后的其他项目打下基础。

 程序使用说明:下载压缩包后,直接打开程序按照如下步骤操作,按照下面的截图,双击打开main主程序,然后鼠标拖拽主程序下方任意的子程序(绿的那个),直接拖到主程序的程序段中。两个子程序只能拖拽一个,然后再点击仿真,从新下载程序,即可生效。

后续的步骤就跟之前的项目一样了:

分别在PLC程序和HMI程序上右键点击启动仿真,即可在弹出的仿真界面点击按钮查看仿真效果。

仿真程序下载请点击下方链接:

https://download.csdn.net/download/m0_57441179/87352687

零基础无实物一步一步学PLCS7-1200仿真(八)-按键控制数码管显示相关推荐

  1. 零基础无实物一步一步学PLCS7-1200仿真(三)-电动机正反转控制(互锁)

    在学习完电动机的启保停控制后,我们今天来学习电气控制里面进阶的正反转控制,也就是大名鼎鼎的互锁电路.首先需要了解电动机可以实现电动机正反转的工作原理. 一.硬件电路 用S7-1200 PLC控制一台三 ...

  2. 零基础无实物一步一步学PLCS7-1200仿真(五)-四路简易抢答器控制

    本次项目为四路抢答器,通过本次项目了解项目开发流程,未来扩展多路抢答器只需要对程序进行微调即可. 项目要求: 1.有4组进行抢答,抢答按钮为SB1-SB4,对应4个抢答指示灯为L1-L4. 2.主持人 ...

  3. 零基础无实物一步一步学PLCS7-1200仿真(六)-两个电动机顺启逆停

    本次项目为两个电机定时启动且有顺序要求,目的旨在学习PLC的定时器的指令,学习时间继电器对应的PLC里面的指令是如何使用的. 项目要求: 1.电机启动按钮,M1电机立即启动. 2.按钮按下后,定时器开 ...

  4. python爬虫教程入门-零基础入门Python爬虫不知道怎么学?这是入门的完整教程

    原标题:零基础入门Python爬虫不知道怎么学?这是入门的完整教程 这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑 ...

  5. python零基础入门教程-零基础入门Python爬虫不知道怎么学?这是入门的完整教程...

    原标题:零基础入门Python爬虫不知道怎么学?这是入门的完整教程 这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑 ...

  6. 零基础大学才学计算机专业,零基础90后大学毕业待业学计算机

    零基础90后大学毕业待业学计算机 零基础90后大学毕业待业学计算机?四川要学习计算机的话,显然是来成都比较好,这里是大城市,发展也不错,以后就业机会也多. 一些对学历有要求的工作岗位,很多是技术性差的 ...

  7. creator 跳跃弧线_(转)CocosCreator零基础制作游戏《极限跳跃》四、添加游戏主场景控制脚本...

    CocosCreator零基础制作游戏<极限跳跃>四.添加游戏主场景控制脚本 前面简单的实现了主界面的UI设置,现在我们开始制作游戏的控制脚本. 在资源管理器的Script文件夹中,点击右 ...

  8. 日语零基础入门至初级“三步走”

    被日本动漫.日剧深深迷住,但看见似熟非熟的汉字假名却无从下手?!没关系,沪江网校推出日语入门系列班级,要想日语零基础入门你只需要"三步走"!首先,我们来了解看看什么是"三 ...

  9. 成为 Google 认证机器学习工程师,零基础也只需要 2 步!

    滴滴出行今年 3 月在硅谷成立实验室,专门研究以机器学习为核心的"自动驾驶"技术:Google.Uber 在自动驾驶.机器学习等领域内进行激烈的人才争夺:工信部也曾透露,中国人工智 ...

最新文章

  1. 不能从农行服务器获取配置文件,#新手入门#请问,农行网银用的好好的突然出现这个就不能用了怎么解决呢?谢谢...
  2. 使用 SQL Server 的 uniqueidentifier 字段类型
  3. 计算机教室网络安全应急预案,北京科技大学计算机与通信工程学院-计算机与通信工程学院实验室安全应急预案...
  4. linux centos 使用 alpine 编译的二进制文件 报错 /lib/ld-musl-x86_64.so.1: bad ELF interpreter 解决方法
  5. 【错误记录】Kotlin 编译报错 ( Type mismatch: inferred type is String? but String was expected )
  6. POJ1426-Find The Multiple-深度优先搜索BFS
  7. Android 使用SwipeBackLayout实现滑动返回上一级页面——实战来袭
  8. 有赞实时任务优化:Flink Checkpoint 异常解析与应用实践
  9. 实战-Android开机时间优化
  10. 高中计算机网络技术应用教案,高中信息技术选修3《网络技术应用》教案.doc
  11. 碳膜、金属膜、金属氧化膜电阻区别
  12. Ubuntu20安装RTL8811/RTL8812无线网卡驱动
  13. 爬虫--Scrapy之Downloader Middleware
  14. ★40个经典的社交心理学现象
  15. 支付宝开发平台之第三方授权登录与获取用户信息
  16. 毛刺现象 java_硬件毛刺
  17. 崔羚:乳品行业后道包装及物流解决方案
  18. pr中导出视频的应用,快速制作竖版短视频
  19. 创建一个Rectangle类。 添加两个属性width、height,分别表示宽度和高度,添加计算矩形的周长和面积的方法。测试输出一个矩形的周长和面积。
  20. 80c51流水灯程序汇编语言,单片机闪烁灯流水灯汇编代码大全

热门文章

  1. [TCP/IP] Linux 搭建服务器局域网
  2. React 脚手架安装
  3. 记录一次华为特战队的机试题
  4. 线性分类器:感知器/SVM
  5. matlab车牌匹配时读取,基于Matlab的车牌识别(完整版)详解.doc
  6. ESP32( IDF平台)+MAX30102 配合Pyqt上位机实现PPG波形显示与心率计算
  7. php微信分享带缩略图,静态页面实现微信分享带缩略图、标题和描述
  8. iOS小技能:解决TableVIew刷新数据带来的界面跳动问题
  9. php mod rewrite.so,开启Apache mod_rewrite模块完全解答
  10. 平面几何:两点确定一条直线