題目:用S7-200 CPU 214的高速計數器HSC累計來自模擬量/頻率轉換器(A/F)的脈沖來模擬電壓值
***概述***
本例說明了如何利用CPU 214的高速計數器HSC及頻率轉換器來計算模擬電壓。首先頻率轉換器將輸入電壓(0-10V)轉換為矩形脈沖信號(0-2000Hz),再將此信號送入CPU 214高速記數器的輸入端并累計脈沖數。當預置的間隔時間到后,通過累計脈沖數,計算出被測模擬電壓值。
硬件要求
需要使用如下設備:
1臺 CPU214 AC/AD/RLY或DC/DC/DC
1臺 電壓/頻率轉換器 SFW01(Trankner Company)
(地址:Engineering Office Trankner, Industrial Area North PF38,09618 Brand-Erbisdort,
Germany)
計數參數: 供電電壓 24V DC
輸入 0-10v DC
輸出 方波,GND-24V
測量范圍 0-10V 0-2000Hz
比率 200Hz/V (線性)
***程序結構***
主程序 在第一個掃描周期調用子程序SBR0
SBR0 高速計數器和定時中斷的初始化
INT0 對高速計數器求值的定時中斷程序
***程序和注釋***
主程序在第一個掃描周期調用初始化程序SBR0,僅在第一個掃描周期標志位SM0.1=1由子程序實現初始化。首先,把高速計數器HSC1的控制字節SMB47置為16進制數'FC'其含義是:正方向計數,可更新預置值(PV),可更新當前值(CV),激活HSC1然后,用指令'HDEF'把高速計數器HSC1置成工作模式0,即沒有復位或起始輸入,也沒有外部的方向選擇。當前值SMD48復位為0預置值SMD52置為FFFF(十六進制).定時中斷0間隔時間SMB34置為100ms,中斷程序0分配給定時中斷0(中斷事件10),并允許中斷。用指令HSC1啟動高速計數器。每100ms調用一次中斷程序0,讀出高速計數器的數值后將其置零。通過HSC1計數值及變換關系(0-2kHz對應于0-10V)來求被測的模擬電壓值。本例中,計數值僅除以2,然后置入輸出字節QB0,以便通過LED來顯示被測的電壓值。顯示值與10倍真實電壓值相對應。例如,計數值為200除以2是100,那么被測的模擬電壓值就是10.0V。因為計數器100ms內共有200個計數脈沖,這正與2000Hz-10V相對應, 假設計數值為104,則實際電壓值應為5.2V注意:定時中斷間隔時間可在5-255ms的范圍內變化,然而通過設立一個標志,可根據需要來延長高速計數器的求值和復位時間,這樣就有更長的掃描間隔,以便提高精確度,同時也會帶來更長的更新時間。例如,定時中斷設為100ms,每調用一次,標志增加1,僅當標志滿10時,才對高速計數器求值和復位。也就是說,10V電壓可接收的最大脈沖為2000,這樣,求值精確到5/1000V,即精確度是上例的10倍,但同時速度也減慢了10倍。
S7-200使用高速計數器累計脈沖來模擬電壓值例程.rar
(4.52 KB, 售價: 10 E幣)
2020-1-19 11:11 上傳
點擊文件名下載附件
售價: 10 E幣 [記錄]
[ 購買]
程序內容主要在SBR_0和INT_0這2個塊里
2.png (25.54 KB)
下載附件
2020-8-27 20:52 上傳
3.png (15.1 KB)
下載附件
2020-8-27 20:52 上傳
1.jpg (44.23 KB)
下載附件
2020-1-19 11:12 上傳
2.jpg (36.58 KB)
下載附件
2020-1-19 11:12 上傳
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業交易、轉載等行為,該內容只為學習所提供,使用后發生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|