說說200 smart高速計數器的計數
以前,做過幾次200 PLC的高速計數器應用,連接的是編碼器或者光柵尺之類,深深對它比較穩定的特性記憶猶新。200雖然已離我們漸行漸遠了,而200 smart PL的高速計數器性能或者編程情況又將如何?
今拿了一個第三方的增量型旋轉編碼器來測試,看在200 smart PLC下如何能夠穩定的運行。測試高速計數功能的增量型編碼器電壓24V,1000線,A/B正交;Z相零脈沖輸出型,這對于使用過用PLC作為高速輸入載體的同事,是非常熟悉不過的事情。
200smart PLC本體集成了4個高速計數器(HSC0~HSC3),如果單相輸入時,最高計數頻率達200K hz,這在同類型小型PLC中也算是比較高的了,并且允許輸入NPN;PNP輸出型的高速計數器,所支持的電壓有24V和部分5V的產品。200 smart PLC沿用原200對高速計數器的向導功能方便用戶使用,這對剛剛開始使用者是一個好辦法,把一些所謂比較復雜的控制用向導方式加以簡化。既然是說200 smart PLC的高速計數器,那先需要熟悉高速計數器的工作模式。
200 smart PLC高速計數器的工作模式:
1)單相高速計數器,內部方向控制
2)單相高速計數器,外部方向控制
3)雙向增、減高速計數器,雙路高速脈沖輸入
4)A/B正交高速脈沖計數器
上述4類高速輸入模式的每一類還可以分:
1) 無復位、無啟動輸入
2) 有復位、無啟動輸入
3) 有復位、有啟動輸入
其中,HSC0和HSC2支持8種高速計數器模式(0、1、3、4、6、7、9、10),HSC1和HSC3僅僅支持模式(0)
下面,我用向導的方式編輯一個高速計數器控制程序,根據高速計數器外部輸入元件A/B正交型編碼器,選擇所對應的高速計數器號,打開200 smart 軟件,選擇一款與實際PLC型號一致的cpu,CR60。點擊“工具”按鈕,軟件上部的工具欄中出現“高速計數器”向導,選擇高速計數器模式0或(2),點擊“下一頁”按鈕,選擇高速計數器名稱,這里選擇默認名稱,點擊“下一頁”,這里 選擇模式,因為我的高速輸入為A/B正交型編碼器,只能選擇模式9、10,這里選擇模式9,圖示:A/B正交,無復位輸入(不連接Z相輸入)
點擊“下一頁”,定義高速計數器子程序名稱,這里選擇默認名稱,在“值”選項中先設置“預設值”= 10000,不設置“當前值”,在“選項”的輸入初始計數方向設置為“上”,計數速率選擇1倍頻方式,圖示:
點擊“下一頁”選擇“中斷”,這里選擇“當前值等于預設值(CV = PV)中斷,并產生一個中斷源,圖示:
點擊“下一頁”,不選擇“步”,直接點擊“下一頁”,在“組件”中可以看到之前用向導生成地方子程序和中斷程序,圖示:
點擊“下一頁”,進入“映射”,這個窗口主要是對外部連接的一些定義,輸入端子,其中A相連接I0.0;B相連接I0.1,其它設置在“系統塊”中可以修改,圖示:
點擊“下一頁”,完成高速計數器向導,點擊“生成”,圖示:
向導完成后,點開左側目錄樹下的“程序塊”,系統已經自動映射了一個高速計數器子程序和一個當前值等于預設值的中斷程序,圖示:
用戶僅僅需要調用一個初始化高速計數器子程序及中斷程序就可以使用高速計數器功能了,用SM0.1調用初始化高速計數器子程序,圖示:
我這里先做一個當高速計數器的當前值等于預設值時,在中斷中啟動Q0.0作為高速計數器數據達到時的標記,并在主程序中允許隨意復位,圖示:
主程序復位程序,圖示:
選擇“系統塊”,打開“數字量輸入”,將默認6.4mS的刷新時間修改為3.2uS,并勾選“脈沖捕捉,圖示:
最后,連接外部編碼器接線、通訊連接線后,把程序編譯、下載到cpu中等待測試,借用西門子官方提供的CAD圖紙連接編碼器接線示意,圖示:
啟動PLC運行,為監控高速計數器輸出數據,新建“狀態圖表”,圖示:
當前值等于10000個脈沖數后,立即進入中斷置位了Q0.0,實驗成功。
小結:
無論是那種方式組態高速計數器(向導或直接賦值給相應的控制字、狀態字),其目的就是設置控制字SMB37;初始值SMD38;預設值SMD42;定義高速計數器模式;啟動高速計數器號,開中斷這些基本步驟。高速計數器允許調用若干種類的中斷,參見中斷事件優先級表單,關于各高速計數器中斷的含義及中斷號。設置完成與外部元件對應的參數后(向導中的映射窗口有硬件連接地址),用SM0.1調用初始化子程序即可,如果需要實時調用高速計數器的當前值,用MOV_DW將HC*傳送到一個數據寄存器中,當然這個簡單的傳送與程序的掃描機制關聯著刷新機制,這樣的調用建議在主程序中進行,用戶在實際應用中需要引起注意。
[ 此帖被wwcwwc在2017-06-17 11:39重新編輯 ]