课程中心
HOME
课程中心
正文内容
plc编程seg的功能 聊一聊PLC中的7段数码管指令
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

聊一聊PLC中的7段数码管指令

引言: 昨天的文章讲了SWAP字节交换指令的作用和使用注意,但是没有讲清楚什么时候要用SWAP指令。今天结合7段码指令的讲解,会让大家对SWAP的使用条件或者说使用环境有一个更直观的认识。

正文:

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指令有了更深入的认识,同时也说明了基础知识的重要性。实现同样的功能,有的程序就更简洁,而有的就稍显复杂,且理解起来也有点费神,再简单的指令也会造成一些难于理解的情形,所以大家还是需要在编程的时候多思考,同时还应该重视每个指令和每个基础知识的研究和记忆!

希望朋友们能喜欢,如果有问题请关注+留言,谢谢!

SEG指令应用 #PLC

SEG指令应用。

大家好,这一节课再看一下之前有一个学生问过数码管指令怎么去做?数码管指令做的时候可以通过指令里面的SEG去做,就是写数字1、2、3、4这些。写数字1、2、3、4的时候可以通过SEG,SEG只是针对数码管指令,比如在这地方写上一个VB0,最终显示到QB里面。

这个是什么意思?既然是数码管,数码管就显示的是数字1、2、3、4、5、6、7、8。数字1、2、3、4、5、6、7、8是怎么去显示的?可以去给你们看一下。

比如现在要显示一个数字1,它是这样去写的;数字2是这样写的;数字3是这样写的。七段数码管就是一个日字的形状,七段这地方还有个点,七段就是这个地方是Q.0,这一段是Q.1,这一段是Q.2,Q.3,Q.4,Q.5,Q.6,还有这一个点是Q.7。

如果要显示数字1的时候,数字1的时候是Q1.1和0.2的得电;Q.1和Q.2的得电;Q.0和Q.2的得电。这个两个位得念,Q.2写错了。当显示数字2的时候可以看一下,这个是0,这个是1,2,这是3,这是4,这是5,这是6,它得电。说到3的时候就是0,1、2、3、4、5、6,它得的。

所以通过SEG指令,如果想让它显示数字2,就直接输入一个数字2,显示出来以后就是这个,可以来验证一下看看对不对。把这一条指令下载进去,下载是监控,现在把状态表打开,状态表里面可以来看一下,监控一下QB里面的数,监控QB里面的数,QB里面是63,把它转换成2进制,可以看一下,现在VP0里面是几?VP0里面的数字是0,来看一下0是哪一个0,它是不是这样写的?

所以是0辆、1辆、2辆、3辆、4辆、5辆,就是0,1、2、3、4、5都得电。在状态表可以看一下,0、1、2、3、4、5是不是都得电?这时候就显示的是数字0。如果要让它显示数字2的时候,写入一个2,数字2VP0里面给定一个2。

先看一下数字2,数字2的时候是0、1、3、4、6,在状态表里面看一下是不是0、1、3、4、6、0、1得电,2不得电,3得电,4得电,5不得电,6得电,这样就显示的是数字2,数码管上就会显示一个数字2。这就是SEG指令数码管显示。

这一节课就讲到这,

相关问答

plc中seg的工作原理?

显示码指令SEG专用于PLC输出端外接七段数码管的显示控制。当EN有效时,SEG指令将字节型输人数据IN的低4位对应的七段共阴极显示码输出到OUT指定的字节单元。如...

 许仲梓  lg p503 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部