知方号

知方号

三菱Qシリーズ加算(+)命令の指令方法とラダープログラム例

三菱電機製シーケンサQシリーズにおける「加算」命令とは、2ヶの定数またはデバイス値を加算して結果を求めるラダープログラム命令です。(A+B=C)

この記事では、三菱電機製シーケンサQシリーズにおける加算命令の指令方法とラダープログラム例について解説します。

注意この記事中のラダープログラムはGX Works2で作成しており、PCタイプはQ03UDEに設定してあります。

三菱電機製シーケンサQシリーズにおいて、加算命令は以下のCPUで使用することが可能です。

Basic:ベーシックモデルQCPUHigh performance:ハイパフォーマンスモデルQCPUProcess:プロセスCPURedundant:二重化CPUUniversal:ユニバーサルモデルQCPULCPU:LCPU

※MELSEC-Lシリーズも含まれていますがご了承ください。

三菱電機製シーケンサFXシリーズにおける加算命令は以下のページで解説しております。※Qシリーズとは命令方法が異なります。

【三菱FXシリーズ】加算(ADD)命令の指令方法とラダープログラム例

Qシリーズにおける他の四則演算(減算・乗算・除算)については以下のページで解説しております。

【三菱Qシリーズ】減算(-)命令の指令方法とラダープログラム例 【三菱Qシリーズ】乗算(*)命令の指令方法とラダープログラム例 【三菱Qシリーズ】除算(/)命令の指令方法とラダープログラム例

目次

1. 加算命令の指令方法

加算命令には、4種類の指令方法があります。

+:16ビット連続実行形+P:16ビットパルス実行形D+:32ビット連続実行形D+P:32ビットパルス実行形 メモ連続実行形は、入力条件がONしている間、毎スキャン実行される命令です。パルス実行形は、入力条件がONしたときの1スキャンのみ実行される命令です。 注意三菱電機製シーケンサFXシリーズでは加算命令は”ADD”と指令します。Qシリーズとは命令方法が異なるのでご注意ください。+:16ビット連続実行形(基本の形)

16ビット連続実行形の加算命令は”+”と指令します。

こちらが+命令を使用したラダープログラム例です。

このラダープログラムは、入力条件であるX0がONしている間、データレジスタD0とD1のデバイス値の加算結果をD2に格納するものです。

+命令は連続実行形であるため、X0がON中にD0またはD1の値が変わるとD2の値も追従して変わります。

先ほどのラダープログラムはGX Works2の回路上で + D0 D1 D2 と入力してEnterキーを押すと挿入されます。(小文字でもOKです。)

+P:16ビットパルス実行形

16ビットパルス実行形の加算命令は”+P”と指令します。

こちらが+P命令を使用したラダープログラム例です。

連続実行形(+命令)との違いは、入力条件である入力リレーX0がON中にD0またはD1の値が変わってもD2の値は追従して変化しないことです。

X0がONした瞬間のD0とD1の加算値をD2に格納します。

メモ入力条件がOFF→ONしたときに加算命令が1スキャンだけ実行します。D+・D+P:32ビット実行形

32ビット連続実行形の加算命令は”D+”と指令します。

32ビットパルス実行形の加算命令は”D+P”と指令します。

こちらがD+・D+P命令のラダープログラム例です。

32ビット実行形の場合、指定したデバイスを若番とする2ワード(32ビット)長として扱われます。↑のラダープログラムの場合、D0・D1とD2・D3の加算結果をD4・D5に格納します。

注意ラダープログラム上ではD1・D3・D5を指令していませんが、他の用途で使用できなくなります。2.【例題①】1ワード長の加算値を求める

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

仕様スイッチ(X0)を押すと、データレジスタD0に定数7を転送する。スイッチ(X1)を押すと、データレジスタD1に定数10を転送する。スイッチ(X2)を押すと、データレジスタD2にD0とD1の加算結果を転送する。スイッチ(X7)を押すと、データレジスタD0とD1に定数0を転送する。※スイッチが同時に複数ONすることはないとする。

データレジスタに定数を転送するため、今回は転送(MOV)命令を使用します。転送(MOV)命令については以下のページで解説しておりますので、宜しければご覧ください。

【三菱Qシリーズ】転送(MOV)命令の指令方法とラダープログラム例 タイムチャート

タイムチャートは以下のようになります。

入力リレーX0がONすると、データレジスタD0に定数7を転送します。入力リレーX1がONすると、データレジスタD1に定数10を転送します。

入力リレーX2がONすると、データレジスタD0とD1の加算結果をD2に転送します。

入力リレーX7がONすると、データレジスタD0とD1に定数0を転送します。(リセット的な意味)

GOTの動作イメージ

GOTの動作イメージは以下のようになります。

スイッチ(X0)を押すとデータレジスタD0に定数7を、スイッチ(X1)を押すとデータレジスタD1に定数10を転送します。

スイッチ(X2)を押すとデータレジスタD2にD0とD1の加算結果を転送します。

スイッチ(X7)を押すとデータレジスタD0とD1に定数0を転送します。

ラダープログラム

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

D0に定数7、D1に定数10を転送するために転送(MOV)命令を使用します。

X2がONすると、加算(+)命令が実行されてD0とD1の値の加算結果をD2に転送します。

X7がONすると、D0とD1に定数0を転送しています。D0とD1で分けましたが、32ビット形(DMOV)でまとめても問題ありません。

注意X7がONしただけではD2は”0”になりません。D2を”0”にするためには、D0とD1が”0”の状態でX2をONさせる(加算させる)必要があります。3.【例題②】2ワード長の加算値を求める

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

仕様スイッチ(X0)を押すと、データレジスタD0,D1に定数30,000を転送する。スイッチ(X1)を押すと、データレジスタD2,D3に定数50,000を転送する。スイッチ(X2)を押すと、データレジスタD4,D5にD0,D1とD2,D3の加算結果を転送する。スイッチ(X7)を押すと、データレジスタD0~D3に定数0を転送する。※スイッチが同時に複数ONすることはないとする。

【例題①】と考え方は同じですが、扱う定数の値が大きいのでデータレジスタは2ワード(32ビット)長で使用します。

メモデータレジスタ1点(16ビット)では、-32,768~32,767の数値を扱うことができ、データレジスタ2点(32ビット)では、-2,147,483,648~2,147,483,647の数値を扱うことができます。GOTの動作イメージ

GOTの動作イメージは以下のようになります。

扱う数値が大きいためデータレジスタは32ビットとして扱いますが、動作としては【例題①】と同様です。

ラダープログラム

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

32ビット実行形を使用するために、D+命令を使用します。

転送命令も同様に32ビット実行形であるDMOV命令を使用する必要があります。

三菱電機製シーケンサQシリーズでは、32ビット実行形の命令のほとんどが頭文字に”D”が付きます。(すべてかもしれません。)

X7でDMOV命令を2ヶ使用しましたが、多点転送(FMOV)命令という便利な命令も存在します。この命令を用いることで、1ヶの命令でまとめて定数を転送することができます。

4. おわりに

三菱電機製シーケンサQシリーズにおける加算命令について解説しました。

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

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

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

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

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

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

スポンサードリンク

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。