【キーエンスKV】論理和演算(ORA)命令の指令方法とラダープログラム例

00_【キーエンスKV】論理和演算(ORA)命令の指令方法とラダープログラム例

キーエンスKVシリーズにおける「論理和演算(もしくはオアA)」命令とは、内部レジスタの値と指定した値の論理和を再度内部レジスタに格納ラダープログラム命令です。

論理和とは、入力条件のいずれか1ヶでも”1”の場合に、出力が”1”になる論理演算です。論理和はORと表現されます。

この記事では、キーエンスKVシリーズにおける論理和演算命令の指令方法ラダープログラム例について解説します。

注意
この記事中のラダープログラムはKV STUDIO Ver.11で作成しており、対応機種はKV-N24に設定してあります。
メモ
論理積演算命令はKV-8000・KV-7500/7300・KV-5500/5000/3000・KV-1000・KV-nanoシリーズで使用可能です。※2020年11月現在

キーエンスKVシリーズにおける論理積演算(ANDA)命令については以下のページで解説しております。

00_【キーエンスKV】論理積演算(ANDA)命令の指令方法とラダープログラム例【キーエンスKV】論理積演算(ANDA)命令の指令方法とラダープログラム例

1. 論理和演算命令の指令方法

論理和演算命令は、『毎スキャン実行型』『微分実行型(パルス実行型)』に大別されます。

毎スキャン実行型とは、実行条件がONしている間、その命令を毎スキャン実行するものです。対して微分実行形(パルス実行型)とは、実行条件がOFF→ONになったときの1スキャンのみ実行するものです。

ORA:毎スキャン実行型の論理和演算命令

毎スキャン実行型の論理和演算命令は、扱うデバイスのデータ型によって、さらに2種類に分けられます。

以下が毎スキャン実行型の論理和演算命令です。

ORA(.U):16ビット符号無しBINデータ
ORA.D:32ビット符号無しBINデータ

扱う「データ長」や「符号付きor無し」などはサフィックスと呼ばれる接尾語を命令文につけて指定します。※論理和演算命令の命令文はORAです。

メモ
16ビット符号無しBINデータの場合、サフィックスである.UはKV STUDIO上では表示が省略されます。

KV STUDIOで作成した各々の毎スキャン実行型の論理和演算命令は以下のようになります。

↓が16ビット符号無しBINデータの論理和演算(ORA)命令です。

10_ORA命令

↓命令部分を拡大

10_ORA命令(拡大)

このラダープログラムは、実行条件である入力リレーR000がONしている間、データメモリDM0とDM1の論理和演算の結果をデータメモリDM2に格納します。

例えば、DM0とDM1のデバイス値が下記の状態でR000がONした場合、DM2にはこのような論理和演算の結果が格納されます。

10_命令イメージ

DM0とDM1のいずれか1ヶでも”1”の場合、DM2のビットが”1”になります。

↑の例の場合、DM0とDM1のビット「1」「3」「4」「F」以外が、いずれか1ヶが”1”になっているため、論理和演算の結果が格納されるDM2には”1”が格納されます。


論理和演算命令について理解するためには、両側のLDA命令STA命令の意味を理解して頂く必要があります。少し長くなりますが、まだ理解していない方は以下の解説をご覧ください。

そもそも論理和演算命令とは、内部レジスタ指定した値の論理和の演算結果を再度内部レジスタ に格納する命令です。

論理和演算する一方のデバイスは、一度内部レジスタに値を格納する必要があります。この内部レジスタにデータを格納する命令がロードA(LDA)命令です。↑のラダープログラムではデータメモリDM0の値を内部レジスタに格納しています。

指定した値とは、論理和演算するもう一方の内部レジスタのことで、↑のラダープログラムではDM1を指定しています。

論理和演算の結果は再度内部レジスタに格納されるので、内部レジスタ上からデータメモリ等のデバイスに値を引っ張ってくる必要があります。この内部レジスタのデータを指定したデバイスに格納する命令がストアA(STA)命令です。↑のラダープログラムでは内部レジスタの値をデータメモリDM2に格納しています。

注意
ロードA(LDA)命令、ストアA(STA)命令ともにサフィックスにて扱うデータの型を指定する必要があります。

↓が32ビット符号無しBINデータの論理和演算(ORA.D)命令です。

11_ORAD命令

このラダープログラムは、実行条件である入力リレーR000がONしている間、データメモリDM0,DM1とDM2,DM3の論理和演算の結果を32ビットの内部レジスタに格納します。

STA.D命令を用いて32ビット内部レジスタの値を”32ビット符号無しBINデータ”としてDM4,DM5に格納します。

メモ
データメモリDMは、1点が16ビットで構成されるデバイスです。32ビット命令を使用する場合は指定したデータメモリを下位とする2点が使用されます。
注意
↑のラダープログラムでは、LDA.D命令によりデータメモリDM0,DM1、ANDA.D命令によりDM2,DM3、STA.D命令によりDM4,DM5が使用されます。DM1,DM3,DM5はラダープログラム上では使用していないように見えますが、他の用途では使用できなくなります。

@ORA:微分実行型(パルス実行型)の論理和演算命令

微分実行型(パルス実行型)の論理和演算命令は、毎スキャン実行型と同様にサフィックスによって、さらに2種類に分けられます。

@ORA(.U):16ビット符号無しBINデータ
@ORA.D:32ビット符号無しBINデータ

命令の頭文字に@を付けることで、実行条件がOFF→ONになったときの1スキャンしか実行されない微分実行型(パルス実行型)となります。


KV STUDIOで作成した各々の微分実行型(パルス実行型)の論理和演算命令は以下のようになります。

↓が微分実行型(パルス実行型)16ビット符号無しBINデータの論理和演算(@ORA)命令です。

12_@ORA命令

微分実行型(パルス実行型)の場合、命令文の左側に上向きの矢印が表示されます。

このラダープログラムは、実行条件である入力リレーR000がOFF→ONになった瞬間に、データメモリDM0とDM1の論理和演算の結果をデータメモリDM2に格納します。

このように、微分実行型(パルス実行型)の場合は実行条件がOFF→ONになった瞬間の1スキャンしか命令が実行されません。

扱うデバイスのデータ型によるサフィックスの指定方法に関しては、毎スキャン実行型と同様です。


その他の微分実行型(パルス実行型)の論理和演算命令は以下のようになります。

命令の解説は省略しますが、実行条件がOFF→ONになった瞬間に1スキャンだけ実行されるもので、その他は毎スキャン実行型と同じ機能と捉えて頂いて問題ありません。

↓が微分実行型(パルス実行型)32ビット符号無しBINデータの論理和演算(@ORA.D)命令です。

13_@ORAD命令

KV STUDIOにおける命令挿入の方法

論理和演算命令をKV STUDIOの回路上に挿入するには「命令文 論理和演算の対象」と回路上で入力します。

例1先ほどの毎スキャン実行型の16ビット符号無しBINデータの論理和演算(ORA)命令を挿入する場合、KV STUDIOの回路上でORA DM1と入力してEnterキーを押します。

20_命令挿入

※ついでにロードA(LDA)命令ストアA(STA)命令も挿入しています。


例2先ほどの微分実行型(パルス実行型)の32ビット符号無しBINデータの論理和演算(@ORA.D)命令を挿入する場合、KV STUDIOの回路上で@ORA.D DM2と入力してEnterキーを押します。

21_命令挿入

※こちらもロードA(LDA)命令ストアA(STA)命令も挿入しています。

2.【例題①】常に論理和の演算を行う

下記仕様のラダープログラムを論理和演算命令を用いて解説します。

仕様
データメモリDM0とDM1の論理和演算の結果をDM2に格納する。
この処理をPLCがRUNモード中、常に実行する。

PLCがRUNモード中、常に論理和演算命令を実行します。今回は実行条件にコントロールリレーCR2002を使用します。

メモ
コントロールリレーとは、予め機能が割り振られている特殊なデバイスです。その中のCR2002は「PLCがRUNモード中、常にONする」デバイスです。

タッチパネルの動作イメージ

タッチパネルの動作イメージは以下のようになります。

例題①_タッチパネル

データメモリDM0とDM1の論理和演算を常にDM2に格納し続けます。

タッチパネル右上でDM0とDM1に数値を入力します。(16進数入力)

タッチパネル右下には、DM0~DM2の各ビット情報を表示しています。各ビットは四角が塗りつぶされるとONしている状態です。

ラダープログラム

ラダープログラムは以下のようになります。

例題①_ラダープログラム

実行条件をCR2002とする論理和演算(ORA)命令を用いて、DM0とDM1の論理和演算の結果をDM2に格納します。

今回はPLCがRUNモード中は常に命令を実行するため、論理和演算(ORA)命令は毎スキャン実行型を使用します。

3.【例題②】スイッチONで論理和の演算を行う

下記仕様のラダープログラムを論理和演算命令を用いて解説します。

仕様
スイッチ(R000)を押した瞬間、データメモリDM0とDM1の論理和演算の結果をDM2に格納する。
スイッチ(R000)が押された状態でDM0またはDM1のデバイス値が変わっても、DM2のデバイス値は追従して変化しない。

スイッチ(R000)を押された瞬間、つまりR000がOFF→ONになった瞬間のみ論理和演算命令を実行します。

【例題①】では、毎スキャン実行型の論理和演算命令を使用していましたが、今回は微分実行型(パルス実行型)を使用します。

メモ
微分実行型(パルス実行型)は、命令文に@を付けて指令します。

タッチパネルの動作イメージ

タッチパネルの動作イメージは以下のようになります。

例題②_タッチパネル

※【例題①】と同様、タッチパネル右上でDM0とDM1の数値を入力します。

スイッチ(R000)を押した瞬間、データメモリDM0とDM1の論理和演算の結果をDM2に格納します。

ラダープログラム

ラダープログラムは以下のようになります。

例題②_ラダープログラム

実行条件をR000とする微分実行型(パルス実行型)の論理和演算(ORA)命令を用いて、DM0とDM1の論理和演算の結果をDM2に格納します。

微分実行型(パルス実行型)は実行条件がOFF→ONになった瞬間の1スキャンのみ実行されます。

スイッチ(R000)が押されている状態でDM0またはDM1のデバイス値が変化しても、命令が実行されていないためDM2のデバイス値は追従して変化しません。

4. おわりに

キーエンスKVシリーズにおける論理和演算(ORA)命令について解説しました。

以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。

ただし、ラダープログラムやPLCといった電気・制御設計は参考書やWebサイトのみでの学習には必ずどこかで限界が来ます。

各メーカが販売しているPLCやプログラム作成のアプリケーションを揃えるには安くても十万円以上の大きな費用が掛かり、独学は現実的ではありません。

ラダープログラムの一番現実的な学習方法は「実務で経験を積む」ことです。電気・制御設計者はこれから更に必要な人材になり続けますので、思い切って転職する選択肢もあります。

DODA』といった大手求人(転職)サイトには電気・制御設計の求人が数多く紹介されています。※登録は無料です。

「スキルこそ今後のキャリアを安定させる最も大切な材料」と考える私にとって電気・制御設計はとても良い職業だと思います。キャリアの参考になれば幸いです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です