「デコード」命令とは、三菱電機製シーケンサFXシリーズにおける数値データの値に応じていずれか1点のビットデバイスをONするラダープログラム命令です。
デコード命令を用いることにより、数値を格納できるワードデバイス(データレジスタ等)の値に応じて、連続したビットデバイス(補助リレーや出力リレー等)のいずれか1点のみONさせることができます。
この記事では、三菱電機製シーケンサFXシリーズにおけるデコード命令の指令方法とラダープログラム例について解説します。
三菱電機製シーケンサFXシリーズにおいて、デコード命令は以下のシーケンサ・バージョンで使用することが可能です。
FX3S | :Ver1.00以降 |
FX3G | :Ver1.00以降 |
FX3GC | :Ver1.40以降 |
FX3U | :Ver2.20以降 |
FX3UC | :Ver1.00以降 |
デコード命令とは逆の動作をするエンコード命令と呼ばれるものが存在します。エンコード命令は「ビットデバイスのONしている位置をワードデバイスに格納する」命令です。
三菱電機製シーケンサFXシリーズにおけるエンコード(ENCO)命令は以下のページで解説しておりますので、宜しければご覧ください。
【三菱FXシリーズ】エンコード(ENCO)命令の指令方法とラダープログラム例目次
1. デコード命令の指令方法
デコード命令には、2種類の指令方法があります。
DECO | :連続実行形 |
DECOP | :パルス実行形 |
DECOは、デコード(decode)の略です。
情報を一定の規則に基づき符号化(デジタル化)することをエンコードと呼び、エンコードされたデータを元に戻すことをデコードと呼びます。
パルス実行形は、入力条件がONしたときの1スキャンのみ実行される命令です。
DECO:連続実行形(基本の形)
連続実行形のデコード命令は”DECO”と指令します。
こちらがDECO命令を使用したラダープログラム例です。
このラダープログラムは、入力条件であるX0がONしている間、データレジスタD0の値”0~255”に応じて、M0~M255(256点)のうちいずれか1ヶがONします。なぜ256点なのか後ほど解説します。
例えば、データレジスタD0の値が”5”であれば補助リレーM5がONします。
もう一つ、データレジスタD0の値が”42”であれば補助リレーM42がONします。
デコード命令は対象とするデータ長さを指定する必要があり、↑のラダープログラムではK8と指定しています。
データ長さをK8と指定することにより、デコード先のビットデバイスは2の8乗(256点)を占有します。仮にK4と指定すると2の4乗である16点を占有します。
デコード先のビットデバイスは指定した番号を先頭にデータ長さを占有するので、↑のラダープログラムでは補助リレーM0を先頭にM255までがデコード先の結果として占有することになります。
一度デコード命令を実行すると、入力条件をOFFしてもデコード先のビットデバイスはOFFしません。ビットデバイスをOFFするにはリセット(RST)命令等で”0”を書き込む必要があります。
三菱電機製シーケンサFXシリーズにおけるリセット(RST)命令は以下のページで解説しておりますので、宜しければご覧ください。
【三菱FXシリーズ】セット(SET)・リセット(RST)命令の指令方法とラダープログラム例先ほどのラダープログラムはGX Works2の回路上で DECO D0 M0 K8 と入力してEnterキーを押すと命令が挿入されます。(小文字でもOKです。)
DECOP:パルス実行形
パルス実行形のデコード命令は”DECOP”と指令します。
こちらがDECOP命令を使用したラダープログラム例です。
連続実行形(DECO命令)との違いは、入力条件X0がON中にD0の値が変わってもデコード先(M0~M255)の値は追従して変化しないことです。
2.【例題①】デコード結果を求める(連続実行形)
下記仕様のラダープログラムをデコード命令を用いて解説します。
※データレジスタD0の値は必ず0~15の範囲とする。
デコード処理を常時行うため、補助リレーM8000を使用します。M8000は三菱電機製シーケンサFXシリーズにおける特殊デバイスで、シーケンサがRUN中は常時ONするデバイスです。
デコード先はM0~M15の16ビットであるため、データ長さをK4と指定します。(2の4乗が16のため)
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
補助リレーM0~M15は、ONすると右隣の丸が白塗りになります。
データレジスタD0の値に応じて、補助リレーM0~M15のうちいずれか1点のビットデバイスがONします。
データレジスタD0の値が”0”の場合、補助リレーM0がONします。
ラダープログラム
ラダープログラムは以下のようになります。
デコード処理を常時実行するため、入力条件を特殊デバイスのM8000にして連続実行形のデコード命令を指令します。
デコード元にデータレジスタD0、デコード先に補助リレーM0、データ長さにK4を指定することで「データレジスタD0の値をデコードして、補助リレーM0~M15(2の4乗である16点)に結果を格納する」ラダープログラムとなります。
連続実行形を用いることにより、データレジスタD0の値が変化するとデコード先のM0~M15の結果も追従して変化します。
3.【例題②】デコード結果を求める(パルス実行形)
下記仕様のラダープログラムをデコード命令を用いて解説します。
※データレジスタD0の値は必ず0~15の範囲とする。
【例題①】ではデコード処理を常時行うために連続実行形を使用していましたが、今回はパルス実行形を使用します。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
スイッチ(X0)が押された瞬間のみデコード処理が行われます。スイッチ(X0)が押されている間にデータレジスタD0の値が変化しても、デコード先のM0~M15の値は変化しません。
ラダープログラム
ラダープログラムは以下のようになります。
スイッチ(X0)を押された瞬間のみデコード処理を行うために、パルス実行形のデコード命令を使用します。
4. おわりに
三菱電機製シーケンサFXシリーズにおけるデコード命令について解説しました。
以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。
ただし、ラダープログラムやPLCといった電気・制御設計は参考書やWebサイトのみでの学習には必ずどこかで限界が来ます。
各メーカが販売しているPLCやプログラム作成のアプリケーションを揃えるには安くても十万円以上の大きな費用が掛かり、独学は現実的ではありません。
ラダープログラムの一番現実的な学習方法は「実務で経験を積む」ことです。電気・制御設計者はこれから更に必要な人材になり続けますので、思い切って転職する選択肢もあります。
『doda』といった大手求人(転職)サイトには電気・制御設計の求人が数多く紹介されています。※登録は無料です。
「スキルこそ今後のキャリアを安定させる最も大切な材料」と考える私にとって電気・制御設計はとても良い職業だと思います。キャリアの参考になれば幸いです。
はじめまして
私も仕事柄三菱シーケンスに触れる機会があるのですが
最近FIFWとFIFRの命令に出くわしました
マニュアルやネットで調べてもしっくりくる回答がなく困っています
データテーブルの読み書きなのは分かったのですが
そもそもデータテーブルがよくわかりません
よければサイト内で解説いただけると嬉しいです
コメントありがとうございます。
三菱Qシリーズの取説で命令を見つけました・・・が
私も勉強不足で「データテーブルって…?」レベルなので
勉強して記事に致します。
直近でご要望に応えることができず恐縮です。
こんにちわ
デコードの命令の使い方が分からず困っていたところだったので
おかげで助かりました。
ありがとうございます。
ひとつ質問があるのですが
デコード元にデータレジスタD0、デコード先に補助リレーM0、データ長さにK4を指定することで「データレジスタD0の値をデコードして、補助リレーM0~M15(2の4乗である16点)に結果を格納する」ラダープログラムとなります。
エンコードの命令の使い方は分かったのですが、下記の説明がプログラムの中で実行されている感じがしなくいまいちピンとこないのでご説明をお願いしたいです。
情報を一定の規則に基づき符号化(デジタル化)することをエンコードと呼び、エンコードされたデータを元に戻すことをデコードと呼びます。
電気や様。
ご覧頂きありがとうございます。
エンコード・デコードとは、ラダープログラム以外にPCや録音機など様々な用途で使用されている表現(処理)です。
具体的な処理内容はハードウェア(もしくはソフトウェア)毎に異なり、一概に「エンコード・デコードはこのような処理です。」と言い難い部分があります。
当記事のご指摘頂いた箇所ですが、広義にエンコード・デコードとはざっくりこのような処理です。と記載した次第です。
ラダープログラムにおいて当てはまる内容ではございません。
少々紛らわしい表現でしたので、改めて記載内容を修正させて頂きます。