西門子PLC高速計數(shù)器的模擬控制和測速控制
饒等
發(fā)布于2021-07-26 10:55
44
1
標(biāo)簽:西門子PLC,PLC案例,新手攻略
【免費下載】PLC軟件下載_PLC軟件安裝教程_PLC手冊下載_PLC案例下載!
【免費學(xué)習(xí)】 變頻器精品課程_西門子PLC精品教程_三菱PLC精品教程!
在上一篇文章中給大家介紹了西門子S7-200 PLC的高速計數(shù)器的基本使用方法(沒看過的朋友記得翻回去看一下哦,不然程序有可能會看不明白),而一般來說高速計數(shù)器常用于模擬控制和測速控制,下面就分別講一下這兩個控制例子的程序設(shè)計和編程思路。
一、高速計數(shù)器的模擬控制
高速計數(shù)器的模擬控制是用S7-200 PLC的高速計數(shù)器來累計來自模擬量/頻率轉(zhuǎn)換器(A/F)的脈沖來模擬電壓值的。假設(shè)頻率轉(zhuǎn)換器將輸入電壓(0-10V)轉(zhuǎn)換為矩形脈沖信號(0-2000Hz),再將此信號送入CPU 高速記數(shù)器的輸入端并累計脈沖數(shù)。當(dāng)預(yù)置的間隔時間到后,通過累計脈沖數(shù),計算出被測模擬電壓值。
主程序:
主程序中在第一個掃描周期調(diào)用初始化程序SBR0,僅在第一個掃描周期標(biāo)志位SM0.1=ON時由子程序?qū)崿F(xiàn)初始化。
子程序:
在子程序中,首先把高速計數(shù)器HSC1的控制字節(jié)SMB47置為16#FC,其含義是:加計數(shù),可更新預(yù)置值(PV),可更新當(dāng)前值(CV),用指令HDEF把高速計數(shù)器HSC1置成工作模式0,即沒有復(fù)位或起始輸入,也沒有外部的方向選擇。當(dāng)前值SMD48復(fù)位為0,預(yù)置值SMD52置為FFFF(十六進制),定時中斷0間隔時間SMB34置為100ms,用ATCH指令將中斷程序0分配給中斷事件10,即定時中斷0,并用ENI指令允許中斷,用指令HSC啟動高速計數(shù)器HSC1。
中斷程序:
因為定時中斷0間隔時間SMB34置為100ms,所以每100ms調(diào)用一次中斷程序0,讀出高速計數(shù)器的數(shù)值存到VD100,后將其置零。案例是通過頻率轉(zhuǎn)換器將輸入電壓(0-10V)轉(zhuǎn)換為矩形脈沖信號(0-2000Hz),通過HSC1的計數(shù)值及變換關(guān)系(0-2000kHz對應(yīng)于0-10V)來求被測的模擬電壓值。SHR-DW為右移指令,將VD100的二進制位右移一位,相當(dāng)于是除于2,也就是將VD100的脈沖數(shù)除以2,然后將低位的VB103輸出到QB0,以便通過Q0.0~Q0.7的LED來顯示被測的電壓值,顯示值與10倍真實電壓值相對應(yīng)。
關(guān)于計算部分,我們舉例計算一下,假如計數(shù)值為200,200除以2是100,那么被測的模擬電壓值就是10.0V。因為計數(shù)器100ms內(nèi)共有200個計數(shù)脈沖,這正好與2000Hz-10V相對應(yīng), 假設(shè)計數(shù)值為104,則實際電壓值應(yīng)為5.2V。注意:定時中斷間隔時間可在5-255ms的范圍內(nèi)變化,我們可以通過設(shè)立一個標(biāo)志,可根據(jù)需要來延長高速計數(shù)器的求值和復(fù)位時間,這樣就有更長的掃描間隔,以便提高精確度,同時也會帶來更長的更新時間。
二、高速計數(shù)器的測速控制
高速計數(shù)器的測速控制是利用高速計數(shù)器來實現(xiàn)測量轉(zhuǎn)速,比如說測電機的轉(zhuǎn)速。其中會利用到脈沖數(shù)和電機轉(zhuǎn)速的計算。設(shè)計思路是主程序中調(diào)用子程序進行初始化,子程序中做高速計數(shù)器及中斷的定義,中斷程序中做轉(zhuǎn)化計算部分,下面我們詳細(xì)看一下程序。
主程序:
在PLC上電運行的第一個掃描周期執(zhí)行一次子程序,用于程序運行的初始化設(shè)置。
子程序:
在子程序中,首先對VB0和VD0進行清零,VB0用于記錄累加數(shù)據(jù)的次數(shù),VD0累加數(shù)據(jù)的中間變量。接著設(shè)置高速計數(shù)器HSC0的控制字節(jié)為16#F8,即更新當(dāng)前值,加計數(shù),用指令HDEF把高速計數(shù)器HSC0置成工作模式0,為單相計數(shù)輸入,沒有外部控制功能。當(dāng)前值SMD38復(fù)位為0,定時中斷0間隔時間SMB34置為50ms,用ATCH指令將中斷程序0分配給中斷事件10,即定時中斷0,并用ENI指令允許中斷,用指令HSC啟動高速計數(shù)器HSC0。
中斷程序:
中斷程序是每隔50ms掃描刷新一次,采用加法指令將高速計數(shù)器HC0的當(dāng)前計數(shù)值和累加數(shù)據(jù)變量VD0相加一次,用于數(shù)據(jù)的累加,同時用遞增指令對VB9進行加1,即記錄累加的次數(shù),這里再執(zhí)行一次HSC指令是為了將初始值寄存器SMD38再次寫入高速計數(shù)器HC0,使當(dāng)前值為0,以便于下一次的定時采樣。
當(dāng)累加數(shù)據(jù)的次數(shù)等于32次時,執(zhí)行運算指令,除法指令除以32是計算出累計脈沖數(shù)的平均值,乘以100是將平均值轉(zhuǎn)化成以轉(zhuǎn)/分單位的數(shù)據(jù),并存到VD4中,用DI_I指令是將雙整數(shù)轉(zhuǎn)換成整數(shù),存儲到VW10中,VW10就是電機的轉(zhuǎn)速,后面的傳送指令是對VB0和VD0進行清零,用于下一次重新開始累加。
以上就是高速計數(shù)器的模擬控制和測速控制,這幾個控制可能在實際應(yīng)用中會應(yīng)用的較多,還是有必須掌握一下的哦,你學(xué)廢了嗎?
(技成培訓(xùn)網(wǎng)原創(chuàng),作者:蔡慧滎,未經(jīng)授權(quán)不得轉(zhuǎn)載,違者必究)
電工精品教程
立即掃碼免費學(xué)習(xí)
|
電工題庫寶典
立即掃碼免費下載
|
超全PLC學(xué)習(xí)資料包
立即掃碼免費下載
|
故障查詢小程序
立即掃碼免費使用
|