零基础无实物一步一步学PLCS7-1200仿真(九)-八位流水灯/跑马灯

项目要求:按键配合实现8位LED的流水灯/跑马灯功能。

项目目的:学习移位和循环的指令。

项目功能:设置启动、停止按钮和8个圆形的LED灯。按下启动按钮后,8个LED灯按照流水灯或者跑马灯的规则循环显示。按下停止按钮后,显示停止。循环显示的LED灯可以是单个流水灯,也可以是多位跑马灯。具体为:要求在第0.5S亮一个灯,第1S亮第二个灯,第1.5S亮第三个灯,依此类推,4S后进行循环。

本期项目给大家带来的是8位流水灯/跑马灯的功能的实验,这个实验室学单片机入门必做的实验。换到PLC里面我们也需要学习,主要是通过此项目实验了解位和循环的指令,对数据的类型和位的操作做一个深层次的理解。主要是针对之前说的PLC的学习可以没有C语言的基础,所以我们就没了解过C语言中的数据类型。其实计算机中的数据类型是通用的,一通百通,无论学习什么控制器CPU都需要跟数据类型打交道。所以学习好数据类型是摆脱新手的关键一步。

一、硬件电路

通常来说无论什么控制器CPU,学习的第一步都是点灯。互联网上好多点灯大师最终都成为了大神级人物。点灯是学习的入门必备,点一个灯和点多个灯效果使一样的。但是多个灯的显示效果是可以玩出各种花样的,临近过年大家也可以看见自家和邻居马路上摆出来的各式各样的彩灯。它们的显示效果是多样的,我们本次项目的要求是流水灯,一个灯点亮过后,下一个灯接力点亮,然后如此往复循环下去,形成流水或者跑马灯的效果。其实跑马灯的效果和流水灯的效果是不同的,具体就不在这里说明了。我们学习的目的是点灯和指令,不纠结流水灯和跑马灯具体差别在哪里。

话不多说先上硬件原理图:

零基础无实物一步一步学PLCS7-1200仿真(九)-八位流水灯/跑马灯_第1张图片

 电路非常简单,输入两个按键,输出控制8个LED灯。

二、PLC程序

通过对任务分析,我们可以用之前所学的定时器指定完成本项目。那么除了这个方法,我们可以通过学习今天的位和循环指令用另外一种方法去完成本项目。

1.方法一:定时器方法

零基础无实物一步一步学PLCS7-1200仿真(九)-八位流水灯/跑马灯_第2张图片

 上述是一个简单的定时器功能,通过定时器,我们可以完成0-4s的一个循环。之后就是在这循环的4s中做文章。

零基础无实物一步一步学PLCS7-1200仿真(九)-八位流水灯/跑马灯_第3张图片

之后的逻辑也很简单,利用比较指令,一个是大于,另一个是小于等于。对这循环的4s进行分段,平均分给8个LED灯,做成流水灯或跑马灯的效果。你可以根据你想的任意修改定时间,控制自己的LED灯,让他们进行随心所欲的点亮。

2.方法二:循环移位法

零基础无实物一步一步学PLCS7-1200仿真(九)-八位流水灯/跑马灯_第4张图片

这里我们用到这个指令:循环右移的方法。IN---移位前的数据,OUT--移位后的数据,N--每次移位多少位。

零基础无实物一步一步学PLCS7-1200仿真(九)-八位流水灯/跑马灯_第5张图片

 上图就是博途帮助系统中对循环右移的解释。具体的主程序如下:

零基础无实物一步一步学PLCS7-1200仿真(九)-八位流水灯/跑马灯_第6张图片

 前面通过定时器做出0.5s的循环,然后使用循环位移的指令,利用定时的延时每隔0.5s循环右移一位即可。这种方法大大简化了编程,尤其是当流水灯的数量越多的时候简化的程序量越大。

三、PLC和HMI联动仿真效果

零基础无实物一步一步学PLCS7-1200仿真(九)-八位流水灯/跑马灯_第7张图片

 上图为定时器法循环的流水灯。

零基础无实物一步一步学PLCS7-1200仿真(九)-八位流水灯/跑马灯_第8张图片

 上图为循环位移法的流水灯,为了与定时器进行区别,采用了两个灯点亮循环移位的效果。

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

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

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

 

 

仿真程序下载请点击下方链接:
https://download.csdn.net/download/m0_57441179/87353088

你可能感兴趣的:(PLC自学教程,单片机,嵌入式硬件,mcu)