工控網首頁
>

應用設計

>

如何實現用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數據輸出端,分別代表1、2、4、8,其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腳間的發光二極管導通而發光,使對應的15、16腳間的光敏三極管因受光照而飽和導通,將+24V電壓加在PLCI2.0上,即使PLCI2.0=1

就是說,當給U2CLK端輸入一正脈沖,其脈沖前沿觸發U2,使U1AQ0~Q3

數據通過U2D0~D3,鎖存在U2Q0~Q3里。再通過U3、U4電平轉換,將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腳輸出電壓=0,U1A不計數。當輸入給KM 控制 端一負方波信號時,其U6B輸出為1, JM 脈沖將通過U6A觸發U1AEN端,使U1A計數,且每計完16個脈沖,由U1AQ3通過U3U5-4輸入到高速計數器的計數端(I0.6)使高速計數器加1計數。

KM 控制 端輸入的負方波結束時,U6A1腳電壓=0,U1A停止計數。PLC高速計數器必然也停止計數。KM 控制 端輸入負方波的后沿經U6B倒相變為負跳變,觸發由U6C、U6D組成的單穩態,使之產生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腳為0,U1A停止計數,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倒相變為負跳變,觸發由U6C、U6D組成的單穩態,使之產生正方波輸入到I0.5,PLC 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與非門,其二個輸入:1、F 為高數計數脈沖,可適用于10MHz以下的頻率脈沖。2、K 為計數控制門信號,K0時禁止計數脈沖通過U7A(即關門),K1時容許計數脈沖通過U7A(即開門)。在連續讀取計數值的工作方式下,K保持置1。在定時計數方式下,K輸入為正方波信號,在正方波寬度內,U7A門打開,容許計數器從0開始計數。正方波結束使U7A門的2腳電壓=0(即關閉),計數停止。該方波的后沿負跳變觸發由U7C、U7D組成的單穩態電路,使U7C10腳輸出一正脈沖經U6-3電平轉換,輸入給I1.0 (讀取數據)。

U1、U2為雙42進制計數器(4520),構成16位二進制計數器,其U71A的計數端ENU7A3腳輸出端。U1、U216位的數據輸出可以象圖一方式:通過電平轉換直接輸出到PLC的輸入口。但這樣得用37路反向器(1413)和4個內含4個光耦器件的集成塊,而且需占用16PLC輸入口。這樣不僅用件多,而且造價太高,本電路選用24014(并入串出寄存器)和2個光耦器件,通過PLC編程,用串行輸出數據的方式將計數器的高低字節數據同時輸入給PLC的二個輸入口(I1.1I1.2)。

圖中的Q1.0 U3、U4的并入鎖存、串行移位的命令信號;Q1.1 U1、U2計數器的復位信號;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梯形圖的構思與解析