S7-200高速計數(shù)器簡單案例(2)
發(fā)布于2018-05-23 17:36
10534
0
標(biāo)簽:
前面以幾個較簡單的程序案例學(xué)習(xí)了一下高速計數(shù)器的應(yīng)用,那么今天就做幾個稍微復(fù)雜一些的程序案例,提高一下對高速計數(shù)器的掌握程度和熟練應(yīng)用。
1、用編碼器測量電機(jī)轉(zhuǎn)速與頻率
主程序:

子程序:


中斷程序:


以上的程序中,在主程序中,用I0.7的上升沿調(diào)用高速計數(shù)器初始化子程序,然后做一個高速計數(shù)器初始化的子程序,首先是定義控制字節(jié),送16#F8到SMB37,定義為加計數(shù)更新當(dāng)前值,這里沒有寫入初始值和預(yù)設(shè)值,定義的是高速計數(shù)器HSC0和HSC模式1,然后激活高速計數(shù)器,還做了高速計數(shù)器中斷,我們設(shè)置定時中斷0的時間間隔為100ms,因?yàn)镾MB34的定時中斷0為中斷事件號10,我們建立中斷程序0和中斷事件10的中斷連接,并全局允許中斷。
然后再看一下中斷程序,因?yàn)槭?00ms的定時中斷,每100ms執(zhí)行一次中斷程序。我們就用100ms計算的脈沖個數(shù),再乘以600化成1分鐘的脈沖個數(shù),再除于分辨率就是等于轉(zhuǎn)速,程序中的500就是編碼器的分辨率。而對于編碼器的頻率的計算,我們有這樣一個公式,頻率/工頻50Hz=轉(zhuǎn)速/工頻下的轉(zhuǎn)速,所以頻率=(轉(zhuǎn)速/工頻下的轉(zhuǎn)速)*工頻50Hz,這里我們先把雙整數(shù)的轉(zhuǎn)速轉(zhuǎn)換成實(shí)數(shù),再除以工頻下的轉(zhuǎn)速1488.0,再乘以工頻50.0Hz,那么就得到了編碼器的頻率了。
2、用編碼器測量機(jī)床位置,不論機(jī)床朝正方向移動或朝反方向移動,都能知道機(jī)床的當(dāng)前位置,有一原點(diǎn)位置感應(yīng)開關(guān)I0.7,當(dāng)原點(diǎn)位置感應(yīng)開關(guān)接通時,機(jī)床的當(dāng)前位置為0。假設(shè)編碼器的分辨率為1024,絲桿的進(jìn)給量即轉(zhuǎn)1圈移動的位置為10,計算公式是當(dāng)前值除以分辨率,再乘于進(jìn)給量)
主程序:





子程序:

以上的程序中,首先做一個高速計數(shù)器初始化的子程序,首先是定義控制字節(jié),送16#F8到SMB37,定義為加計數(shù)更新當(dāng)前值,這里沒有寫入初始值和預(yù)設(shè)值,定義的是高速計數(shù)器HSC0和HSC模式1,然后激活高速計數(shù)器。
在主程序中,用I0.7的上升沿調(diào)用高速計數(shù)器初始化子程序。然后是做機(jī)床朝正方向移動的控制,做個起保停程序,當(dāng)I0.3接通時,Q0.0接通并自鎖,在Q0.0接通的上升沿傳送16#B8到SMB37(加計數(shù)不更新當(dāng)前值),同時激活高速計數(shù)器。然后是做機(jī)床朝反方向移動的控制,做個起保停程序,當(dāng)I0.4接通時,Q0.1接通并自鎖,在Q0.1接通的上升沿傳送16#B0到SMB37(減計數(shù)不更新當(dāng)前值),同時激活高速計數(shù)器。
后面還做了一個用SM0.1常閉觸點(diǎn)的上升沿來調(diào)用高速計數(shù)器初始化的子程序,并且用SM0.1的常開觸點(diǎn)來驅(qū)動傳送指令傳送VD1000的值到SMD38,用SM0.1的常閉觸點(diǎn)來驅(qū)動傳送指令傳送HC0的值到VD1000,這里是為了實(shí)現(xiàn)停電保持功能。PLC從STOP撥向RUN時,在個掃描周期之后會傳送HC0的計數(shù)值到VD1000里面進(jìn)行存儲,當(dāng)PLC斷電后再從STOP撥向RUN時,SM0.1接通一個掃描周期,把VD1000存儲的計數(shù)器傳到到SMB38,那么當(dāng)前值就是存儲在VD1000里面的值。然后再做一個計算,把雙整數(shù)HC0的當(dāng)前值轉(zhuǎn)換成實(shí)數(shù),再進(jìn)行HC0的當(dāng)前值除以分辨率1024.0,再乘于進(jìn)給量10.0,這樣就可以測量出機(jī)床位置。
那么以上就是一些簡單的高速計數(shù)器的應(yīng)用,比較詳細(xì)的講了一下,希望能夠?qū)Υ蠹矣兴鶐椭?/span>
原創(chuàng): 蔡慧滎
本文為原創(chuàng)內(nèi)容,如需轉(zhuǎn)載請注明出處,違者必究!