SMART 200 MOVE指令数据传送错误

使用SM0.1,上电传送-8000或8000,但数据与二进制不符

图片说明:

SMART 200 MOVE指令数据传送错误   

最佳答案

+80000 用 32 位二进制表示,就是你看到的 VD5006
2#0000_0000_0000_0001_0011_1000_1000_0000
-80000  是个负数,在 PLC 中负数是用补码表示的,用 +80000 的二进制求-80000补码的方法是:
2#0000_0000_0000_0001_0011_1000_1000_0000    +80000 的二进制码按位取反得下一行
2#1111_1111_1111_1110_1100_0111_0111_1111       再将这一行最未位加 1 得下一行
2#1111_1111_1111_1110_1100_0111_1000_0000      这就是你看到的VD5026中各字节的二进制码
这个变换的过程是由 CPU 自动完成的。
当用有符号数监视 VD5026时,CPU 会将其表示的真实数据-80000呈现在你面前。
当用二进制监视VD5026时,它是按补码形式真实存储在 CPU 中 -80000 的各个位。
这是一个关于数据在计算机、PLC 中表示的问题,你可以在网上找一些,原码、反码、补码的资料,再看看会明白很多。

提问者对于答案的评价:
补码和反码我是知道的,就是我将80000和8000搞混了

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc346869.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日
下一篇 2021年7月4日

相关推荐

发表回复

登录后才能评论