【上級編】PLC(シーケンサ)によるGX Works3の浮動小数点演算・BIN16bitデータ変換方法

f:id:vv_6ong_3ka_cp:20200809181905p:plain

三菱電機製のGX Works3にて浮動小数点を扱うことが度々あります。

BIN16bitデータでは桁を合わせたりしなければなりませんがその必要がないため、浮動小数点の場合、演算の簡略化が可能です。

C言語やプログラムを組まない人にとっては、浮動小数点、つまりいつも計算する方法が馴染みがありますが、PLCラダー言語で慣れている人にとっては浮動小数点演算はあまり行わず、BIN16bit演算を多用することが多いです。

BIN16bit演算は足し算や引き算、掛け算を行う際にはそれほど不都合が生じませんが、割り算を行った際には桁が全て無くなってしまうことが生じます。

割り算の場合、【 被除数 ÷ 除数 = 商 ・・・ 余り 】となりますが、【 被除数 < 除数 】の場合、商は0となってしまい、演算結果もデータレジスタDがD+0:商、D+1:余りと分けられてしまい、それらを考慮してプログラムを考慮して演算を作成するのがとても手間となってしまいます。
※そのため、ラダー言語のBIN16bit演算を行う場合はしっかり桁、つまり割られても商が0にならないように被除数を大きくする必要があります。

そのような不都合が多くなってしまうと浮動小数点でデータを扱い、浮動小数点演算をさせた方が利点が多いと言っていいでしょう。

” BIN16bit 除法プログラム例 ”

f:id:vv_6ong_3ka_cp:20200809105128p:plain

f:id:vv_6ong_3ka_cp:20200809105302p:plain

広告


浮動小数点とは?

下記Wikiに詳しく書かれていますので詳細は譲ります。

ja.wikipedia.org

www.niwakafa.com

GX Works3による浮動小数点データ設定・BIN16bit→浮動小数点変換

f:id:vv_6ong_3ka_cp:20200809111324p:plain

f:id:vv_6ong_3ka_cp:20200809111340p:plain

GX Works3による浮動小数点演算

加算

f:id:vv_6ong_3ka_cp:20200809110057p:plain

f:id:vv_6ong_3ka_cp:20200809110113p:plain

減算

f:id:vv_6ong_3ka_cp:20200809110725p:plain

広告


乗算

f:id:vv_6ong_3ka_cp:20200809110844p:plain

f:id:vv_6ong_3ka_cp:20200809110912p:plain

除算

f:id:vv_6ong_3ka_cp:20200809111010p:plain

f:id:vv_6ong_3ka_cp:20200809111027p:plain

浮動小数点→BIN16bitデータ変換

f:id:vv_6ong_3ka_cp:20200809111712p:plain

f:id:vv_6ong_3ka_cp:20200809111727p:plain

終わりに

色々なデータ処理方法があり、浮動小数点演算が使用できるようになれば、様々な演算が楽になる部分があるでしょう。

参考にしてみて下さい。

広告


www.niwakafa.com

www.niwakafa.com

www.niwakafa.com