キーエンスKVシリーズにおける「アップダウンカウンタ」命令とは、カウンタと呼ばれるデバイスの現在値を加減算するラダープログラム命令です。
カウンタとは、現在値が設定値と同じになる(カウントアップする)と、接点がONするデバイスです。
カウンタは「スイッチを押した回数」や「センサがワークを検出した回数」といったデバイスがONした回数を数える用途で広く使用されます。
アップダウンカウンタ命令を用いることで、デバイスがONした回数をカウントアップするだけでなく、カウントダウンしてカウンタの現在値を制御することができます。
この記事では、キーエンスKVシリーズにおけるアップダウンカウンタ命令の指令方法とラダープログラム例について解説します。
カウンタを用いた命令には、本記事で解説するアップダウンカウンタ(UDC)命令とは別にカウンタ(C)命令とアウトカウンタ(OUTC)命令があります。以下のページで解説しておりますので、宜しければご覧ください。
![00_【キーエンスKV】カウンタ(C)命令の指令方法とラダープログラム例](https://denkisekkeijin.com/wp-content/uploads/2020/08/00_【キーエンスKV】カウンタC命令の指令方法とラダープログラム例-2-160x160.png)
![00_【キーエンスKV】アウトカウンタ(OUTC)命令の指令方法とラダープログラム例](https://denkisekkeijin.com/wp-content/uploads/2020/08/00_【キーエンスKV】アウトカウンタOUTC命令の指令方法とラダープログラム例-2-160x160.png)
目次
1. アップダウンカウンタ命令の指令方法
アップダウンカウンタ命令には、1種類の指令方法があります。
- UDC:アップダウンカウンタ
UDCはアップダウンカウンタ(up down counter)の略です。
UDC:アップダウンカウンタ命令
アップダウンカウンタ命令は”UDC”と指令します。
こちらがアップダウンカウンタ命令を使用したラダープログラム例です。
![10_UDC命令](https://denkisekkeijin.com/wp-content/uploads/2020/08/10_UDC命令-1-1024x372.png)
このラダープログラムは、アップ入力であるR0がONするとカウンタC0の現在値が+1して、ダウン入力であるR1がONするとカウンタC0の現在値が-1します。
![10_UDC命令解説1](https://denkisekkeijin.com/wp-content/uploads/2020/08/10_UDC命令解説1.gif)
↑のgifでは、アップダウンカウンタ命令内の黒字部分がカウンタC0の現在値を表示しています。
リセット入力であるR2がONすると、カウンタC0の現在値は0にリセットされます。
![10_UDC命令解説2](https://denkisekkeijin.com/wp-content/uploads/2020/08/10_UDC命令解説2.gif)
同時に、カウンタがONしている場合はOFFになります。
アップダウンカウンタ命令を用いた場合、カウンタは現在値の「桁上がり時」または「桁下がり時」にONします。
![10_UDC命令解説3](https://denkisekkeijin.com/wp-content/uploads/2020/08/10_UDC命令解説3.gif)
![10_UDC命令解説4](https://denkisekkeijin.com/wp-content/uploads/2020/08/例題①-1.gif)
↑のラダープログラムの場合、現在値が「#9の状態でアップ入力がされた場合」と「#0の状態でダウン入力がされた場合」にカウンタC0がONします。
先ほどのラダープログラムは、KV STUDIOの回路上でUDC #0 #9と入力してEnterキーを押すと命令が挿入されます。 (小文字でもOKです。)
![10_命令挿入](https://denkisekkeijin.com/wp-content/uploads/2020/08/10_命令挿入-2.gif)
2.【例題】スイッチが3回押されるたびにランプ点灯
下記仕様のラダープログラムをアップダウンカウンタ(UDC)命令を用いて作成します。
スイッチ(R0)が3回押される度に、ランプ(R500)が点灯する。
スイッチ(R2)を押すと、カウンタC0の現在値を0にリセットしてランプ(R500)を消灯させる。
※カウンタC0はリングカウンタとして扱う。
ラダープログラムにおけるリングカウンタとは、現在値が設定値に到達した状態でカウントアップすると初期値に帰還するカウンタを指します。今回ではカウンタC0の値が0→1→2→0→1→…と循環させます。
アップダウンカウンタ命令を用いることで、カウンタは自動的にリングカウンタとして扱われます。
タイムチャート
タイムチャートは以下のようになります。
![例題①_タイムチャート](https://denkisekkeijin.com/wp-content/uploads/2020/08/例題①_タイムチャート-17-1024x515.png)
入力リレーR0がONするとカウンタC0が+1され、カウンタC0の現在値が2の状態で+1されると出力リレーR500がONします。
入力リレーR2がONするとカウンタの現在値は0にリセットされます。
タッチパネルの動作イメージ
タッチパネルの動作イメージは以下のようになります。
![例題①_タッチパネル](https://denkisekkeijin.com/wp-content/uploads/2020/08/例題①_GOT-11.gif)
スイッチ(R0)を押すとカウンタC0の現在値が+1して、3回押される度にランプ(R500)が点灯します。
スイッチ(R2)を押すと、カウンタC0の現在値を0にリセットしてランプ(R500)を消灯させます。
カウンタC0の現在値は0→1→2→0→1→…と循環するリングカウンタとなります。カウンタC0の現在値はタッチパネル右上に表示します。
ラダープログラム
ラダープログラムは以下のようになります。
![例題①_ラダープログラム](https://denkisekkeijin.com/wp-content/uploads/2020/08/例題①_ラダープログラム-24-1024x489.png)
アップダウンカウンタ(UDC)命令のアップ入力(UP)にR0のa接点を用いることで、スイッチ(R0)が押されるたびにカウンタC0を+1します。
今回はカウントダウンする必要がないため、ダウン入力(DW)には常時OFFのCR2003を使用します。
アップダウンカウンタ(UDC)命令の設定値に#2を指定することで、カウンタC0が2の状態でカウントアップするとC0が桁上がりして0に戻ります。桁上がりしたタイミングでC0はONします。
リセット入力(RES)にR2を用いることで、スイッチ(R2)が押されるとカウンタC0が”0”にリセットされます。この時、カウンタC0がONしていればOFFになります。
3. おわりに
キーエンスKVシリーズにおけるアップダウンカウンタ(UDC)命令について解説しました。
以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。
ただし、ラダープログラムやPLCといった電気・制御設計は参考書やWebサイトのみでの学習には必ずどこかで限界が来ます。
各メーカが販売しているPLCやプログラム作成のアプリケーションを揃えるには安くても十万円以上の大きな費用が掛かり、独学は現実的ではありません。
ラダープログラムの一番現実的な学習方法は「実務で経験を積む」ことです。電気・制御設計者はこれから更に必要な人材になり続けますので、思い切って転職する選択肢もあります。
『doda』といった大手求人(転職)サイトには電気・制御設計の求人が数多く紹介されています。※登録は無料です。
「スキルこそ今後のキャリアを安定させる最も大切な材料」と考える私にとって電気・制御設計はとても良い職業だと思います。キャリアの参考になれば幸いです。