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

高速計數器尋址

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

表1.高速計數器尋址

高速計數器號

數據類型

默認地址

HSC1

DINT

ID1000

HSC2

DINT

ID1004

HSC3

DINT

ID1008

HSC4

DINT

ID1012

HSC5

DINT

ID1016

HSC6

DINT

ID1020


中斷功能

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

共有 3 種中斷事件:

1.當前值等於預置值

2.使用外部信號復位

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

頻率測量

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

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

高速計數器指令塊

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


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


圖1.高速計數器指令塊

表2.高速計數器參數說明

HSC (HW_HSC)

高速計數器硬件識別號

DIR (BOOL) TRUE

: 使能新方向

CV (BOOL) TRUE

: 使能新起始值

RV (BOOL) TRUE

: 使能新參考值

PERIODE (BOOL) TRUE

: 使能新頻率測量週期

NEW_DIR (INT)

: 方向選擇1:=正向;-1 :=反向

NEW_CV (DINT)

: 新起始值

NEW_RV (DINT)

: 新參考值

NEW_PERIODE (INT)

: 新頻率測量週期


表3.STATUS 錯誤代碼

錯誤代碼(十六進制)

描述

0

無錯誤

80A1

高速計數器的硬件標識符無效

80B1

計數方向 (NEW_DIR) 無效

80B2

計數值 (NEW_CV) 無效

80B3

參考值 (NEW_RV) 無效

80B4

頻率測量週期 (NEW_PERIOD) 無效

80C0

多次訪問高速計數器


應用舉例

假設在旋轉機械上有單相增量編碼器作為反饋,接入到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的應用實例!


圖1.選中CPU

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


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


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

激活高速計數功能如圖3


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


圖3.激活高速計數功能


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


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


圖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.


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


圖5.初始值及復位組態


預置值中斷組態如圖6


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


圖6. 預置值中斷組態

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


圖7.添加硬件中斷


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


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


圖8.組態添加的硬件中斷

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


圖9.地址分配與硬件識別號


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

程序編寫

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


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


圖10. 打開硬件中斷塊

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


圖11.添加高速計數器

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


圖12. 定義高速計數器背景數據塊

程序視圖如圖13


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


圖13. 程序視圖


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

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


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


圖 14. 硬件標識符


2 1為使能更新初值;

3 1為使能更新預置值;

4 新的初始值;

5 新的預置值。

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


分享到:


相關文章: