西門子PLC的計數器指令,高速計數器的用法

2020-12-13 智凡桑普雷德

計數器

可使用計數器指令對內部程序事件和外部過程事件進行計數。

● 輸入參數 CU 的值從 0 變為 1 時,「加計數」計數器 (CTU) 就會加 1。

● 輸入參數 CD 的值從 0 變為 1 時,「減計數」計數器 (CTD) 就會減 1。

● 「加計數和減計數」計數器 (CTUD) 在加計數 (CU) 或減計數 (CD) 輸入從 0 轉換為1時加 1 或減 1。

要注意的是每個計數器都使用數據塊中存儲的結構來保存計數器數據。 對於 SCL,必須首先為各個計數器指令創建 DB 方可引用相應指令。 對於 LAD 和 FBD,STEP 7 會在插入指令時自動創建 DB。

用戶程序中可以使用的計數器數僅受 CPU 存儲器容量限制。各個計數器使用 3 個字節(表示 SInt 或 USInt)、6 個字節(表示 Int 或 UInt)或 12 個字節(表示 DInt 或UDInt)。

如上時序圖顯示了具有無符號整數計數值的 CTU 計數器的運行(其中 PV = 3)。

● 如果參數 CV(當前計數值)的值大於或等於參數 PV(預設計數值)的值,則計數器輸出參數 Q = 1。

● 如果復位參數 R 的值從 0 變為 1,則 CV 復位為 0。

如上時序圖顯示了具有無符號整數計數值的 CTD 計數器的運行(其中 PV = 3)。

● 如果參數 CV(當前計數值)的值等於或小於 0,則計數器輸出參數 Q = 1。

● 如果參數 LOAD 的值從 0 變為 1,參數 PV(預設值)的值將作為新的 CV 裝載到計

數器。

如上時序圖顯示了具有無符號整數計數值的 CTUD 計數器的運行(其中 PV = 4)。

● 如果參數 CV(當前計數值)的值等於或大於參數 PV(預設值)的值,則計數器輸出參數 QU = 1。

● 如果參數 CV 的值小於或等於零,則計數器輸出參數 QD = 1。

● 如果參數 LOAD 的值從 0 變為 1,則參數 PV 的值將作為新的 CV 裝載到計數器。

● 如果復位參數 R 的值從 0 變為 1,則 CV 復位為 0。

脈衝寬度調製 (PWM)

CTRL_PWM 指令可提供佔空比可變的固定循環時間輸出。 PWM 輸出以指定頻率(循環時間)啟動之後將連續運行。脈衝寬度會根據需要進行變化以影響所需的控制。

CTRL_PWM 指令將參數信息存儲在 DB 中。 數據塊的參數由 CTRL_PWM 指令控制。

CPU 第一次進入 RUN 模式時,脈衝寬度將設置為在設備配置中組態的初始值。根據需要將值寫入設備配置中指定的字長度輸出 (Q) 地址(「輸出地址」/「起始地址」)以更改脈衝寬度。 使用指令(例如,Move、Convert、數學運算或 PID)將指定的脈衝寬度寫入相應的字長度輸出 (Q)。 必須使用輸出值的有效範圍(百分數、千分數、萬分數或 S7 模擬格式)。

佔空比可表示為循環時間的百分數或相對量(例如,0 到 1000,或者 0 到 10000)。 脈衝寬度可從 0(無脈衝,始終關閉)到滿刻度(無脈衝,始終打開)變化。

PWM 輸出可在 0 到滿量程之間變化,因此可提供在許多方面都與模擬量輸出相同的數字量輸出。 例如,PWM輸出可用於控制電機的速度,速度範圍可以是從停止到全速;也可用於控制閥的位置,位置範圍可以是從閉合到完全打開。

高速計數器 (HSC)

使用高速計數器 (HSC, High-Speed Counter) 對發生速率快於 OB 執行速率的事件進行計數。 利用CTRL_HSC指令控制 HSC 的運行。

在 CPU 的設備配置中對每個 HSC 的參數進行組態: 計數模式、I/O 連接、中斷分配以及是作為高速計數器還設備來測量脈衝頻率。

CTRL_HSC 指令通常放置在觸發計數器硬體中斷事件時執行的硬體中斷 OB 中。 例如,如果 CV=RV 事件觸發計數器中斷,則硬體中斷 OB 代碼塊執行 CTRL_HSC 指令,並且可通過裝載 NEW_RV 值更改參考值。

在 CTRL_HSC 參數中沒有提供當前計數值。 在高速計數器硬體的組態期間分配存儲當前計數值的過程映像地址。 可以使用程序邏輯直接讀取計數值。 返回程序的值將是讀取計數器瞬間的正確計數。 計數器仍將繼續對高速事件計數。 因此,程序使用舊的計數值完成處理前,實際計數值可能會更改。

可以通過用戶程序來修改某些 HSC 參數,從而對計數過程提供程序控制:

● 將計數方向設置為 NEW_DIR 值

● 將當前計數值設置為 NEW_CV 值

● 將參考值設置為 NEW_RV 值

● 將周期值(限頻率測量模式)設置為 NEW_PERIOD 值

如果執行 CTRL_HSC 指令後以下布爾標記值被設置為 1,則相應的 NEW_xxx 值將裝載到計數器。 執行一次CTRL_HSC 指令可處理多個請求(同時設置多個標記)。

● 設置 DIR = 1 會裝載 NEW_DIR 值。

● 設置 CV = 1 會裝載 NEW_CV 值。

● 設置 RV = 1 會裝載 NEW_RV 值。

● 設置 PERIOD = 1 會裝載 NEW_PERIOD 值。

HSC 的運行

高速計數器 (HSC) 對發生速率快於 OB 執行速率的事件進行計數。 如果待計數事件的發生速率處於 OB 執行速率範圍內,可使用 CTU、CTD 或 CTUD 計數器指令。 如果事件的發生速率快於 OB 的執行速率,則應使用 HSC。CTRL_HSC 指令允許用戶程序通過程序更改一些 HSC 參數。

例如:可以將 HSC 用做增量軸編碼器的輸入。 該軸編碼器每轉提供指定數量的計數值以及一個復位脈衝。 來自軸編碼器的時鐘和復位脈衝將輸入到 HSC 中。

用戶程序將若干預設值中的第一個值裝載到 HSC 上,並且在當前計數值小於當前預設值的時段內計數器輸出一直由用戶程序保持激活。當計數器值等於參考值(或 CV =RV)、發生復位及發生方向變化時,用戶程序會對 HSC 進行組態,以提供中斷功能。

每個 CV = RV 中斷事件發生時,用戶程序都會裝載新的參考值,並設置 CV = RV 中斷OB 內的下一輸出狀態。發生復位中斷事件時,用戶程序會裝載第一個參考值,並設置復位中斷 OB 中的第一個輸出狀態,然後重複該循環。

由於中斷發生的頻率遠低於 HSC 的計數速率,因此能夠在對 CPU 掃描周期影響相對較小的情況下實現對高速操作的精確控制。 通過提供中斷,可以在獨立的中斷例程中執行每次的新預設值裝載操作以實現簡單的狀態控制。 (或者,也可在單個中斷例程中處理所有中斷事件。)

選擇 HSC 的功能

所有 HSC 在同一計數器運行模式下的工作方式都相同。 HSC 共有四種基本類型:

● 具有內部方向控制的單相計數器

● 具有外部方向控制的單相計數器

● 具有 2 個時鐘輸入的雙向計數器

● A/B 相正交計數器

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

● 頻率功能: 有些 HSC 模式允許 HSC 被組態(計數類型)為報告頻率而非當前脈衝

計數值。 有三種可用的頻率測量周期: 0.01、0.1 或 1.0 秒。頻率測量周期決定 HSC 計算並報告新頻率值的頻率。 報告頻率是通過上一測量周期內總計數值求出的平均值。 如果該頻率在快速變化,則報告值將是介於測量周期內出現的最高頻率和最低頻率之間的一個中間值。 無論頻率測量周期的設置是什麼,總是會以赫茲為單位來報告頻率(每秒脈衝個數)。

● 計數器模式和輸入: 下表列出了用於與 HSC 相關的時鐘、方向控制和復位功能的輸入。同一輸入不可用於兩個不同的功能,但任何未被其 HSC 的當前模式使用的輸入均可用於其它用途。 例如,如果 HSC1 處於使用內置輸入但未使用外部復位 (I0.3) 的模式下,則 I0.3 可以用於沿中斷或 HSC2。

說明

在設備配置期間分配高速計數器設備使用的數字量 I/O 點。 將數字量 I/O 點的地址分配給這些設備之後,無法通過監視表格中的強制功能修改所分配的 I/O 點的地址值。組態 CPU 時,可以選擇啟用和組態每個 HSC。 CPU 會根據其組態自動為每個 HSC 分配輸入地址。 (某些 HSC 允許選擇是使用 CPU 的板載輸入還是使用 SB 的輸入。)

注意

如下表所示,不同 HSC 的可選信號的默認分配互相重疊。 例如,HSC 1 的可選外部復位使用的輸入與 HSC 2 的其中一個輸入相同。

要始終確保組態 HSC 時任何一個輸入都不會被兩個 HSC 使用。

例如,下表顯示了 CPU 1212C 的板載 I/O 和 SB 兩者的 HSC 輸入分配。 (如果 SB 只有 2 個輸入,則僅輸入4.0 和 4.1 可用。)

● 對於單相: C 為時鐘輸入,[d] 為可選方向輸入,[R] 為可選外部復位輸入。 (復位僅適用於「計數」模式。)

● 對於雙相: CU 為加時鐘輸入,CD 為減時鐘輸入,[R] 為可選外部復位輸入。 (復位僅適用於「計數」模式。)

● 對於 AB 相正交: A 為時鐘 A 輸入,B 為時鐘 B 輸入,[R] 為可選外部復位輸入。(復位僅適用於「計數」模式。)

HSC 1 和 HSC 2 可組態為使用板載輸入或 SB 輸入。HSC 5 和 HSC 6 只能使用 SB 輸入。 HSC 6 只能使用 4 輸入 SB。具有 2 個數字量輸入的 SB 只能提供輸入 4.0 和 4.1。訪問 HSC 的當前值啟用脈衝發生器作為 PTO 時,會向該 PTO 分配一個對應的 HSC。 HSC1 分配給PTO1,HSC2 分配給 PTO2。 分配的 HSC 完全屬於 PTO 通道,並且禁用 HSC 的正常輸出。 HSC 值僅用於內部功能。 生成脈衝時,不能監視當前值(例如,在 ID1000中)。CPU 允許用戶組態最多 6 個高速計數器。 用戶可編輯CPU 的「屬性」(Properties) 來組態各個 HSC 的參數。在用戶程序中使用 CTRL_HSC 指令控制 HSC 的運行。通過選擇該 HSC 的「啟用」(Enable) 選項啟用特定的HSC。

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

那麼在什麼情況下使用CTU、CTD 或 CTUD 計數器指令,又在什麼情況下使用 HSC指令呢?

CU、CD 和 CTUD 指令使用軟體計數器,軟體計數器的最大計數速率會受到其所在 OB 的執行速率的限制。如果待計數事件的發生速率處於 OB 執行速率範圍內,使用 CTU、CTD 或 CTUD 計數器指令。 如果事件的發生速率快於 OB 的執行速率,則應使用 HSC。

我們了解了高速計數器指令那實際編程又是什麼樣子的呢?我們通過下面的實例看一下吧。

1. 計數器類型分為三種:Axis of motion(運動軸),Frequency(頻率測量),Counting(計數)。

2. 計數器模式分為4種:Single phase(單相),Two phase(雙相),AB Quadrature 1X(A/B相正交四倍數)。

3. 輸入源

4. 技術方向選擇,User program (internal direction control)(內部方向控制)

5. 初始計數方向。

1. 是系統指定的高速計數器硬體識別號,這裡填寫1.

2. 「1」為使能更新初值。

3. 「0」新初始值為0。

將此程序下載到CPU以後即可執行。當前值可以在ID1000中讀出。高速計數器的指令塊,若不需要修改硬體組態中的參數,可不需要調用,系統仍然可以計數。

如果感覺文章還不錯歡迎點讚關注評論轉發。

相關焦點

  • 西門子PLC計數器指令編程
    計數器指令有:增計數器指令(CTU)、減計數器指令(CTD)和增/減計數器指令(CTUD)。1、增計數器指令(CTU)本文引用地址:http://www.eepw.com.cn/article/201612/331079.htm使該計數器在每CU輸入的上升沿遞增計數,直至計數最大值。噹噹前計數值(C×××)大於或等於預置計數值(PV)時,該計數器被置位。當復位輸入(R)置位時,計數器被復位。
  • 三菱FX PLC學習之高速計數器指令(下)
    上篇文章分享的是高速計數器,我們從中知道了高速計數器的真面目,所以這次接著分享學習如何掌控它們,以高速計數器指令的形式。高速計數器指令(HS或DHS)有3個,以HS開頭,分別為比較置位指令(HSCS)、比較復位指令(HSCR)和區間比較指令(HSZ)。
  • 西門子S7-1200高速計數器功能介紹及應用舉例
    西門子S7-1200高速計數器功能介紹及應用舉例 電子發燒友網 發表於 2019-01-31 15:19:00 1高速計數器 S7-1200 CPU提供了最多
  • 三菱FX PLC學習之高速計數器指令(上)
    說到計數器,我相信大家都很熟悉,之前的文章中我也分享過PLC內部計數器相關的內容,但這高速計數器,彼時的我卻是一無所知的。不過歷經七七四十九天的閉關修煉,我可終於揭開了它的面紗。所以,在分享高速計數器指令之前,咱們就先來看看高速計數器是什麼吧!
  • 三菱Q-PLC,QD62D高速計數器基礎
    QD62D高速計數器的基礎知識高速計數器是PLC計數器中常用的一種,PLC 內部有兩種計數器,一種是對PLC內部信號進行計數的計數器,另一種是對外部事件信號進行計數的計數器,高速計數器屬於第二種。在PLC中,這兩種計數器的責任不同、分工明確、工作上不能互相代替。高速計數器是對PLC外部脈衝量進行計數的計數器。發脈衝量的器件有編碼器、脈衝發生器、手輪等。三菱Q系列PLC高速計數器已做成模塊,選型軟體可以根據要求很方便地選擇。下面介紹一下QD62D高速計數器模塊。
  • 三菱PLC計數器的應用,大家可以自己體會下與西門子的區別
    三菱PLC計數器的應用,大家可以自己體會下與西門子的區別先簡單看看三菱PLC的計數器:計數器(C)FX2N中的16位增計數器,是16位二進位加法計數器,它是在計數信號的上升沿進行計數通用計數器的通道號:C0 ~C99,共100點。保持用計數器的通道號:C100~C199,共100點。通用與掉電保持用的計數器點數分配,可由參數設置而隨意更改。
  • 西門子S7-300系列PLC的指令系統和編程規則
    STEP7是與西門子公司SIMATIC S7系列plc相配套的支持用戶開發應用程式的軟體包,在STEP7中,S7系列PLC的程式語言非常豐富,有
  • 分享PLC編程元件計數器的使用方法及應用實例
    西門子PLC計數器用C 表示,主要用來累計輸入脈衝的次數。它也是應用非常廣泛的編程元件,經常用來對產品進行計數或進行特定功能的編程。使用時要提前輸入它的設定值(計數的個數)。當輸入條件滿足時,計數器開始累計它的輸入端脈衝電位上升沿(正跳變)的次數。
  • 西門子PLC的軟元件符號與作用介紹
    西門子S7-200 SMART PLC所有軟元件符號有13個:I(輸入繼電器) 、Q(輸出繼電器)、M(輔助繼電器)、SM(特殊輔助繼電器)、V(變量存儲器)、L(局部變量存儲器)、S(順序控制繼電器)、T(定時器)、C(計數器)
  • 西門子PLC S7-1200-CPU基礎性設置
    profinet接口1.1 這裡主要設置plc的IP位址,在項目中設置IP位址:192.168.0.X(X=1-255),適用於CPU、分布式操作模式2設置高速計數器S7-1200 CPU提供了最多6個(1214C)高速計數器,其獨立於CPU的掃描周期進行計數
  • 三菱PLC和中斷有關指令的使用方法
    三菱FX系列plc的中斷事件包括輸入中斷、定時中斷和高速計數器中斷,發生中斷事件時,CPU停止執行當前的工作,立即執行預先寫好的相應的中斷程序,這一過程不受PLC掃描工作方式的影響,因此使PLC能迅速響應中斷事件。
  • PLC指令入門|三菱FX5U PLC通用FB功能塊指令
    熟悉三菱GX軟體的朋友,應該知道在GX軟體中有個部件選擇窗口,在這個窗口中我們可以看到通用函數/FB,其中就包括了雙穩態功能塊、邊緣檢測功能塊、定時器功能塊和計數器功能塊,那麼今天就給大家介紹一下通用FB功能塊指令的內容。雙穩態功能塊:雙穩態功能塊分為兩個,置位優先SR和復位優先RS。置位優先功能塊是當S1和R都為1時,優先執行置位的操作。
  • 三菱FX PLC入門之定時器和計數器
    換句話說,就是斷電保持型定時器不會自動復位,所以我們想要它復位時,只能用RST指令進行強制復位。積算型定時器按時鐘脈衝不同也可以分為兩種。顯然這個的數量比通用型的少很多,可能是它比較少用吧。又因為定時器不會自動復位,所以,就是X1斷開,定時器的線圈失電,但它的計時保持在6s,常開觸點一直閉合,直到X2觸點閉合,RST指令強制復位定時器,定時器的常開觸點才會斷開。總的來說就是,通用型定時器只需一個信號就可以控制線圈和觸點的通斷。而積算型定時器必須要兩個信號加上RST指令才能控制其線圈和觸點的通斷,真麻煩,怪不得比較少用。
  • 如何有效學會西門子PLC?教你快速掌握PLC的各種擴展功能
    關於如何學習西門子PLC這個問題,上次說到,有了電工基礎之後,需要掌握PLC入門的基礎知識和PLC編程指令知識,了解這兩大方面,你對PLC編程基礎和邏輯控制順序的設置就掌握的八九不離十了!因為學習PLC的最終目的就是學會用PLC來操作應用,這部分內容中有各種指令、通信以及編程,這是重中之重。
  • 西門子PLCS7-200 SMART定時器的用法圖解PLC入門知識
    今天來學習西門子PLCS7-200 SMART定時器的用法圖解,以及操作方法使用S7-200 SMART指令提供了下述三種類型的定時器。接通延時定時器(TON):用於定時單個時間間隔 。定時器號和解析度定時器號決定了定時器的解析度(時基),並且解析度在指令塊上標出。
  • PLC的基本指令(2)
    上篇文章介紹西門子PLC的編程元件及基本指令的第一大類觸點線圈指令。下面接著繼續介紹其他指令。ED指令對其之前的邏輯運算結果的下降沿產生一個寬度為一個掃描周期的脈衝,用常開觸點符號裡面加一個N表示。實際用法見圖10.
  • 如何使用三菱PLC的中斷指令?
    假如只有主程序,那麼程序結尾就需要一個END指令就可以,如果別別的程序,就需要和下圖一樣,在主程序區尾端假如一行FEND,主程序結束指令,把主程序和其他程序區分開。中斷程序寫在主程序的後面,在左母線的左邊輸入中斷程序的編號,I1代表從這一行開始是I001中斷程序(中斷指令的編號是3位的,I1就是I001)結束的標準是IRET。
  • 基於臺達PLC和變頻器的位置控制系統實現
    本文介紹一個高性價比的,應用臺達plc的高速計數器和與變頻器通訊的功能來實現的定位控制的例子。2 控制實例  切紙機械是印刷和包裝行業最常用的設備。其完成的最基本動作是:把待裁切的材料送到指定位置,然後進行裁切。其控制的核心就是一個單軸的位置控制。
  • 西門子S7-200 SMART PLC功能指令學習及實例分析
    1、S7-200 SMART CPU提供了加計數器(CTU)、減計數器(CTD)、加減計數器(CTUD)三種計數器。2、計數器實例分析①加計數器 CTU②減計數 CTD③加減計數器 CTUD>三、循環指令1、S7-200 SMART CPU提供了FOR-NEXT循環指令用於重複執行程序段。
  • 如何使用PLC的計數器對電動機進行起動和停止
    ① 採用計數器對電動機進行起動停止控制,控制電路只需用一個按鈕(X0。當按下按鈕X0時,經M0常閉接點使計數器CO的線圈得電計數,計數值為1且等於設定值1,Co的接點動作,Y0線圈得電,控制電動機起動,第一個掃描周期儘管Y0接點閉合,但M0常閉接點斷開,C0不會復位,按鈕X0鬆開時,Y0繼續得電。