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

⇒ TO Home Page
内容

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を表示