<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 用PLC高速計數(shù)器和電壓/頻率傳感器測量模擬電壓信號的方法

          用PLC高速計數(shù)器和電壓/頻率傳感器測量模擬電壓信號的方法

          作者: 時間:2011-02-20 來源:網(wǎng)絡(luò) 收藏

          摘要:介紹了用PLC高速計數(shù)器和電壓/頻率傳感器累計測量脈沖的原理,闡明了應(yīng)用中需注意的事項,通過程序?qū)嵗攲嵔榻B了測量模擬電壓信號的方法。

          本文引用地址:http://www.ex-cimer.com/article/156689.htm

          關(guān)鍵詞:可編程控制器;高速計數(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

          中圖分類號:TM933 文獻標(biāo)識碼:B 文章編號:0219-2713(2003)04-0137-03

           

          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傳感器測量模擬電壓信號的主程序、子程序和中斷程序如下所述。

          模擬信號相關(guān)文章:什么是模擬信號


          西門子plc相關(guān)文章:西門子plc視頻教程


          傳感器相關(guān)文章:傳感器工作原理


          塵埃粒子計數(shù)器相關(guān)文章:塵埃粒子計數(shù)器原理
          脈沖點火器相關(guān)文章:脈沖點火器原理

          上一頁 1 2 下一頁

          關(guān)鍵詞:

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();