このページでは
三菱電機の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が入ります。
Kで何ビットまでを変換するか
指定するのです。
K4なら下図のように
4ビットまでが変換対象です。
Kは1~8までなので
1ビットから8ビットまでが
指定できます。
指定されてないビットの
データは無視されます。
次にビットデバイスの
変換がどこまでかです。
ここでの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
します。
この例ならM0がONします。
以下に三菱電機のマニュアルの
一部を貼っておきます。
規則のまとめ
[DECO D0 M0 K4]①
定数Kの数値で
変換範囲が決まる
2のK乗の数
16ビットのデータレジスタは
この数のビットまでを
ビットデバイスは記述した
デバイス番号を先頭に
この数分のデバイスが対象
になる
②
ビットデバイスは1つしか
ONしない。
データレジスタの10進数に
変換時の数値
先頭のビットデバイス番号から
この数値番目がだけがONする
③
データレジスタの10進数に
変換時の数値が0の時は
先頭のデバイス番号がONする
DECO命令を使うメリット
例えば
M0~M63までを1つしか
ONさせてはいけないプログラム
があるとします。
個別に書くと
プログラムミスもありそうですが
DECO命令ではそれがありません。
それにONさせるデバイスは
データレジスタで決めれるので
データレジスタの数値の変動を
工夫すればデータレジスタで
ビットデバイスを制御できます
3.ビットデバイスをデータレジスタに変換
前項とは逆で
ビットデバイスをワードデバイスへの
変換です。
これは基本的に前項と同じです。
ですので、
簡易に説明していきます。
上記記述を例に説明します。
ここでも定数Kの数値で
変換範囲が決まります。
ビットデバイスはM0を先頭に
3個分でM0~M2までを指定します。
下図のようにM0~M2までの箱が
あり、
そのデバイス番号がONしていれば
1が入ります。
データレジスタD0は
16ビットの内、使うビット数の指定に
なります。
ここも前項と同じで
2のK乗個を指定します。
2の3乗で8です。
ここでは下図のように
8ビットまでで
あとは無視で0になります。
ここから先の
考え方は前項と同じです。
ただ、ワードデバイスと
ビットデバイスが
入れ替わっているだけです。
下のビットデバイスは
3ビットと考えます。
10進数に変換した時の
数値、
その数値番目の
データレジスタのビットだけが
1になる
ビットデバイスが全てOFFで
全ての箱が0の場合は
データレジスタの1ビット目に
1が入る。
ひっくり返っただけで
同じですね。
4.DECO命令がOFFの時の状態とDECOP命令
DECO命令は下のラダー図の
ように駆動接点があって
動作させます。
上のラダー図ではX000が
駆動接点ですが
X0000がOFFになった時の
M0~のON/OFF状態は
OFFまでの状態を維持します。
DECO命令にはDECOP命令もあります。
この命令は
DECO命令とPLS命令が組み合わせた
ものです。
PLS命令については
以下を
DECOPがONした1周期だけ
DECO命令を実行します。
5.まとめ
DECO命令は
変換元の変化に応じて
変換先のデバイスの
箱(ビット)の内
1つだけがON(1が入る)
する命令です。
この規則をどうつかう
かになりますが
工程歩進、ステップ制御で
使われているのをよく見ますね。
D0:1➡M1がON
D0:1+1➡M2がON(M1はOFF)
・
・
・
このような感じで
データレジスタの値を1増やすことで
順番に内部リレーをONさせて
いけるので ステップ制御と
相性がいいのです。
当方ではこのページにも関連する
初心者向のシーケンス制御の教材も
扱っていますので
興味があれば
以下の画像をクリックして
ご確認ください。
コメントを残す