西門子S7-1200CPU1211C*處理單元 西門子S7-1200CPU1211C*處理單元
如果不請求更新參數(shù)值,則將忽略相應(yīng)的輸入值。
2 僅當(dāng)組態(tài)的計數(shù)方向設(shè)置為“用戶程序(內(nèi)部方向控制)”(User program (internal direction control)) 時,DIR 參數(shù)才有效。 用戶在 HSC 設(shè)備組態(tài)中確定如何使用該參數(shù)。
3 對于 CPU 或 SB 上的 HSC,BUSY 參數(shù)的值始終為 0。
在 CPU 的設(shè)備組態(tài)中對每個 HSC 的參數(shù)進(jìn)行組態(tài): 計數(shù)、I/O 連接、中斷分配以及是作為高速計數(shù)器還是設(shè)備來測量脈沖。
可以通過用戶程序來修改某些 HSC 參數(shù),從而對計數(shù)提供程序控制:
如果執(zhí)行 CTRL_HSC 指令后以下布爾標(biāo)記值置位為 1,則相應(yīng)的 NEW_xxx 值將裝載到計數(shù)器。 CTRL_HSC 指令執(zhí)行一次可處理多個請求(同時設(shè)置多個標(biāo)記)。
CTRL_HSC 指令通常放置在觸發(fā)計數(shù)器硬件中斷事件時執(zhí)行的硬件中斷 OB 中。 例如, 如果 CV=RV 事件觸發(fā)計數(shù)器中斷,則硬件中斷 OB 代碼塊執(zhí)行 CTRL_HSC 指令并且可通過裝載 NEW_RV 值更改參考值。
在 CTRL_HSC 參數(shù)中沒有提供當(dāng)前計數(shù)值。 在高速計數(shù)器硬件的組態(tài)期間分配存儲當(dāng)前計數(shù)值的映像地址。 可以使用程序邏輯直接讀取計數(shù)值。 返回給程序的值將是讀取計數(shù)器瞬間的正確計數(shù)。 但計數(shù)器仍將繼續(xù)對高速事件計數(shù)。 因此,程序使用舊的計數(shù)值完成處理前,實際計數(shù)值可能會更改。
條件代碼: 發(fā)生錯誤時,ENO 設(shè)置為 0,并且 STATUS 輸出包含條件代碼。
表格 9- 3 STATUS 值 (W#16#)
| STATUS | 說明 |
| 0 | 無錯誤 |
| 80A1 | HSC 標(biāo)識符沒有對 HSC 尋址 |
| 80B1 | NEW_DIR 的值 |
| 80B2 | NEW_CV 的值 |
| 80B3 | NEW_RV 的值 |
| 80B4 | NEW_PERIOD 的值 |
| 80C0 | 多路訪問高速計數(shù)器 |
| 80D0 | CPU 硬件配置中未啟用高速計數(shù)器 (HSC) |
高速計數(shù)器的使用
高速計數(shù)器 (HSC) 對發(fā)生速率快于 OB 執(zhí)行速率的事件進(jìn)行計數(shù)。 如果待計數(shù)事件的發(fā)生速率處于 OB 執(zhí)行速率范圍內(nèi),則可使用 CTU、CTD 或 CTUD 計數(shù)器指令。 如果事件的發(fā)生速率快于 OB 的執(zhí)行速率,則應(yīng)使用 HSC。 CTRL_HSC 指令允許用戶程序通序更改一些 HSC 參數(shù)。
例如: 可以將 HSC 用作增量軸編碼器的輸入。 該軸編碼器每轉(zhuǎn)提供數(shù)量的計數(shù)值以及一個復(fù)位脈沖。 來自軸編碼器的時鐘和復(fù)位脈沖將輸入到 HSC 中。
先是將若干預(yù)設(shè)值中的個裝載到 HSC 上,并且在當(dāng)前計數(shù)值小于當(dāng)前預(yù)設(shè)值的時段內(nèi)計數(shù)器輸出一直是的。 在當(dāng)前計數(shù)值等于預(yù)設(shè)時、發(fā)生復(fù)位時以及方向改變時,
HSC 會提供一個中斷。
每次出現(xiàn)“當(dāng)前計數(shù)值等于預(yù)設(shè)值”中斷事件時,將裝載一個新的預(yù)設(shè)值,同時設(shè)置輸出的 下一狀態(tài)。 當(dāng)出現(xiàn)復(fù)位中斷事件時,將設(shè)置輸出的個預(yù)設(shè)值和個輸出狀態(tài),并重復(fù)該循環(huán)。
由于中斷發(fā)生的遠(yuǎn)低于 HSC 的計數(shù)速率,因此能夠在對 CPU 掃描周期影響相對較小的情況下實現(xiàn)對高速操作的控制。 通過提供中斷,可以在的中斷例程中執(zhí)行每次的新預(yù)設(shè)值裝載操作以實現(xiàn)簡單的狀態(tài)控制。 (或者,所有中斷事件也可在單個中斷例程中進(jìn)行處理。)
表格 9- 4 大 (KHz)
| HSC | 單相 | 雙相和 AB 正交 |
| HSC1 | CPU | 100 KHz | 80 KHz |
| 高速 SB | 200 KHz | 160 KHz |
| SB | 30 KHz | 20 KHz |
| HSC2 | CPU | 100 KHz | 80 KHz |
| 高速 SB | 200 KHz | 160 KHz |
| SB | 30 KHz | 20 KHz |
| HSC3 | CPU | 100 KHz | 80 KHz |
| HS | CPU | 30 KHz | 20 KHz |
| HSC5 | CPU | 30 KHz | 20 KHz |
| 高速 SB | 200 KHz | 160 KHz |
| SB | 30 KHz | 20 KHz |
| HSC6 | CPU | 30 KHz | 20 KHz |
| 高速 SB | 200 KHz | 160 KHz |
| SB | 30 KHz | 20 KHz |
選擇 HSC 的功能
所有 HSC 在同種計數(shù)器運行下的工作都相同。 HSC 共有四種基本類型:
用戶可選擇是否復(fù)位輸入來使用各種 HSC 類型。 如果復(fù)位輸入(存在一些,請參見下表),則它會當(dāng)前值并在您禁用復(fù)位輸入之前保持狀態(tài)。
測量周期決定 HSC 計算并報告新值的。 報告是通過上一測量周期內(nèi)總計數(shù)值確定的平均值。 如果該在快速變化,則報告值將是介于測量周期內(nèi)出現(xiàn)的高和低之間的一個中間值。 無論測量周期的設(shè)置是什么,總是會以赫茲為單位來報告(每秒脈沖個數(shù))。
同一輸入不可用于兩個不同的功能,但任何未被其 HSC 的當(dāng)前使用的輸入均可用于其它用途。 例如,如果 HSC1 處于使用內(nèi)置輸入但不使用外部復(fù)位 (I0.3) 的, 則 I0.3 可以用于沿中斷或 HSC2。
表格 9- 5 HSC 的計數(shù)
| 類型 | 輸入 1 | 輸入 2 | 輸入 3 | 功能 |
| 具有內(nèi)部方向控制的單相計數(shù)器 | 時鐘 | (可選: 方向) | - | 計數(shù)或 |
| 復(fù)位 | 計數(shù) |
| 具有外部方向控制的單相計數(shù)器 | 時鐘 | 方向 | - | 計數(shù)或 |
| 復(fù)位 | 計數(shù) |
| 具有 2 個時鐘輸入的雙相計數(shù)器 | 加時鐘 | 減時鐘 | - | 計數(shù)或 |
| 復(fù)位 | 計數(shù) |
| A/B 相正交計數(shù)器 | A 相 | B 相 | - | 計數(shù)或 |
| 復(fù)位 1 | ?計數(shù) |
1 對于編碼器: Z 相,歸位
HSC 的輸入地址
說明