《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 微波|射頻 > 設(shè)計應(yīng)用 > 用PLC高速計數(shù)器和電壓/頻率傳感器測量模擬電壓信號的方法
用PLC高速計數(shù)器和電壓/頻率傳感器測量模擬電壓信號的方法
王玉田,程耀忠
摘要: 介紹了用PLC高速計數(shù)器和電壓/頻率傳感器累計測量脈沖的原理,闡明了應(yīng)用中需注意的事項,通過程序?qū)嵗攲嵔榻B了測量模擬電壓信號的方法。
Abstract:
Key words :

1   引言

    由PLC控制的某些系統(tǒng),經(jīng)常要測量各類模擬電壓信號,以往通常用電壓傳感器進行采樣,由PLC的模擬量擴展模塊進行運算處理。電壓傳感器輸出是模擬量,在電磁騷擾較強的環(huán)境中,容易出現(xiàn)較大的測量誤差;同時,由于占用模擬量擴展模塊寶貴的輸入點(模擬量擴展模塊價格接近中、小型PLC的價格,且輸入點極少),使系統(tǒng)的性價比降低。當(dāng)用電壓/頻率傳感器進行采樣,進而用PLC高速計數(shù)器計數(shù),能較好地解決上述問題,V/F傳感器輸出是脈沖信號,該信號在電磁騷擾下變化極??;另外,該信號是數(shù)字量,可直接接入PLC高速計數(shù)器的輸入點。下面以西門子SIMATCS7-00、CPU224和V/F傳感器為例介紹測量模擬電壓信號的方法。

2  高速計數(shù)器和V/F傳感測量模擬電壓信號的原理

    CPU224有HSC0-HSC5共6個高速計數(shù)器,每個高速計數(shù)器都有多種工作模式以完成不同的功能,在使用一個高速計數(shù)器時,根據(jù)系統(tǒng)的控制需要,首先要給計數(shù)器選定一種工作模式,可用高速計數(shù)器定義指令HDEF來進行設(shè)置。只有定義了計數(shù)器和計數(shù)器模式,才能對計數(shù)器的動態(tài)參數(shù)進行編程。編程時,每個高速計數(shù)器只能使用一條HDEF指令。每個高速計數(shù)器都有一個控制字節(jié),包括允許或禁止計數(shù),計數(shù)方向的控制,要裝入的計數(shù)器當(dāng)前值和要裝入的預(yù)置值。

    V/F傳感器把測量的模擬電壓信號按著固定的比率轉(zhuǎn)換成矩形脈沖信號,本例采用的電壓/頻率傳感器,它的比率為20Hz/V。

    下面以一臺35kV級中、小容量變電所用直流電源為例,說明如何利用CPU224的高速計數(shù)器HSC1和V/F傳感器(輸入:DC0~500V電壓,輸出:0~10kHz脈沖)來測量控制母線電壓。首先,V/F傳感器將輸入電壓(控制母線電壓)轉(zhuǎn)換為矩形脈沖信號,再將此信號送入高速計數(shù)器HSC1的輸入端,并累計脈沖數(shù)。通過設(shè)置定時中斷0的間隔時間,來控制高速計數(shù)器累計脈沖的時間,當(dāng)預(yù)置的間隔時間到后,根據(jù)累計脈沖數(shù),計算出被測控制母線電壓值,測量原 理 圖 如 圖1所 示 。

圖1  高速計數(shù)器測量V/F傳感器脈沖電路

3  測量模擬電壓信號的方法

3.1  硬件要求

     需要使用設(shè)備     CPU224     1臺

                      電壓/頻率傳感器     1臺

     技術(shù)參數(shù)     供電電壓     DC 24V

                  輸    入     DC 0~500V

                  輸出         方波,GND~24V

                  測量范圍     0~500V→0~10kHz

                 比     率     20Hz/V

3.2  程序結(jié)構(gòu)

    主程序在第一個掃描周期調(diào)用子程序SBR0

    SBR0高速計數(shù)器和定時中斷的初始化

    INT0對高速計數(shù)器求值的定時中斷程序

3.3  程序和注釋

    主程序在第一個掃描周期調(diào)用初始化子程序SBR0,僅在第一個掃描周期標(biāo)志位SM0.1=1。由子程序SBR0實現(xiàn)初始化。

    首先,把高速計數(shù)器HSC1的控制字節(jié)MB47置為16進制數(shù)FC,其含義是:正方向計數(shù),可更新預(yù)置值(PV),可更新當(dāng)前值(CV),激活HSC1。

    然后,用定義指令HDEF把高速計數(shù)器HSC1設(shè)置成工作模式0,即沒有復(fù)位或啟動輸入,也沒有外部的方向選擇。當(dāng)前值SMD48復(fù)位為0,預(yù)置值SMD52置為FFFF(16進制)。定時中斷0間隔時間SMB34置為100ms,中斷程序0分配給定時中斷0,并允許中斷,用指令HSC1啟動高速計數(shù)器。

    每100ms調(diào)用一次中斷程序0,讀出高速計數(shù)器的數(shù)值后,將其置零。通過HSC1計數(shù)值及變換關(guān)系來求被測的控制母線電壓值。本例中,采用參數(shù)為輸入0~500V、輸出0~10kHz的V/F傳動器,100ms時間累計脈沖最多為1kHz,在中斷程序中用乘法指令MUL將該計數(shù)值乘5,則100ms內(nèi)最多脈沖累計數(shù)為1k×5=5kHz,從而實現(xiàn)顯示值與10倍的真實電壓值相對應(yīng),假設(shè)經(jīng)乘法指令運算后計數(shù)值為2200Hz,則實際電壓值相應(yīng)為220V。然后將經(jīng)程序處理的計數(shù)值置入輸出字節(jié)QBO,以便通過LED來顯示被測的模擬電壓值。高速計數(shù)器和V/F傳感器測量模擬電壓信號的主程序、子程序和中斷程序如下所述。

      主程序

      LD     SM0.1     //用初次掃描存儲器位(SM0.1)調(diào)用執(zhí)行初始化操作的子程序。由于采用這樣的子程序調(diào)用,后續(xù)掃描不會再調(diào)用這個子程序,從而減少了掃描時間,也提供了一個結(jié)構(gòu)優(yōu)化的程序。

     CALL     SBR_0     //調(diào)用初始化子程序SBR_0

     子程序

     SBR0     SM0.0     //啟動子程序0

     LD     SM0.0     //SM0.0總是1

     MOVB     16#FC,SMB47     //設(shè)置高速計數(shù)器HSC1控制字節(jié):上升沿復(fù)位,上升沿啟動,1X計數(shù)速率,正向計數(shù),可改變方向,可更新PV(預(yù)置值),可CV(當(dāng)前值),激活HSC1。

     HDEF     1,0     //定義高速計數(shù)器,選用HSC1工作于模式0

     MOVO     0,SM048     //HSC1當(dāng)前值清0

     MOVD     16#FFFF,SMD52     //將預(yù)置值裝入SMD52

     MOVB     100,SMB34     //設(shè)置定時中斷0間隔時間為100ms

     ATCH     0,10     //中斷連接指令,中斷程序為INT_0,事件號為10

     EN     1     //允許所有中斷

     HSC     1     //編程計數(shù)器SHC1,使設(shè)置生效

     中斷程序0

     INT     0     //啟動中斷程序

     LD     SM0.0     //SM00總是1

     MOVD     HSC1,AC0     //把HSC1的計數(shù)值存入累加器AC0

     MOVD     AC0,VD100     //把計數(shù)值存入VD100

     MOVD     0,SM048     //HSC1當(dāng)前值清0

     MOVB     16#C0,SMB47     //重新設(shè)置HSC1控制字節(jié):上升沿復(fù)位,上升沿啟動,4X計數(shù)速率;反向計數(shù),不改變計數(shù)方向,不更新PV,可更新CV,激活HSC1。

     HSC     1     //啟動高速計數(shù)器HSC1

     MUL     5,VD100     //把HSC1的計數(shù)值乘以5

     MOVB     VB103,QB0     //在輸出端Q00至Q0.7顯示10倍被測控母電壓值

4  結(jié)語

    以上方法已用于GZS2智能型高頻開關(guān)直流電源等控制系統(tǒng)(變電站、發(fā)電廠用直流電源),實踐證明,該方法進行模擬電壓信號測量,具有精度高(最高可達5/1000V),抗騷擾性強,運行可靠等優(yōu)點,具有較大的實用價值和廣泛的應(yīng)用前景。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。