119、用PLC控制数码管显示数字
设计用PLC控制数码管循环显示数字0-9,控制要求如下
(1)按下启动按钮后,数码管从0开始显示,1s后显示1,再过1s后显示2,…,显示9,1s后再重新屏示0.如此循环。
(2)当按下停止孩钮后,数码管烟灭。
7段数码营实际上是由7只发光二极管组成,要显示0-9数字,首先确定数字与7只发光管(即PC的输出控制点)的关系。如要易示数字0,则需要a、b、c、d、e
f管亮,则对应的PLC的需驱动的输出点为Q0.0,Q0.1,Q0.2,Q0.3,Q0.4,Q0.5。
I/O分配如下: 启动按钮SB1,I0.0;停止按钮 SB1,I0.1;Q0.0—Q0.6,数码管a—g。
控制程序如图所示:
聊一聊PLC中的7段数码管指令
正文:
7段数码管也或者叫7段码显示器,它们的共性就是存在7个显示段,在西门子200PLC中,对这7个显示段的顺序做了如下的规定,请看图:
7段数码管显示的显示管编号
这个图片大家看到了对数码管显示的编号,进一步说就是这7个数码管要被7个DO点分别激活,然后才能组合成一个数字显示出来,所以如果真有使用的朋友在接线的时候需要注意引脚的对应关系!
上边是对数码管的硬件进行了一点简述,下边来看一下7段码指令,也就是SEG指令:
SEG指令的梯形图表示符号
SEG指令也是很简单的一个指令,就是将IN处的字节中的值生成一个点阵并存入到OUT指定的变量中。这里要求IN/OUT的格式为字节,当然像AC0这样的累加器可以自适应。至于OUT处生成的点阵,接下来通过触摸屏演示时我们可以看看!还有一点需要说明的是西门子200PLC中的SEG指令,输出的段码点阵的组合,只能显示0-9-A-F这样的16进制字符!
到这里,数码管的引脚和7段码指令都介绍完了,我并没有7段码显示器的硬件,但是我又触摸屏的软件,可以把电脑模拟成触摸屏,因此我将在触摸屏上绘制出来一个7段码!
一直关注和观看我文章的小伙伴,应该记得我前边多次说过台达的触摸屏软件DOPsoft是可以把电脑模拟成触摸屏和西门子200PLC的硬件在线模拟的。所以,今天我还是在这个软件上做画面!
先来看一下画面的变量关联:
台达触摸屏软件上组态元素的关联变量
7段数码管的图形就是M0.0-M0.6这样的7个点,在实际工程中应该使用的是Q点,比如Q0.0-Q0.7。下边的一排指示灯是M0.0到M0.7每个位的状态指示灯。
需要特别说明的是VW0这个数值输入框:
台达数值输入框的变量中没有字节类型
从这个图片上可以看到,我用这个数值输入框去关联西门子200PLC中的变量时候,台达这里只提供了VW/VD这样的字或者双字类型的选项,而没有字节类型的。上边我说7段码指令SEG的输入是要求输入字节型变量,所以问题就来了,我想在触摸屏上输入一个值最好是能关联到字节型变量,比如VB0,可是偏偏台达的软件中没有VB0这样的选项,我只能选VW0或者VD0,那么想要继续使用台达的触摸屏就只能在程序中像办法,把VW0和VB0建立一个联系!
来看一下我最终的程序吧:
在台达触摸屏上演示7段码指令的最终程序
这个图片就是最终的程序,因为触摸屏上只能输入VW0,而我下边的程序是使用VB0去连接SEG指令,所以就要把VW0中的高低字节进行一个交换。(结合我昨天的文章,向VW0中写1的时候,其实是向VB1中写1,V1.0=1,所以这里如果不使用SWAP指令的话,那么SEG的输入处应该写VB1,这样程序就很简单了!)
再来看一下这个程序运行时对应的画面动态图:
7段数码管在触摸屏画面上的运行动态图
从这个动态图可以看到,当值为0的时候,M0.0-M0.5这6个点全部输出了,只有M0.6也就是最中间的那根横线没有接通,这样图形就围合成一个0的图形。
当输入值1时,图形显示为1,但是数值输入框那里还是显示的VW0的值,它很快就又变为256,这是为何?? --原因是我输入1是向VW0写入1,它本应该显示1的,而且这里的写入1,其实是向VB1中写入的1。因为最初VB1=VB0=0,当想VW0中写入1,即VB1=1,此时VB=0,这样VB1和VB0就不相等了,就触发上升沿,让SWAP指令执行了一次。SWAP执行一次后,VB1=0,VB0=1,这样VW0=256了。--如果这段话,看的不明白,就要结合昨天文章中的表格,多看两遍,应该就可以明白了!
其实到这里该讲述的基本都差不多了,但是为了让大家更清楚,还是来看一下我上边说的直接用VB1去关联SEG指令的情况,程序如下:
利用VB1去连接SEG指令的最终程序
这个程序就非常简单了,这是建立在对VW0,VB0,VB1的关系非常了解的基础上的。如果,这里的程序不注释,那么其他人看程序和画面的时候就会有点疑惑,画面上是VW0,而程序中是VB1,所以这种情况最好是备注一下。
来看一下这个简单程序的运行画面:
使用VB1连接SEG指令时运行画面
这个画面的显示就是一对一了,非常直观了,证明利用VB1去关联SEG指令是一个更好的方法。
文章到此就结束了,通过今天文章的两个程序和在画面上的显示,我想朋友们应该对SWAP指令和SEG指令有了更深入的认识,同时也说明了基础知识的重要性。实现同样的功能,有的程序就更简洁,而有的就稍显复杂,且理解起来也有点费神,再简单的指令也会造成一些难于理解的情形,所以大家还是需要在编程的时候多思考,同时还应该重视每个指令和每个基础知识的研究和记忆!
希望朋友们能喜欢,如果有问题请关注+留言,谢谢!
相关问答
数码管只有ABCD四个接口怎么编程显示数字呢?
只有四个输入的数码管是1248数码管,意思就是说,1脚输入时显示1,2脚输入时显示2,1脚2脚有输入时显示3,3脚输入时显示4,1脚3脚输入时显示5,编程时只要让PLC...
三菱plc要在七段数码管显示10应该怎么写程序?
比如说把把10传送到D0中,再用译码指令把D0中数据译码就可以,而且还要注意七段数码管的接线正确,希望能对你有所帮助。比如说把把10传送到D0中,再用译码指令把...
plc数码管h怎么接?
你好,关于PLC数码管H的接法,通常有多种方式,具体取决于所使用的PLC品牌和型号。一种常见的接法是通过PLC的输出信号连接到数码管的对应引脚,然后在PLC程序中...
用plc控制一个七段数码管,分别按下四个按钮,数码管分别显示1234,但是其PLC输出口不能是七个?
完全可以用输出三位来实现,但是你要用一种芯片74LS47驱动七段数码管,这样PLC只要对应输出001,010,011,100,七段数码管就会显示1,2,3,4,而不需要去单独...
PLC与四位一体数码管联接(共阴),用CD4511BE驱动,但是一直显...
你的CD4511与plc输出端口串联多大的电阻?有用(0)回复展开查看全部4条讨论精品应用推荐新浪微博天气通淘宝特价版UC浏览器相关问题为啥现在13寸ma...
怎么把plc中计时器的时间用数码管动态显示出来?
将十进制的数值转换为二进制的输出点,就可以了,例如三菱中,一个C10的计数器,如{BCDC10K4Y0}通过BCD码将十进制数(C10)转成二进制的数(Y0到Y15),把Y0到Y15接...
plc拨动开关怎么调?
调节PLC拨动开关的方法通常有以下几种:1.软件调节:通过PLC编程软件进行参数设置来调节开关的功能。首先确保PLC与电脑连接正常,然后使用编程软件打开PLC程序...
松下FP1系列PLC编程软件-ZOL问答
数码相机松下松下FP1GK3人讨论6379次围观关注问题写回答讨论回答(3)12344fasdf松下电工的官方网站,上有,免费下载的!izhenfuleyou!不注册免费...
plc自动售货机程序?
用的什么PLC啊,西门子的S7-200可以用SEG指令直接把要输出的数字转化成7段显示编码,你只要一一映射到相应输出点,再把输出点和相应数码管相连就行用的什么PLC...
plc中RLO什么意思?
在PLC中,RLO=“逻辑运算结果”,在二进制逻辑运算中用作暂时存储位。RLO即resultoflogicoperation状态字的第一位称为逻辑运算结果,该位用来存储执行位逻...
扫一扫微信交流