熱情、耐心、真誠的服務與支持
1 引言
實際工藝控制中經常會碰到高速的脈沖信號,比如增量型編碼器,一些流量計等,要正確對這些高速的脈沖信號計數和處理,需要用到PLC的高速計數器功能。高速計數器可對標準計數器無法控制的高速事件進行計數。
2 高速計數器數量及性能
·緊湊型型號共支持四個 HSC 設備(HSC0、 HSC1、 HSC2 和 HSC3)。
·SR 和 ST 型號(固件版本V2.3以上)共支持六個 HSC 設備(HSC0、 HSC1、 HSC2、 HSC3、 HSC4 和HSC5)。
標準CPU
SR20/ST20
SR30/ST30
SR40/ST40
SR60/ST60
高速計數器
6
6
6
6
單相/雙相
4 @
200 KHz +
5 @
200 KHz +
4 @
200 KHz +
4 @
200 KHz +
2 @30 KHz
1
@30 KHz
2
@30 KHz
2
@30 KHz
A/B相
2 @
100 KHz+ 2@20Kz
3 @
100 KHz+ 1@20Kz
2 @
100 KHz+ 2@20Kz
2 @
100 KHz+ 2@20Kz
經濟CPU
CR20S
CR30S
CR40S
CR60S
高速計數器
4
4
4
4
單相/雙相
4
@100 KHz
4
@100 KHz
4
@100 KHz
4
@100 KHz
A/B相
2 @
50 KHz
2 @
50 KHz
2 @
50 KHz
2 @
50 KHz
3 高速計數器的分配和功能
HSC0、 HSC2、 HSC4 和 HSC5 支持八種計數模式(模式 0、 1、 3、 4、 6、 7、 9 和10)
HSC1 和 HSC3 只支持一種計數模式(模式 0)
高速計數器輸入連接(時鐘、方向和復位)必須使用 CPU 的集成輸入通道,信號板或擴展模塊上的輸入通道不能用于高速計數器
所有高速計數器輸入均連接至內部輸入濾波電路。 UN-200SMART 的默認輸入濾波設置為 6.4 ms,這樣便將最大計數速率限定為 78 Hz。如需以更高頻率計數,必須更改濾波器設置。見下圖:
已用作高速計數的輸入點不能用于其他用途,例如HSC0 的所有計數模式始終使用 I0.0,因此使用HSC0時,無法將I0.0用于其它用途。
下表所示為高速計數器可檢測到的各種輸入濾波組態的最大輸入頻率:
4 輸入邏輯電平有效電壓范圍
5 高速計數器尋址
下面以HSC0(高速計數器0)的控制字為例介紹特殊功能寄存器的每個位的實際作用。
6 高速計數器的編程
要使用高速計數器,程序必須執行以下基本任務:
①定義計數器和模式(對每個計數器執行一次 HDEF 指令)
②在 SM 存儲器中設置控制字節
③在 SM 存儲器中設置當前值(起始值)
④在 SM 存儲器中設置預設值(目標值)
⑤分配并啟用相應的中斷例程
⑥激活高速計數器(執行 HSC 指令)
指令介紹:
HDEF,高速計數器定義指令。定義高速計數器的模式。
HSC,高速計數器指令。根據高速計數器的特殊存儲器位的狀態組態和控制高速計數器。
以上步驟可能較為麻煩且容易出錯,也可以使用高速計數器向導簡化編程任務。向導設置的過程就是對控制字節哪些地址賦值的過程。
完成向導設置后會自動生成子程序,子程序的內容就是上面所說的基本任務的創建。
1) 菜單欄選擇工具》向導》高速計數器
2) 選擇高速計數器編號
3) 定義高速計數器的名稱
4) 選擇模式
5) 定義高速計數器的計數方向等特性,這里的設定將會影響特殊寄存器里的控制字節的默認值。
6)配置中斷
一個高速計數器最多可以有 3 個中斷事件,在白色方框中填寫中斷服務程序名稱或者使用默認名稱。
當前值等于預置值時產生的中斷,通過向導,可以在該中斷的服務程序中重新設置高速計數器的參數,如預置值、當前值。一個這樣的過程稱為‘一步‘,最多可設置 10 步。
高速計數中相關的中斷事件如下:
7) 完成向導
8) 調用子程序
HSC_INIT 為初始化子程序,需要主程序塊中使用 SM0.1 或一條邊沿觸發指令調用一次此子程序后高速計數器才能正常工作。
向導生成的中斷服務程序及子程序都未上鎖,可以根據自己的控制需要進行修改。
7 指令介紹
8 常見問題
8.1 如何斷電后保持高速計數器的當前值
UN 200 SMART的斷電數據保持不支持高速計數器的范圍設置,因此高速計數器的當前值在CPU每次斷電后都會復位為數值0。要使高速計數器的當前值在CPU斷電重啟后依然保持,需要通過編程來實現。思路:首先,在除了第一個掃描周期之外的其它周期,需要將高速計數器的當前值傳送到V 區寄存器中。然后,在上電的第一周期將V區寄存器存儲的數值傳送到高速計數器的當前值SMD中,保證高速計數器以V區的數值為初始值開始計數,并初始化高速計數器。最后,在系統塊的斷電數據保持處設置V區寄存器為斷電保持區域。
以高速計數器0為例,編程如下:
8.2 高速計數器如何復位到0?
方法一:選用帶外部復位模式的高速計數器,當復位信號有效時,高速計數器復位為0。
方法二:內部程序復位,將高速計數器的更新當前值控制字節相關位置1,并把0
賦給特殊寄存器SMD38,執行HSC指令后,高速計數器復位為0。