キーエンスKV-Xシリーズにおける「アップカウンタ(CTU)」は、カウンタ入力がON(TRUE)した回数をカウントして、カウント値がプリセット値に到達すると出力をON(TRUE)にするファンクションブロックです。
アップカウンタ(CTU)を用いることにより「スイッチを設定した回数押すとランプが点灯する」プログラムを作ることができます。
この記事では、キーエンスKV-X500/X300シリーズにおけるアップカウンタ(CTU)の指令方法とラダープログラム、ST言語の例について解説します。
目次
1. アップカウンタの指令方法
アップカウンタ(CTU)はLD表現(ラダープログラム)とST表現(ST言語)で使用することができます。

CTU_instance(CU, R, PV, Q, CV);
アップカウンタ(CTU)は↓の引数で構成されています。
引数 | タイプ | データ型 | 初期値 | コメント |
---|---|---|---|---|
CU | IN | BOOL | – | カウンタ入力 |
R | IN | BOOL | FALSE | リセット |
PV | IN | INT | 0 | プリセット値 |
Q | OUT | BOOL | – | 出力 |
CV | OUT | INT | カウンタ値 |
LD表現
↓がLD表現で使用したラダープログラム例です。

このラダープログラムでは、カウンタ入力であるInFlag(入力フラグ)がPV(プリセット値)の回数ON(TRUE)すると、OutFlag(出力フラグ)がON(TRUE)します。
カウンタ入力であるInFlag(入力フラグ)がON(TRUE)するたび、CV(カウンタ値)が加算されます。CV(カウンタ値)がPV(プリセット値)以上になると、OutFlag(出力フラグ)がON(TRUE)します。
InResetFlag(入力リセットフラグ)がON(TRUE)すると、CV(カウンタ値)が「0」になります。
↑のラダープログラムでは、プリセット値を3回に設定しているため、InFlag(入力フラグ)が3回ON(TRUE)すると、OutFlag(出力フラグ)がON(TRUE)します。
ST表現
↓がST表現で使用したST言語例です。
CTU_1(CU := InFlag, R := InResetFlag, PV := INT#3, Q => OutFlag);
このSTでは、カウンタ入力であるInFlag(入力フラグ)がPV(プリセット値)の回数ON(TRUE)すると、OutFlag(出力フラグ)がON(TRUE)します。InResetFlag(入力リセットフラグ)がON(TRUE)すると、CV(カウンタ値)が「0」になります。※前述のLD表現と同じ動作です。
2.【例題①】カウンタのプリセット値を変更する
下記仕様のラダープログラム、STをアップカウンタ(CTU)を用いて解説します。
スイッチ黄を押すとスイッチ緑を押した回数をリセットしてランプ緑が消灯する。
設定回数はタッチパネルのData00から設定できるようにする。
スイッチ緑を設定回数押下からランプ緑点灯までのカウントにアップカウンタ(CTU)を使用します。
設定回数はアップカウンタ(CTU)のPV(プリセット値)に相当します。
タッチパネルの動作イメージ
タッチパネルの動作イメージは以下のようになります。

スイッチ緑を設定回数押すとランプ緑が点灯します。
スイッチ黄を押すとスイッチ緑を押した回数をリセットしてランプ緑が消灯します。
設定回数はタッチパネルのData00から設定できるようにします。
使用する変数
使用する変数は以下になります。
変数 | データ型 | コメント |
---|---|---|
CTU_1 | CTU | FBインスタンス |
SwGreen | BOOL | スイッチ緑 |
SwYellow | BOOL | スイッチ黄 |
LpGreen | BOOL | ランプ緑 |
Data00 | INT | データ00(設定回数の設定) |
ラダープログラム
ラダープログラムは以下のようになります。

カウンタ入力にスイッチ緑、出力にランプ緑、リセットにスイッチ黄、プリセット値にData00を指定したアップカウンタ(CTU)で、スイッチ緑を設定回数押すとランプ緑が点灯します。また、スイッチ黄を押すとカウンタがリセットされます。
ST言語
ST言語は下記のようになります。
//スイッチ緑をData00回押下でランプ緑点灯
//スイッチ黄でリセット&ランプ緑消灯
CTU_1(CU := SwGreen, R := SwYellow, PV := Data00, Q => LpGreen);
3.【例題②】カウンタのカウント値(現在値)をモニタする
下記仕様のラダープログラム、STをアップカウンタ(CTU)を用いて解説します。
スイッチ黄を押すとスイッチ緑を押した回数をリセットしてランプ緑が消灯する。
設定回数はタッチパネルのData00から設定できるようにする。
カウンタ値(現在値)はタッチパネルのData01でモニタできるようにする。
【例題①】に対して、カウンタ値(現在値)のモニタ(Data01)を追加します。
カウンタ値(現在値)はアップカウンタ(CTU)のCV(カウンタ値)に相当します。
タッチパネルの動作イメージ
タッチパネルの動作イメージは以下のようになります。

スイッチ緑を設定回数押すとランプ緑が点灯します。
スイッチ黄を押すとスイッチ緑を押した回数をリセットしてランプ緑が消灯します。
設定回数はタッチパネルのData00から設定できるようにします。
カウンタ値(現在値)はタッチパネルのData01でモニタできるようにします。
使用する変数
使用する変数は以下になります。
変数 | データ型 | コメント |
---|---|---|
CTU_1 | CTU | FBインスタンス |
SwGreen | BOOL | スイッチ緑 |
SwYellow | BOOL | スイッチ黄 |
LpGreen | BOOL | ランプ緑 |
Data00 | INT | データ00(設定回数の設定) |
Data01 | INT | データ01(カウンタ値のモニタ) |
ラダープログラム
ラダープログラムは以下のようになります。

カウンタ入力にスイッチ緑、出力にランプ緑、リセットにスイッチ黄、プリセット値にData00、カウンタ値にData01を指定したアップカウンタ(CTU)で、スイッチ緑を設定回数押すとランプ緑が点灯します。また、スイッチ黄を押すとカウンタがリセットされます。
ST言語
ST言語は下記のようになります。
//スイッチ緑をData00回押下でランプ緑点灯
//スイッチ黄でリセット&ランプ緑消灯
//Data01でカウンタ値をモニタ
CTU_1(CU := SwGreen, R := SwYellow, PV := Data00, Q => LpGreen, CV => Data01);
4. おわりに
キーエンスKV-X500/X300シリーズにおけるアップカウンタ(CTU)について解説しました。
電気ハード設計、PLC/TPソフト設計、ロボットティーチング、制御盤製作の外注業務は、ぜひ永工舎にご相談ください。

当サイトを運営している電気設計人は、個人で永工舎として外注業務をお請けしております。
以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。