高速計數器尋址
CPU 將每個高速計數器的測量值,存儲在輸入過程映像區內,數據類型為 32 位雙整型有符號數,用戶可以在設備組態中修改這些存儲地址,在程序中可直接訪問這些地址,但由於過程映像區受掃描週期影響,讀取到的值並不是當前時刻的實際值,在一個掃描週期內,此數值不會發生變化,但計數器中的實際值有可能會在一個週期內變化,用戶無法讀到此變化。用戶可通過讀取外設地址的方式,讀取到當前時刻的實際值。以 ID1000 為例,其外設地址為 “ID1000:P”。表1. 所示為高速計數器尋址列表。
中斷功能
S7-1200 在高速計數器中提供了中斷功能,用以處理某些特定條件下觸發的程序
共有 3 種中斷事件:
1.當前值等於預置值
2.使用外部信號復位
3.帶有外部方向控制時,計數方向發生改變
頻率測量
S7-1200 除了提供計數功能外,還提供了頻率測量功能,有 3 種不同的頻率測量週期:1.0 秒,0.1 秒和0.01 秒。
頻率測量週期是這樣定義的:計算並返回新的頻率值的時間間隔。返回的頻率值為上一個測量週期中所有測量值的平均,無論測量週期如何選擇,測量出的頻率值總是以 Hz (每秒脈衝數)為單位。
高速計數器指令塊
高速計數器指令塊,需要使用指定背景數據塊用於存儲參數,如圖1所示。
應用舉例
假設在旋轉機械上有單相增量編碼器作為反饋,接入到S7-1200 CPU,要求在計數25個脈衝時,計數器復位,置位 M0.5,並設定新預置值為50個脈衝,當計滿50個脈衝後復位M0.5,並將預置值再設為25,週而復始執行此功能。
針對此應用,選擇CPU 1214C,高速計數器為:HSC1。模式為:單相計數,內部方向控制,無外部復位。據此,脈衝輸入應接入I0.0,使用HSC1的預置值中斷(CV=RV)功能實現此應用。
組態步驟:
先在設備與組態中,選擇CPU,單擊屬性,激活高速計數器,並設置相關參數。此步驟必須事先執行,1200的高速計數器功能必須要先在硬件組態中激活,才能進行下面的步驟。添加硬件中斷塊,關聯相對應的高速計數器所產生的預置值中斷,在中斷塊中添加高速計數器指令塊,編寫修改預置值程序,設置復位計數器等參數。將程序下載,執行功能。
硬件組態
選中CPU如圖1.所示。
圖2.所示為選擇屬性打開組態界面
激活高速計數功能如圖3
計數類型,計數方向組態如圖4所示
1 此處計數類型分為3種,Axis of motion(運動軸),Frequency(頻率測量),Counting(計數)。這裡選擇Counting
2 模式分為4種:Single phase(單相), Two phase(雙相), AB Quadrature 1X(A/B相正交1倍速), ABQuadrature 4X(A/B相正交4倍速)。這裡擇Single phase
3 輸入源,這裡使用的為CPU集成輸入點。
4 計數方向選擇,這裡選用User program (internal direction control)(內部方向控制)
5初始計數方向。這裡選擇Count up(向上計數)
初始值及復位組態如圖5
預置值中斷組態如圖6
組態添加的硬件中斷,如圖8
至此硬件組態部分已經完成,下面進行程序編寫
程序編寫
將高速計數指令塊添加到硬件中斷中
程序視圖如圖13
1這裡就是圖9中系統指定的高速計數器硬件識別號,這裡填1
注意:應根據CPU屬性裡的硬件標識符設置該值, 如硬件標識符為257,應將指令輸入的 HSC 值從 1 改為 257,如下圖 14 所示:
2 1為使能更新初值;
3 1為使能更新預置值;
4 新的初始值;
5 新的預置值。
至此程序編制部分完成,將完成的組態與程序下載到CPU後即可執行,當前的計數值可在ID1000中讀出 ,關於高速計數器指令塊,若不需要修改硬件組態中的參數,可不需要調用,系統仍然可以計數。