【跟著我一起來學習s7-200】43高速計數(shù)器的實際應用
唐琳
發(fā)布于2015-12-18 09:58
1345
0
標簽:S7-200入門連載,PLC
前面以幾個較簡單的程序案例學習了一下高速計數(shù)器的應用,那么今天就做幾個較復雜一些的程序案例,提高一下對高速計數(shù)器的應用。
1、用編碼器測量電機轉(zhuǎn)速與頻率
主程序:
子程序:
中斷程序:
以上的程序中,在主程序中,用I0.7的上升沿調(diào)用高速計數(shù)器初始化子程序,然后做一個高速計數(shù)器初始化的子程序,首先是定義控制字節(jié),送16#F8到SMB37,定義為加計數(shù)更新當前值,這里沒有寫入初始值和預設值,定義的是高速計數(shù)器HSC0和HSC模式1,然后激活高速計數(shù)器,還做了高速計數(shù)器中斷,我們設置定時中斷0的時間間隔為100ms,因為SMB34的定時中斷0為中斷事件號10,我們建立中斷程序0和中斷事件10的中斷連接,并全局允許中斷。
然后再看一下中斷程序,因為是100ms的定時中斷,每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ù),再除以工頻下的轉(zhuǎn)速1488.0,再乘以工頻50.0Hz,那么就得到了編碼器的頻率了。
2、用編碼器測量機床位置,不論機床朝正方向移動或朝反方向移動,都能知道機床的當前位置,有一原點位置感應開關I0.7,當原點位置感應開關接通時,機床的當前位置為0。假設編碼器的分辨率為1024,絲桿的進給量即轉(zhuǎn)1圈移動的位置為10,計算公式是當前值除以分辨率,再乘于進給量。
主程序:
子程序:
以上的程序中,首先做一個高速計數(shù)器初始化的子程序,首先是定義控制字節(jié),送16#F8到SMB37,定義為加計數(shù)更新當前值,這里沒有寫入初始值和預設值,定義的是高速計數(shù)器HSC0和HSC模式1,然后激活高速計數(shù)器。
在主程序中,用I0.7的上升沿調(diào)用高速計數(shù)器初始化子程序。然后是做機床朝正方向移動的控制,做個起保停程序,當I0.3接通時,Q0.0接通并自鎖,在Q0.0接通的上升沿傳送16#B8到SMB37(加計數(shù)不更新當前值),同時激活高速計數(shù)器。然后是做機床朝反方向移動的控制,做個起保停程序,當I0.4接通時,Q0.1接通并自鎖,在Q0.1接通的上升沿傳送16#B0到SMB37(減計數(shù)不更新當前值),同時激活高速計數(shù)器。
后面還做了一個用SM0.1常閉觸點的上升沿來調(diào)用高速計數(shù)器初始化的子程序,并且用SM0.1的常開觸點來驅(qū)動傳送指令傳送VD1000的值到SMD38,用SM0.1的常閉觸點來驅(qū)動傳送指令傳送HC0的值到VD1000,這里是為了實現(xiàn)停電保持功能。PLC從STOP撥向RUN時,在個掃描周期之后會傳送HC0的計數(shù)值到VD1000里面進行存儲,當PLC斷電后再從STOP撥向RUN時,SM0.1接通一個掃描周期,把VD1000存儲的計數(shù)器傳到到SMB38,那么當前值就是存儲在VD1000里面的值。然后再做一個計算,把雙整數(shù)HC0的當前值轉(zhuǎn)換成實數(shù),再進行HC0的當前值除以分辨率1024.0,再乘于進給量10.0,這樣就可以測量出機床位置。
那么這就是一些復雜些的高速計數(shù)器的應用,比較詳細的講了一下,可以理解嗎?
作者:技成培訓網(wǎng)(蔡慧滎)
【本文為原創(chuàng)作品。未經(jīng)同意,盜取必究!】
推薦相關學習視頻:
西門子S7-200PLC從入門到精通
西門子S7-200PLC高速脈沖及定位篇