このページでは
三菱電機のPLCである
FXシーケンサの応用命令の
DECO命令について説明します。
DECO命令は
工程歩進プログラムを
作るときに使い勝手の
いい応用命令です。
目次(クリックすると自動で飛びます)
1.DECO命令の概要
2.データレジスタをビットデバイスに変換
3.ビットデバイスをデータレジスタに変換
4.DECO命令がOFFの時の状態とDECOP命令
5.まとめ
1.DECO命令の概要
DECO命令のDECOは
デコードのことです。
デコードの意味は以下に
なります。
「ある一定の規則に従って
別の形式に変換された
データを元に戻すこと。」
シーケンサのDECO命令は
あるルール(規則)に従って
ワードデバイスをビットデバイスに
または
ビットデバイスをワードデバイスに
変換します。
(ビットデバイスとワードデバイスについては
以下をクリックして参考ください。
→ビットデバイスとワードデバイスとは)
例えば
ワードデバイスをビットデバイス
なら
ワードデバイスである
データレジスタD0の値が1のときは
ビットデバイスであるM1がON
D0が2のときはM2がON
D0が3のときはM3がON
という感じにです。
ワードデバイスの値が
ビットデバイスのON/OFFに
変換されていますね
(デコードされている)
これがある規則に
従って行うのが
DECO命令です。
次項からその規則と
規則にもとずいて変換された
例を元に説明をします。
2.データレジスタをビットデバイスに変換
[DECO D0 M0 K4]
上記の記述が
DECO命令の基本形です。
D0はワードデバイス
(以下データレジスタと書く)
M0はビットデバイス
(以下内部リレーと書く)
では規則(ルール)を説明
していきます。
①K4がどこまで変換かを決める
K4は定数で10進数4を示します。
このKは1~8まで指定できます。
このKはどこまでを変換するか
を指定する定数です。
データレジスタD0は16ビットです。
下図のように16個の箱があり
その中に0か1が入ります。
![データレジスタ:16ビット](https://www.denkishuri.com/wp/wp-content/uploads/2022/09/deta16-e1663036753288.png)
Kで何ビットまでを変換するか
指定するのです。
K4なら下図のように
4ビットまでが変換対象です。
Kは1~8までなので
1ビットから8ビットまでが
指定できます。
指定されてないビットの
データは無視されます。
![ワードデバイスの指定:DECO命令](https://www.denkishuri.com/wp/wp-content/uploads/2022/09/deko3-e1663551122587.png)
次にビットデバイスの
変換がどこまでかです。
[DECO D0 M0 K4]
ここでのM0は
先頭のデバイスを
書いています。
M0~何番までを
指定するかもK4で
決めます。
それは2の4乗個(Kの数値)に
なります。
2の4乗ですので16個です。
(2×2×2×2=16)
M0~M15までを
指定することもなります。
Kは1~8なので
2~256個までを
指定できます。
では、次項で
どういった規則で
変換するかを説明します。
②変換の規則
M0~M15のビットデバイスは
ON/OFFしかありません。
まず規則の1つは
変換によって
M0~M16のデバイスは
1デバイスしかONになりません。
M0とM5の2つがONすることは
ありません。
では、どのデバイスがON
するかですが
データレジスタを
10進数に変換したときの数値、
その数番目のデバイスがONします。
(2進数、10進数の変換等については
以下をクリックして参考ください。
→PLC(シーケンサ)で扱う数値/進数について)
データレジスタが3なら
M2がON,
データレジスタが10なら
M9がON
この規則(ルール)ですので
ビットデバイスは1つしか
ONしようがありません。
データレジスタの数値が0
指定されたビットデバイスは
1つはONします。
変換元のデータレジスタが0の
場合は先頭のデバイスがON
します。
[DECO D0 M0 K4]
この例ならM0がONします。
以下に三菱電機のマニュアルの
一部を貼っておきます。
![DECO命令:三菱電機のマニュアルから抜粋](https://www.denkishuri.com/wp/wp-content/uploads/2022/09/demo2-e1663551192812.png)
規則のまとめ
[DECO D0 M0 K4]
①
定数Kの数値で
変換範囲が決まる
2のK乗の数
16ビットのデータレジスタは
この数のビットまでを
ビットデバイスは記述した
デバイス番号を先頭に
この数分のデバイスが対象
になる
②
ビットデバイスは1つしか
ONしない。
データレジスタの10進数に
変換時の数値
先頭のビットデバイス番号から
この数値番目がだけがONする
③
データレジスタの10進数に
変換時の数値が0の時は
先頭のデバイス番号がONする
DECO命令を使うメリット
例えば
M0~M63までを1つしか
ONさせてはいけないプログラム
があるとします。
個別に書くと
プログラムミスもありそうですが
DECO命令ではそれがありません。
それにONさせるデバイスは
データレジスタで決めれるので
データレジスタの数値の変動を
工夫すればデータレジスタで
ビットデバイスを制御できます
3.ビットデバイスをデータレジスタに変換
前項とは逆で
ビットデバイスをワードデバイスへの
変換です。
これは基本的に前項と同じです。
ですので、
簡易に説明していきます。
[DECO M0 D0 K3]
上記記述を例に説明します。
ここでも定数Kの数値で
変換範囲が決まります。
ビットデバイスはM0を先頭に
3個分でM0~M2までを指定します。
下図のようにM0~M2までの箱が
あり、
そのデバイス番号がONしていれば
1が入ります。
![ビットデバイスの指定:DECO命令](https://www.denkishuri.com/wp/wp-content/uploads/2022/09/DECO4-e1663556049694.png)
データレジスタD0は
16ビットの内、使うビット数の指定に
なります。
ここも前項と同じで
2のK乗個を指定します。
2の3乗で8です。
ここでは下図のように
8ビットまでで
あとは無視で0になります。
![ワードデバイスの指定:DECO命令](https://www.denkishuri.com/wp/wp-content/uploads/2022/09/DECO5-e1663556080925.png)
ここから先の
考え方は前項と同じです。
ただ、ワードデバイスと
ビットデバイスが
入れ替わっているだけです。
下のビットデバイスは
3ビットと考えます。
10進数に変換した時の
数値、
その数値番目の
データレジスタのビットだけが
1になる
ビットデバイスが全てOFFで
全ての箱が0の場合は
データレジスタの1ビット目に
1が入る。
ひっくり返っただけで
同じですね。
4.DECO命令がOFFの時の状態とDECOP命令
DECO命令は下のラダー図の
ように駆動接点があって
動作させます。
![DECO命令のラダー図例](https://www.denkishuri.com/wp/wp-content/uploads/2022/09/DECO6-e1663564581203.png)
上のラダー図ではX000が
駆動接点ですが
X0000がOFFになった時の
M0~のON/OFF状態は
OFFまでの状態を維持します。
DECO命令にはDECOP命令もあります。
この命令は
DECO命令とPLS命令が組み合わせた
ものです。
PLS命令については
以下を
DECOPがONした1周期だけ
DECO命令を実行します。
![DECOP命令とタイムチャート](https://www.denkishuri.com/wp/wp-content/uploads/2022/09/DECO8-e1663564703227.png)
5.まとめ
DECO命令は
変換元の変化に応じて
変換先のデバイスの
箱(ビット)の内
1つだけがON(1が入る)
する命令です。
この規則をどうつかう
かになりますが
工程歩進、ステップ制御で
使われているのをよく見ますね。
[DECO D0 M0 K3]
D0:1➡M1がON
D0:1+1➡M2がON(M1はOFF)
・
・
・
このような感じで
データレジスタの値を1増やすことで
順番に内部リレーをONさせて
いけるので ステップ制御と
相性がいいのです。
当方ではこのページにも関連する
初心者向のシーケンス制御の教材も
扱っていますので
興味があれば
以下の画像をクリックして
ご確認ください。
●リレーシーケンス教材に
ついては以下の画像をクリック
●シーケンサ教材に
ついては以下の画像をクリック