Counter
指定した数値範囲でのカウント アップまたはカウント ダウン
- ライブラリ:
DSP System Toolbox / Signal Management / Switches and Counters

説明
Counter ブロックは、指定された数値範囲内をカウント アップまたはカウント ダウンします。[Count direction] パラメーターを [Up]
に設定すると、ブロックは [Inc] (インクリメント) 端子を有効にします。[Count direction] パラメーターを [Down]
に設定すると、ブロックは [Dec] (デクリメント) 端子を有効にします。[Count event] パラメーターを [Free running]
に設定すると、ブロックは [Inc] 端子または [Dec] 端子を無効にして、一定の時間間隔でカウントします。[Count event] パラメーターのその他すべての設定については、[Inc] 入力端子または [Dec] 入力端子でトリガー イベントが発生するたびに、ブロックがカウンターをインクリメントまたはデクリメントします。オプションの [Rst] 端子でトリガー イベントが発生した場合、ブロックはカウンターを初期状態にリセットします。
Counter ブロックは単一チャネル入力を受け入れます。スカラー入力の処理、ベクトル入力の処理、フリーランの処理の詳細については、アルゴリズムを参照してください。
端子
入力
Inc/Dec
— カウント イベントをトリガーする入力信号
スカラー | ベクトル
ブロックがカウンターをインクリメントまたはデクリメントするタイミングを決定するために使用される入力信号。実数値のスカラーまたはベクトルとして指定します。[Inc] 端子または [Dec] 端子への入力がベクトルの場合、ブロックはベクトルをフレームとして扱います。[Inc] 入力端子または [Dec] 入力端子でトリガー イベントが発生するたびに、ブロックがカウンターをそれぞれインクリメントまたはデクリメントします。[Count event] パラメーターを使用してトリガー イベントのタイプを制御します。
依存関係
[Count direction] パラメーターを [Up]
に設定すると、ブロックは [Inc] (インクリメント) 端子を有効にします。
[Count direction] パラメーターを [Down] に設定すると、ブロックは [Dec]
(デクリメント) 端子を有効にします。
[Count event] パラメーターを [Free running]
に設定すると、ブロックは [Inc]/[Dec] 入力端子を無効にします。フリー ラン モードでは、ブロックは一定の時間間隔でカウントします。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| Boolean
Rst
— リセット信号
スカラー
ブロックがカウンターをリセットするタイミングを決定するために使用される入力信号。実数値のスカラーとして指定します。[Rst] 端子は [Inc] 入力端子または [Dec] 入力端子と同じ端子サンプル時間をもっていなければなりません。[Rst] 端子でトリガー イベントが発生するたびに、ブロックはカウンターを初期状態にリセットします。トリガー イベントの詳細については、Count event, Count eventCount eventCount eventを参照してください。
依存関係
この端子を有効にするには、[Reset input] チェック ボックスをオンにします。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| Boolean
Max
— 最大カウンター サイズ
スカラー
最大カウンター サイズを [Count data type] が表現できる任意の符号なし整数として指定します。カウンター値の範囲は 0
から [Max] 端子への入力として指定する値までとなります。
依存関係
この端子を有効にするには、[Counter size] パラメーターを [Specify via input port]
に設定します。
データ型: uint8
| uint16
| uint32
出力
Cnt
— カウンターの現在の値
スカラー | ベクトル
カウンターの現在の値。スカラーまたはベクトルとして指定します。[Count event] パラメーターを [Free running]
に設定すると、[Cnt] 出力は M の各連続サンプル時間でのカウント値を含む M 行 1 列のベクトルであり、M は [Samples per output frame] パラメーターで指定する値です。
依存関係
この端子を有効にするには、[Output] パラメーターを [Count]
または [Count and Hit]
に設定します。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| Boolean
Hit
— ヒット ステータス
スカラー | ベクトル
[Hit values] パラメーターで指定した整数値のヒット ステータス。指定する値がカウントで発生すると、ブロックは [Hit] 端子で 1
を出力します。
メモ
[Hit data type] パラメーターの設定によって、ブロックが [Hit] 出力端子からブール値を出力することがあります。
依存関係
この端子を有効にするには、[Output] パラメーターを [Hit]
または [Count and Hit]
に設定します。
データ型: Boolean
| Logical
パラメーター
Count direction
— カウント アップまたはカウント ダウン
Up
(既定値) | Down
カウントを [Up]
に行うか [Down]
に行うかを指定します。ブロック アイコンの端子ラベルは、このパラメーターの値に基づいて [Inc] (インクリメント) または [Dec] (デクリメント) に変化します。
[Count direction] パラメーターを
[Up]
に設定した場合、カウンターがカウンター範囲の上限に到達すると、ブロックは次回に [Inc] 端子でトリガー イベントが発生した際にカウンターをゼロで再スタートさせます。[Count direction]
パラメーターを [Down] に設定した場合、カウンターがゼロに到達すると、ブロックは次回に [Dec] 端子でトリガー イベントが発生した際にカウンター範囲の上限でカウンターを再スタートさせます。
このパラメーターは Simulink® のノーマル モードで調整可能 (Simulink)です。
調整可能: Yes
Count event
— トリガー イベントのタイプ
Rising edge
(既定値) | Falling edge
| Either edge
| Non-zero sample
| Free running
[Inc]/[Dec] 端子または [Rst] 端子での受信時に、ブロックがカウンターのインクリメント、デクリメントまたはリセットをトリガーするイベントのタイプを指定します。以下の選択肢があります。
Rising edge
— [Inc]/[Dec] 端子または [Rst] 端子への入力が次のいずれかの動作を行う場合、カウントまたはリセット操作をトリガーします。負の値から正の値またはゼロに立ち上がる。
ゼロから正の値に立ち上がる。この場合、立ち上がりは負の値からゼロへの立ち上がりと連続していません (次の図を参照)。
Falling edge
— [Inc]/[Dec] 端子または [Rst] 端子への入力が次のいずれかの動作を行う場合、カウントまたはリセット操作をトリガーします。正の値から負の値またはゼロに立ち下がる。
ゼロから負の値に立ち下がる。この場合、立ち下がりは正の値からゼロへの立ち下りと連続していません (次の図を参照)。
Either edge
— [Inc]/[Dec] 端子または [Rst] 端子への入力が[Rising edge]
または[Falling edge]
の場合、カウントまたはリセット操作をトリガーします。Non-zero sample
— [Inc]/[Dec] 端子または [Rst] 端子への入力がゼロでない場合、各サンプル時間でカウントまたはリセット操作をトリガーします。Free running
— [Inc]/[Dec] 端子を無効にし、[Samples per output frame] と [Sample time] の両ブロック パラメーターを有効にします。ブロックはカウンターのインクリメントまたはデクリメントを一定の間隔 Ts で行います。これは [Sample time] パラメーターを使って指定します。詳細は、フリーランの処理を参照してください。このモードでは、ブロックは [Rst] 端子で非ゼロのサンプルを受信するたびにカウンターをリセットします。
依存関係
このパラメーターを [Free running]
に設定すると、ブロックは [Inc]/[Dec] 端子を無効にして [Sample time] パラメーターで指定した一定の間隔でカウントします。
Counter size
— カウントを行う整数値の範囲
8 bits
(既定値) | 16 bits
| 32 bits
| ユーザー定義
| Specify via input port
ブロックがカウントを行う整数値の範囲を指定します。ブロックがカウンター範囲全体をカウントし終わった場合、次回に [Inc]/[Dec] 端子でトリガー イベントが発生した際に、ブロックはカウンターを以下のようにリセットします。
[Count direction] パラメーターを
[Up]
に設定した場合に、カウンターがカウンター範囲の上限に到達すると、ブロックはカウンターをゼロで再スタートさせます。[Count direction] パラメーターを
[Down]
に設定した場合に、カウンターがゼロに到達すると、ブロックはカウンター範囲の上限でカウンターを再スタートさせます。
[Counter size] パラメーターは、以下のいずれかのオプションに設定することができます。
8 bits
—0
から255
の範囲でカウンターを指定します。16 bits
—0
から65535
の範囲でカウンターを指定します。32 bits
—0
から2
32–1
の範囲でカウンターを指定します。User defined
— [Maximum count] パラメーターを有効にします。これにより、カウントの上限を [Count data type] が表現できる任意の符号なし整数として指定することができます。カウンター値の範囲は0
から [Maximum count] パラメーターの値までとなります。Specify via input port
— [Max] 入力端子を有効にします。これにより、カウントの上限を [Count data type] が表現できる任意の符号なし整数として指定することができます。カウンター値の範囲は0
から [Max] 端子への入力として指定する値までとなります。
Maximum count
— カウンターの最大値
255
(既定値) | 正の整数
カウンターの最大値を指定する場合、[Counter data type] パラメーターに指定するデータ型で表現可能な任意の符号なし整数です。Simulink のノーマル モードで調整可能 (Simulink)です。
調整可能: Yes
依存関係
このパラメーターを有効にするには、[Counter size] を [User-defined]
に設定します。
Initial count
— カウンターの初期値
0
(既定値) | 整数 ≥ 0
カウンターの初期値を [Counter size] パラメーターで定義された範囲の任意の符号なし整数として指定します。ブロックはシミュレーションの開始時にカウンターの初期値を使用し、[Rst] 端子でトリガー イベントが発生するたびにカウンターをその初期値へリセットし直します。
調整可能: Yes
出力
— 出力カウント値、ヒット値、または両方
Count
(既定値) | Hit
| Count and Hit
有効にする出力端子を選択します。[Count]
、[Hit]
または [Count and Hit]
の各端子を選択して有効にすることができます。
Hit values
— フラグを立てるカウント値
32
(既定値) | スカラー | ベクトル
カウント中に発生した際に、(オプションの) [Hit] 出力端子で 1
のフラグを設定する必要がある整数または整数ベクトルを指定します。このパラメーターは、[Output] パラメーターを [Hit
] または [Count and Hit]
に設定した場合にのみ表示されます。
調整可能: Yes
Reset input
— Rst 入力端子を有効にする
on
(既定値) | off
このチェック ボックスをオンにして [Rst] 入力端子を有効にします。[Rst] 端子を有効にすると、[Rst] 端子でトリガー イベントが発生するたびに、ブロックはカウンターを初期値にリセットします。カウンターのリセットをトリガーするイベントのタイプを指定するには、[Count event] パラメーターを設定します。[Reset input] チェック ボックスをオフにすると、シミュレーション中にカウンターをリセットすることはできません。
Samples per output frame
— 各出力ベクトルのサンプル数
1
(既定値) | 正の整数
各出力ベクトルのサンプル数 M を正の整数で指定します。
依存関係
このパラメーターを有効にするには、[Count event] を [Free running]
に設定します。
サンプル時間
— Free Running
モードでのサンプル時間
1
(既定値) | -1
| スカラー ≥ 0
ブロックがフリー ラン モードの場合、カウンターをインクリメントまたはデクリメントする一定の間隔 Ts を指定します。ゼロ以上のスカラーを指定するか、-1
の値を指定してサンプル時間を継承できます。
たとえば、ブロックでカウンターを 5
秒ごとにインクリメントするには、[Count direction] パラメーターを [Up]
に、[Count event] パラメーターを [Free running]
に設定し、[Sample time] パラメーターで 5
の値を指定します。フリー ラン モードでは、出力端子のサンプル時間は常に MTs です。
依存関係
このパラメーターを有効にするには、[Count event] を [Free running]
に設定します。
Count data type
— Cnt 端子のデータ型
double
(既定値) | single
| int8
| uint8
| int16
| uint16
| int32
| uint32
[Cnt] 端子での出力のデータ型を指定します。
依存関係
このパラメーターを有効にするには、[Output] パラメーターを [Count]
または [Count and Hit]
に設定します。
Hit data type
— Hit 端子のデータ型
Logical
(既定値) | boolean
[Hit] 端子での出力のデータ型を指定します。
依存関係
このパラメーターを有効にするには、[Output] パラメーターを [Hit]
に設定するか、[Count data type] パラメーターを [Double]
に設定した状態で [Count and Hit]
に設定します。
モデルの例
ブロックの特性
データ型 |
|
直接フィードスルー |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
アルゴリズム
スカラー入力の処理
[Count direction] パラメーターを [Up]
に設定すると、[Inc] (インクリメント) 入力端子のトリガー イベントがブロックでカウンターを 1 つ増加させます。リセット イベントは発生しないと仮定し、ブロックは、カウンター値がカウントの上限に達するまでトリガーされるたびに増加させ続けます。次回に [Inc] 端子でトリガー イベントが発生すると、ブロックは 0
でカウンターを再スタートさせ、[Inc] 端子で後続のトリガー イベントが発生するたびにカウンター値を再び 1 ずつ増加させていきます。
[Count direction] パラメーターを [Down]
に設定すると、[Dec] (デクリメント) 入力端子のトリガー イベントがブロックでカウンターを 1 つ減少させます。リセット イベントは発生しないと仮定すると、ブロックはトリガーのたびに、ゼロに達するまでカウンターの減少を続けます。次回に [Dec] 端子でトリガー イベントが発生すると、ブロックはカウントの上限でカウンターを再スタートさせ、[Dec] 端子で後続のトリガー イベントが発生するたびにカウンター値を再び 1 ずつ減少させていきます。
トリガー イベント間では、ブロックは最新の値で出力を保持します。[Count event] パラメーターで指定されたトリガー イベントがオプションの [Rst] 入力端子で発生すると、ブロックはカウンターを初期状態にリセットします。[Inc]/[Dec] および [Rst] の各端子が同時にトリガー イベントを受信すると、ブロックは最初にカウンターをリセットしてから、インクリメントまたはデクリメントを適宜実行します。シミュレーション中にカウンターをリセットする必要がない場合、[Reset input] チェック ボックスをオフにして [Rst] 端子を無効にできます。
[Output] パラメーターを使うと、ブロックが出力する値を指定できます。
[Count]
は [Cnt] 出力端子をブロック上で有効にします。[Cnt] 端子はカウンターの現在の値をスカラー値として提供します。[Cnt] 出力端子は [Inc]/[Dec] 入力端子と同じ端子サンプル時間をもちます。[Hit]
は [Hit] 出力端子をブロック上で有効にします。カウンターの値が [Hit values] パラメーターで指定する整数のいずれとも等しくならないとき、[Hit] 端子はゼロを生成します。[Hit values] パラメーターには整数または整数のベクトルを指定することができます。カウンターの値が [Hit values] パラメーターに指定する値の 1 つ以上と等しくなると、ブロックは [Hit] 出力端子で1
の値を出力します。[Hit] 出力端子は [Inc]/[Dec] 入力端子と同じ端子サンプル時間をもちます。[Count and Hit]
は [Cnt] と [Hit] の両方の出力端子を有効にします。
ベクトル入力の処理
ブロックは [Inc]/[Dec] 端子へのベクトル入力をフレームとして扱います。ベクトルの処理はスカラーの処理と同じですが、[Inc]/[Dec] 入力ベクトルに含まれているトリガー イベントの合計件数によって、ブロックがカウンターをインクリメントまたはデクリメントする点が異なります。したがって、単一の [Inc]/[Dec] 入力ベクトルの処理中にカウンターが複数回変更することがあります。
ブロックに [Hit] 端子がある場合、[Inc]/[Dec] 入力ベクトルの処理中に [Hit values] のいずれかがカウンター値のいずれかと一致すると、ブロックは 1
の値を出力します。
トリガー イベントが 2 つの連続するベクトル間で分割されると、そのイベントはイベントの完了が含まれるベクトル内でカウントされます。[Rst] 端子が [Inc]/[Dec] 端子と同時にトリガー イベントを受信すると、ブロックは最初にカウンターをリセットします。その後、ブロックは [Inc]/[Dec] 入力ベクトルに含まれているトリガー イベント数でカウンターをインクリメントまたはデクリメントします。
[Inc]/[Dec] 端子への入力が長さ N のベクトルの場合、[Inc]/[Dec] 入力端子の端子サンプル時間は入力のフレーム周期と等しいか、または入力信号のサンプル時間の N 倍となります。[Cnt] 出力端子および [Hit] 出力端子の端子サンプル時間は、[Inc]/[Dec] 入力端子のサンプル時間と同じです。
フリーランの処理
[Count event] パラメーターで [Free running]
を選択すると、ブロックはフリー ラン モードで動作します。
[Inc]/[Dec] 入力端子はこのモードでは無効になっており、ブロックは単純に [Sample time] パラメーターを使用して指定する一定の間隔 Ts でカウンターをインクリメントまたはデクリメントします。
このモードでは、[Rst] 端子は常に [Count event] パラメーターが [Non-zero sample]
に設定されているかのように動作します。したがって、ブロックは [Rst] 入力が非ゼロの各サンプル時間でリセット イベントをトリガーします。
このモードでは、[Cnt] 出力は M の各連続サンプル時間でのカウント値を含む M 行 1
列のベクトルであり、M は [Samples per output frame] パラメーターで指定する値です。[Hit] 出力は、これらの M の各連続サンプル時間でヒット ステータス (0
または 1
) を含む M 行 1
列のベクトルです。[Cnt] および [Hit] の両方の出力端子は MTs の端子サンプル時間をもちます。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)