https://m.toutiao.com/is/UqbmPbB/?=
一、S7 - 200 SMART 高速計數器介紹
在200 SMART全系列的CPU中,均可以接入高速計數器,可以通過高速計數器實現距離、轉速、瞬時流量和扭矩等計算,每個高速計數器都有特定的輸入端子,具體可參考幫助文件,高速計數器的輸入端子說明如圖1所示。
圖1 高速計數器輸入端子
高速計數器的控制字節如圖2所示。
圖2 高速計數器控制字節
二、程序編寫
編寫高速計數器程序前,一定要記著將需要接入的端子在軟件里把端子采集時間精度改成0.2微秒,并且在脈沖捕捉處打勾,本次測試使用AB雙相輸入,所有需要用到I0.0和I0.1。如圖3所示。
圖3 端子采集精度
本文詳細介紹使用高速計數器進行電機轉速測量,主要的設備有:西門子200 SMART ST-20、易驅變頻器、220V三相電機、編碼器。
首先使用向導,將HSC0進行配置,根據實際情況配置即可,其中預設值寫一個很大的數據,隨便寫,當前值填0。如圖4所示。
圖4 高速計數器配置向導
編程時首先對高速計數器進行定義以及初始化,新建一副子程序,命名為“初始化HSC0”,具體的程序如圖5所示。
圖5 “初始化HSC0”子程序
首先初始化HSC0高數計數器,使用16#FC定義高數計數器,其中16#FC代表的意思為:選擇模式為1X計數模式,啟用計數器,寫入新的當前值,寫入新的預設值,將HSC的初始方向設置為向上計數,將復位輸入設置為高電平有效。SMB37為高速計數器HSC0的控制字節,具體控制字節的說明見上文圖2。
將高速計數器HSC0的初始值設置為0,傳送到雙字SMD38中。
定義高數計數器的模式,0號計數器的10號模式,將 HSC0 組態為具有復位輸入的 AB 正交相(模式 10)。
組態HSC0高速計數器,使其激活。
至此,子程序高速計數器HSC0初始化程序已經編寫完成,下一步開始進行調用及運算。
編寫主程序的第一步當然是對子程序進行調用,使用自帶的SM0.1進行調用“初始化HSC0”子程序,如圖6所示。
圖6 調用子程序
建立一個程序啟動和停止的觸點按鈕,并且加入一個定時器,設定時間為3秒,作用是每3秒進行一次轉速測量(根據測試這里可以改成3毫秒,但是相應的每分鐘脈沖數要減小10倍),程序如圖7所示。
圖7 啟動電機
本段程序是將采集到的HSC0的脈沖值經過計算得出最終的轉速。具體的思路為,將計數器的當前值使用雙字傳送進行讀取,將計算值放入VD100中,VD100是電機轉動3秒的脈沖數;將3秒的脈沖數乘以20得出電機轉動1分鐘的脈沖數,放入VD104中;將1分鐘的脈沖數除以編碼器每轉動1圈所需的脈沖數(此編碼器為600,采集周期減小10倍,這里也需要跟著減小10倍),得出電機1分鐘轉的圈數,將計算值放入VD108中;同時計數器在每3秒鐘進行一次清零,為了確保計數器的準確性,每3秒調用一次子程序;程序如圖8所示。
圖8 轉速計算
三、測試結果
測試結果如圖9所示,電機官方給的最大轉速是1400轉/min,實際情況是當頻率為50Hz時,測得的轉速為1342-1348轉/min之間,同時由于電機加了皮帶和編碼器(如圖10所示),扭矩會增加,轉速相應的會減少,所示測試得到的轉速數據還是比較準確的。而且當采集速度設置成3毫秒時,轉速變換檢測會非常快。
圖9 測試結果
圖10 頻率50Hz
不足之處還望海涵,請各界大佬多多批評指教!
僅供參考!