• 締切済み
※ ChatGPTを利用し、要約された質問です(原文:三菱PLC(FX3U)の浮動小数点転送について)

三菱PLC(FX3U)の浮動小数点転送と比較について

このQ&Aのポイント
  • 三菱PLC(FX3U)の浮動小数点のデータ転送方法や比較方法について詳しく教えてください。
  • 浮動小数点データを転送する際には、EMOVやDEMOVを使用する必要がありますが、なぜMOVやDMOVではダメなのでしょうか?また、浮動小数点の比較についても詳しく説明してください。
  • 初歩的な質問かもしれませんが、三菱PLC(FX3U)の浮動小数点データの転送方法や比較方法についてお知りになりたいです。MOVやDMOVでの転送は問題ないのか、ECMPや不等号の使用方法についても教えてください。

みんなの回答

  • lumiheart
  • ベストアンサー率47% (1147/2425)
回答No.2

>なぜEMOVやDEMOVで転送する必要があるのですか? ただ単にIEC 61131-3と整合性を取る為ダケ https://www.fa.omron.co.jp/product/special/sysmac/plcopen/ 現時点ではMOVやDMOVで転送して問題有りません 問題が出るとすれば近い将来にFX5シリーズにソフト移植する時でしょうね もしかしたらFX7とかFX9、FX11になったら使用不能となるかも? いずれ、C言語と同等なデータ型の扱いになるでしょう http://www9.plala.or.jp/sgwr-t/c/sec13.html MS-DOS時代にFORTRANで書いたソフトをWin10に移植したいとか そんな愚を犯さなさないようにね https://www.nag-j.co.jp/fortran/

sabbath666
質問者

お礼

回答ありがとうございます。 転送は問題ないのですね。すっきりしました。 自分はPLCとかしかやらないのでFORTRANの話はよく分かりません。

  • TIGANS
  • ベストアンサー率35% (245/681)
回答No.1

CPUでの一般論だと、32ビットデータをどう転送しても良さそうですが PLCなどのデータレジスタが特殊な役割を持っている場合にはダメですね。 例えばアドレスレジスタやカウンタレジスタに、浮動小数点データを転送するのは意味がありますか? バグである可能性が高いと思いませんか? 命令を分けておく事でバグの検出がしやすくなると思いませんか? また演算レジスタに転送するときにも、フラグの関係で分ける必要がありますね。 比較命令は、INTEGERとFLOATではそもそもレジスタ内の割付フォーマットが違うので同じ命令では比較出来ません。FLOATデータをINTEGER命令で操作した場合には正しい演算結果は期待できないです。

sabbath666
質問者

補足

回答ありがとうございます。 比較の件は、もちろんFLTとINTで大小の比較出来ないことは理解していますが、単純にビット状態が同じか比較するだけであれば、入っているデータがFLTであっても〈〉で比較して、確認出来るかなと思っただけです。 整数ではよくそうやって値の更新のフラグに使っているので、よくよく考えたら別に整数以外でも使えるよね?って思ったので。 バグの件はご最もだと思いました。 でもマニュアルにMOVでも大丈夫ですよと書いて欲しいです。マニュアルのEMOV命令使用例でFLTのレジスタ同士の転送が載っていたので、あたかもそれじゃないとダメみたいな感じだったので、質問させていただきました。

関連するQ&A

専門家に質問してみよう