PLC怎样计算两次信号触发的时间间隔?
今天这篇文章回答一个小伙伴的问题:行程开关第一次触发开始计时,等到第二次触发时计算两次触发之间的时间间隔。这个用普通的定时器指令做不到,因为延时接通、延时断开的指令都需要设置一个时间值,而问题中两次触发的时间间隔是未知的。解决这类问题要使用日期时间,即第一次触发时记下当前时间,再次触发时记下时间,两个时间相减即可。这个在不同的PLC中有不同的指令,因为他使用的是西门子S7-200 SMART,我这里给出我的解决思路。
本文包括两个主题:
如何计算两次信号触发的时间间隔?如何计算某个信号的持续时间?1、如何计算两次信号触发的时间间隔?
在S7-200 SMART中,我们可以使用BGN_ITIME指令,它位于指令列表的【定时器】指令中。
BGN_ITIME可以返回CPU自启动(冷启动或热启动)至今的一个毫秒值,精确到1毫秒(ms),最大值是2的32次方,即49.7天。
我们可以使用上升沿信号记录两次触发的时间,如下图所示:
然后将两个时间相减,做一下处理,就可以计算出两次触发的时间差,如下图所示:
2、如何记录某个信号持续的时间?
使用BGN_ITIME指令可以记录信号触发的时间,使用CAL_ITIME指令可以计算某个时间至今的时间间隔。这两个配合就可以计算某个信号的持续时间,比如某个阀打开后持续至今的时间。
首先,使用信号的上升沿记录当前时间,如下图所示:
然后使用CAL_ITIME指令计算信号触发至今的时间,如下图所示:
好了,关于PLC计算两次信号触发的时间间隔就先介绍到这里。我的书《西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例》已经出版,感兴趣的小伙伴可以点击下面的链接查看:
#pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } /*pc 样式*/ .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: " "; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/pgc/v2/pgc_tpl/static/image/commodity_buy_f2b4d1a.png); } S7-200 SMART PLC应用技术 ¥84.5 购买PLC实现步进电机正反转和调速控制
一、实验目的
1、掌握步进电机的工作原理
2、掌握带驱动电源的步进电机的控制方法
3、掌握DECO指令实现步进电机正反转和调速控制的程序
二、实训仪器和设备
1、FX2N-48MR PLC一台
2、两相四拍带驱动电源的步进电机一套
3、正反切换开关、起停开关、增减速开关各一个
三、步进电机工作原理
步进电机是纯粹的数字控制电动机,它将电脉冲信号转换成角位移,即给一个脉冲信号,步进电机就转动一个角度,图3-1是一个三相反应式步进电机结图。从图中可以看出,它分成转子和定子两部分。定子是由硅钢片叠成,定子上有六个磁极(大极),每两个相对的磁极(N、S极)组成一对。共有3对。每对磁极都绕有同一绕组,也即形成1相,这样三对磁极有3个绕组,形成三相。可以得出,三相步进电机有3对磁极、3相绕组;四相步进电机有4对磁极、四相绕组,依此类推。
反应式步进电动机的动力来自于电磁力。在电磁力的作用下,转子被强行推动到最大磁导率(或者最小磁阻)的位置,如图3-1(a)所示,定子小齿与转子小齿对齐的位置,并处于平衡状态。对三相异步电动机来说,当某一相的磁极处于最大导磁位置时,另外两相相必处于非最大导磁位置,如图3-1(b)所示,即定子小齿与转子小齿不对齐的位置。
把定子小齿与转子小齿对齐的状态称为对齿,把定子小齿与转子小齿不对齐的状态称为错齿。错齿的存在是步进电机能够旋转的前提条件,所以,在步进电机的结构中必须保证有错齿的存在,也就是说,当某一相处于对齿状态时,其它绕组必须处于错齿状态。
本实验的电机采用两相混合式步进电机,其内部上下是两个磁铁,中间是线圈,通了直流电以后,就成了电磁铁,被上下的磁铁吸引后就产生了偏转。因为中间连接的,是采用在转轴的位置用一根滑动的接触片。这样如果电磁铁转过了头,原先连接电磁铁的两根线刚好就相反了,所以电磁铁的N极S极就和以前相反了。但是电机上下的磁铁是不变的,所以又可以继续吸引中间的电磁铁。当电磁铁继续转,由于惯性又转过了头,所以电极又相反了。重复上述过程就步进电机转了。
根据这个原理,如图3-2所示,两相步进电机的转动步骤,以正转为例:
由图可见,现相异步电机正转过程分为四个步骤,即A相正方向电流、B相正方向电流、A向反方向电流和B相反方向电流。反转工作的顺序与之相反。A、B两相线圈不是固定的电流方向,这与其它步进电机的控制逻辑有所不同。因此,控制步进电机转动时,必须考虑用换相的思路设计实验线路。可以根据模拟驱动电路的功能和plc必须的逻辑关系进行程序设计。
四、采用步进电机驱动器的控制方式
利用步进电机驱动器可以通过PLC的高速输出信号控制步进电机的运动方向、运行速度、运行步数等状态。其中:步进电机的方向控制,只需要通过控制U/D端的On和Off就能决定电机的正转或反转;将光耦隔离的脉冲信号输入到CP端就能决定步进电机的速度和步数;控制FREE信号就能使电机处于自由状态。
因此PLC的控制程序相当简单,只需通过PLC的输出就能控制步进电机的方向、转速和步数。不必通过PLC控制电机换相的逻辑关系,也不必另外添加驱动电路。实训面板见图3-4,梯形图见图3-5。本程序是利用D0的变化,改变T0的定时间隔,从而改变步进电机的转速。通过两个触点比较指令使得D0只能在10~50之间变化,从而控制步进间隔是1S~5S之间,I/O分配表见表3-1。
表3-1 I/O分配表
图3-5 梯形图
五、采用PLC直接控制步进电机方式
对于两相步进电机控制,根据其工作原理,必须考虑其换向的控制方式,因此将其步骤用代号分解,则为:①实现电流方向A+→A-、②实现电流方向B+→B-、③实现电流方向A-→A+、④实现电流方向B-→B+。如果反转则按照④、③、②、①的顺序控制。
PLC的I/O分配表按照表3-2,分配图按照图3-6,梯形图见图3-7。
表3-2 PLC的I/O分配表
步进电机正反转和调速控制的梯形图如图3-7所示,程序中采用积算定时器T246为脉冲发生器,因系统配置的PLC为继电器输出类型,其通断频率过高有可能损坏PLC,故设定范围为K200ms~1000ms,则步进电机可获得1~10步/秒的变速范围,(X0为ON时,正转,X1为ON时;反转)。
X0为ON时,输出正脉冲列,步进电机正转。当X0为ON时,T246以D0值为预置值开始计时,时间到,T246导通,执行DECO指令,根据D1数值(首次为0),指定M10输出,Y0、Y4为ON,步进电机A相通电,且实现电流方向A+→A-;D1加1,然后,T246马上自行复位,重新计时,时间到,T246又导通,再执行DECO指令,根据D1数值(此次为1),指定M11输出,Y1、Y5为ON,步进电机B相通电,且实现电流方向B+→B-;D1加1,T246马上又自行复位,重新计数,时间到,T246又导通,再执行DECO指令,根据D1数值(此次为2),指定M12输出,Y2、Y6为ON,步进电机A相通电,且实现电流方向A-→A+;D1加1,T246马上又自行复位,重新计时,时间到,T246又导通,再执行DECO命令,根据D1数值(此次为3),指定M13输出,Y3、Y7为ON,步进电机B相通电,且实现电流方向B-→B+;当M13为ON,D1复位,重新开始新一轮正脉冲系列的产生。
X1为ON时,输出反脉冲列,步进电机正转。当X1为ON时,T246以D0值为预置值开始计时,时间到,T246导通,执行DECO指令,根据D1数值(首次为0),指定M10输出,Y3、Y7为ON,步进电机B相通电,且实现电流方向B-→B+;依此类推,完成实现A相反方向电流、B相正方向电流、A相正方向电流三个脉冲列输出;当M13为ON,D1复位,重新开始新一轮正脉冲系列的产生。
当X2为ON时,程序由自动转为手动模式,当X0(X1)为ON时,每点动一次X3,对D1数值(首次为0)加1,分别指定M10、M11、M12及M13输出,从而完成一轮正(反)脉冲系列的产生。
第73步中,当X4为ON,M8012为ON,M4为ON,且D0当前值<K1000,则D0即加1。第88步中,当X5为ON,M8012为ON,M4为ON,且D0>K200,由D0即减1。
六、程序调试及执行
调速时按X4或X5按钮,观察D0的变化,当变化值为所需速度时释放。
如动作情况与控制要求一致表明程序正确,保存程序。如果发现程序运行与控制要求不符,应仔细分析,找出原因,重新修改,直到程序与控制要求相符为止。
七、实训思考练习题
如果调速需经常进行,可将D0的内容显示出来,试设想方案,修改程序,并实验。
图3-7 步进电机正反转和调速控制
程序说明
1、步骤0,指定脉冲序列输出顺序移位值;
2、当X0为ON,输出正脉冲序列,电机正转;当X1为ON,输出负脉冲序列,电机反转;
3、当X2为ON,程序由自动转为手动模式,由X3状态单步触发电机运转;
4、当X4为ON,如D0小于1000,每100ms对D0加1,从而延长每脉冲输出的时间间隔,降低电机的转速;
5、当X5为ON,如D0大于200,每100ms对D0减1,从而缩短每脉冲输出的时间间隔,加快电机的转速;
6、T0为频率调整限制。
相关问答
plc灯闪烁时间间隔为1s怎么实现?
用PLC做闪烁有很多种做法。方法一:使用一般定时器两个,每个定时器计时1s,一个控制亮,一个控制灭。方法二:中断控制,特殊定时器T32时间到进入中断,中断程...
plc脉冲输出波形是怎样的?
PLC里的脉冲信号是隔一端时间向外输出的信号。脉冲信号是一种离散信号,形状多种多样,与普通模拟信号(如正弦波)相比,波形之间在时间轴不连续(波形与波形之...
plc开关量怎么发脉冲?
要在PLC开关量输出上产生脉冲,可以使用定时器函数。首先,需要将PLC开关量输出设置为定时器的开关量输出端口。然后,设置计时器的时间间隔和计数器的初始值。...
plc循环右移指令例子?
关于这个问题,假设PLC中DW0的初始值为0x12345678,执行循环右移指令后结果为0x91234567。循环右移指令的语法为:RORDn,#n其中,Dn表示要进行操作的数据...
PLC编程一个控制4个指示灯循环闪烁程序,要求,每隔一秒反复闪烁?
这个很简单。我用的是西门子的,就用西门子举例吧,常亮的直接输出,闪烁的用时钟M0,有8个不同的闪烁频率,你选一个就行了去当另外两个指示灯。并联输出。如果没...
fx2n系列plc是如何循环扫描工作的?
所谓PLC循环扫描,就是存储在PLC内的梯形图,每隔几毫秒就会被执行一次。执行时间间隔越短,PLC反应速度越快,性能越高。工作过程就是:扫描输入端有无信号输入...
plc八个灯循环指令有哪些?
也就是说循环左移1位就是向左移动1位最高位移到最低位处循环右移1位相应的位向右移动1位最低位移到最高位移位指令是PLC的一条重要指令,可用于步进顺序控制...
请大师们S7200PLC控制温度,要想实现5分钟内从200℃升温至1200℃,请问升温斜率如何计算?
根据工艺将200-1200分成几个程序段,200-500用T1分,500-1000用T2分...也可以不分。配一温度模块测量实际温度,一块可控硅块按PLC输出量的大小执行相应的比...
PLC脉冲信号转换器作用?
脉冲是隔一端时间向外输出信号依次如M8002M8000:通电常闭继电器,M8002:上电后仅接通一个扫描时间继电器,M8012:每100ms输出信号依次。M8013:1s周期振荡一...
【求,天塔之光的PLC设计,要欧姆龙的(1)控制要求1)隔灯闪烁...
[最佳回答]图书馆PLC应用相关的书上都有这样的事例你先列出个每个灯时续表然后就是用时间继电器控制这些等的启动顺序了图书馆PLC应用相关的书上都有这样的...