【オムロンCJ】可逆カウンタ(CNTR・CNTRX)命令の指令方法とラダープログラム例

【オムロンCJ】可逆カウンタCNTR・CNTRX命令の指令方法とラダープログラム例

オムロンCJシリーズにおける「可逆カウンタ」命令とは、カウンタの現在値を加減算するラダープログラム命令です。

カウンタは「スイッチを押した回数」や「センサがワークを検出した回数」といったデバイスがONした回数を数える用途で広く使用されます。

可逆カウンタを用いることにより、デバイスがONした回数を加減算(カウントアップ・カウントダウン)の双方向に制御することができます。

この記事では、オムロンCJシリーズにおける可逆カウント命令の指令方法ラダープログラム例について解説します。

注意
この記事のラダープログラムはCX-Programmer Ver. 9.63で作成しており、PLC機種はCJ2Mに設定してあります。
注意
オムロンCJシリーズにおいて可逆カウンタ命令は、CJ2H-CPU6□-EIP、CJ2H-CPU6□、CJ2M-CPU□□、CJ1□-CPU□□□-□で使用可能です。その他の機種についてはマニュアルを参照してください。

オムロンCJシリーズにおける、カウンタを減算(カウントダウン)するのみのカウント命令は以下のページで解説しております。

00_【オムロンCJ】カウンタ(CNT・CNTX)命令の指令方法とラダープログラム例 【オムロンCJ】カウンタ(CNT・CNTX)命令の指令方法とラダープログラム例

1. 可逆カウンタ命令の指令方法

可逆カウンタ命令には、2種類の指令方法があります。

命令文内容
CNTRBCDの可逆カウンタ命令
CNTRXBINの可逆カウンタ命令

CNTR(BCD)命令の場合、設定値に#0000~9999を指定することができます。(0~9999回)

CNTRX(BIN)命令の場合、設定値に10進&0~65535、または16進#0000~FFFFを指定することができます。(0~65535回)

CNTR:BCDの可逆カウンタ命令

可逆カウンタ命令は”CNTR”と指令します。

こちらがCNTR命令を使用したラダープログラム例です。

10_CNTR命令

可逆カウント命令の入力条件は、加算カウント入力、減算カウント入力、リセット入力の3ヶを指定する必要があります。

11_可逆カウント命令解説

このラダープログラムは、加算カウント入力である0.00がONするとカウンタC0の現在値が+1して、減算カウント入力である0.01がONするとカウンタC0の現在値が-1します。

12_可逆カウント命令


リセット入力である0.02がONすると、カウンタC0の現在値は”0”にリセットされます。

13_可逆カウント命令

同時に、カウンタがONしている場合はOFFになります。


可逆カウンタ命令を用いた場合、カウンタは現在値が「桁上げ時」または「桁下り時」にONします。

14_可逆カウント命令
15_可逆カウント命令

↑のラダープログラムの場合、現在値が「”3”の状態で0.00がONした場合」と「”0”の状態で0.01がONした場合」にカウンタC0がONします。


先ほどのラダープログラムはCX-Programmerの回路上で CNTR 0 #3 と入力してEnterキーを押すと命令が挿入されます。 ※スマートインプットモードの場合

10_命令挿入

減算カウント入力、リセット入力を挿入する必要があります。(↑では省略しています。)

CNTXR:BINの可逆カウンタ命令

BINの可逆カウンタ命令は”CNTRX”と指令します。

こちらがCNTRX命令を使用したラダープログラム例です。

20_CNTRX命令

このラダープログラムは、加算カウント入力である0.00がONするとカウンタC0の現在値が+1して、減算カウント入力である0.01がONするとカウンタC0の現在値が-1します。

カウンタの設定値は”10”と指定してあるため、カウンタの現在値が「”10”の状態で0.00がONした場合」と「”0”の状態で0.01がONした場合」にカウンタC0がONします。

カウンタの設定値に&3を指定すると先ほどのCNTR命令で解説したラダープログラムと同じ動作になります。

CNTX命令の設定値で、頭文字に「&」を付けると10進数の0~65535を指定することができます。


21_CNTRX命令

このラダープログラムは、カウンタの設定は”16”と指定してあります。CNTRX命令の設定値で、頭文字に「#」を付けると設定値は16進数となり、今回の設定値である#10(16進数)は10進数に変換すると”16”になります。

CNTRX命令の設定値で、頭文字に「#」を付けると16進数の0000~FFFFを指定することができます。

↓がCNTRX命令で設定値を&10(10進数)にしたラダープログラム動作です。

21_命令イメージ

↓がCNTRX命令で設定値を#10(16進数)にしたラダープログラム動作です。

22_命令イメージ

※カウンタの現在値は10進数表示にしてあります。

2.【例題】スイッチが3回押されるたびにランプ点灯

下記仕様のラダープログラムを可逆カウンタ命令を用いて解説します。

仕様
スイッチ(0.00)を押すと、カウンタC0の現在値が+1する。
スイッチ(0.00)が3回押されるたびに、ランプ(1.00)が点灯する。
スイッチ(0.02)を押すと、カウンタC0の現在値を”0”にリセットしてランプ(1.00)を消灯させる。
※カウンタC0はリングカウンタとして扱う。

ラダープログラムにおけるリングカウンタとは、現在値が設定値に到達した状態でカウントアップすると初期値に帰還するカウンタを指します。今回は0→1→2→0→1→…と循環させます。

可逆カウンタ命令を用いることで、カウンタは自動的にリングカウンタとして扱われます。

タイムチャート

タイムチャートは以下のようになります。

例題①_タイムチャート

0.00がONするとカウンタC0が+1され、カウンタC0の現在値が”2”の状態で+1されると1.00がONします。

0.02がONするとカウンタC0の現在値は”0”にリセットされます。

タッチパネルの動作イメージ

タッチパネルの動作イメージは以下のようになります。

例題①_タッチパネル

スイッチ(0.00)を3回押すと、カウンタC0の現在値が+1して、3回押されるたびにランプ(1.00)が点灯します。

スイッチ(0.02)を押すと、カウンタC0の現在値を”0”にリセットしてランプ(1.00)を消灯させます。

カウンタC0の現在値は0→1→2→0→1→…と循環するリングカウンタとなります。カウンタC0の現在値はタッチパネル右上に表示します。

ラダープログラム

ラダープログラムは以下のようになります。

例題①_ラダープログラム

可逆カウンタ(CNTRX)命令の加算カウント入力に0.00のa接点を用いることで、スイッチ(0.00)が押されるたびにカウンタC0を+1します。

今回はカウンタを減算する必要が無いため、減算カウント入力には常時OFFするP_Offを使用します。

可逆カウンタ(CNTRX)命令の設定値に&2を指定することで、カウンタC0が”2”の状態で0.00がONすると、カウンタC0は桁上がりして”0”に戻ります。桁上がりしたタイミングでカウンタC0はONします。

リセット入力に0.02のa接点を用いることで、スイッチ(0.02)が押されるとカウンタC0が”0”にリセットされます。この時、カウンタC0がONしていればOFFになります。

3. おわりに

オムロンCJシリーズにおける可逆カウンタ命令について解説しました。

以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。

ただし、ラダープログラムやPLCといった電気・制御設計は参考書やWebサイトのみでの学習には必ずどこかで限界が来ます。

各メーカが販売しているPLCやプログラム作成のアプリケーションを揃えるには安くても十万円以上の大きな費用が掛かり、独学は現実的ではありません。

ラダープログラムの一番現実的な学習方法は「実務で経験を積む」ことです。電気・制御設計者はこれから更に必要な人材になり続けますので、思い切って転職する選択肢もあります。

doda』や『マイナビAGENT 』といった大手求人(転職)サイトには電気・制御設計の求人が数多く紹介されています。※登録は無料です。

「スキルこそ今後のキャリアを安定させる最も大切な材料」と考える私にとって電気・制御設計はとても良い職業だと思います。キャリアの参考になれば幸いです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です