發(fā)布時間: 人氣:0 來源:admin
如何在高速計數(shù)器斷電或停機后實現(xiàn)數(shù)據(jù)保持?
答: 有兩種方法,分別使用 CTRL_HSC 指令和 CTRL_HSC_EXT 指令。
首先配置高速計數(shù)器:
方法1:使用 CTRL_HSC 指令
為什么 S7-1200 高速計數(shù)器只能檢測到低頻率的脈沖信號?
答: 在 S7-1200 CPU 和 SB 信號板的屬性中,數(shù)字量輸入通道的輸入濾波器默認(rèn)設(shè)置值為 6.4 millisec,該輸入濾波時間對應(yīng)的高速計數(shù)器能檢測到的最大頻率為 78Hz。
因此如果使用該默認(rèn)值,且 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 所示:
圖 12. 設(shè)置 S7-1200 CPU 輸入濾波器時間
圖 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 輸入濾波器時間和可檢測到的最大輸入頻率
高速計數(shù)器的計數(shù)范圍是什么?
答: 高速計數(shù)器的默認(rèn)計數(shù)范圍是 -231~231-1。當(dāng)向上計數(shù)到最大值 231-1 時,會跳回到 -231;當(dāng)向下計數(shù)到最小值 -231 時,會跳回 231-1。
斷電停機或復(fù)位后,高速計數(shù)器的值會復(fù)位到什么值?
答: CPU 斷電或重啟后,高速計數(shù)器的值會復(fù)位到硬件組態(tài)的初始值;如果執(zhí)行了外部復(fù)位,高速計數(shù)器的值默認(rèn)會復(fù)位為 0,如果在程序中修改了起始值,將會復(fù)位為修改的起始值。
不編寫 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ā)生。 同理,如果編程了 CTRL_HSC_EXT ,然后 HSC_Count 中的元素 EnCV 始終置位,這時程序會一直將 NewCurrentCount 寫入當(dāng)前值,導(dǎo)致高速計數(shù)器不繼續(xù)計數(shù)而保持在固定的 NewCurrentCount 值。所以控制位通常使用沿觸發(fā),或者指令調(diào)用發(fā)生在硬件中斷中。
為什么 CTRL_HSC 的 "STATUS" 會返回 "80C0" 多次訪問高速計數(shù)器錯誤?
答: 如果高速計數(shù)器用做內(nèi)部的運動控制的計數(shù),則CTRL_HSC 的 "STATUS" 就會返回 "80C0" 多次訪問高速計數(shù)器錯誤。
S7-1200 的高速計數(shù)器輸入通道是否固定?
答: 早期固件版本的高速計數(shù)器輸入通道是固定的。
V4.0 或更高版本的 S7-1200 的高速計數(shù)器輸入通道可以在其屬性中更改。如圖 14 所示: