三菱電機製シーケンサQシリーズにおける「浮動小数点除算」命令とは、浮動小数点実数の2ヶの定数またはデバイス値を除算して結果(商)を求めるラダープログラム命令です。(A÷B=C)
この記事では、三菱電機製シーケンサQシリーズにおける浮動小数点除算命令の指令方法とラダープログラム例について解説します。
三菱電機製シーケンサQシリーズにおいて、浮動小数点除算命令は以下のCPUで使用することが可能です。
Basic(※1,2) | :ベーシックモデルQCPU |
High performance(※2) | :ハイパフォーマンスモデルQCPU |
Process(※2) | :プロセスCPU |
Redundant(※2) | :二重化CPU |
Universal | :ユニバーサルモデルQCPU |
LCPU | :LCPU |
※)MELSEC-Lシリーズも含まれていますがご了承ください。
※1)シリアルNo.の上5桁が”04122”以降のみ使用可能です。
※2)使用できない命令があります。(詳細は後述します)
QシリーズにおけるBIN16,32ビット形の除算命令については以下のページで解説しております。
【三菱Qシリーズ】除算(/)命令の指令方法とラダープログラム例Qシリーズにおける他の浮動小数点四則演算(加算・減算・乗算)については以下のページで解説しております。
【三菱Qシリーズ】浮動小数点加算(E+)命令の指令方法とラダープログラム例 【三菱Qシリーズ】浮動小数点減算(E-)命令の指令方法とラダープログラム例 【三菱Qシリーズ】浮動小数点乗算(E*)命令の指令方法とラダープログラム例目次
1. 浮動小数点除算命令の指令方法
浮動小数点除算命令には、4種類の指令方法があります。
E/ | :32ビット実数形の連続実行形 |
E/P | :32ビット実数形のパルス実行形 |
ED/ | :64ビット実数形の連続実行形 |
ED/P | :64ビット実数形のパルス実行形 |
工業分野の標準化を行うIEEEの一つであるIEEE 754によると「32ビット実数形は単精度浮動小数点」「64ビット実数形は倍精度浮動小数点」と呼ばれます。
三菱電機製シーケンサQシリーズにおいても、ラダープログラム内で使用する実数はIEEE 754に準拠しています。
E/:32ビット実数型の連続実行形(基本の形)
32ビット実数形の連続実行形の浮動小数点除算命令は”E/”と指令します。
こちらがE/命令を使用したラダープログラム例です。
このラダープログラムは、入力条件であるX0がONしている間、データレジスタD0,D1からD2,D3のデバイス値の除算した結果(商)をD4,D5に格納するものです。
32ビット実数形の場合、指定したデバイスを若番とする2ワード(32ビット)長として扱われます。
E/命令は連続実行形であるため、X0がON中にD0~D3のデバイス値が変わると除算結果であるD4,D5の値も追従して変化します。
先ほどのラダープログラムはGX Works2の回路上で E/ D0 D2 D4 と入力してEnterキーを押すと命令が挿入されます。 (小文字でもOKです。)
E/P:32ビット実数形のパルス実行形
32ビット実数形のパルス実行形の浮動小数点除算命令は”E/P”と指令します。
こちらがE/P命令を使用したラダープログラム例です。
連続実行形(E/命令)との違いは、入力条件である入力リレーX0がON中にD0~D3の値が変わっても除算結果であるD4,D5の値は追従して変化しないことです。
X0がONした瞬間にD0,D1からD2,D3を除算した結果(商)をD4,D5に格納します。
ED/・ED/P:64ビット実数形
64ビット実数形の連続実行形の浮動小数点除算命令は”ED/”と指令します。
64ビット実数形のパルス実行形の浮動小数点除算命令は”ED/P”と指令します。
こちらがED/・ED/P命令のラダープログラム例です。
このラダープログラムは、入力条件であるX0がONしている間、データレジスタD0~D3からD4~D7のデバイス値の除算した結果(商)をD8~D11に格納するものです。
64ビット実数形の場合、指定したデバイスを最若番とする4ワード(64ビット)長として扱われます。
64ビット実数形を用いてデバイスを倍精度浮動小数点として扱う場合、有効桁数が15桁となります。(単精度浮動小数点の場合は7桁)
2.【例題】単精度浮動小数点の除算値を求める
下記仕様のラダープログラムを浮動小数点除算命令を用いて解説します。
スイッチ(X1)を押すと、データレジスタD2,D3に定数5.678を転送する。
スイッチ(X2)を押すと、データレジスタD4,D5にD0,D1からD2,D3を除算した結果(商)を格納する。
スイッチ(X7)を押すと、データレジスタD0,D1に定数0を、D2,D3に定数1を転送する。
データレジスタはすべて32ビット長の「単精度浮動小数点」として扱う。
データレジスタに単精度浮動小数点の定数を転送するため、今回は浮動小数点転送(EMOV)命令を使用します。浮動小数点転送(EMOV)命令については以下のページで解説しておりますので、宜しければご覧ください。
【三菱Qシリーズ】浮動小数点転送(EMOV)命令の指令方法とラダープログラム例GOTの動作イメージ
GOTの動作イメージは以下のようになります。
スイッチ(X0)を押すとD0,D1に定数1.234を、スイッチ(X1)を押すとD2,D3に定数5.678を転送します。
スイッチ(X2)を押すと、D4,D5にD0,D1からD2,D3を除算した結果(商)を格納します。
スイッチ(X7)を押すとD0,D1に定数0を、D2,D3に定数1を転送します。
ラダープログラム
ラダープログラムは以下のようになります。
32ビット実数形の浮動小数点転送(EMOV)命令を使用して、D0,D1に定数1.234を転送します。(1行目)
同様に、浮動小数点転送(EMOV)命令を使用して、D2,D3に定数5.678を転送します。(2行目)
浮動小数点除算(E/)命令を使用して、32ビット実数形としてD0,D1からD2,D3を除算した結果(商)をD4,D5に格納します。(3行目)
最後に、浮動小数点転送(EMOV)命令を使用して、D0,D1に定数0を、D2,D3に定数1を転送します。(4,5行目)
D4,D5を”0”にするためには、D0,D1が”0”でD2,D3が”1”の状態でX2をONさせる(除算させる)必要があります。
3. おわりに
三菱電機製シーケンサQシリーズにおける浮動小数点除算命令について解説しました。
除算(/)命令と同様、除数が0の状態で命令を実行するとPLCはエラーとなりますのでご注意ください。
以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。
ただし、ラダープログラムやPLCといった電気・制御設計は参考書やWebサイトのみでの学習には必ずどこかで限界が来ます。
各メーカが販売しているPLCやプログラム作成のアプリケーションを揃えるには安くても十万円以上の大きな費用が掛かり、独学は現実的ではありません。
ラダープログラムの一番現実的な学習方法は「実務で経験を積む」ことです。電気・制御設計者はこれから更に必要な人材になり続けますので、思い切って転職する選択肢もあります。
『doda』や『マイナビAGENT 』といった大手求人(転職)サイトには電気・制御設計の求人が数多く紹介されています。※登録は無料です。
「スキルこそ今後のキャリアを安定させる最も大切な材料」と考える私にとって電気・制御設計はとても良い職業だと思います。キャリアの参考になれば幸いです。