このページでは、PLCにおける
2進化10進数(BINARY CODED DECIMAL)に
ついて説明しています。
(PLCについては
以下のページを参考ください。
→PLCとは何か)
2進化10進数はPLCだけで
使われているわけではありませんが
三菱電機のPLCであるシーケンサの
デバイスや命令度を絡めて説明します。
目次(クリックすると自動で飛びます)
1.2進化10進数とは
2.シーケンサとBCD
3.BIN命令とBCD命令
4.まとめ
1.2進化10進数とは
2進化10進数は
10進数の1桁を4ビット(2進数の4桁)で
表すものです。
この10進数、2進数、ビットが
分からない場合は以下のページを
参考ください。
上表は、10進数と2進数の
変換表です。
10進数の10は、2進数では
4ビット必要で1010となっています。
2進化10進法では10は
0001 0000 になります。
8ビットで表現します。
2進化10進法では10進数の1桁だけを
4ビットで表します。
10進数の10ですが、1と0を
分けて1は1で2進数4ビットで、
0は0で2進数4ビットにします。
1023なら1と0と2と3を
それぞれ2進数4ビットで表すので
合計16ビットになります。
下表に2進化10進法の載せます。
10進数の1は2進数では1であり
1ビットで表現できますが
2進化10進法では
0001と4ビット使って1桁を
表現します。
2.シーケンサとBCD
この2進化10進法がシーケンサの
どういった場面で使われるかに
ついて説明していきます。
BCDコードはデジスイッチ
(サムロータリースイッチ)や
7セグメント表示器を使うときに
使われます。
デジスイッチについては
以下を参考ください。
7セグメント表示器については
以下のページを参考ください。
デジタルスイッチは数値を
選択する機器で、シーケンサに
選択した数値を入力できます。
7セグメント表示器は、数値を
表示する機器で、シーケンサから
出力した数値を表示できます。
この時の問題は、
私達は日常生活では10進数を
使っていますが、シーケンサ内部は
2進数で数値を扱うことです。
シーケンサなどのコンピューターは
0と1の2つで処理するのです。
こういった事情から、まずは
10進数をBCDコードに変換して
1桁4ビットの0、1の2進数に
するのです。
BCDコードなら1桁4ビットなので
複雑になりません。
デジタルスイッチや7セグメント表示器は
BCDコードで使えるように
作られています。
デジタルスイッチは1桁ごと
選択した数値をBCDコードにしますし、
7セグメント表示器はシーケンサからの
BCDコードの出力信号を10進数の1桁で
表示仕直します。
3.BIN命令とBCD命令
では、少し実際のシーケンサでの
BCDコードの扱い方を
見ていきましょう。
BIN命令
デジタルスイッチで10進数の
数値はBCDコードに変換されて
シーケンサに入力されます。
前述しましたが、シーケンサ内で
数値は2進数ではないと
いけません。
BCDコードは1桁を4ビット(2進数)
で表現していますが
2進数ではないのです。
BCDコードで10は0001 0000
ですが、2進数では1010になります。
シーケンサのプログラムに
取り込む際、BCDを2進数に変える
必要があります。
BCDを2進数(BIN値)に変換して
ワードデバイスへ転送する
命令がBIN命令です。
(ワードデバイスについては
以下のページを参考ください。
→ビットデバイスとワードデバイス)
上図を例にBIN命令を
見ていきます。
デジタルスイッチは10進数の
15の数値をBCDコードに変換し
シーケンサの入力端子
X000~X0007に入力しています。
X000~X007はビットデバイス
なので、1ビットで0か1の
どちらかを入力できます。
15で2桁なのでBCDで8ビットです。
だからX000~X007で8端子必要です。
この状況で、BIN命令で
BCDをBIN値に変換するBIN命令を
使います。
[BIN K2X000 D1]
上のような命令にします
このプログラム命令の意味は
X000,X001,X002,X003,
X004,X005,X006,X007の
BCD値をBIN値(2進数)に
変換して、D1のデータレジスタ(ワードデバイス)
に転送・格納する命令です。
D1では上図のように
16ビットBIN値で
数値が格納されます。
K2X000の見方が分からない場合は
以下のページを参考ください。
→準備中です。
データレジスタが分からない場合は
以下のページを参考ください。
→準備中です。
D1にBIN値で格納した後、
プログラム内でD1を使って
四則演算したり、比較したりして
数値処理をすることができるのです。
シーケンサの四則演算については
以下のサイトを参考ください。
BCD命令
シーケンサから外部の
7セグメント表示器に
数値を表示する際に
BCD命令は必要です。
前項のBIN命令とは
逆の考え方になります。
シーケンサ内のデータレジスタは
BIN値(2進数)なのです。
7セグメント表示器はBCDコードを
入力して数値を表示します。
ですので、BIN値をBCD値に
変換してシーケンサから
出力しないといけません。
上図を例にBCD命令を
見ていきます。
データレジスタD2はBIN値
16ビットで上図のとおりです。
このD2は
10進数なら37であり、
これを7セグメント表示器で
表示したいのです。
そのために、以下の命令をします。
[BCD D2 K2Y000 ]
このプログラム命令の意味は
データレジスタD2の数値(BIN値)を
BCD値に変換して
Y000,Y001,Y002,Y003,
Y004,Y005,Y006,Y007に
出力するというものです。
この出力端子と接続された
7セグメント表示器は
BCDコードそって
Y000~Y0003の1桁目は7を
Y004~Y0007の2桁目は3を
表示します。
K2Y000の見方が分からない場合は
以下のページを参考ください。
→準備中です
この流れ、BCD命令で
シーケンサ内部で様々な計算をした
その結果をデータレジスタに格納し
外部に出力(表示)できるのです。
4.まとめ
シーケンサで数値を扱う際、
2進化10進法やBIN命令、BCD命令に
関わることはあります。
このページを見たことで
これらを含んだプログラム(ラダー図)が
あっても戸惑うことはなくなると
思います。
当方では初心者向の
シーケンス制御の教材も
扱っていますので
興味があれば
以下の画像をクリックして
ご確認ください。
●リレーシーケンス教材に
ついては以下の画像をクリック
●シーケンサ教材に
ついては以下の画像をクリック