摘要:介紹了用PLC高速計數器和電壓/頻率傳感器累計測量脈沖的原理,闡明了應用中需注意的事項,通過程序實例詳實介紹了測量模擬電壓信號的方法。 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 ? 中圖分類號:TM933???? 文獻標識碼:B?? 文章編號:0219-2713(2003)04-0137-03
1?? 引言 ??? 由PLC控制的某些系統,經常要測量各類模擬電壓信號,以往通常用電壓傳感器進行采樣,由PLC的模擬量擴展模塊進行運算處理。電壓傳感器輸出是模擬量,在電磁騷擾較強的環境中,容易出現較大的測量誤差;同時,由于占用模擬量擴展模塊寶貴的輸入點(模擬量擴展模塊價格接近中、小型PLC的價格,且輸入點極少),使系統的性價比降低。當用電壓/頻率傳感器進行采樣,進而用PLC高速計數器計數,能較好地解決上述問題,V/F傳感器輸出是脈沖信號,該信號在電磁騷擾下變化極小;另外,該信號是數字量,可直接接入PLC高速計數器的輸入點。下面以西門子SIMATCS7-00、CPU224和V/F傳感器為例介紹測量模擬電壓信號的方法。 2? 高速計數器和V/F傳感測量模擬電壓信號的原理 ??? CPU224有HSC0-HSC5共6個高速計數器,每個高速計數器都有多種工作模式以完成不同的功能,在使用一個高速計數器時,根據系統的控制需要,首先要給計數器選定一種工作模式,可用高速計數器定義指令HDEF來進行設置。只有定義了計數器和計數器模式,才能對計數器的動態參數進行編程。編程時,每個高速計數器只能使用一條HDEF指令。每個高速計數器都有一個控制字節,包括允許或禁止計數,計數方向的控制,要裝入的計數器當前值和要裝入的預置值。 ??? V/F傳感器把測量的模擬電壓信號按著固定的比率轉換成矩形脈沖信號,本例采用的電壓/頻率傳感器,它的比率為20Hz/V。 ??? 下面以一臺35kV級中、小容量變電所用直流電源為例,說明如何利用CPU224的高速計數器HSC1和V/F傳感器(輸入:DC0~500V電壓,輸出:0~10kHz脈沖)來測量控制母線電壓。首先,V/F傳感器將輸入電壓(控制母線電壓)轉換為矩形脈沖信號,再將此信號送入高速計數器HSC1的輸入端,并累計脈沖數。通過設置定時中斷0的間隔時間,來控制高速計數器累計脈沖的時間,當預置的間隔時間到后,根據累計脈沖數,計算出被測控制母線電壓值,測量原 理 圖 如 圖1所 示 。
圖1? 高速計數器測量V/F傳感器脈沖電路 3? 測量模擬電壓信號的方法 3.1? 硬件要求 ???? 需要使用設備???? CPU224???? 1臺 ????????????????????? 電壓/頻率傳感器???? 1臺 ???? 技術參數???? 供電電壓???? DC 24V ????????????????? 輸??? 入???? DC 0~500V ????????????????? 輸出???????? 方波,GND~24V ????????????????? 測量范圍???? 0~500V→0~10kHz ???????????????? 比???? 率???? 20Hz/V 3.2? 程序結構 ??? 主程序在第一個掃描周期調用子程序SBR0 ??? SBR0高速計數器和定時中斷的初始化 ??? INT0對高速計數器求值的定時中斷程序 3.3? 程序和注釋 ??? 主程序在第一個掃描周期調用初始化子程序SBR0,僅在第一個掃描周期標志位SM0.1=1。由子程序SBR0實現初始化。 ??? 首先,把高速計數器HSC1的控制字節MB47置為16進制數FC,其含義是:正方向計數,可更新預置值(PV),可更新當前值(CV),激活HSC1。 ??? 然后,用定義指令HDEF把高速計數器HSC1設置成工作模式0,即沒有復位或啟動輸入,也沒有外部的方向選擇。當前值SMD48復位為0,預置值SMD52置為FFFF(16進制)。定時中斷0間隔時間SMB34置為100ms,中斷程序0分配給定時中斷0,并允許中斷,用指令HSC1啟動高速計數器。 ??? 每100ms調用一次中斷程序0,讀出高速計數器的數值后,將其置零。通過HSC1計數值及變換關系來求被測的控制母線電壓值。本例中,采用參數為輸入0~500V、輸出0~10kHz的V/F傳動器,100ms時間累計脈沖最多為1kHz,在中斷程序中用乘法指令MUL將該計數值乘5,則100ms內最多脈沖累計數為1k×5=5kHz,從而實現顯示值與10倍的真實電壓值相對應,假設經乘法指令運算后計數值為2200Hz,則實際電壓值相應為220V。然后將經程序處理的計數值置入輸出字節QBO,以便通過LED來顯示被測的模擬電壓值。高速計數器和V/F傳感器測量模擬電壓信號的主程序、子程序和中斷程序如下所述。 ????? 主程序 ????? LD???? SM0.1???? //用初次掃描存儲器位(SM0.1)調用執行初始化操作的子程序。由于采用這樣的子程序調用,后續掃描不會再調用這個子程序,從而減少了掃描時間,也提供了一個結構優化的程序。 ???? CALL???? SBR_0???? //調用初始化子程序SBR_0 ???? 子程序 ???? SBR0???? SM0.0???? //啟動子程序0 ???? LD???? SM0.0???? //SM0.0總是1 ???? MOVB???? 16#FC,SMB47???? //設置高速計數器HSC1控制字節:上升沿復位,上升沿啟動,1X計數速率,正向計數,可改變方向,可更新PV(預置值),可CV(當前值),激活HSC1。 ???? HDEF???? 1,0???? //定義高速計數器,選用HSC1工作于模式0 ???? MOVO???? 0,SM048???? //HSC1當前值清0 ???? MOVD???? 16#FFFF,SMD52???? //將預置值裝入SMD52 ???? MOVB???? 100,SMB34???? //設置定時中斷0間隔時間為100ms ???? ATCH???? 0,10???? //中斷連接指令,中斷程序為INT_0,事件號為10 ???? EN???? 1???? //允許所有中斷 ???? HSC???? 1???? //編程計數器SHC1,使設置生效 ???? 中斷程序0 ???? INT???? 0???? //啟動中斷程序 ???? LD???? SM0.0???? //SM0?0總是1 ???? MOVD???? HSC1,AC0???? //把HSC1的計數值存入累加器AC0 ???? MOVD???? AC0,VD100???? //把計數值存入VD100 ???? MOVD???? 0,SM048???? //HSC1當前值清0 ???? MOVB???? 16#C0,SMB47???? //重新設置HSC1控制字節:上升沿復位,上升沿啟動,4X計數速率;反向計數,不改變計數方向,不更新PV,可更新CV,激活HSC1。 ???? HSC???? 1???? //啟動高速計數器HSC1 ???? MUL???? 5,VD100???? //把HSC1的計數值乘以5 ???? MOVB???? VB103,QB0???? //在輸出端Q0?0至Q0.7顯示10倍被測控母電壓值 4? 結語 ??? 以上方法已用于GZS2智能型高頻開關直流電源等控制系統(變電站、發電廠用直流電源),實踐證明,該方法進行模擬電壓信號測量,具有精度高(最高可達5/1000V),抗騷擾性強,運行可靠等優點,具有較大的實用價值和廣泛的應用前景。 參考文獻 [1]? 臺方.可編程控制器應用教程[M].中國水利水電出版社,2001. 作者簡介 ??? 王玉田(1957-),男,碩士,主要從事發電機勵磁技術研究。 ??? 程耀忠(1948-),男,高級工程師,主要從事晶閘管等離子電源、高頻諧振變壓器電源和智能直流電源的研究。 收稿日期:2003-01-08 |
評論
查看更多