870605
愛拼才會贏
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 135 個
工控威望: 1503 點
下載積分: 535 分
在線時間: 93(小時)
注冊時間: 2008-02-15
最后登錄: 2024-11-27
查看870605的 主題 / 回貼
樓主  發(fā)表于: 2011-06-09 10:45
S7-200 CPU具有集成的、硬件高速計數(shù)器。
CPU221和CPU222可以使用4個30kHz單相高速計數(shù)器或2個20kHz的兩相高速計數(shù)器,而CPU224和CPU226可以使用6個30kHz單相高速計數(shù)器或4個20kHz的兩相高速計數(shù)器。
S7-200的新一代產(chǎn)品CPU224 XP 支持更高的計數(shù)速度。
高速計數(shù)器可以被配置為12種模式中的任意一種,但并不是所有計數(shù)器都能使用每一種模式。在正交模式下,你可以選擇一倍速或者四倍速計數(shù)速率。對于操作模式相同的計數(shù)器,其計數(shù)功能是相同的。
計數(shù)器共有四種基本類型:帶有內(nèi)部方向控制的單相計數(shù)器,帶有外部方向控制的單相計數(shù)器,帶有兩個時鐘輸入的雙相計數(shù)器和A/B相正交計數(shù)器。
表1. 高速計數(shù)器的模式及輸入點:
模式    描述    輸入點    備注
     HSCO    I0.0    I0.1    I0.2         (1)
    HSC1    I0.6    I0.7    I1.0    I1.1    (2)
    HSC2    I1.2    I1.3    I1.4    I1.5    (2)
    HSC3    I0.1                   (1)
    HSC4    I0.3    I0.4    I0.5          
    HSC5    I0.4                    
0    帶有內(nèi)部方向控制的單相計數(shù)器    時鐘                    
1        時鐘         復位          
2        時鐘         復位    啟動    
3    帶有外部方向控制的單相計數(shù)器    時鐘    方向              
4        時鐘    方向    復位          
5        時鐘    方向    復位    啟動    
6    帶有增減計數(shù)時鐘的雙相計數(shù)器    增時鐘    減時鐘              
7        增時鐘    減時鐘    復位          
8        增時鐘    減時鐘    復位    啟動    
9    A/B相正交計數(shù)器    時鐘A    時鐘B              
10        時鐘A    時鐘B    復位          
11        時鐘A    時鐘B    復位    啟動    
12    只有 HSC0 和 HSC3 支持模式 12。
HSC0 計數(shù)高速脈沖輸出 Q0.0;
HSC3 計數(shù)高速計數(shù)脈沖輸出 Q0.1。                        

(1) 支持模式 12。

•    高速計數(shù)器的實際輸入要根據(jù)用戶選擇的高速計數(shù)器號和模式來確定,如上表。例:如果你選擇了HSC0的模式1,則你的外部高速計數(shù)輸入點應接在I0.0,外部復位點應接在I0.2。
•    如果用戶使用了多個高速計數(shù)器,則被某一高速計數(shù)器占用了的輸入點,其它高速計數(shù)器不能再使用。如HSC0的模式3已經(jīng)占用了I0.1作為外部方向控制點,那么HSC3高速計數(shù)器就不能再使用了,因為它的計數(shù)輸入點也是I0.1,與之沖突了。
(2) CPU 221/222 沒有 HSC1 和 HSC2。
表2. 高速計數(shù)器的尋址
高速計數(shù)器號    HSC0    HSC1    HSC2    HSC3    HSC4    HSC5
新當前值(僅裝入)    SMD38    SMD48    SMD58    SMD138    SMD148    SMD158
新預置值(僅裝入)    SMD42    SMD52    SMD62    SMD142    SMD152    SMD162
當前計數(shù)值(僅讀出)    HC0    HC1    HC2    HC3    HC4    HC5

高速計數(shù)器的具體編程及相關(guān)的中斷和其它參數(shù),請參見《S7-200系統(tǒng)手冊》,上面有詳細的闡述及例程。
STEP 7-Micro/WIN 提供了一個方便實用的高速計數(shù)器指令編程向?qū)В脩艨梢院唵慰焖俚嘏渲米约旱母咚儆嫈?shù)器功能。

高速計數(shù)器模式 12
S7-200 CPU 從 23 版以上開始支持高速計數(shù)器模式 12。
只有 HSC0 和 HSC3 支持模式 12。 HSC0 計數(shù)高速脈沖輸出 Q0.0;HSC3 計數(shù)高速計數(shù)脈沖輸出 Q0.1。
用戶既可以自己編程使用模式 12,也可以在配置高速脈沖輸出功能時,通過簡單的設(shè)置使能模式 12。

常問問題:
CPU 224 XP 的高速計數(shù)器模式 12,是否可以計數(shù) 30 KHz 以上的脈沖?
CPU 224 XP 支持最多 100 KHz 的高速脈沖輸出。S7-200 系列 CPU 只有高速計數(shù)器 HSC0, HSC3 能夠被設(shè)置為模式 12,使用的輸入端子為I0.0, I0.1,而不是特高速輸入端子:I0.3、I0.4、I0.5。非特高速脈沖信號輸入端由于硬件電路的限制(如光電耦合等)只能支持最高 30 KHz 的高速脈沖輸入。
用戶使用高速計數(shù)器模式 12 時不需要任何外部連線,Q0.0(Q0.1) 與 I0.0(I0.1) 通過集成電路內(nèi)部關(guān)聯(lián),越過了外部信號處理電路,因此 HSC0(HSC1) 可以計 100KHz 或者更高頻率的脈沖。用戶在使用向?qū)渲?S7-200 內(nèi)部 PTO/PWM 操作時,勾選“使用高速計數(shù)器HSCx(模式12)自動計數(shù)線性 PTO 生成的脈沖”即可。
高速計數(shù)器怎樣占用輸入點?

高速計數(shù)器根據(jù)被定義的工作模式,按需要占用CPU上的數(shù)字量輸入點。每一個計數(shù)器都按其工作模式占用固定的輸入點。在某個模式下沒有用到的輸入點,仍然可以用作普通輸入點;被計數(shù)器占用的輸入點(如外部復位),在用戶程序中仍然可以訪問到。
為什么高速計數(shù)器不能正常工作?

在程序中要使用初次掃描存儲器位SM0.1來調(diào)用HDEF指令,而且只能調(diào)用一次。如果用SM0.0調(diào)用或者第二次執(zhí)行HDEF指令會引起運行錯誤,而且不能改變第一次執(zhí)行HDEF指令時對計數(shù)器的設(shè)定。

對高速計數(shù)器如何尋址? 為什么從SMDx中讀不出當前的計數(shù)值?

可以直接用HC0;HC1;HC2;HC3;HC4;HC5對不同的高速計數(shù)器進行尋址讀取當前值,也可以在狀態(tài)表中輸入上述地址直接監(jiān)視高速計數(shù)器的當前值。SMDx不存儲當前值,參見上述表2。
高速計數(shù)器的計數(shù)值是一個32位的有符號整數(shù)。
高速計數(shù)器如何復位到0?
•    選用帶外部復位模式的高速計數(shù)器,當外部復位輸入點信號有效時,高速計數(shù)器復位為0
•    也可使用內(nèi)部程序復位,即將高速計數(shù)器設(shè)定為可更新初始值,并將初始值設(shè)為0,執(zhí)行HSC指令后,高數(shù)計數(shù)器即復位為0
高速計數(shù)器的值在復位后是復位到初始值還是“0”值?

外部復位會將當前值復位到0值而不是初始值;內(nèi)部復位則將當前值復位到初始值。如果你設(shè)定了可更新初始值,但在中斷中未給初始值特殊寄存器賦新值,則在執(zhí)行HSC 指令后,它將按初始化時設(shè)定的初始值賦值。

為何給高速計數(shù)器賦初始值和預置值時后不起作用,或效果出乎意料?

高速計數(shù)器可以在初始化或者運行中更改設(shè)置,如初始值、預置值。其操作步驟應當是:
1.    設(shè)置控制字節(jié)的更新選項。需要更新哪個設(shè)置數(shù)據(jù),就把控制字節(jié)中相應的控制位置位(設(shè)置為“1”);不需要改變的設(shè)置,相應的控制位就不能設(shè)置
2.    然后將所需 的值送入初始值和預置值控制寄存器
3.    執(zhí)行HSC指令
在 Micro/WIN 中的命令菜單中選擇 Tools(工具) > Instruction Wizard(指令向?qū)В,然后在指令窗口中選擇 HSC 向?qū)В?br />圖1.選擇 HSC 向?qū)?br />第一步,項目編譯無錯誤后,選擇HSC編號和模式,詳細信息請見"表1.高速計數(shù)器的模式及輸入點。
圖2. 高速計數(shù)器及模式選擇
第二步,配置初始化信息
圖3. HSC 初始化選項
在上圖中:
1.    為初始化子程序命名,或者使用默認名稱。
2.    設(shè)置計數(shù)器預置值:可以為整數(shù)、雙字地址或 符號名:如 5000、VD100、PV_HC1。用戶可使用全局符號表中雙字整數(shù)對應的符號名。如果用戶輸入的符號名尚未定義,點擊‘下一步’后會看到:

點擊‘Yes’。

填入地址和注釋,注意:地址必須為雙字地址, 注釋可以不填。
3.    設(shè)置計數(shù)器初始值:可以為整數(shù)、雙字地址或符號名:5000、VD100、CV_HC1。
4.    初始化計數(shù)方向:增,減。
5.    對于帶外部復位端的高速計數(shù)器,可以設(shè)定復位信號為高電平有效或者低電平有效。
6.    對于帶外部啟動端的高速計數(shù)器,可以設(shè)定啟動信號為高電平有效或者低電平有效。如果使用的高速計數(shù)器或工作模式?jīng)]有外部復位或啟動端,則對應選項為虛。
7.    使用A/B相正交計數(shù)器時,可以將計數(shù)頻率設(shè)為1倍速或4倍速。使用非A/B相正交計數(shù)器時,此項為虛。

注意:所謂“高/低電平有效”指的是在物理輸入端子上的有效邏輯電平,即可以使 LED 燈點亮的電平。這取決于源型/漏型輸入接法,并非指實際電平的高、低。
第三步:配置中斷事件及步驟總數(shù):
圖 4.配置中斷及步驟
如圖 4 所示,一個高速計數(shù)器最多可以有 3 個中斷事件,在白色方框中填寫中斷服務(wù)程序名稱或者使用默認名稱:
在這里配置的中斷事件并非必須,系由用戶根據(jù)自己的控制工藝要求選用。
1.    外部復位輸入有效值是中斷,如果使用的高速計數(shù)器模式不具有外部復位端,則此項為虛。
2.    方向控制輸入狀態(tài)改變時的中斷,有以下 3 種情況會產(chǎn)生該中斷:
o    單項計數(shù)器的內(nèi)部或外部方向控制位改變瞬間
o    雙相計數(shù)器增、減時鐘交替的瞬間
o    A/B相脈沖相對相位(超前或滯后)改變時瞬間
3.    當前值等于預置值時產(chǎn)生的中斷,通過向?qū),可以在該中斷的服?wù)程序中重新設(shè)置高速計數(shù)器的參數(shù),如預置值、當前值。一個這樣的過程稱為‘一步‘。
4.    填寫 HSC 的步數(shù),最多可以設(shè)置 10 步。
第五步、定義高速計數(shù)器每一步中的操作:
圖 5. HSC 第 1 步
在這里配置的是當前值等于設(shè)定值中斷的服務(wù)程序中的操作:
1.    向?qū)詣訛楫斍爸档扔陬A置值匹配一個新的中斷服務(wù)程序,用戶可以對其重新命名,或者使用默認的名稱。
2.    勾選后,用戶在右側(cè)輸入新的預置值。
3.    勾選后,用戶在右側(cè)輸入新的當前值。
4.    如果選用的高速計數(shù)器模式有內(nèi)部方向控制位。
5.    點擊‘下一步‘,繼續(xù)配置其余步。
第六步、完成向?qū)В?br />圖 6. 完成向?qū)?br />第七步、調(diào)用子程序:
注意:
•    HSC_INIT 為初始化子程序,請在主程序塊中使用 SM0.1 或一條邊沿觸發(fā)指令調(diào)用一次此子程序。
•    向?qū)傻闹袛喾⻊?wù)程序及子程序都未上鎖,用戶可以根據(jù)自己的控制需要進行修改。
愛拼才會贏 .
王生彬
王生斌
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 639 個
工控威望: 1792 點
下載積分: 6031 分
在線時間: 253(小時)
注冊時間: 2007-09-07
最后登錄: 2024-12-22
查看王生彬的 主題 / 回貼
1樓  發(fā)表于: 2011-06-09 22:19
向?qū)Ю镒龈咚儆嫈?shù)器。
hongmeet
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 21 個
工控威望: 123 點
下載積分: 570 分
在線時間: 11(小時)
注冊時間: 2010-12-07
最后登錄: 2018-06-20
查看hongmeet的 主題 / 回貼
2樓  發(fā)表于: 2011-06-18 16:20
向?qū)ё龈咚儆嫈?shù)器不靈活,不好用。