如何實現用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梯形圖的構思與解析