點擊 《

福利來了!PLC的資料(免費),你要嗎?

點擊

第二波福利來了!PLC的資料(免費),你要嗎?》

1、CTRL_HSC(控制高速計數器)指令

參數的數據類型:

您可以在 CPU 的設備組態中為各 HSC的計數/頻率功能、複位選項、中斷事件組態、硬體 I/O以及計數值地址對相應參數進行組態。可以通過用戶程序來修改某些 HSC 參數,從而對計數過程提供程序控制:● 將計數方向設置為 NEW_DIR 值● 將當前計數值設置為 NEW_CV 值● 將參考值設置為 NEW_RV 值● 將週期值(僅限頻率測量模式)設置為 NEW_PERIOD 值

如果執行 CTRL_HSC 指令後以下布爾標記值置位為 1,則相應的 NEW_xxx值將裝載到計數器。 CTRL_HSC 指令執行一次可處理多個請求(同時設置多個標記)。● DIR = 1 是裝載 NEW_DIR 值的請求,0 = 無變化● CV = 1 是裝載 NEW_CV 值的請求,0 = 無變化● RV = 1 是裝載 NEW_RV 值的請求,0 = 無變化● PERIOD = 1 是裝載 NEW_PERIOD 值的請求,0 = 無變化CTRL_HSC 指令通常放置在觸發計數器硬體中斷事件時執行的硬體中斷 OB 中。例如,如果 CV=RV 事件觸發計數器中斷,則硬體中斷 OB 代碼塊執行CTRL_HSC指令並且可通過裝載 NEW_RV 值更改參考值。在 CTRL_HSC 參數中沒有提供當前計數值。在高速計數器硬體的組態期間分配存儲當前計數值的過程映像地址。可以使用程序邏輯直接讀取計數值。 返回給程序的值將是讀取計數器瞬間的正確計數。但計數器仍將繼續對高速事件計數。因此,程序使用舊的計數值完成處理前,實際計數值可能會更改。

HSC 當前計數值: 程序訪問、值範圍和翻轉特性

CPU 將各 HSC 的當前值存儲在輸入 (I) 地址中。 下表列出了為各 HSC的當前值分配的默認地址。 可通過修改設備組態中的 CPU 屬性來更改當前值的 I 地址。高速計數器使用 DInt 值存儲當前計數值。 DInt 的計數值範圍為 -2147483648 到+2147483647。進行加計數時,計數器從最大正值翻轉到最大負值;進行減計數時,計數器從最大負值翻轉到最大正值。

如果發生錯誤,則 ENO 將設置為 0,且 STATUS 輸出將指示條件代碼。

Execution condition codes:

2、CTRL_HSC_EXT(控制高速計數器(擴展))指令

利用 CTRL_HSC_EXT指令,程序可以按指定時間週期訪問指定高速計數器的輸入脈衝數量。該指令使得程序可以以納米級精度確定輸入脈衝之間的時間長度。要使用 CTRL_HSC_EXT 指令,請按下列步驟操作:1. 為 Period 模式組態相關的高速計數器 選擇所需要的運行階段。如果選擇內部方向控制,則可以釋放用於其它用途的方向輸入。2. 將 CTRL_HSC_EXT 拖放至梯形圖程序中,該操作會同時創建一個背景數據塊CTRL_HSC_EXT_DB。3. 創建一個 User Global_DB=ex: "MYDB"(CTRL_HSC_EXT 的輸入參數)。該數據塊含有該 SFB 所需要的信息。4. 在 MYDB 中,找到一個空行,並添加變數 Name=Ex: "My period"。5. 輸入 "HSC_Period" <回車鍵> 以添加數據類型 (下拉控制項目前沒有該選項)。必須由用戶正確地輸入該名稱(如圖所示)。6. 檢查 "MyPeriod" 變數現在是否是一個可以擴展的通信數據結構。7. 在梯形圖指令 CTRL_HSC_EXT: "CTRL" 控點上附加背景數據塊變數"MYDB".MyPeriod。

CTRL_HSC_EXT 指令:

參數的數據類型:

HSC_Period 結構:

HSC_Period 結構元素定義● ElapsedTime返回當前週期測量間隔最後一個脈衝和前一個週期測量間隔最後一個脈衝之間的間隔時間(單位:納秒)。

若 EdgeCount = 0, 則 ElapsedTime 為自最後一個脈衝算起的累計時間。ElapsedTime的範圍為 0 至 4,294,967,280 納秒(0x0000 0000 至0xFFFFFFF0)。 返回值若為429496295 (0xFFFF FFFF),則表示出現週期溢出。 自 0xFFFF FFF1 至 0xFFFFFFFE 的值為保留值。如果 ElapsedTime 為 0 (沒有收到輸入脈衝)或 0xFFFFFFFF(出現週期溢出),則 EdgeCount 中的值無效。● EdgeCount 返回最近一個測量間隔的輸入脈衝的數量。 EdgeCount必須大於等於「1」才能計算脈衝之間的間隔時間。 該週期採用以下公式計算: 週期=ElapsedTime/EdgeCount。以下示例描述如何採用該指令進行週期測量。

CPU 將各 HSC 的當前值存儲在輸入 (I) 地址中。 下表列出了為各 HSC的當前值分配的默認地址。 可通過修改設備組態中的 CPU 屬性來更改當前值的輸入(I)地址。高速計數器使用 DInt 值存儲當前計數值。 DInt 的計數值範圍為 -2147483648 到+2147483647。進行加計數時,計數器從最大正值翻轉到最大負值;進行減計數時,計數器從最大負值翻轉到最大正值。

3、高速計數器的使用方法

高速計數器 (HSC) 能夠對發生速率快於循環 OB 執行速率的事件進行計數。如果待計數事件的發生速率慢於 OB 執行速率,則可使用 CTU、CTD 或 CTUD標準計數器指令。 如果事件的發生速率快於 OB 的執行速率,則應使用更快的 HSC設備。 CTRL_HSC 指令允許程序通過程序更改一些 HSC 參數。例如: 可以將 HSC 用作增量軸編碼器的輸入。該軸編碼器每轉提供指定數量的計數值以及一個複位脈衝。來自軸編碼器的時鐘和複位脈衝將輸入到 HSC 中。先是將若干預設值中的第一個裝載到 HSC上,並且在當前計數值小於當前預設值的時段內計數器輸出一直是激活的。在當前計數值等於預設時、發生複位時以及方向改變時,HSC 會提供一個中斷。每次出現「當前計數值等於預設值」中斷事件時,將裝載一個新的預設值,同時設置輸出的下一狀態。當出現複位中斷事件時,將設置輸出的第一個預設值和第一個輸出狀態,並重複該循環。由於中斷髮生的頻率遠低於 HSC 的計數速率,因此能夠在對 CPU掃描週期影響相對較小的情況下實現對高速操作的精確控制。通過提供中斷,可以在獨立的中斷常式中執行每次的新預設值裝載操作以實現簡單的狀態控制。 此外,也可在單個中斷常式中處理所有中斷事件。HSC 輸入通道選擇使用以下表格並確保連接的 CPU 和 SB 輸入通道可以支持過程信號中的最大脈衝速率。

CPU 輸入: 最大頻率

SB 信號板輸入: 最大頻率(可選信號板)

選擇 HSC 的功能

所有 HSC 在同種計數器運行模式下的工作方式都相同。 在 CPU 設備組態中為 HSC功能屬性分配計數器模式、方向控制和初始方向。HSC 共有四種基本類型:● 具有內部方向控制的單相計數器● 具有外部方向控制的單相計數器● 具有 2 個時鐘輸入的雙相計數器● A/B 相正交計數器

用戶可選擇是否激活複位輸入來使用各種 HSC 類型。如果激活複位輸入(存在一些限制,請參見下表),則它會清除當前值並在您禁用複位輸入之前保持清除狀態。

HSC 的輸入地址

組態 CPU 時,可以選擇為每個 HSC 啟用和組態「硬體輸入」。所有 HSC 輸入必須連接到 CPU 模塊上的端子,或插入 CPU 模塊前方的可選信號板。

下表顯示了 CPU 的板載 I/O 和可選 SB 兩者的默認 HSC 輸入分配。 (如果所選 SB模塊只有 2 個輸入,則僅輸入 4.0 和 4.1 可用。)HSC 輸入表定義● 單相: C 為時鐘輸入,[d] 為方向輸入(可選),[R] 為外部複位輸入(可選)(複位僅適用於「計數」模式。)● 雙相: CU 為加時鐘輸入,CD 為減時鐘輸入,[R] 為外部複位輸入(可選)。(複位僅適用於「計數」模式。)● AB 相正交: A 為時鐘 A 輸入,B 為時鐘 B 輸入,[R] 為外部複位輸入(可選)。(複位僅適用於「計數」模式。)

HSC 默認地址分配:

4、組態 HSC

啟用 HSC 之後組態其它參數,例如計數器功能、初始值、複位選項和中斷事件。

尋找同路人

做自動化工業變革的踐行者

可通過菜單查找自己喜歡的文章匯總:

【現場儀錶】

【DCS部分】

【PLC部分】

【SIS部分】

【通訊】

【標準】

【數字化】

【問題解答】此處列出部分鏈接,更多文章通過菜單獲取。

推薦閱讀:

相關文章