用PLC高速計(jì)數(shù)器和電壓/頻率傳感器測(cè)量模擬電壓信號(hào)的方法
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:介紹了用PLC高速計(jì)數(shù)器和電壓/頻率傳感器累計(jì)測(cè)量脈沖的原理,闡明了應(yīng)用中需注意的事項(xiàng),通過(guò)程序?qū)嵗攲?shí)介紹了測(cè)量模擬電壓信號(hào)的方法。
關(guān)鍵詞:可編程控制器;高速計(jì)數(shù)器;電壓/頻率傳感器
Method of Measuring Simulated Voltage Signal
by PLC High Speed Counter and Voltage/Frequency Sensor
WANG Yu-tian, CHENG Yao-zhong
Abstract:The principle of measuring pulse accumulatively by PLC high speed counter and voltage/frequency sensor is introduced.The matters needing attention in practice is expounded,the method of measuring voltage signal is introduced through program examples.
Keywords:PLC; High speed counter; Voltage/frequency sensor
中圖分類(lèi)號(hào):TM933 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):0219-2713(2003)04-0137-03
1 引言
由PLC控制的某些系統(tǒng),經(jīng)常要測(cè)量各類(lèi)模擬電壓信號(hào),以往通常用電壓傳感器進(jìn)行采樣,由PLC的模擬量擴(kuò)展模塊進(jìn)行運(yùn)算處理。電壓傳感器輸出是模擬量,在電磁騷擾較強(qiáng)的環(huán)境中,容易出現(xiàn)較大的測(cè)量誤差;同時(shí),由于占用模擬量擴(kuò)展模塊寶貴的輸入點(diǎn)(模擬量擴(kuò)展模塊價(jià)格接近中、小型PLC的價(jià)格,且輸入點(diǎn)極少),使系統(tǒng)的性?xún)r(jià)比降低。當(dāng)用電壓/頻率傳感器進(jìn)行采樣,進(jìn)而用PLC高速計(jì)數(shù)器計(jì)數(shù),能較好地解決上述問(wèn)題,V/F傳感器輸出是脈沖信號(hào),該信號(hào)在電磁騷擾下變化極小;另外,該信號(hào)是數(shù)字量,可直接接入PLC高速計(jì)數(shù)器的輸入點(diǎn)。下面以西門(mén)子SIMATCS7-00、CPU224和V/F傳感器為例介紹測(cè)量模擬電壓信號(hào)的方法。
2 高速計(jì)數(shù)器和V/F傳感測(cè)量模擬電壓信號(hào)的原理
CPU224有HSC0-HSC5共6個(gè)高速計(jì)數(shù)器,每個(gè)高速計(jì)數(shù)器都有多種工作模式以完成不同的功能,在使用一個(gè)高速計(jì)數(shù)器時(shí),根據(jù)系統(tǒng)的控制需要,首先要給計(jì)數(shù)器選定一種工作模式,可用高速計(jì)數(shù)器定義指令HDEF來(lái)進(jìn)行設(shè)置。只有定義了計(jì)數(shù)器和計(jì)數(shù)器模式,才能對(duì)計(jì)數(shù)器的動(dòng)態(tài)參數(shù)進(jìn)行編程。編程時(shí),每個(gè)高速計(jì)數(shù)器只能使用一條HDEF指令。每個(gè)高速計(jì)數(shù)器都有一個(gè)控制字節(jié),包括允許或禁止計(jì)數(shù),計(jì)數(shù)方向的控制,要裝入的計(jì)數(shù)器當(dāng)前值和要裝入的預(yù)置值。
V/F傳感器把測(cè)量的模擬電壓信號(hào)按著固定的比率轉(zhuǎn)換成矩形脈沖信號(hào),本例采用的電壓/頻率傳感器,它的比率為20Hz/V。
下面以一臺(tái)35kV級(jí)中、小容量變電所用直流電源為例,說(shuō)明如何利用CPU224的高速計(jì)數(shù)器HSC1和V/F傳感器(輸入:DC0~500V電壓,輸出:0~10kHz脈沖)來(lái)測(cè)量控制母線電壓。首先,V/F傳感器將輸入電壓(控制母線電壓)轉(zhuǎn)換為矩形脈沖信號(hào),再將此信號(hào)送入高速計(jì)數(shù)器HSC1的輸入端,并累計(jì)脈沖數(shù)。通過(guò)設(shè)置定時(shí)中斷0的間隔時(shí)間,來(lái)控制高速計(jì)數(shù)器累計(jì)脈沖的時(shí)間,當(dāng)預(yù)置的間隔時(shí)間到后,根據(jù)累計(jì)脈沖數(shù),計(jì)算出被測(cè)控制母線電壓值,測(cè)量原 理 圖 如 圖1所 示 。
圖1 高速計(jì)數(shù)器測(cè)量V/F傳感器脈沖電路
3 測(cè)量模擬電壓信號(hào)的方法
3.1 硬件要求
需要使用設(shè)備 CPU224 1臺(tái)
電壓/頻率傳感器 1臺(tái)
技術(shù)參數(shù) 供電電壓 DC 24V
輸 入 DC 0~500V
輸出 方波,GND~24V
測(cè)量范圍 0~500V→0~10kHz
比 率 20Hz/V
3.2 程序結(jié)構(gòu)
主程序在第一個(gè)掃描周期調(diào)用子程序SBR0
SBR0高速計(jì)數(shù)器和定時(shí)中斷的初始化
INT0對(duì)高速計(jì)數(shù)器求值的定時(shí)中斷程序
3.3 程序和注釋
主程序在第一個(gè)掃描周期調(diào)用初始化子程序SBR0,僅在第一個(gè)掃描周期標(biāo)志位SM0.1=1。由子程序SBR0實(shí)現(xiàn)初始化。
首先,把高速計(jì)數(shù)器HSC1的控制字節(jié)MB47置為16進(jìn)制數(shù)FC,其含義是:正方向計(jì)數(shù),可更新預(yù)置值(PV),可更新當(dāng)前值(CV),激活HSC1。
然后,用定義指令HDEF把高速計(jì)數(shù)器HSC1設(shè)置成工作模式0,即沒(méi)有復(fù)位或啟動(dòng)輸入,也沒(méi)有外部的方向選擇。當(dāng)前值SMD48復(fù)位為0,預(yù)置值SMD52置為FFFF(16進(jìn)制)。定時(shí)中斷0間隔時(shí)間SMB34置為100ms,中斷程序0分配給定時(shí)中斷0,并允許中斷,用指令HSC1啟動(dòng)高速計(jì)數(shù)器。
每100ms調(diào)用一次中斷程序0,讀出高速計(jì)數(shù)器的數(shù)值后,將其置零。通過(guò)HSC1計(jì)數(shù)值及變換關(guān)系來(lái)求被測(cè)的控制母線電壓值。本例中,采用參數(shù)為輸入0~500V、輸出0~10kHz的V/F傳動(dòng)器,100ms時(shí)間累計(jì)脈沖最多為1kHz,在中斷程序中用乘法指令MUL將該計(jì)數(shù)值乘5,則100ms內(nèi)最多脈沖累計(jì)數(shù)為1k×5=5kHz,從而實(shí)現(xiàn)顯示值與10倍的真實(shí)電壓值相對(duì)應(yīng),假設(shè)經(jīng)乘法指令運(yùn)算后計(jì)數(shù)值為2200Hz,則實(shí)際電壓值相應(yīng)為220V。然后將經(jīng)程序處理的計(jì)數(shù)值置入輸出字節(jié)QBO,以便通過(guò)LED來(lái)顯示被測(cè)的模擬電壓值。高速計(jì)數(shù)器和V/F傳感器測(cè)量模擬電壓信號(hào)的主程序、子程序和中斷程序如下所述。 [!--empirenews.page--]
主程序
LD SM0.1 //用初次掃描存儲(chǔ)器位(SM0.1)調(diào)用執(zhí)行初始化操作的子程序。由于采用這樣的子程序調(diào)用,后續(xù)掃描不會(huì)再調(diào)用這個(gè)子程序,從而減少了掃描時(shí)間,也提供了一個(gè)結(jié)構(gòu)優(yōu)化的程序。
CALL SBR_0 //調(diào)用初始化子程序SBR_0
子程序
SBR0 SM0.0 //啟動(dòng)子程序0
LD SM0.0 //SM0.0總是1
MOVB 16#FC,SMB47 //設(shè)置高速計(jì)數(shù)器HSC1控制字節(jié):上升沿復(fù)位,上升沿啟動(dòng),1X計(jì)數(shù)速率,正向計(jì)數(shù),可改變方向,可更新PV(預(yù)置值),可CV(當(dāng)前值),激活HSC1。
HDEF 1,0 //定義高速計(jì)數(shù)器,選用HSC1工作于模式0
MOVO 0,SM048 //HSC1當(dāng)前值清0
MOVD 16#FFFF,SMD52 //將預(yù)置值裝入SMD52
MOVB 100,SMB34 //設(shè)置定時(shí)中斷0間隔時(shí)間為100ms
ATCH 0,10 //中斷連接指令,中斷程序?yàn)镮NT_0,事件號(hào)為10
EN 1 //允許所有中斷
HSC 1 //編程計(jì)數(shù)器SHC1,使設(shè)置生效
中斷程序0
INT 0 //啟動(dòng)中斷程序
LD SM0.0 //SM0?0總是1
MOVD HSC1,AC0 //把HSC1的計(jì)數(shù)值存入累加器AC0
MOVD AC0,VD100 //把計(jì)數(shù)值存入VD100
MOVD 0,SM048 //HSC1當(dāng)前值清0
MOVB 16#C0,SMB47 //重新設(shè)置HSC1控制字節(jié):上升沿復(fù)位,上升沿啟動(dòng),4X計(jì)數(shù)速率;反向計(jì)數(shù),不改變計(jì)數(shù)方向,不更新PV,可更新CV,激活HSC1。
HSC 1 //啟動(dòng)高速計(jì)數(shù)器HSC1
MUL 5,VD100 //把HSC1的計(jì)數(shù)值乘以5
MOVB VB103,QB0 //在輸出端Q0?0至Q0.7顯示10倍被測(cè)控母電壓值
4 結(jié)語(yǔ)
以上方法已用于GZS2智能型高頻開(kāi)關(guān)直流電源等控制系統(tǒng)(變電站、發(fā)電廠用直流電源),實(shí)踐證明,該方法進(jìn)行模擬電壓信號(hào)測(cè)量,具有精度高(最高可達(dá)5/1000V),抗騷擾性強(qiáng),運(yùn)行可靠等優(yōu)點(diǎn),具有較大的實(shí)用價(jià)值和廣泛的應(yīng)用前景。