西門子1200的HSC的應用實例

高速計數器尋址

CPU 將每個高速計數器的測量值,存儲在輸入過程映像區內,數據類型為 32 位雙整型有符號數,用戶可以在設備組態中修改這些存儲地址,在程序中可直接訪問這些地址,但由於過程映像區受掃描週期影響,讀取到的值並不是當前時刻的實際值,在一個掃描週期內,此數值不會發生變化,但計數器中的實際值有可能會在一個週期內變化,用戶無法讀到此變化。用戶可通過讀取外設地址的方式,讀取到當前時刻的實際值。以 ID1000 為例,其外設地址為 “ID1000:P”。表1. 所示為高速計數器尋址列表。

西門子1200的HSC的應用實例

中斷功能

S7-1200 在高速計數器中提供了中斷功能,用以處理某些特定條件下觸發的程序

共有 3 種中斷事件:

1.當前值等於預置值

2.使用外部信號復位

3.帶有外部方向控制時,計數方向發生改變

頻率測量

S7-1200 除了提供計數功能外,還提供了頻率測量功能,有 3 種不同的頻率測量週期:1.0 秒,0.1 秒和0.01 秒。

頻率測量週期是這樣定義的:計算並返回新的頻率值的時間間隔。返回的頻率值為上一個測量週期中所有測量值的平均,無論測量週期如何選擇,測量出的頻率值總是以 Hz (每秒脈衝數)為單位。

高速計數器指令塊

高速計數器指令塊,需要使用指定背景數據塊用於存儲參數,如圖1所示。

西門子1200的HSC的應用實例
西門子1200的HSC的應用實例
西門子1200的HSC的應用實例

應用舉例

假設在旋轉機械上有單相增量編碼器作為反饋,接入到S7-1200 CPU,要求在計數25個脈衝時,計數器復位,置位 M0.5,並設定新預置值為50個脈衝,當計滿50個脈衝後復位M0.5,並將預置值再設為25,週而復始執行此功能。

針對此應用,選擇CPU 1214C,高速計數器為:HSC1。模式為:單相計數,內部方向控制,無外部復位。據此,脈衝輸入應接入I0.0,使用HSC1的預置值中斷(CV=RV)功能實現此應用。

組態步驟:

先在設備與組態中,選擇CPU,單擊屬性,激活高速計數器,並設置相關參數。此步驟必須事先執行,1200的高速計數器功能必須要先在硬件組態中激活,才能進行下面的步驟。添加硬件中斷塊,關聯相對應的高速計數器所產生的預置值中斷,在中斷塊中添加高速計數器指令塊,編寫修改預置值程序,設置復位計數器等參數。將程序下載,執行功能。

硬件組態

選中CPU如圖1.所示。

西門子1200的HSC的應用實例

圖2.所示為選擇屬性打開組態界面

西門子1200的HSC的應用實例

激活高速計數功能如圖3

西門子1200的HSC的應用實例

計數類型,計數方向組態如圖4所示

西門子1200的HSC的應用實例

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

西門子1200的HSC的應用實例

預置值中斷組態如圖6

西門子1200的HSC的應用實例
西門子1200的HSC的應用實例

組態添加的硬件中斷,如圖8

西門子1200的HSC的應用實例
西門子1200的HSC的應用實例

至此硬件組態部分已經完成,下面進行程序編寫

程序編寫

將高速計數指令塊添加到硬件中斷中

西門子1200的HSC的應用實例
西門子1200的HSC的應用實例
西門子1200的HSC的應用實例

程序視圖如圖13

西門子1200的HSC的應用實例
西門子1200的HSC的應用實例

1這裡就是圖9中系統指定的高速計數器硬件識別號,這裡填1

注意:應根據CPU屬性裡的硬件標識符設置該值, 如硬件標識符為257,應將指令輸入的 HSC 值從 1 改為 257,如下圖 14 所示:

西門子1200的HSC的應用實例

2 1為使能更新初值;

3 1為使能更新預置值;

4 新的初始值;

5 新的預置值。

至此程序編制部分完成,將完成的組態與程序下載到CPU後即可執行,當前的計數值可在ID1000中讀出 ,關於高速計數器指令塊,若不需要修改硬件組態中的參數,可不需要調用,系統仍然可以計數。


分享到:


相關文章: