S7-1200高速計數(shù)器常見問題

如何在高速計數(shù)器斷電或停機后實現(xiàn)數(shù)據(jù)保持?

答:有兩種方法,分別使用CTRL_HSC指令和CTRL_HSC_EXT指令。

首先配置高速計數(shù)器:

1

在設(shè)備視圖>HSC_1>屬性>常規(guī),啟用該高速計數(shù)器。

S7-1200高速計數(shù)器常見問題的圖1

圖 01

2

在設(shè)備視圖>HSC_1>屬性>功能,定義計數(shù)類型為計數(shù)。

S7-1200高速計數(shù)器常見問題的圖2

圖 02

3

在設(shè)備視圖>HSC_1>屬性>I/O地址,使用缺省地址1000作為高速計數(shù)器地址。

S7-1200高速計數(shù)器常見問題的圖3

圖 03

方法1:使用CTRL_HSC指令

1


添加一個新的 DB 命名為 DB HSC retain,并且創(chuàng)建一個DINT數(shù)據(jù)元素,命名為HSC_1用于保存高速計數(shù)器的值。為了實現(xiàn)這個功能,HSC_1通過勾選保持項實現(xiàn)數(shù)據(jù)保持。

S7-1200高速計數(shù)器常見問題的圖4

圖 04

2

插入 Cyclic interrupt (循環(huán)中斷)OB201,設(shè)置中斷時間為 10 ms (也可以根據(jù)需要改變這個時間)。然后在 OB201 中將高速計數(shù)器的值 ID1000:P 送到 "DB HSC retain".HSC_1 中。這樣,高速計數(shù)器的值每10ms 送到 DB 中保存。

S7-1200高速計數(shù)器常見問題的圖5

圖 05

3

創(chuàng)建Startup(啟動OB)OB100,并且編程將保存的數(shù)值 "DB HSC retain".HSC_1 送到 NEW_CV,并且置位 CV 位。使得在CPU 啟動時,保存的值被設(shè)置成當(dāng)前值。

S7-1200高速計數(shù)器常見問題的圖6

圖 06

4

在 OB1 中編程 CTRL_HSC ,再將保存的值設(shè)為當(dāng)前值后,復(fù)位 CV 位。

S7-1200高速計數(shù)器常見問題的圖7

圖07

方法2:使用CTRL_HSC_EXT指令

1

添加一個新的 DB 命名為 DB HSC retain,并且創(chuàng)建一個DINT數(shù)據(jù)元素,命名為HSC_1用于保存高速計數(shù)器的值。為了實現(xiàn)這個功能,HSC_1通過勾選保持項實現(xiàn)數(shù)據(jù)保持。此外創(chuàng)建系統(tǒng)數(shù)據(jù)類型HSC_Count的變量Static_1用于CTRL_HSC_EXT指令。

S7-1200高速計數(shù)器常見問題的圖8

圖 08

2

插入 Cyclic interrupt (循環(huán)中斷)OB201,設(shè)置中斷時間為 10 ms (也可以根據(jù)需要改變這個時間)。然后在 OB201 中將高速計數(shù)器的值 ID1000:P 送到 "DB HSC retain".HSC_1 中。這樣,高速計數(shù)器的值每10ms 送到 DB 中保存。

S7-1200高速計數(shù)器常見問題的圖9

圖 09
3

創(chuàng)建Startup(啟動OB)OB100,并且編程將保存的數(shù)值 "DB HSC retain".HSC_1 送到新當(dāng)前值且置位觸發(fā)條件和高速計數(shù)器的軟件門,使得在CPU 啟動時,保存的值被設(shè)置成當(dāng)前值。

S7-1200高速計數(shù)器常見問題的圖10

圖 10

4

在 OB1 中編程 CTRL_HSC_EXT ,將保存的值設(shè)為當(dāng)前值后,復(fù)位觸發(fā)位。

S7-1200高速計數(shù)器常見問題的圖11

圖 11

斷電停機或復(fù)位后,高速計數(shù)器的值會復(fù)位到什么值?

答:CPU 斷電或重啟后,高速計數(shù)器的值會復(fù)位到初始值;如果執(zhí)行了外部復(fù)位,高速計數(shù)器的值會復(fù)位為0。

不編寫 CTRL_HSC,高速計數(shù)器是否可以計數(shù)?

答:只要在硬件配置里使能并組態(tài)了高速計數(shù)器,不編寫 CTRL_HSC,高速計數(shù)器就可以正常計數(shù)。CTRL_HSC 只是完成參數(shù)寫入的功能。

為什么高速計數(shù)器的數(shù)值不增加,總是停在一個固定的值?

答:如果編程了 CTRL_HSC,當(dāng)置位 CV 將 NEW_CV 寫入當(dāng)前值后,CV位不會自動復(fù)位為0,這時程序會一直將 NEW_CV寫入當(dāng)前值,導(dǎo)致高速計數(shù)器不繼續(xù)計數(shù)而保持在固定的 NEW_CV 值。因此必須編程復(fù)位 CV,才能避免該錯誤的發(fā)生。

如果高速計數(shù)器定義為 "運動軸" 計數(shù),程序中是否還可以訪問 ID1000:P 的值?

答:如果高速計數(shù)器用做內(nèi)部的運動控制的計數(shù),此時程序中不能再訪問 ID1000:P 的值,否則會造成 I/O 訪問錯誤。如果沒有編程GET_ERROR 或 GET_ERR_ID 指令,還會造成 CPU 停機。 

為什么 CTRL_HSC 的 "STATUS" 會返回 "80C0" 多次訪問高速計數(shù)器錯誤?

答:如果高速計數(shù)器用做內(nèi)部的運動控制的計數(shù),則CTRL_HSC 的 "STATUS" 就會返回 "80C0" 多次訪問高速計數(shù)器錯誤。

使用信號板 SB1221 4DI (CPU V3.0及早期版本)最多可以接入多少組高速計數(shù)器 ?

答:最多2組,所使用的高速計數(shù)器號可以是 HSC1、HSC2、HSC5、HSC6其中2組。

為什么S7-1200 高速計數(shù)器只能檢測到低頻率的脈沖信號?

答:在 S7-1200 CPU 和 SB 信號板的屬性中,數(shù)字量輸入通道的輸入濾波器默認設(shè)置值為 6.4 millisec,該輸入濾波時間對應(yīng)的高速計數(shù)器能檢測到的最大頻率為 78Hz。

因此如果使用該默認值,且 S7-1200 CPU 或 SB 信號板接入的高速輸入脈沖超過 78Hz,則 S7-1200 CPU 或SB 信號板過濾掉該頻率的輸入脈沖。

要正確使用 S7-1200 CPU 和 SB 信號板高速計數(shù)功能,需要根據(jù)實際接入的高速輸入脈沖最大頻率,在"屬性—常規(guī)—數(shù)字量輸入通道設(shè)置"輸入濾波器時間。

V4.0 或更高版本的 S7-1200 CPU 和 SB 信號板,每個數(shù)字量輸入點都可設(shè)置輸入濾波器時間, 如下圖 12、13 所示:

S7-1200高速計數(shù)器常見問題的圖12

圖 12. 設(shè)置 S7-1200 CPU 輸入濾波器時間

S7-1200高速計數(shù)器常見問題的圖13

圖 13. 設(shè)置 SB 信號板輸入濾波器時間

下表 1 顯示了輸入濾波器時間和可檢測到的最大輸入頻率:

輸入濾波器時間 可檢測到的最大輸入頻率
0.1 microsec 1MHz
0.2 microsec 1MHz
0.4 microsec 1MHz
0.8 microsec 625kHz
1.6 microsec 312kHz
3.2 microsec 156kHz
6.4 microsec 78kHz
10 microsec 50kHz
12.8 microsec 39kHz
20 microsec 25kHz
0.05 millisec 10kHz
0.1 millisec 5kHz
0.2 millisec 2.5kHz
0.4 millisec 1.25kHz
0.8 millisec 625Hz
1.6 millisec 312Hz
3.2 millisec 156Hz
6.4 millisec 78Hz
10 millisec 50Hz
12.8 millisec 39Hz
20 millisec 25Hz

表 1 輸入濾波器時間和可檢測到的最大輸入頻率

S7-1200 的高速計數(shù)器輸入通道是否固定?

答:早期固件版本的高速計數(shù)器輸入通道是固定的。

V4.0 或更高版本的 S7-1200 的高速計數(shù)器輸入通道可以在其屬性中更改。如圖 14 所示:

S7-1200高速計數(shù)器常見問題的圖14

圖 14. 更改高速計數(shù)器輸入通道

S7-1200 CPU 最多支持多少個高速計數(shù)器?

答:早期固件版本的S7-1200 CPU 中,CPU 1211C 最多支持3個單相的高速計數(shù)器,CPU 1212C 最多支持 4 個單相的高速計數(shù)器,CPU1214C 和 CPU1215C最 多支持6個單相的高速計數(shù)器。

V4.0或更高版本的所有型號的S7-1200 CPU 都支持最多6個單相高速計數(shù)器。

需要注意的是V4.0或更高版本的 S7-1200 CPU 有默認的高速計數(shù)器通道地址,而 CPU 1211C 數(shù)字量輸入地址僅有 6 個,為I0.0-I0.5,CPU 1212C 數(shù)字量輸入地址僅有8個,為I0.0-I0.7。

因此如果需要使用 CPU 1211C 的 HSC4, HSC5, HSC6 或 CPU 1212C 的 HSC5, HSC6 ,則需要更改其硬件輸入地址到有效的范圍才能正常使用。以 CPU1211C 舉例,如圖 15、16、17所示:

S7-1200高速計數(shù)器常見問題的圖15

圖 15. 更改 HSC4 的硬件輸入地址

S7-1200高速計數(shù)器常見問題的圖16

圖 16. 更改 HSC5 的硬件輸入地址

S7-1200高速計數(shù)器常見問題的圖17

圖 17. 更改 HSC6 的硬件輸入地址


登錄后免費查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項目客服
  • 培訓(xùn)客服
  • 平臺客服

TOP