1 引言
實際工(gōng)藝控制中經常會(huì)碰到(dào)高(gāo)速的脈沖信号,比如增量型編碼器,一些(xiē)流量計(jì)等,要正确對(duì)這(zhè)些(xiē)高(gāo)速的脈沖信号計(jì)數和(hé)處理(lǐ),需要用(yòng)到(dào)PLC的高(gāo)速計(jì)數器功能(néng)。高(gāo)速計(jì)數器可對(duì)标準計(jì)數器無法控制的高(gāo)速事(shì)件進行計(jì)數。
2 高(gāo)速計(jì)數器數量及性能(néng)
·緊湊型型号共支持四個 HSC 設備(HSC0、 HSC1、 HSC2 和(hé) HSC3)。
·SR 和(hé) ST 型号(固件版本V2.3以上(shàng))共支持六個 HSC 設備(HSC0、 HSC1、 HSC2、 HSC3、 HSC4 和(hé)HSC5)。
标準CPU
SR20/ST20
SR30/ST30
SR40/ST40
SR60/ST60
高(gāo)速計(jì)數器
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
高(gāo)速計(jì)數器
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 高(gāo)速計(jì)數器的分配和(hé)功能(néng)
HSC0、 HSC2、 HSC4 和(hé) HSC5 支持八種計(jì)數模式(模式 0、 1、 3、 4、 6、 7、 9 和(hé)10)
HSC1 和(hé) HSC3 隻支持一種計(jì)數模式(模式 0)
高(gāo)速計(jì)數器輸入連接(時(shí)鐘(zhōng)、方向和(hé)複位)必須使用(yòng) CPU 的集成輸入通道(dào),信号闆或擴展模塊上(shàng)的輸入通道(dào)不能(néng)用(yòng)于高(gāo)速計(jì)數器
所有高(gāo)速計(jì)數器輸入均連接至内部輸入濾波電路。 UN-200SMART 的默認輸入濾波設置爲 6.4 ms,這(zhè)樣便将最大(dà)計(jì)數速率限定爲 78 Hz。如需以更高(gāo)頻率計(jì)數,必須更改濾波器設置。見下(xià)圖:
已用(yòng)作(zuò)高(gāo)速計(jì)數的輸入點不能(néng)用(yòng)于其他(tā)用(yòng)途,例如HSC0 的所有計(jì)數模式始終使用(yòng) I0.0,因此使用(yòng)HSC0時(shí),無法将I0.0用(yòng)于其它用(yòng)途。
下(xià)表所示爲高(gāo)速計(jì)數器可檢測到(dào)的各種輸入濾波組态的最大(dà)輸入頻率:
4 輸入邏輯電平有效電壓範圍
5 高(gāo)速計(jì)數器尋址
下(xià)面以HSC0(高(gāo)速計(jì)數器0)的控制字爲例介紹特殊功能(néng)寄存器的每個位的實際作(zuò)用(yòng)。
6 高(gāo)速計(jì)數器的編程
要使用(yòng)高(gāo)速計(jì)數器,程序必須執行以下(xià)基本任務:
①定義計(jì)數器和(hé)模式(對(duì)每個計(jì)數器執行一次 HDEF 指令)
②在 SM 存儲器中設置控制字節
③在 SM 存儲器中設置當前值(起始值)
④在 SM 存儲器中設置預設值(目标值)
⑤分配并啓用(yòng)相應的中斷例程
⑥激活高(gāo)速計(jì)數器(執行 HSC 指令)
指令介紹:
HDEF,高(gāo)速計(jì)數器定義指令。定義高(gāo)速計(jì)數器的模式。
HSC,高(gāo)速計(jì)數器指令。根據高(gāo)速計(jì)數器的特殊存儲器位的狀态組态和(hé)控制高(gāo)速計(jì)數器。
以上(shàng)步驟可能(néng)較爲麻煩且容易出錯,也(yě)可以使用(yòng)高(gāo)速計(jì)數器向導簡化編程任務。向導設置的過程就是對(duì)控制字節哪些(xiē)地址賦值的過程。
完成向導設置後會(huì)自(zì)動生成子程序,子程序的内容就是上(shàng)面所說的基本任務的創建。
1) 菜單欄選擇工(gōng)具》向導》高(gāo)速計(jì)數器
2) 選擇高(gāo)速計(jì)數器編号
3) 定義高(gāo)速計(jì)數器的名稱
4) 選擇模式
5) 定義高(gāo)速計(jì)數器的計(jì)數方向等特性,這(zhè)裏的設定将會(huì)影響特殊寄存器裏的控制字節的默認值。
6)配置中斷
一個高(gāo)速計(jì)數器最多可以有 3 個中斷事(shì)件,在白(bái)色方框中填寫中斷服務程序名稱或者使用(yòng)默認名稱。
當前值等于預置值時(shí)産生的中斷,通過向導,可以在該中斷的服務程序中重新設置高(gāo)速計(jì)數器的參數,如預置值、當前值。一個這(zhè)樣的過程稱爲‘一步‘,最多可設置 10 步。
高(gāo)速計(jì)數中相關的中斷事(shì)件如下(xià):
7) 完成向導
8) 調用(yòng)子程序
HSC_INIT 爲初始化子程序,需要主程序塊中使用(yòng) SM0.1 或一條邊沿觸發指令調用(yòng)一次此子程序後高(gāo)速計(jì)數器才能(néng)正常工(gōng)作(zuò)。
向導生成的中斷服務程序及子程序都未上(shàng)鎖,可以根據自(zì)己的控制需要進行修改。
7 指令介紹
8 常見問題
8.1 如何斷電後保持高(gāo)速計(jì)數器的當前值
UN 200 SMART的斷電數據保持不支持高(gāo)速計(jì)數器的範圍設置,因此高(gāo)速計(jì)數器的當前值在CPU每次斷電後都會(huì)複位爲數值0。要使高(gāo)速計(jì)數器的當前值在CPU斷電重啓後依然保持,需要通過編程來(lái)實現(xiàn)。思路:首先,在除了(le)第一個掃描周期之外(wài)的其它周期,需要将高(gāo)速計(jì)數器的當前值傳送到(dào)V 區(qū)寄存器中。然後,在上(shàng)電的第一周期将V區(qū)寄存器存儲的數值傳送到(dào)高(gāo)速計(jì)數器的當前值SMD中,保證高(gāo)速計(jì)數器以V區(qū)的數值爲初始值開(kāi)始計(jì)數,并初始化高(gāo)速計(jì)數器。最後,在系統塊的斷電數據保持處設置V區(qū)寄存器爲斷電保持區(qū)域。
以高(gāo)速計(jì)數器0爲例,編程如下(xià):
8.2 高(gāo)速計(jì)數器如何複位到(dào)0?
方法一:選用(yòng)帶外(wài)部複位模式的高(gāo)速計(jì)數器,當複位信号有效時(shí),高(gāo)速計(jì)數器複位爲0。
方法二:内部程序複位,将高(gāo)速計(jì)數器的更新當前值控制字節相關位置1,并把0
賦給特殊寄存器SMD38,執行HSC指令後,高(gāo)速計(jì)數器複位爲0。