使用SM0.1,上电传送-8000或8000,但数据与二进制不符
图片说明:
最佳答案
+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