dポイントプレゼントキャンペーン実施中!

シーケンスプログラムについて質問です。
この画像のプログラムの一番下の「ZRST D4 D5」
の所で-15536という数字がD4に格納されております。
しかし上のD4らにはしっかりと50000という数字が格納されております。
なぜ同じデータレジスタに違う数字が入ってるのでしょうか?

「シーケンスプログラムについて質問です。 」の質問画像

A 回答 (3件)

> MOVで移動した50000は符号が付いてZRSTの方は符号がつかない



それはサポートソフトがデータをどう扱うように作られているのか次第です。50000だろうが-15536だろうが、16進のC350であることは一緒ですから、表現・表示だけの問題と言えます。おそらくそれは、サポートソフトなりPLCのマニュアルに書かれていることでは?
    • good
    • 0

それは、符号付きかそうでないかの違いだけでは?そのPLCのDレジスタは16ビット長です。

ってことは表現可能な範囲は、符号なし十進だと0~65535で、符号付き十進では-32768~+32767。つまり符号付きだと16ビット長では50000は表現できる範囲外です。そこに50000と書いたら、マイナス側の範囲に入り込んでしまいます。その結果が今の-15536です。

Windows標準の電卓アプリで、50000と-15536を16進数に変換してみてください。それで末尾16ビットの値がどうなるか見てみれば納得できるはず。
    • good
    • 0
この回答へのお礼

分かりやすい回答有り難うございました。
ただ一つ分からないことがあるのですがMOVで移動した50000は符号が付いてZRSTの方は符号がつかないのでしょうか?

お礼日時:2018/10/24 11:48

X021 接点が ON になると、それに続く命令が実行されます。

この場合は、
LD X021 --ー MOV K0 D0 567
     ┗ーー MOV K0 D4 50000

次の処理は、
LD X022 --ー RST D0 567
     ┗ーー ZRST D4 D5 -15536 0

これは、入力条件が違いますので、別の処理と言えます。同時に X021 と X022 が ON になったとしても、後からの命令が有効になりますので、X022 以下で処理されます。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!