定时器是常用和通用的功能之一。
4.1 计数器指令
如图4.1所示,A为生成脉冲指令,与(a启动脉冲定时器)功能相同;B为接通延时指令与(b启动接通延时定时器)功能相同;C为关断延时指令与(c启动关断延时定时器)功能相同;D为时间累加器指令与(d时间累加器)功能相同;e为复位定时器指令,f为加载持续时间指令。
回顾上一章讲的计数器,就会发现计数器和定时器具有以下相同点:都具有复位功能【图4.1中e】,都具备加载功能【图4.1中f】。(计数器有计数器复位清零,计数器也有装载PV值)
图4.1 定时器指令
4.1.1 断开延时
如图4.2所示,断开延时(关断延时)的定时器的简单应用。
M1.2为CPU运行的信号,即只要CPU运行,该点就会接通。增加该点的目的是为了增加横向的分支,一个程序段可以写两行。这种编程方式沿用了西门子200samrt或者STEP7软件的编程方式,或者说其品牌的PLC编程也是需要这样实现一个分支操作。
但是博图软件对这样的问题做了优化,就是在同一个程序段,可以存在多行支路的程序。如图4.2所示为一个主干线分成2个横向支路。实际上可以允许写成多行主干线,如图4.3所示。两种编程方式对比,显然图4.3的方式更为简洁,清爽一些。但是介于之前的编程习惯,以及其他品牌的PLC的编程习惯,本人依然采用图4.2的编写方式。原因如下:为了保持解读程序的统一性,如果一个项目的程序中,有的程序段采用的一个主干线,有的采用的是多干线,在分析和查找程序时,容易按照之前的习惯,忽略下边的程序。说的直白一点,就是不习惯,也不允许自己养成新的习惯。因为其他PLC编程软件,对这种行为的定义是非法的,编译不成功的。如果看到图4.3的编程方式,在博图软件中是正确的,其他的软件中未必是正确的。
图4.2 断开延时1
图4.3 断开延时2
大致工作原理
当M21.0接通时,T[32].Q接通,M120.0接通。
当M21.0断开时,T[32].Q延时10秒断开,M120.0接通和断开情况跟随T[32].Q。
这段程序如何理解呢?当按下(电磁炉开启)按钮时,让(开始初始化运行2 M120.0)的线圈接通10秒。实际工作中就是,按下电磁炉开启按钮,需要电磁炉的风扇运行10秒后停止。这是一个初始化运行状态。这种情很常见,如开启笔记本电脑后,散热风扇先运转一段时间后停止,然后再根据电脑的温度来自动运转;在比如锅炉控制系统中,开启锅炉前,风机要进行一定时间的吹扫,吹扫完成后,才能进行后续工作。
此功能还适用于停止后的延时运转,比如变频器停止后,散热风扇会继续运转一段时间;再比如锅炉控制系统中,锅炉停止后,风机还要继续进行一端时间的吹扫;锅炉停止后,循环泵也要在继续运行一端时间;还有家用电磁炉停机后,散热风扇继续运转一段时间等等。总的来说,这个功能使用场景很多。
T[32].Q等同于图4.4中的T32常开触点,两者是在不同软件中表达方式不一样,功能和效果是一样的。
总结一下,在使用梯形图编程时,定时器接通的表现形式,目前见过的也就是这两种。其他各类品牌的PLC的定时器触点的接通也无法是这两种形式,如果你找到第三种了,可以跟大家共享一下。
图4.4 200SMART编程软件中的定时器
断开延时定时器的作用就是,当定时器的接通条件断开时,延时一定的时间再断开。延时的时间根据需要填写就好,本案例中设置的是T#10S,就是10秒。如果想设置成200MS,那么输入T#200MS。【在定时器的时间输入时,可以按照定时器的格式输入,也可以直接输入数值,比如直接输入200,就是200MS;输入10000就是10S。】
与计数器一样,定时器也需要分配背景空间。如图4.5所示,我们建立了T数组,一共是建立了1000个数据类型为IEC_TIMER的编号从0-999的定时器背景数据区。这样就将定时器的背景数据区放到了一起,避免了使用定时器自动生成很多DB块了。
图4.5 定时器数组
如图4.6所示,直接将上述功能实现了。功能与图4.2和图4.3一样,就是延时时间不一样,这里为15秒。大家会想,能用图4.6实现,何必使用上边的实现呢。有了一种既生瑜何生亮的感觉。实际上了,博图软件就是这样提供指令和功能的,大家根据需要和习惯使用就好,重点不是表现形式,重要的是功能和逻辑的实现。
举个例子,不能因为自己开车上班就嘲笑那些骑电车或者挤公交上班的,凡是存在的都是合理的。重要的是开好自己的车,上好自己的班。也不能说,我就会用博图编程,其他的编程软件都不会啊。做PLC编程的老手,不研究个五六七八种品牌的PLC编程,那就证明他们公司的业务还不够丰富。你能要求编程软件按照你的思路来吗?不可以的,咱们就是使用者,使用软件把程序编写好就行了。
图4.6 断开延时3
4.1.2 生成脉冲
如图4.7所示,为生成脉冲的定时器指令。PT的输入引脚为MD300,可用于设定延时值。当M21.0接通时,M110.2就会接通,接通时间为MD300的设定时间,设定数值以MS为单位。如MD300设定值为600,那么就是M110.2延时600Ms停止。
如果M21.0接通时间时10秒,MD300的设定时间是600,那么M110.2依然接通600Ms。总结一下就是:不管M21.0的接通时间,只要M21.0接通一次,M110.2就会运行600Ms。
如果MD300设定为10000,那么功能又跟上述功能一样了:电磁炉开启后,风扇初始化运行10秒后停止。
所以说同样的功能,同样的现象,程序呢是千奇百怪,五花八门。自己捋捋吧!
图4.7 生成脉冲
4.1.3 生成脉冲
如图4.8所示,为接通的定时器指令。是使用频次最高的定时器。也是最常用的定时器。状态1:
当(电磁炉开启M21.0)接通时,T[25]和T[26]都开始计时,当计时大于等于10秒后,M110.3接通,M110.4也会接通。如果M21.0继续保持接通,计时器会继续计时,一直到计时器的最大值。
状态2:
如果定时器都是清零状态,当(电磁炉开启M21.0)接通2秒时,T[25]和T[26]都开始计时,由于计时时间未到,M110.3和M110.4都不会接通。此时M21.0断开,T[25]的计时时间清零,T[26]的计时时间保持。这也是2个定时器的区别,一个是触发条件断开,计时器清零;一个是触发条件断开计数器不清零,具备累加功能。累加计时器想清零就得用到复位定时器指令RT指令。当然了,复位定时器指令RT指令也可以给T[25]清零。
状态3:
在状态2的基础上,当(电磁炉开启M21.0)再接通8秒时,T[25]和T[26]都开始计时,M110.3不会接通,但是M110.4会接通,因为T[26]的累计运行时间到达了10秒。
如果M21.0继续接通,直到接通10秒以后,T[25]也会接通。
注意凡是文中描述到定时器的接通,都是指定时器的Q点接通。
图4.8 生成脉冲
4.1.4 复位定时器
如图4.9所示,为复位定时器指令。当M21.2接通时,复位T[26]定时器,目的就是将定时器计时清零。当M21.2一直接通时,T[26]定时器将无法正常工作,计时持续为0,所以定时器清零的操作应该使用脉冲信号,清零后M21.2就应该断开。
图4.9 复位定时器
4.1.4 加载持续时间
如图4.10所示,为加载持续时间指令。当M21.3接通时,将T[26]定时器的PT值设置为20S,下一个周期的定时器就会以20S的计时周期来动作。
如果程序中已经有了PT值,那么覆盖原有的PT值,以最新的PT值为准。就是不管前边PT值给的多少,使用了图4.10的指令,下一个定时周期就会按照该指令执行。
图4.10 加载持续时间
4.2 问题思考
1、定时器脉冲如何制作?
2、500Ms接通一次、500Ms断开一次。与接通500Ms后再断开500Ms一样吗?
还在犹豫什么,抓紧时间实操一下吧,或者仿真操作也可以的!
喜欢的请收藏和转发!希望能帮到更多的朋友!
,