用PLC測轉速介紹
關于PLC,我是個初學者,今天在此對自己前一段時間的學習做個總結,以備后用。由于本人水平有限,本文一定還存在不少錯誤和不妥之處,敬請大家批評指正。
本文所有程序,均在Step7Template.mwp中編寫,CPU類型選西門子 S7—200系列226 CN。
先說程序,測低速(每分鐘1000轉以下) : LD I0.0
LD M20.1
CTU C0,+5000 //設定增計數(shù)器上限
LD SM0.0
A M20.0
TON T37,+30 //立即接通,延時三秒斷開
LD SM0.0
O M20.0#p#分頁標題#e#
AN T37
= M20.0 //設定T37定時器復位信號
LD M20.0
LD M20.1
CTU C1,+20 //設定增計數(shù)器C1上限
LD C1
MOVW C0,VW200
= M20.2
LD M20.2
本文所有程序,均在Step7Template.mwp中編寫,CPU類型選西門子 S7—200系列226 CN。
先說程序,測低速(每分鐘1000轉以下) : LD I0.0
LD M20.1
CTU C0,+5000 //設定增計數(shù)器上限
LD SM0.0
A M20.0
TON T37,+30 //立即接通,延時三秒斷開
LD SM0.0
O M20.0#p#分頁標題#e#
AN T37
= M20.0 //設定T37定時器復位信號
LD M20.0
LD M20.1
CTU C1,+20 //設定增計數(shù)器C1上限
LD C1
MOVW C0,VW200
= M20.2
LD M20.2
= M20.1 //設定增計數(shù)器C1的復位信號
外圍電路下面介紹,先講程序。由I0.0作輸入口,T37延時三秒后給C1一個信號,C1計1,然后T37被復位,再延時,3秒后C1計2,…
直到C1計到20。20個三秒就是一分鐘 ,期間I0.0口的脈沖信號由C0計數(shù)器計數(shù),計滿一分鐘就把結果移到VW200中。脈沖信號由外圍電路得到。
以上程序能測一千以下的轉速,實驗時上限是一千四百多吧。由于該程序用的是低速計數(shù)器,轉速較高時,受PLC時鐘周期影響,在一分鐘時轉速還未記好,C0就被清零,所以會有上限。接下來我們用PLC內(nèi)部不受時鐘周期影響的高速計數(shù)器來測高速(一千轉以上):
LD SM0.1
CALL SBR_0 //調(diào)用高速計數(shù)器初始化子程序
LD SM0.0
A M20.0
TON T37,+100 //設定計時器值,延時10秒
LD SM0.0
O M20.0
外圍電路下面介紹,先講程序。由I0.0作輸入口,T37延時三秒后給C1一個信號,C1計1,然后T37被復位,再延時,3秒后C1計2,…
直到C1計到20。20個三秒就是一分鐘 ,期間I0.0口的脈沖信號由C0計數(shù)器計數(shù),計滿一分鐘就把結果移到VW200中。脈沖信號由外圍電路得到。
以上程序能測一千以下的轉速,實驗時上限是一千四百多吧。由于該程序用的是低速計數(shù)器,轉速較高時,受PLC時鐘周期影響,在一分鐘時轉速還未記好,C0就被清零,所以會有上限。接下來我們用PLC內(nèi)部不受時鐘周期影響的高速計數(shù)器來測高速(一千轉以上):
LD SM0.1
CALL SBR_0 //調(diào)用高速計數(shù)器初始化子程序
LD SM0.0
A M20.0
TON T37,+100 //設定計時器值,延時10秒
LD SM0.0
O M20.0
AN T37
= M20.0 //立即接通延時十秒斷開
LD T37
MOVD HC0, VD100 //I0.0為高速計數(shù)器HC0輸入口,計數(shù)結果移入VD100
MOVD VD100, VD200
MUL +6, VD200 //計數(shù)結果乘以6,放入VD200
LD T37
CALL SBR_0 //T37計時到,調(diào)用高速計數(shù)器初始化子程序
SBR_0 //高速計數(shù)器初始化子程序#p#分頁標題#e#
LD SM0.0
MOVB 16#F8, SMB37 //設置控制位:增計數(shù);已使能;
MOVD +0, SMD38 //裝載 CV
MOVD +0, SMD42 //裝載 PV
HDEF 0, 0
HSC 0
以上程序測速范圍為1000轉以上,實驗時測得最高為2500+,因實驗條件有限,上限未知。有人會有疑問:你怎么采用的是測10秒,然后將計數(shù)結果乘以6當做一分鐘的轉速,而不直接測一分鐘的轉速呢? 因為轉速結果最后要用數(shù)碼管顯示出來,對觀察者來說,10秒以后顯示與一分鐘后顯示相比,前者更好一些。最后我們采用的是6乘以10的策略。
最后來說說外圍電路吧。外圍電路把轉速轉換成脈沖信號輸入PLC,上面兩段程序用的都是I0.0口。信號的轉換和采集用霍爾傳感器,
接法如圖:VCC接24V,GND接電源負極,A接信號輸入端I0.0,A端和24V間接電阻。接好后將霍爾元件平的一面朝被測物體固定好,如一個輪子,在輪子面上霍爾對應位置安裝霍爾磁體。測速原理:輪子每轉一圈,磁體和霍爾元件接觸一次(其實是接近),它們接觸時帶來A端電壓的降低,由此給PLC一個脈沖信號。磁體和霍爾之間間距3至5mm。安裝時注意磁體的正反面。
好了,測轉速就先說這么多。經(jīng)過以上這些,測得的數(shù)據(jù)只是放在PLC的內(nèi)存里,我們可以在軟件里監(jiān)測PLC運行情況,看到這些數(shù)據(jù)。是不是有點麻煩,有沒有更好的方法能看到這些數(shù)據(jù)?當然,可以用LED數(shù)碼管來把數(shù)據(jù)顯示出來。
= M20.0 //立即接通延時十秒斷開
LD T37
MOVD HC0, VD100 //I0.0為高速計數(shù)器HC0輸入口,計數(shù)結果移入VD100
MOVD VD100, VD200
MUL +6, VD200 //計數(shù)結果乘以6,放入VD200
LD T37
CALL SBR_0 //T37計時到,調(diào)用高速計數(shù)器初始化子程序
SBR_0 //高速計數(shù)器初始化子程序#p#分頁標題#e#
LD SM0.0
MOVB 16#F8, SMB37 //設置控制位:增計數(shù);已使能;
MOVD +0, SMD38 //裝載 CV
MOVD +0, SMD42 //裝載 PV
HDEF 0, 0
HSC 0
以上程序測速范圍為1000轉以上,實驗時測得最高為2500+,因實驗條件有限,上限未知。有人會有疑問:你怎么采用的是測10秒,然后將計數(shù)結果乘以6當做一分鐘的轉速,而不直接測一分鐘的轉速呢? 因為轉速結果最后要用數(shù)碼管顯示出來,對觀察者來說,10秒以后顯示與一分鐘后顯示相比,前者更好一些。最后我們采用的是6乘以10的策略。
最后來說說外圍電路吧。外圍電路把轉速轉換成脈沖信號輸入PLC,上面兩段程序用的都是I0.0口。信號的轉換和采集用霍爾傳感器,
接法如圖:VCC接24V,GND接電源負極,A接信號輸入端I0.0,A端和24V間接電阻。接好后將霍爾元件平的一面朝被測物體固定好,如一個輪子,在輪子面上霍爾對應位置安裝霍爾磁體。測速原理:輪子每轉一圈,磁體和霍爾元件接觸一次(其實是接近),它們接觸時帶來A端電壓的降低,由此給PLC一個脈沖信號。磁體和霍爾之間間距3至5mm。安裝時注意磁體的正反面。
好了,測轉速就先說這么多。經(jīng)過以上這些,測得的數(shù)據(jù)只是放在PLC的內(nèi)存里,我們可以在軟件里監(jiān)測PLC運行情況,看到這些數(shù)據(jù)。是不是有點麻煩,有沒有更好的方法能看到這些數(shù)據(jù)?當然,可以用LED數(shù)碼管來把數(shù)據(jù)顯示出來。
本文標簽:用PLC測轉速介紹
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報酬未能及時支付,在此深表歉意,請《用PLC測轉速介紹》相關權利人與機電之家網(wǎng)取得聯(lián)系。










