用PLC高速計(jì)數(shù)器和電壓/頻率傳感器測(cè)量模擬電壓信號(hào)的方法 摘要:介紹了用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è)量控制母線(xiàn)電壓。首先,V/F傳感器將輸入電壓(控制母線(xiàn)電壓)轉(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è)控制母線(xiàn)電壓值,測(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è)的控制母線(xiàn)電壓值。本例中,采用參數(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)的主程序、子程序和中斷程序如下所述。 ????? 主程序 ????? 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ā)電廠(chǎng)用直流電源),實(shí)踐證明,該方法進(jìn)行模擬電壓信號(hào)測(cè)量,具有精度高(最高可達(dá)5/1000V),抗騷擾性強(qiáng),運(yùn)行可靠等優(yōu)點(diǎn),具有較大的實(shí)用價(jià)值和廣泛的應(yīng)用前景。 參考文獻(xiàn) [1]? 臺(tái)方.可編程控制器應(yīng)用教程[M].中國(guó)水利水電出版社,2001. 作者簡(jiǎn)介 ??? 王玉田(1957-),男,碩士,主要從事發(fā)電機(jī)勵(lì)磁技術(shù)研究。 ??? 程耀忠(1948-),男,高級(jí)工程師,主要從事晶閘管等離子電源、高頻諧振變壓器電源和智能直流電源的研究。 收稿日期:2003-01-08 |
評(píng)論
查看更多