如何实现用PLC采集高于其高速计数器最高计数频率的脉冲数据的探讨
如何实现用PLC采集高于其高速计数器最高计数频率的脉冲数据的探讨
目前的PLC 其内部都含有高速计数器,其最高计数频率为50KHz(一般均为10KHz或20KHz)以下,对高于其最高频响的输入脉冲,PLC的高速计数器就无能为力了。那么对高于其最高频响的输入脉冲,用PLC能否进行数据采样呢?答案是可以的,但必须要借助于硬件电路方可实现。下面将介绍如何用硬件配合PLC编程,来实现对高于PLC的高速计数器的最高频响的输入脉冲进行数据采集的方法。
数据采集通常有二种方式:1、定时计数采集数据。比如输入一脉宽=10毫秒的方波脉冲,在此10毫秒方波脉宽内计数器由0开始计数,方波结束后计数器停止计数,其方波后沿读取计数值的采集方式。2、等间隔连续采集数据。比如对正在计数中的计数器每隔0.1秒读取一次计数值的采集方式。下面将分别介绍这二种数据采集的实施方案:
一、 用硬件计数器配合PLC高速计数器进行等间隔定时计数的数据采集
图一为用硬件计数器配合PLC高速计数器进行定时计数采集数据的硬件电路图,
(一)、硬件电路图工作原理解析
图一中的JI输入接口:其1脚接 JM 脉冲 即为高频计数脉冲;3脚接 KM 控制 即
为计数控制门信号。U1A(4520)为4位二进制计数器,U
以U
使U2的Q0=0,输入给U3的6脚,使该反相器截止,其输出(U3的11脚)电流=0,即使U4的1-2脚间的发光二极管断路而不发光,其对应的15、16脚间的光敏三极管因无光照而阻断,即使PLC的I2.0=0。如Q0=1,当给U2的 CLK端输入一正脉冲,其前沿触发U2,使U2的Q0=1,输入给U3的6脚,使该路反相器导通,其输出(U3的11脚)电流=(12-2)÷1K=10ma,使U4的1-2脚间的发光二极管导通而发光,使对应的15、16脚间的光敏三极管因受光照而饱和导通,将+24V电压加在PLC的I2.0上,即使PLC的I2.0=1。
就是说,当给U2的CLK端输入一正脉冲,其脉冲前沿触发U2,使U1A的Q0~Q3
数据通过U2的D0~D3,锁存在U2的Q0~Q3里。再通过U3、U4电平转换,将U1A计数器的计数结果传送到PLC的I2.0~I2.3端。即PLC的输入口接收到此时刻该计数值的最低4位数数据。
U2的CLK端输入的正脉冲信号,来自于U
波(即计数门脉冲)的后沿负跳变触发由U
在用PLC作定时采集数据时,其KM 控制信号保持置1(即不输入控制信号),由Q1.0每隔一定时间(如0.1秒)发出一个负脉冲。经U6B反相输出为正脉冲,使U6A-1脚为1(控制门打开),JM 脉冲 通过U6A触发U1A的EN端,使其计数。
Q1.1为复位信号,是由PLC发出的指令,它经过U5-1的电位转换,变24V幅度为12V幅度的脉冲,输入给U
图中PLC的I0.6为其高速计数器的计数输入端,其信号来自U1A的输出端D4,即
16分频输出端。如U
当测量某一脉冲宽度时,或定时采样的计数时间要求小于毫秒级时(用PLC的I/O口是无法胜任这样极窄的定时计数的控制的),应选用KM 控制 信号作计数器的计数控制门。
在此用硬件控制门控制计数采样的方式下,PLC在开机的第一个扫描周期将Q1.0置1,且使SM0.1=Q1.1将U
当KM 控制 端输入的负方波结束时,U6A的1脚电压=0,U1A停止计数。PLC高速计数器必然也停止计数。KM 控制 端输入负方波的后沿经U6B倒相变为负跳变,触发由U6C、U6D组成的单稳态,使之产生5mS的正方波输入到I0.5, I0.5=1的前沿读取HC1值,再延时1ms 输出给Q1.1、I1.0一脉冲信号,使U1A与高速计数器清0,为下一次计数做准备。
(二)、用PLC进行等间隔定时计数的采集数据的编程
初始状态为:将图一硬件电路中的KM 控制端保持高电位(+12V),Q1.0输出为1,使图中的U6B输出为0,即停止计数(使JM 脉冲不能通过U6A加在U1A的EN计数端)。
PLC编程:在第一个扫描周期使Q1.1=1(即SM0.1=Q1.1),将计数器清0,之后Q1.1复位。PLC采用每间隔0.1秒产生一次时间中断,使Q1.0=0,即容许计数器从0开始加计数,延时10毫秒,Q1.0输出=1,经U6B倒相,使U
1、 主程序:
2、子程序SBR-0:
3、中断初始化程序:
4、中断子程序:
(三)、由硬件提供定时计数控制门的PLC编程
PLC在开机的第一个扫描周期将Q1.0置1,且使SM0.1=Q1.1将U
当KM 控制 端输入的负方波结束时,U6A关门,U1A停止计数。PLC高速计数器必然也停止计数。KM 控制 端输入负方波的后沿经U6B倒相变为负跳变,触发由U6C、U6D组成的单稳态,使之产生正方波输入到I0.5,PLC在 I0.5=1的前沿读取高速计数器的计数值HC1,经整理送入VW100。其后沿延时1ms输出给Q1.1、I1.0一正脉冲,使U1A与高速计数器清0,为下一次计数做准备。 详见梯形图 :
SBR_0 子程序
二、 用硬件计数器配合PLC编程进行等间隔读取计数值的数据采集
由于PLC I/O口的动作相应时间比硬件电路的动作时间有所滞后,故采用如图一所
示的用硬件计数器与PLC高速计数器配合使用进行等间隔读取计数值的采集方法是会产生取值错误的,因为无论是硬件还是PLC发出读取命令,其硬件计数器与PLC读取的数值从时间上总是不为同时刻的计数值,造成采集数据不准确。为了使读数正确,计数器应全部选用硬件计数器而不用PLC高速计数器。见图二:选用4个四位二进制硬件计数器(4520)组成16位二进制计数器。
(一)、电路说明:
图二为全硬件计数器的数据采集电路图,它既适用于连续读取计数值的采集方式,也适用于定时计数的采样方式。
图中U7A与非门,其二个输入:1、F 为高数计数脉冲,可适用于10MHz以下的频率脉冲。2、K 为计数控制门信号,K为0时禁止计数脉冲通过U7A(即关门),K为1时容许计数脉冲通过U7A(即开门)。在连续读取计数值的工作方式下,K保持置1。在定时计数方式下,K输入为正方波信号,在正方波宽度内,U7A门打开,容许计数器从0开始计数。正方波结束使U7A门的2脚电压=0(即关闭),计数停止。该方波的后沿负跳变触发由U
U1、U2为双4位2进制计数器(4520),构成16位二进制计数器,其U
图中的Q1.0 为U3、U4的并入锁存、串行移位的命令信号;Q1.1 为U1、U2计数器的复位信号;Q1.2为U3、U4 并入与串出方式转换信号。
(二) 、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梯形图的构思与解析