シーケンス制御講座

浮動小数点

浮動小数点というのは、本来整数を扱うデータレジスタで小数を扱う方法です。浮動小数点が使えると、計算がより細かく楽にできるようになると思います。

作成日:2010年06月22日
更新日:2022年12月26日


浮動小数点とは

浮動小数点という言葉をきいたことがあるでしょうか?シーケンサで計算すると、小数点が使用できません。割り算を行うと整数部分しか計算されず、変わりに余りが計算されます。

しかし細かい計算がしたいこともあります。そんなときは浮動小数点を使用してみましょう。浮動小数点は名前は難しいですが、とても簡単に使用できます。浮動小数点とはデータレジスタを2個(2ワード)使い、小数点が使える実数として扱うことができるのです。

浮動小数点の使い方

説明よりも実際に使いながら説明してみましょう。

まず最初に30と言う整数をD20に入れます。これはとりあえず30を入れているだけなので、実際はBCDなどから取込んだ値を入れればいいと思います。

次に[FLT D20 D22]と書いてあります。これが浮動小数点表示への変換になります。D22とD23の2ワードにまたがって30を整数でなく実数で表示しています。表示のみなので、実際のD22には別の整数が入っています。

次が計算部分です。先頭にEがついています。実はD22とD23は浮動小数点表示では30と入っていますが、16ビット整数では30ではありません。つまりそのまま計算すると違う答えが計算されます。そこで計算式の先頭にEをつけることで、「この計算は浮動小数点で行なってください。」と指定しているのです。キーボードの「F3」キーを押してモニタすればよく分かります。モニタ表示に小数点がついているはずです。ここでは100をかけていますが、これもE100と浮動小数点で指定する必要があります。そして計算結果のD24とD25も浮動小数点で書き込まれます。

次の割り算も同じで浮動小数点で計算します。

このまま浮動小数点で値を管理するのもいいのですが、小数部分が必要なかったり、桁が少ないようでしたら16ビット整数に戻したほうが管理が楽になります。データレジスタも1ワードで良いですし。そこで「INT」命令で戻すのですが、その前に浮動小数点での値が16ビット整数の範囲内か確認する必要があります。

最後の行のように、D26の値が-32768~32767の範囲である場合は実行してください。それ以外で行うとエラーになります。

[E< = E-32768 D26]

と書いてありますが、これはD26の値が-32768以上のときにONする接点です。この場合も先頭にEをつけて、浮動小数点として扱っています。

D28には少数部分を除いた数値が入ってきます。これで16ビットに戻す作業は完了です。浮動小数点も一度使ってしまえば特に難しくないはずです。ここまで回路を作ってしまえば、後はD20に値を入れればD28に答えが返ってくるだけです。

文字列などの扱いも同じです。この値をなにとして扱うかを指定してあげるのです。実際のデータレジスタの中身は整数(さらに細かく言えば16個のビット)なので、浮動小数点で扱う値と実際の整数の値は違います。しかし、回路作成作業をしていても特に気にする必要はないと思います。ポイントはなにを扱うかだけで、文字列で扱えば、文字列で扱うようにプログラムを作成すればいいのです。そのときの整数の値は気にすることはないのです。



図解入門 よくわかる最新 シーケンス制御と回路図の基本はKindle版(電子書籍)です。単行本ご希望の方は、フォーマットで単行本を選択してください。または、トップページよりご購入ください。

Copyright (C) 2010 シーケンス制御講座, All rights reserved.