■ ブール代数・論理演算 (File: plc_public_codex_xxx | Module:Boolean)

内容

PLCでは一番良く使われると思う論理演算に付いて書いています。
ビットデバイスのON-OFFの様に2値を表す表現を他の言い方で説明している場合があるので、対照として挙げておきます。
・ON-OFF
・真-偽
・True-False
・T-F
・1-0
・セット-リセット
また、論理積を”AND”や”*”、論理和を”OR”や”+”、排他的論理和を”XOR”とも表記します。論理否定は、変数の前に”/”を付けます。

●PDFを表示
◆ 論理否定
bgn

□1.
00004
・入力と出力が反転します。

・/[■1入力]は入力側を反転しています。
・/[●Out11]は出力側を反転しています。

・/[■1入力] / [■2入力]にカーソルを合わせ、ダブルクリックすると、ON-OFFできます。



□1-A . (1)のロジックを1ワード(16ビット)まとめて実行させます。
00007
・入力[@R000]~[@R015]を反転(<COM>命令)させて、出力[@MR000]~[@MR015]に出力して います。

・9~10行目でチェックしてください。[■Inp00] にカーソルを合わせ、ダブルクリックすると、ON-OFFできます。

◆ 論理積
bgn
□1.
00012
・[■1入力]、[■2入力]とも真の時[●Out02]がONします。

・[■1入力] / [■2入力] にカーソルを合わせ、ダブルクリックすると、ON-OFFできます。


□1-A . (1)のロジックを、ド・モルガンの法則で論理和の形に変換。
00014
・ド・モルガンの法則で、論理積を論理和の形に変換しています。
・A * B = /( /A + /B )

・/[■1入力] / /[■2入力] にカーソルを合わせ、ダブルクリックすると、ON-OFFできます。


□1-A . (1)のロジックを、1ワード(16ビット)まとめて実行させます。
00017
・[@R200]~[@R215]のセット位置と、[@R300]~[@R315]のセット位置が同じなら、[@MR200]~[@MR215]の同ビッ ト目がONします。

・19~21行目でチェックしてください。[■Inp02] / [■Inp03]にカーソルを合わせ、ダブルクリックすると、ON-OFFできます。

◆ 論理和
bgn
□1
00023
・[■1入力]、[■2入力]のどちらかが真の時[●Out03]がONします。

・[■1入力] / [■2入力] にカーソルを合わせ、ダブルクリックすると、ON-OFFできます。


□1-A . (1)のロジックを、ド・モルガンの法則で論理積の形に変換。
00026
・ド・モルガンの法則で、論理和を論理積の形に変換しています。
・A + B = /( /A * /B )
・OR条件が多数あり、何行にもなる時、論理積の形に変換すると行数が減り見通しがよくなります。


□1-B . (1)のロジックを1ワード(16ビット)まとめて実行させます。
00028
・[@R400]~[@R415]または[@R500]~[@R515]の任意のビットをセットすると、[@MR400]~[@MR415]の対応した ビット位置がONします。

・30~32行目でチェックしてください。[■Inp04] / [■Inp05] にカーソルを合わせ、ダブルクリックすると、ON-OFFできます。

◆ 排他的論理和

□1.
00034
・[■1入力]、[■2入力]が両方真なら、出力[●Out04]はOFFします。それ以外は論理和と同じ結果で す。

・[■1入力]を制御入力、[■2入力]をデータと考えると、
[■1入力]が偽の時は、[■2入力]がそのまま[●Out04]に出力。(バッファ動作)
[■1入力]が真の時は、[■2入力]が反転されて[●Out04]に出力。(インバータ動作)
になります。

・[■1入力]、[■2入力]のどちらか一方が真の時は、出力はONするので、入力の一致を判断するロジックとも考えられます。

・よく見かける例では、家の階段の1階と2階に電燈のスイッチが有って、1階/2階、どちらからでも電燈のON-OFFができる・・・あれです。


□1-A . (1)のロジックを1ワード(16ビット)まとめて実行させます。
00037
・ワード単位では(1)のロジックを再現しなくても、排他的論理和の命令が備わっています。

・[@R600]~[@R615]の真のビット位置と、[@R700]~[@R715]の任意の真のビットが同箇所の場合、[@MR600]~ [@MR615]の対応したビットはOFFします。それ以外は論理和と等価です。

・39~41行目でチェックしてください。[■Inp06] / [■Inp07] にカーソルを合わせ、ダブルクリックすると、ON-OFFできます。

◆ テンポラリーメモリを使って論理演算
bgn
00044
・[●演算結果]がテンポラリーメモリです。
・まず、何かの処理の結果、[初期値]を[●演算結果]に代入します。

00045
・まず上の結果と論理積をとっています。
・次に論理和をとっています。
・最後に排他的論理和をとっています。
・この様に、直前の結果と論理演算をし、同じメモリに代入することで、次々と演算することができます。四則演算をする時も同様ですね。

・50行目でチェックしてください。[初期値] / [和] / [積] / [排他] にカーソルを合わせ、ダブルクリックすると、ON-OFFできます。


◆ 論理積/論理和の切替
論理積と論理和を途中で切替えたい事って無いでしょうか?

□1 . 論理積 ⇒ 論理和
00053
・AND ⇒ OR に切替わります。
・[■1入力]と[■2入力]両方が真になったら[積⇒和]でラッチし、ANDブロックをマスクしています。

・[■1入力] / [■2入力] にカーソルを合わせ、ダブルクリックすると、ON-OFFできます。

□2 . 論理和 ⇒ 論理積
00056
・(1)の[積⇒和]を利用して[和⇒積]を作ります。
・[積⇒和]が偽の時、ANDブロックをマスクしています。

・[■1入力] / [■2入力] にカーソルを合わせ、ダブルクリックすると、ON-OFFできます。


□3 . (1)(2)のロジックを1ワード(16ビット)まとめて実行させます。
00060
・63~68行目でチェックしてください。[■Inp08] / [■Inp09] / [●Out08.+⇒*] / [●Out09.*⇒+]にカーソルを合わせ、ダブルクリックすると、ON-OFFできます。

●PDFを表示