工控网首页
>

应用设计

>

如何实现用PLC采集高于其高速计数器最高计数频率的脉冲数据的探讨

如何实现用PLC采集高于其高速计数器最高计数频率的脉冲数据的探讨

2011/12/20 13:22:16

如何实现用PLC采集高于其高速计数器最高计数频率的脉冲数据的探讨

目前的PLC  其内部都含有高速计数器,其最高计数频率为50KHz(一般均为10KHz20KHz)以下,对高于其最高频响的输入脉冲,PLC的高速计数器就无能为力了。那么对高于其最高频响的输入脉冲,用PLC能否进行数据采样呢?答案是可以的,但必须要借助于硬件电路方可实现。下面将介绍如何用硬件配合PLC编程,来实现对高于PLC的高速计数器的最高频响的输入脉冲进行数据采集的方法。

数据采集通常有二种方式:1、定时计数采集数据。比如输入一脉宽=10毫秒的方波脉冲,在此10毫秒方波脉宽内计数器由0开始计数,方波结束后计数器停止计数,其方波后沿读取计数值的采集方式。2、等间隔连续采集数据。比如对正在计数中的计数器每隔0.1秒读取一次计数值的采集方式。下面将分别介绍这二种数据采集的实施方案:

一、            用硬件计数器配合PLC高速计数器进行等间隔定时计数的数据采集

图一为用硬件计数器配合PLC高速计数器进行定时计数采集数据的硬件电路图,

(一)、硬件电路图工作原理解析

图一中的JI输入接口:其1脚接 JM 脉冲 即为高频计数脉冲;3脚接 KM 控制

为计数控制门信号。U1A4520)为4位二进制计数器,U1A 中的EN点为计数器的计数脉冲输入端,其计数脉冲的下跳沿计数有效。U1A 中的Q0~Q3U1A数据输出端,分别代表1248,其4位组合输出代表计数器的计数值。如输出代码为:1001,其输出数为:8+1=9 U24042)为4D锁存器,其4个数据输入端(D0~D3)分别连接U1A4个输出端(Q0~Q3),当给U2CLK输入一触发脉冲,其脉冲的正跳沿,将D0~D3数据分别存入U2Q0~Q3端,U3(1413)输出为OC门形式的7路反向器集成块,取其4路与U2Q0~Q3相连,U3对应的输出端分别连接1K电阻,去接U4(内含4个光电耦合器件的集成块)的光电二极管的负极,其正极接+12vU4的光敏三极管的集电极接PLC输入侧的24V电源的正极,而发射极分别接PLC的输入端(I20.~I2.3)。U4在这里起二个作用:1、对输入与输出信号起光电隔离作用。2、电平转换作用(输入侧为12V电平变化,输出侧为24V电平变化)。

U1AQ0端为例:如Q0=0,当给U2CLK端输入一正脉冲,其前沿触发U2

使U2Q0=0,输入给U36脚,使该反相器截止,其输出(U311脚)电流=0,即使U41-2脚间的发光二极管断路而不发光,其对应的1516脚间的光敏三极管因无光照而阻断,即使PLCI2.0=0。如Q0=1,当给U2 CLK端输入一正脉冲,其前沿触发U2,使U2Q0=1,输入给U36脚,使该路反相器导通,其输出(U311脚)电流=12-2)÷1K=10ma,使U41-2脚间的发光二极管导通而发光,使对应的1516脚间的光敏三极管因受光照而饱和导通,将+24V电压加在PLCI2.0上,即使PLCI2.0=1

就是说,当给U2CLK端输入一正脉冲,其脉冲前沿触发U2,使U1AQ0~Q3

数据通过U2D0~D3,锁存在U2Q0~Q3里。再通过U3U4电平转换,将U1A计数器的计数结果传送到PLCI2.0~I2.3端。即PLC的输入口接收到此时刻该计数值的最低4位数数据。

U2CLK端输入的正脉冲信号,来自于U6C的输出脚(10),当U6B输出的正方

波(即计数门脉冲)的后沿负跳变触发由U6CU6D组成的单稳态,U6C10脚立刻产生脉宽=5ms的正方波,此方波的前沿触发U2CLK端使之锁存数据,同时通过U5-3输入给I0.5 I0.5的前沿令PLC立即读取HC1值。

在用PLC作定时采集数据时,其KM 控制信号保持置1(即不输入控制信号),由Q1.0每隔一定时间(如0.1秒)发出一个负脉冲。经U6B反相输出为正脉冲,使U6A-1脚为1(控制门打开),JM 脉冲 通过U6A触发U1AEN端,使其计数。

Q1.1为复位信号,是由PLC发出的指令,它经过U5-1的电位转换,变24V幅度为12V幅度的脉冲,输入给U1A7脚复位端R,当复位端电压=1时,复位有效,使U1AQ0~Q3皆为0,且使U1A停止计数。当该复位端电压=0时,复位失效,容许U1A计数。Q1.1同时又输入给I1.0,即PLC的高速计数器的复位端,I1.0=1复位有效,当I1.0=0时,容许高速计数器计数。

图中PLCI0.6为其高速计数器的计数输入端,其信号来自U1A的输出端D4,即

16分频输出端。如U1A的计数输入脉冲频率为100KHz,经U1A计数分频,由D4输出的脉冲频率为:100K÷16=6.25K,低于高速计数器的最高计数脉冲频率。由它输入给I0.6高速计数器的计数输入口,故高速计数器可正常计数。这种硬件电路只用一级4位二进制计数器,故最高计数频率应小于 16×PLC的高速计数器的最高计数频率。如PLC的高速计数器的最高计数频率为20KHz,则容许最高计数频率为320KHz

测量某一脉冲宽度时,或定时采样的计数时间要求小于毫秒级时(用PLCI/O口是无法胜任这样极窄的定时计数的控制的),应选用KM 控制 信号作计数器的计数控制门。

在此用硬件控制门控制计数采样的方式下,PLC在开机的第一个扫描周期将Q1.01,且使SM0.1=Q1.1U1A0,随后Q1.1保持置0 KM 控制 端在没有正方波输入时,其电位为高电位,故使U6A1脚输出电压=0U1A不计数。当输入给KM 控制 端一负方波信号时,其U6B输出为1 JM 脉冲将通过U6A触发U1AEN端,使U1A计数,且每计完16个脉冲,由U1AQ3通过U3U5-4输入到高速计数器的计数端(I0.6)使高速计数器加1计数。

KM 控制 端输入的负方波结束时,U6A1脚电压=0U1A停止计数。PLC高速计数器必然也停止计数。KM 控制 端输入负方波的后沿经U6B倒相变为负跳变,触发由U6CU6D组成的单稳态,使之产生5mS的正方波输入到I0.5 I0.5=1的前沿读取HC1值,再延时1ms 输出给Q1.1I1.0一脉冲信号,使U1A与高速计数器清0,为下一次计数做准备。                                                        

(二)、用PLC进行等间隔定时计数的采集数据的编程

初始状态为:将图一硬件电路中的KM 控制端保持高电位(+12V),Q1.0输出为1,使图中的U6B输出为0,即停止计数(使JM 脉冲不能通过U6A加在U1AEN计数端)。

PLC编程:在第一个扫描周期使Q1.1=1(SM0.1=Q1.1),将计数器清0,之后Q1.1复位。PLC采用每间隔0.1秒产生一次时间中断,使Q1.0=0,即容许计数器从0开始加计数,延时10毫秒,Q1.0输出=1,经U6B倒相,使U6A 1脚为0U1A停止计数,U6A 1脚由10,触发由U6CU6D组成的单稳态,使之产生5ms正方波送到U2CLKI0.5,该脉冲前沿读取计数器的数据,且整理送入VW100中,该脉冲的后沿,使Q1.1输出一正方波,将计数器清0。详见以下梯形图即注解:

1、 主程序:

   2、子程序SBR-0:

  3、中断初始化程序:

   4、中断子程序:

    (三)、由硬件提供定时计数控制门的PLC编程

PLC在开机的第一个扫描周期将Q1.01,且使SM0.1=Q1.1U1A0,随后Q1.1保持置0 KM 控制 端在没有负方波输入时,其电位为高电位,故使U6A1脚电压=0(即U6A关门无脉冲信号输出),U1A不计数。当输入给KM 控制 端一负方波信号时,其U6B输出为1 JM 脉冲将通过U6A触发U1AEN端,使U1A计数,且每计完16个脉冲,由U2Q3通过U3U5-4输入到高速计数器的计数端(I0.6)使高速计数器加1

KM 控制 端输入的负方波结束时,U6A关门,U1A停止计数。PLC高速计数器必然也停止计数。KM 控制 端输入负方波的后沿经U6B倒相变为负跳变,触发由U6CU6D组成的单稳态,使之产生正方波输入到I0.5PLC I0.5=1的前沿读取高速计数器的计数值HC1,经整理送入VW100。其后沿延时1ms输出给Q1.1I1.0一正脉冲,使U1A与高速计数器清0,为下一次计数做准备。 详见梯形图                                       

SBR_0 子程序   

二、            用硬件计数器配合PLC编程进行等间隔读取计数值的数据采集

由于PLC I/O口的动作相应时间比硬件电路的动作时间有所滞后,故采用如图一所

示的用硬件计数器与PLC高速计数器配合使用进行等间隔读取计数值的采集方法是会产生取值错误的,因为无论是硬件还是PLC发出读取命令,其硬件计数器与PLC读取的数值从时间上总是不为同时刻的计数值,造成采集数据不准确。为了使读数正确,计数器应全部选用硬件计数器而不用PLC高速计数器。见图二:选用4个四位二进制硬件计数器(4520)组成16位二进制计数器。

(一)、电路说明:

图二为全硬件计数器的数据采集电路图,它既适用于连续读取计数值的采集方式,也适用于定时计数的采样方式。

图中U7A与非门,其二个输入:1F 为高数计数脉冲,可适用于10MHz以下的频率脉冲。2K 为计数控制门信号,K0时禁止计数脉冲通过U7A(即关门),K1时容许计数脉冲通过U7A(即开门)。在连续读取计数值的工作方式下,K保持置1。在定时计数方式下,K输入为正方波信号,在正方波宽度内,U7A门打开,容许计数器从0开始计数。正方波结束使U7A门的2脚电压=0(即关闭),计数停止。该方波的后沿负跳变触发由U7CU7D组成的单稳态电路,使U7C10脚输出一正脉冲经U6-3电平转换,输入给I1.0 (读取数据)

U1U2为双42进制计数器(4520),构成16位二进制计数器,其U71A的计数端ENU7A3脚输出端。U1U216位的数据输出可以象图一方式:通过电平转换直接输出到PLC的输入口。但这样得用37路反向器(1413)和4个内含4个光耦器件的集成块,而且需占用16PLC输入口。这样不仅用件多,而且造价太高,本电路选用24014(并入串出寄存器)和2个光耦器件,通过PLC编程,用串行输出数据的方式将计数器的高低字节数据同时输入给PLC的二个输入口(I1.1I1.2)。

图中的Q1.0 U3U4的并入锁存、串行移位的命令信号;Q1.1 U1U2计数器的复位信号;Q1.2U3U4 并入与串出方式转换信号。

(二)  PLC配合硬件电路进行连续读取计数器计数值的梯形图:

1)、主程序:

    2)、中断初始化子程序:

     (3)、中断子程序:

     (三)、PLC配合硬件电路进行定时采样编程的梯形图:

    1)、主程序:

    2)、中断初始化子程序

    3)、定时采样中断子程序:

通过以上对图一、图二电路原理的解析及与PLC编程说明,可以看出,用全硬件计数器进行PLC的数据采集,比用硬件计数器与PLC高速计数器配合使用进行数据采集要更好一些:

1、  图二用COS全硬件计数器其计数频率可高达十几MHz以上(用TTL会更高),而且可适用于定时计数与连续读取计数值这二种数据采集方式。

2、  图一用硬件计数器与高速计数器配合计数,由于只用一级4位二进制计数器,就限制了最高计数频率为几百KHz,如再增加一级4位二进制计数器,PLC的输入口就得用8位,而且还要增加好多硬件电路,做起来比现在的全硬件计数器的线路还要复杂,费用也高,而且只适用于定时计数这一种采样方式。

用硬件计数器配合PLC编程的数据采集方法,不仅解决了PLC因对高于其高速计数器最高频响的脉冲不能计数而无法实现数据采集的难题,而且硬件电路简单、用件少、成本造价低(百元以下),PLC编程也很简单。

就写到这里,如有什么错误之处或疑惑问题,可以提出,愿与大家探讨。谢谢大家!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

投诉建议

提交

查看更多评论
其他资讯

查看更多

对多输出点PLC设计与编程的实例展示与解析

简短精炼的3例编程展示及编程思路与技巧解析

解析用S7-200编写的几个程序的构思与技巧

超声波时差法测量流量的公式推导及检测方法的探讨

PLC增扩输出口的硬件电路图及与之配合使用的PLC梯形图的构思与解析