趣味学习三菱PLC之定时器和计数器
小时候总想着,自己要是可以控制时间就好了,给时间按下暂停键,然后把班里的那个死对头打一顿哈哈哈哈哈嗝,做梦呢。虽然我不可以控制时间,但是我可以通过定时器控制PLC的程序执行呀,这也是从另一方面实现我控制时间的的梦想了,激动!
PLC中,定时器和计数器是两个非常主要的编程元件,是PLC程序编制不可或缺的环节。我在之前的文章中简单地扯了一下这两个元件,而现在就是揭秘时刻了,让我们一起来看看它们的庐山真面目吧!
一、定时器
说到定时器,其实我们生活中就有很多它的应用,例如洗衣机的定时选择,烤箱的定时旋钮、空调的定时遥控、定时炸弹(这个还是算了)等。当然,还有电工朋友们比较熟悉的时间继电器也算是一种定时器。而PLC的定时器是一种编程元件,其实它就相当于继电控制系统中的时间继电器。为了便于学习PLC的定时器,我们先来了解一下时间继电器。
在继电控制电路中,如果要用到时间控制,就必须要用到时间继电器,其实我对时间继电器不熟悉,因为我对继电控制电路的接触本来就不多,但是我说过,我是专门去学习了接触器的,时间继电器和接触器有点类似,只不过接触器不能进行时间控制罢了。
要驱动接触器的常开、常闭触点动作,就必须给接触器的线圈通电,同样的,在控制电路中,要使时间继电器的各种触点动作,也是需要驱动条件的,即线圈得电。这让我想起了我平时在家打游戏的时候,如果是其他人叫我吃饭,那我肯定是专注游戏,纹丝不动的,但如果是老妈的狮子吼,还管什么游戏,小命要紧,这里的老妈狮子吼就是驱动条件,而我去吃饭就是触点动作,可以说非常形象了。
根据变化的不同,时间继电器有三种类型触点:瞬时动作、通电延时、断电延时。结合时间继电器常开触点动作时序图,我们可以更为直观的看出其触点的动作过程,特别是"通电延时"和"断电延时"。
通电延时,也就是线圈得电,但触点延时动作,线圈失电,触点马上动作。这就像是我们上课,上课铃响,大家磨磨蹭蹭的挪向教室,但下课铃声一响,大家就跟长跑运动员一样瞬时就不见人影了。断电延时,也就是线圈得电,触点马上动作,线圈失电,触点延时动作。这也像是上课,如果说通电延时是上数学课,那断电延时就是上体育课,上课铃响,大家奔向操场放飞自我,但下课铃响,大家像是七老八十一样慢慢挪回教室。这时的上课铃和下课铃就像线圈的得电与失电,而学生的上课和下课就是触点动作。
在PLC中,定时器作用其实和时间继电器相差无几,都是用于对时间的控制,特别是延时控制,且都需要驱动条件,但PLC的定时器只能进行瞬时动作和通电延时的控制,要实现断电延时,就得通过程序编制。我在前面的文章说过,定时器是字(16位)元件,所以可以对时钟脉冲计数并保存数值,也因为它是16位元件,所以定时的时长是有范围的。
三菱FX2N PLC的定时器分为通用型定时器和积算型定时器。通用型定时器又称非积算定型时器或常规定时器,积算型定时器又称断电保持型定时器。接下来,我们一起看看它们两者有什么不同吧。
1、通用型定时器T0~T245
通用型定时器根据计数时钟脉冲不同分为100ms定时器和10ms定时器。
从上图我们也可以看出,定时器的时钟脉冲是由它们的编号区分的,其中T0~T199为时钟脉冲100ms的定时器,共200个;T200~T245为时钟脉冲10ms的定时器,共46个。例如选用T20这个定时器,那就表示选用了时钟脉冲为100ms的定时器,K20表示十进制数的20,所以T20 K20就表示定时器的定时时间为20个脉冲,即20×100=2s。
因为PLC的定时器类似于继电控制电路的时间继电器,所以,在梯形图中,我们把定时器作为线圈处理,如上图所示,定时器的驱动元件为X1触点,当X1触点闭合,定时器T20(线圈)得电,经过定时时间2s后,定时器的常开触点闭合。
定时器的脉冲数除了可以用十进制数表示外,还可以用数据寄存器D的内容来表示。D就像是一个口袋,里面装着一个数(16位的二进制数),这个数就是计数器的脉冲个数,例如T20 D0,D0里存的数是H10,转换为十进制就是16,这时计数器T20的定时时间就为16×100=1.6s。
这里要注意的是,当通用计数器的驱动信号断开,此时不管计数器的计时时间是否达到设定值,计数器都会复位,计时清零,直到再次被驱动,才开始重新计时。这也是通用型定时器和断电保持型定时器的区别。
2、积算型定时器(断电保持型定时器)T246~T255
顾名思义,断电保持型定时器是指在定时过程中,当驱动信号断开,定时器虽然不能继续计时,但能保持当前计时值,等驱动信号再次恢复,定时器有在原来的计时基础上继续计时,直到累积时间达到设定值,对应触点开始动作。换句话说,就是断电保持型定时器不会自动复位,所以我们想要它复位时,只能用RST指令进行强制复位。
积算型定时器按时钟脉冲不同也可以分为两种。显然这个的数量比通用型的少很多,可能是它比较少用吧。
积算型定时器的工作原理图如上图所示,定时器T250的定时时间为60×100ms=6s,当驱动条件成立,也就是X1接通,定时器T250的线圈得电,开始计时,计到2s时X1断开,虽然定时器的线圈失电,但它的计时依然保持在2s;直到X1再次接通,定时器在2s的基础上继续计时,计到6s后,定时器的常开触点闭合。又因为定时器不会自动复位,所以,就是X1断开,定时器的线圈失电,但它的计时保持在6s,常开触点一直闭合,直到X2触点闭合,RST指令强制复位定时器,定时器的常开触点才会断开。
总的来说就是,通用型定时器只需一个信号就可以控制线圈和触点的通断。而积算型定时器必须要两个信号加上RST指令才能控制其线圈和触点的通断,真麻烦,怪不得比较少用。
定时器在梯形图中非常常用,所以在课程中,李老师举了好几个典型的实例,为了节省大家的阅读时间(并不是为了偷懒哦),我就抽其中一个例子吧。
每一个定时器的定时时间是有限制的,那么,如果我们需要的定时时间超过定时器的最长定时时间,怎么办呢?简单,一个不够,两个来凑。如下图所示,一个定时器最多可以累计32767个时钟脉冲,为了好看,我们就取3万个吧,然后把几个定时器进行接力。这时候,从X0闭合到线圈Y0得电,此间的定时时长就为30000×3×100ms=150min,也就是两个半小时,这也太久了吧。
定时器的各种玩法,我在这就不一一解说啦,大家感兴趣的,可以去看看李老师的课程,或者自己编程试试,反正是用软件编程,也玩不坏。看清了定时器的真面目,我们继续来"探索"计数器吧。
二、计数器
说到计数器,我本来想在淘宝上找一些计数器的图片,然后发现,刷出来的是算盘哈哈,所以,算盘也算是一种计数器吧,我们日常生活中,需要用到计数器的实例好像不多,但在PLC中,计数器的使用也是非常频繁的。
三菱FX2N PLC的内部计数器分为普通计数器和高速计数器两类,课程只介绍了普通型的,所以我也只学了普通型,至于高速型的,可能以后在其他课程再学习了。
在继电控制电路中,计数器作为一种仪表在电路中使用。其基本功能是对输入开关量信号进行计数。类似的,PLC中的计数器也是对内部编程元件(X、Y、M、S、T、C)的信号进行计数,当然,这些信号从接通到断开的时长应长过PLC内部的扫描周期。
就普通计数器而言,PLC内部信号计数器也有两类:16位加计数器和32加/减位计数器。现在,我们就来一一欣赏它们。
1、16位加计数器
16位加计数器又叫16位增量计数器,类似于定时器,也分为通用型和断电保持型,共200个。至于到底是通用型还是断电保持型,和定时器一样,也是通过计数器的编号来区分。而且计数器在梯形图中也是作为线圈处理,总而言之,计数器和定时器的工作原理差不多,区别只不过是在于:定时器计一般的是时钟脉冲信号的个数,而计数器计的是编程元件通断信号(触点脉冲信号)的个数。
如上图所示,C0计数器的设定值是K10,也就是说触点X11通断10次,计数器的触点才会动作。类似于定时器,当PLC断电,通用计数器会自动复位,但和定时器不同的是,定时器的驱动信号断开,定时器也会复位,当计数器前的触点断开,如上图的X11,计时器会进行计数,而不是复位。
其实,16位加计数器和定时器的差别真的不大,所以,这里也不再赘述啦。
2、32位加/减计数器
32位加/减计数器又称双向计数器,它可以从0开始增1计数到设定值,也可以由设定值开始减1到0。和16位的一样,32位加/减计数器也有通用型和断电保持型两类,不过个数比较少,可能也是因为它比较少用吧。
和定时器一样,计数器的设定值除了可以用十进制数K来表示外,也可以用数据寄存器D的内容来表示,不过这里要注意的是,16位加计数器的设定值用一个D就可以寄存,而32位加/减计数器就需要两个相邻的D才行,如D0、D1,且D1为高位,D0为低位。因为D也是16位的,要寄存32位的数,也只能用两个D。
既然32位加/减计数器可以双向计数,那怎样设定它的方向呢?这就要借用特殊辅助继电器M8×××了。怎么借用?别急,我们马上看看到底是什么回事。
如上图所示,该梯形图中用了计数器C200,所以特殊辅助继电器就是M8200。也就是说,特殊辅助继电器的编号要与计数器的编号一一对应,M8后面的编号要和C后面的编号相同。例如你用的计数器是C220,那么对应的特殊辅助继电器就是M8220,依次类推。
当M8200断开(为OFF)时,C200作加法计数,当M8200接通(为ON)时,C200作减法计数。类似于开车,M8200就像是倒车挡,一旦挂倒挡,踩了油门,车子就后退,退出倒车挡,车子就恢复为前进。
另外,32位加/减计数器还有不同于16位加计数器的一点是:在16位计数器中,当计数值达到设定值后,触点动作,就算此后信号脉冲依然在增加,计数器的计数值仍然保持在设定值不变,触点状态也保持不变;而在32位加/减计数器中,当计数值达到设定值后,触点动作,如果此后继续有信号脉冲输入,计数器也会继续计数,但触点状态保持不变。
那32位加/减计数器什么时候触点状态才会再次变化呢?简单,我们还是以上图为例,信号脉冲持续输入,当计数器C200作加法计数达到设定值3后,其常开触点闭合,计数器继续计数3+1+1=5,常开触点保持闭合,此时接通M8200改变计数器的计数方向,计数器开始从5-1-1=3,计数器再次回到设定值3,其常开触点动作从而断开,计数器继续做减1计数,直到达到计数器的阈值或M8200断开。
关于计数器的编程实例,李老师在课程中也列举了几个例子,可能是我脑子比较笨,我觉得这些例都好难理解啊,所以我还要多看几遍,在这里我就不班门弄斧了,以免被一些大神取笑。
那么,这次的分享就到这里,各位读者,下次再会,告辞。
选自《三菱FX PLC编程与应用入门》第五章第17~19课时
技成培训原创,作者:杨思慧,未经授权禁止转载。
时钟处理指令,三菱入门必学知识点
谈及时钟和定时器,想来大家都不陌生,就如我,每天都要定三个闹钟才起得了床去上班,而且我敢肯定,不止我一个人。
关于时钟和定时器,我在之前的文章就有分享过一二,但当时并没有讲到相关的指令,不是我不想讲,而是时机未到。然后我掐指一算,现在时机正好!
在三菱FX PLC 中,可以用于表示时间的有定时器、内部时钟和实时时钟三种,定时器T我在之前的文章已有叙述,在此就不再赘述。
而内部时钟,其实也很简单,就是4个特殊辅助继电器,如下图25-1所示的M8011~M8014。从图25-1可以看到,它们可以发出固定周期的时钟脉冲信号,和我们之前所学的脉冲输出指令有异曲同工之妙。
图25-1
内部时钟继电器和定时器一样,都是触点利用型继电器,但它的时间周期是不可变的,一旦PLC上电,它们就会工作,输出时钟脉冲。结合这些内部时钟和计数器,可以实现闪烁电路的设计等,如下图25-2所示为0.2s闪烁电路梯形图。
图25-2
除此之外,你还能想到内部时钟的哪些应用呢?欢迎留言评论哟~
知道了定时器和内部时钟,实时时钟才是重头戏!因为接下来所分享的时钟处理指令均是与实时时钟有关的。所以在正式学习指令之前,我们先来了解一下实时时钟吧。
三菱FX PLC的实时时钟
所谓实时时钟,即与实际时间相同步,如我们手机、电脑、手表的时间,就是以北京时间为准的。同样的,PLC可以也像电脑那样,记录实际时间,这个时间就保存在特殊数据寄存器D8013~D8019中,如下图25-3所示。
图25-3
图25-3所示为D8013~D8019所保存的时间数据内容。从图中可以看到,这7个寄存器所存的时间数据与实际时间的年、月、日、时、分、秒和星期相对应,称为实时时钟数据。既然是实时时钟数据,很显然,它们也会随着实际时间一秒一秒地变化,不管PLC上电与否。即实时时钟是由PLC内部电池供电运作的。
除上述几个特殊数据寄存器外,与实时时钟有关的软元件还有几个特殊辅助继电器,如下图25-4所示。
图25-4
图25-4已经说明了几个特殊辅助继电器的功能,通过这些功能,我们就可以对实时时钟就行设定啦,例如今晚八点什么的。
显然,如同我们新买的手表要设定时间一样,PLC的实时时钟也需要我们人为地校准。校准的方法不一,如下图25-5所示就是通过梯形图校准的示例,将PLC的时间设定为2021年1月1日0时0分0秒。当实际时间达到设定时间时,马上断开X0,将时间数据写入时钟数据寄存器,并通过M8017就行±30s的修正。
图25-5
还有另外一种方法可以校准实时时钟的时间,那就是通过TWR指令,那也是我接下来要分享的指令之一。
时钟数据读/写指令TRD/TWR
实时时钟的数据可以通过TER指令写入,也可以通过TRD指令读出,那么TRD指令和TWR指令该如何应用呢?请听下回,咳咳,请听这回讲解。
1、时钟数据读出指令TRD
下图25-6所示为TRD指令的编程手册和梯形图形式截图,仅适用于16位,有脉冲执行型和连续执行型两种。TRD指令只有一个操作数D,但其占用7个点。
图25-6
指令的功能就是当驱动条件成立时,把实时时钟的时间数据读取出来,存放到D~D+6中。例如图25-6所示的梯形图,当X0接通,指令将PLC中D8013~D8019的数据传送到D0~D6中。
看到这里,就是不知道大家有没有这样的疑问:D8013~D8019的数据在D~D+6中是怎么分配的呢?答案如下图25-7所示。
图25-7
TRD指令比较简单,我们再接着看TWR指令。
2、时钟数据写入指令TWR
下图25-8所示为TWR指令的编程手册和梯形图形式截图,仅适用于16位,有脉冲执行型和连续执行型两种,但在实际应用时,应使用脉冲执行型,即TWRP。
图25-8
从指令的名字上,我们也可以区分TWR指令和TRD指令的不同。显然,TWR指令是TRD指令的反向操作,它们的两者的功能相反。
TWR指令也只有一个操作数S,占用7个点。当驱动条件成立时,将S~S+6中设定好的时钟数据写入PLC的时钟寄存器D8013~D8019中,写入成功后,PLC的实时时钟数据立刻被更改。其中S~S+7的数据对应D8013~D8019的内容如下图25-9所示。
图25-9
知道了TWR指令的功能后,回想上文提到的PLC实时时钟校准问题,显然TWR指令的应用也很简单,如下图25-10所示为其梯形图示例,将PLC的时间设定为2021年1月25日16时40分30秒。TWR指令用于时钟设定时,无需将 M8015置ON。
图25-10
这里要注意到是,当我们在设置时间的时候,应提前编写好梯形图,例如要将时间设定为2021年1月25日16时40分30秒,我们应提前1~2分钟,也就是在16时38分左右就要将梯形图编好,然后等时间到达设定时间,驱动指令执行。
另外,TWR指令提供了另外一种设定PLC时间的方法,但在实际应用中,TWR指令也可以随我们心情写入任何数据,当然,这个数据不能超出设定范围。
TWR指令和TRD指令的应用示例
TWR指令和TRD指令都比较简单,它们在实际的应用中也很方便,如对设备的定时通断电、定时操作等。接下来,参照李老师的课程,我在这里给大家展示两个TWR指令和TRD指令的使用程序吧!
1、控制要求为:在1月29日晚上10点半关闭PLC的所有输出,其程序如下图25-11所示。
图25-11
首先将要关闭输出的时间(月、日、时、分、秒)传送到D11~D15中,然后通过TRD指令将PLC的时间读出,与D11~D15设定的时间相比较,若全部相等,驱动M8034,关闭PLC的所有输出。其中用到的M500作为停电保持用。
2、控制要求为:PLC开机即计时,7天后停止M0,14天后停止M1,21天后停机检测,其程序如下图25-12所示。
图25-12
开机即将PLC时间设定为21年2月1日0时0分0秒并开始计时,然后达到对应时间停止响应输出,其中M500亦为停电保持用。
综上,TWR指令和TRD指令的理解和应用都比较简单,用起来也很方便。而时钟处理指令除了WR指令和TRD指令外,还有其他指令我们将在下一篇文章讲解。
(来源:技成培训网,作者:杨思慧,未经授权不得转载,违者必究!)
↓↓↓点击更多领取学习资料
相关问答
请教三菱PLC检测脉冲输入频率并输出相应频率的程序_汽配人问答
[最佳回答]是三菱的Q系列PLC吗?首先得选一块高速计数模块,把编码器的线接到模块对应端子上然后根据模块位置对应的起始IO进行初始化设定,定义对应的寄存器地址...
三菱PLC控制伺服电机脉冲频率和脉冲数量如何计算-可可呀...
齿轮比=编码器分辨率/电机每转脉冲数比如台达伺服分辨率是160000,这个设定齿轮比分母16,然后分子设定10,就是16:10=10000脉冲一圈齿轮比=编码器分...
三菱plc的脉冲数用浮点运算怎么写?
在三菱PLC中,脉冲数可以用浮点数进行运算。具体实现方法为,将脉冲数先作为整数数据类型进行输入,然后将其转换为浮点数类型,即可进行各种浮点数的计算。要注...
三菱PLC发无限脉冲,在脉冲数那怎么写?
PLSYD100K0Y0,把脉冲数设为0,三菱PLC机会发出连续脉冲,直至前面的开关条件断开。PLSYD100K0Y0,把脉冲数设为0,三菱PLC机会发出连续脉冲,直至前面的开关...
三菱pLC脉冲输出指令?
因为三菱PLC内部只带一个脉冲发生器,所以脉冲指令plsy只能用一次。脉冲输出指令PLSY用于指定频率定量输出脉冲,其使用方法如下[S1.]指定输出脉冲频率,FX2N...
三菱plc脉冲指令实例?
三菱PLC的脉冲读取指令是指能够读取输入脉冲信号并计数的指令。它经常被用于需要计数的自动化控制系统中。以下是该指令的详细说明及实例:指令格式:C(总线编...
三菱PLC用SPD指令测得编码器每秒钟发出的脉冲个数是10个。怎样计算编码器每分钟的转速?写出过程?
用高速计数器的话,如转的较快,你可以每秒钟把高速计数器的值传给一个寄存器,用这个值乘以60秒,再除以编码器一圈的脉冲数即可得到转速,同时复位高速计数器进...
三菱plc中c200计数器用法?
您好,C200系列PLC中有多种类型的计数器可供使用。以下是一些常见的用法:1.单位计数器:用于计算输入信号的脉冲数,可设置计数范围和计数方向。2.比较计数...
三菱plc脉冲数怎么看?
要查看三菱PLC的脉冲数,您可以按照以下步骤进行操作:1.首先,确保您已经连接到PLC并且具有必要的权限和访问权。2.打开PLC编程软件(如GXWorks2或GXDevel...
三菱plc怎么把浮点数传到脉冲?
你好,要将浮点数传输到脉冲,您需要使用以下步骤:1.选择一个可编程逻辑控制器(PLC)。三菱PLC通常使用GXWorks编程软件。2.编写程序来读取浮点数并将其转...