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