870605
愛拼才會(huì)贏
級(jí)別: 論壇先鋒
|
S7-200 CPU具有集成的、硬件高速計(jì)數(shù)器。 CPU221和CPU222可以使用4個(gè)30kHz單相高速計(jì)數(shù)器或2個(gè)20kHz的兩相高速計(jì)數(shù)器,而CPU224和CPU226可以使用6個(gè)30kHz單相高速計(jì)數(shù)器或4個(gè)20kHz的兩相高速計(jì)數(shù)器。 S7-200的新一代產(chǎn)品CPU224 XP 支持更高的計(jì)數(shù)速度。 高速計(jì)數(shù)器可以被配置為12種模式中的任意一種,但并不是所有計(jì)數(shù)器都能使用每一種模式。在正交模式下,你可以選擇一倍速或者四倍速計(jì)數(shù)速率。對(duì)于操作模式相同的計(jì)數(shù)器,其計(jì)數(shù)功能是相同的。 計(jì)數(shù)器共有四種基本類型:帶有內(nèi)部方向控制的單相計(jì)數(shù)器,帶有外部方向控制的單相計(jì)數(shù)器,帶有兩個(gè)時(shí)鐘輸入的雙相計(jì)數(shù)器和A/B相正交計(jì)數(shù)器。 表1. 高速計(jì)數(shù)器的模式及輸入點(diǎn): 模式 描述 輸入點(diǎn) 備注 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)部方向控制的單相計(jì)數(shù)器 時(shí)鐘 1 時(shí)鐘 復(fù)位 2 時(shí)鐘 復(fù)位 啟動(dòng) 3 帶有外部方向控制的單相計(jì)數(shù)器 時(shí)鐘 方向 4 時(shí)鐘 方向 復(fù)位 5 時(shí)鐘 方向 復(fù)位 啟動(dòng) 6 帶有增減計(jì)數(shù)時(shí)鐘的雙相計(jì)數(shù)器 增時(shí)鐘 減時(shí)鐘 7 增時(shí)鐘 減時(shí)鐘 復(fù)位 8 增時(shí)鐘 減時(shí)鐘 復(fù)位 啟動(dòng) 9 A/B相正交計(jì)數(shù)器 時(shí)鐘A 時(shí)鐘B 10 時(shí)鐘A 時(shí)鐘B 復(fù)位 11 時(shí)鐘A 時(shí)鐘B 復(fù)位 啟動(dòng) 12 只有 HSC0 和 HSC3 支持模式 12。 HSC0 計(jì)數(shù)高速脈沖輸出 Q0.0; HSC3 計(jì)數(shù)高速計(jì)數(shù)脈沖輸出 Q0.1。 (1) 支持模式 12。 • 高速計(jì)數(shù)器的實(shí)際輸入要根據(jù)用戶選擇的高速計(jì)數(shù)器號(hào)和模式來確定,如上表。例:如果你選擇了HSC0的模式1,則你的外部高速計(jì)數(shù)輸入點(diǎn)應(yīng)接在I0.0,外部復(fù)位點(diǎn)應(yīng)接在I0.2。 • 如果用戶使用了多個(gè)高速計(jì)數(shù)器,則被某一高速計(jì)數(shù)器占用了的輸入點(diǎn),其它高速計(jì)數(shù)器不能再使用。如HSC0的模式3已經(jīng)占用了I0.1作為外部方向控制點(diǎn),那么HSC3高速計(jì)數(shù)器就不能再使用了,因?yàn)樗挠?jì)數(shù)輸入點(diǎn)也是I0.1,與之沖突了。 (2) CPU 221/222 沒有 HSC1 和 HSC2。 表2. 高速計(jì)數(shù)器的尋址 高速計(jì)數(shù)器號(hào) HSC0 HSC1 HSC2 HSC3 HSC4 HSC5 新當(dāng)前值(僅裝入) SMD38 SMD48 SMD58 SMD138 SMD148 SMD158 新預(yù)置值(僅裝入) SMD42 SMD52 SMD62 SMD142 SMD152 SMD162 當(dāng)前計(jì)數(shù)值(僅讀出) HC0 HC1 HC2 HC3 HC4 HC5 高速計(jì)數(shù)器的具體編程及相關(guān)的中斷和其它參數(shù),請(qǐng)參見《S7-200系統(tǒng)手冊(cè)》,上面有詳細(xì)的闡述及例程。 STEP 7-Micro/WIN 提供了一個(gè)方便實(shí)用的高速計(jì)數(shù)器指令編程向?qū)В脩艨梢院?jiǎn)單快速地配置自己的高速計(jì)數(shù)器功能。 高速計(jì)數(shù)器模式 12 S7-200 CPU 從 23 版以上開始支持高速計(jì)數(shù)器模式 12。 只有 HSC0 和 HSC3 支持模式 12。 HSC0 計(jì)數(shù)高速脈沖輸出 Q0.0;HSC3 計(jì)數(shù)高速計(jì)數(shù)脈沖輸出 Q0.1。 用戶既可以自己編程使用模式 12,也可以在配置高速脈沖輸出功能時(shí),通過簡(jiǎn)單的設(shè)置使能模式 12。 常問問題: CPU 224 XP 的高速計(jì)數(shù)器模式 12,是否可以計(jì)數(shù) 30 KHz 以上的脈沖? CPU 224 XP 支持最多 100 KHz 的高速脈沖輸出。S7-200 系列 CPU 只有高速計(jì)數(shù)器 HSC0, HSC3 能夠被設(shè)置為模式 12,使用的輸入端子為I0.0, I0.1,而不是特高速輸入端子:I0.3、I0.4、I0.5。非特高速脈沖信號(hào)輸入端由于硬件電路的限制(如光電耦合等)只能支持最高 30 KHz 的高速脈沖輸入。 用戶使用高速計(jì)數(shù)器模式 12 時(shí)不需要任何外部連線,Q0.0(Q0.1) 與 I0.0(I0.1) 通過集成電路內(nèi)部關(guān)聯(lián),越過了外部信號(hào)處理電路,因此 HSC0(HSC1) 可以計(jì) 100KHz 或者更高頻率的脈沖。用戶在使用向?qū)渲?S7-200 內(nèi)部 PTO/PWM 操作時(shí),勾選“使用高速計(jì)數(shù)器HSCx(模式12)自動(dòng)計(jì)數(shù)線性 PTO 生成的脈沖”即可。 高速計(jì)數(shù)器怎樣占用輸入點(diǎn)? 高速計(jì)數(shù)器根據(jù)被定義的工作模式,按需要占用CPU上的數(shù)字量輸入點(diǎn)。每一個(gè)計(jì)數(shù)器都按其工作模式占用固定的輸入點(diǎn)。在某個(gè)模式下沒有用到的輸入點(diǎn),仍然可以用作普通輸入點(diǎn);被計(jì)數(shù)器占用的輸入點(diǎn)(如外部復(fù)位),在用戶程序中仍然可以訪問到。 為什么高速計(jì)數(shù)器不能正常工作? 在程序中要使用初次掃描存儲(chǔ)器位SM0.1來調(diào)用HDEF指令,而且只能調(diào)用一次。如果用SM0.0調(diào)用或者第二次執(zhí)行HDEF指令會(huì)引起運(yùn)行錯(cuò)誤,而且不能改變第一次執(zhí)行HDEF指令時(shí)對(duì)計(jì)數(shù)器的設(shè)定。 對(duì)高速計(jì)數(shù)器如何尋址? 為什么從SMDx中讀不出當(dāng)前的計(jì)數(shù)值? 可以直接用HC0;HC1;HC2;HC3;HC4;HC5對(duì)不同的高速計(jì)數(shù)器進(jìn)行尋址讀取當(dāng)前值,也可以在狀態(tài)表中輸入上述地址直接監(jiān)視高速計(jì)數(shù)器的當(dāng)前值。SMDx不存儲(chǔ)當(dāng)前值,參見上述表2。 高速計(jì)數(shù)器的計(jì)數(shù)值是一個(gè)32位的有符號(hào)整數(shù)。 高速計(jì)數(shù)器如何復(fù)位到0? • 選用帶外部復(fù)位模式的高速計(jì)數(shù)器,當(dāng)外部復(fù)位輸入點(diǎn)信號(hào)有效時(shí),高速計(jì)數(shù)器復(fù)位為0 • 也可使用內(nèi)部程序復(fù)位,即將高速計(jì)數(shù)器設(shè)定為可更新初始值,并將初始值設(shè)為0,執(zhí)行HSC指令后,高數(shù)計(jì)數(shù)器即復(fù)位為0 高速計(jì)數(shù)器的值在復(fù)位后是復(fù)位到初始值還是“0”值? 外部復(fù)位會(huì)將當(dāng)前值復(fù)位到0值而不是初始值;內(nèi)部復(fù)位則將當(dāng)前值復(fù)位到初始值。如果你設(shè)定了可更新初始值,但在中斷中未給初始值特殊寄存器賦新值,則在執(zhí)行HSC 指令后,它將按初始化時(shí)設(shè)定的初始值賦值。 為何給高速計(jì)數(shù)器賦初始值和預(yù)置值時(shí)后不起作用,或效果出乎意料? 高速計(jì)數(shù)器可以在初始化或者運(yùn)行中更改設(shè)置,如初始值、預(yù)置值。其操作步驟應(yīng)當(dāng)是: 1. 設(shè)置控制字節(jié)的更新選項(xiàng)。需要更新哪個(gè)設(shè)置數(shù)據(jù),就把控制字節(jié)中相應(yīng)的控制位置位(設(shè)置為“1”);不需要改變的設(shè)置,相應(yīng)的控制位就不能設(shè)置 2. 然后將所需 的值送入初始值和預(yù)置值控制寄存器 3. 執(zhí)行HSC指令 在 Micro/WIN 中的命令菜單中選擇 Tools(工具) > Instruction Wizard(指令向?qū)В缓笤谥噶畲翱谥羞x擇 HSC 向?qū)В?br />圖1.選擇 HSC 向?qū)?br />第一步,項(xiàng)目編譯無錯(cuò)誤后,選擇HSC編號(hào)和模式,詳細(xì)信息請(qǐng)見"表1.高速計(jì)數(shù)器的模式及輸入點(diǎn)。 圖2. 高速計(jì)數(shù)器及模式選擇 第二步,配置初始化信息 圖3. HSC 初始化選項(xiàng) 在上圖中: 1. 為初始化子程序命名,或者使用默認(rèn)名稱。 2. 設(shè)置計(jì)數(shù)器預(yù)置值:可以為整數(shù)、雙字地址或 符號(hào)名:如 5000、VD100、PV_HC1。用戶可使用全局符號(hào)表中雙字整數(shù)對(duì)應(yīng)的符號(hào)名。如果用戶輸入的符號(hào)名尚未定義,點(diǎn)擊‘下一步’后會(huì)看到: 點(diǎn)擊‘Yes’。 填入地址和注釋,注意:地址必須為雙字地址, 注釋可以不填。 3. 設(shè)置計(jì)數(shù)器初始值:可以為整數(shù)、雙字地址或符號(hào)名:5000、VD100、CV_HC1。 4. 初始化計(jì)數(shù)方向:增,減。 5. 對(duì)于帶外部復(fù)位端的高速計(jì)數(shù)器,可以設(shè)定復(fù)位信號(hào)為高電平有效或者低電平有效。 6. 對(duì)于帶外部啟動(dòng)端的高速計(jì)數(shù)器,可以設(shè)定啟動(dòng)信號(hào)為高電平有效或者低電平有效。如果使用的高速計(jì)數(shù)器或工作模式?jīng)]有外部復(fù)位或啟動(dòng)端,則對(duì)應(yīng)選項(xiàng)為虛。 7. 使用A/B相正交計(jì)數(shù)器時(shí),可以將計(jì)數(shù)頻率設(shè)為1倍速或4倍速。使用非A/B相正交計(jì)數(shù)器時(shí),此項(xiàng)為虛。 注意:所謂“高/低電平有效”指的是在物理輸入端子上的有效邏輯電平,即可以使 LED 燈點(diǎn)亮的電平。這取決于源型/漏型輸入接法,并非指實(shí)際電平的高、低。 第三步:配置中斷事件及步驟總數(shù): 圖 4.配置中斷及步驟 如圖 4 所示,一個(gè)高速計(jì)數(shù)器最多可以有 3 個(gè)中斷事件,在白色方框中填寫中斷服務(wù)程序名稱或者使用默認(rèn)名稱: 在這里配置的中斷事件并非必須,系由用戶根據(jù)自己的控制工藝要求選用。 1. 外部復(fù)位輸入有效值是中斷,如果使用的高速計(jì)數(shù)器模式不具有外部復(fù)位端,則此項(xiàng)為虛。 2. 方向控制輸入狀態(tài)改變時(shí)的中斷,有以下 3 種情況會(huì)產(chǎn)生該中斷: o 單項(xiàng)計(jì)數(shù)器的內(nèi)部或外部方向控制位改變瞬間 o 雙相計(jì)數(shù)器增、減時(shí)鐘交替的瞬間 o A/B相脈沖相對(duì)相位(超前或滯后)改變時(shí)瞬間 3. 當(dāng)前值等于預(yù)置值時(shí)產(chǎn)生的中斷,通過向?qū),可以在該中斷的服?wù)程序中重新設(shè)置高速計(jì)數(shù)器的參數(shù),如預(yù)置值、當(dāng)前值。一個(gè)這樣的過程稱為‘一步‘。 4. 填寫 HSC 的步數(shù),最多可以設(shè)置 10 步。 第五步、定義高速計(jì)數(shù)器每一步中的操作: 圖 5. HSC 第 1 步 在這里配置的是當(dāng)前值等于設(shè)定值中斷的服務(wù)程序中的操作: 1. 向?qū)?huì)自動(dòng)為當(dāng)前值等于預(yù)置值匹配一個(gè)新的中斷服務(wù)程序,用戶可以對(duì)其重新命名,或者使用默認(rèn)的名稱。 2. 勾選后,用戶在右側(cè)輸入新的預(yù)置值。 3. 勾選后,用戶在右側(cè)輸入新的當(dāng)前值。 4. 如果選用的高速計(jì)數(shù)器模式有內(nèi)部方向控制位。 5. 點(diǎn)擊‘下一步‘,繼續(xù)配置其余步。 第六步、完成向?qū)В?br />圖 6. 完成向?qū)?br />第七步、調(diào)用子程序: 注意: • HSC_INIT 為初始化子程序,請(qǐng)?jiān)谥鞒绦驂K中使用 SM0.1 或一條邊沿觸發(fā)指令調(diào)用一次此子程序。 • 向?qū)傻闹袛喾⻊?wù)程序及子程序都未上鎖,用戶可以根據(jù)自己的控制需要進(jìn)行修改。 |
|
---|---|---|
|