S7-200CN跟我学81讲-BCD码与整数的转换应用举例,视频中有个地方不解

S7-200CN跟我学81讲-BCD码与整数的转换应用举例,视频中有个地方不解

S7-200CN: BCD码与整数的转换应用举例-跟我学 - 81/185

课程编号:V0217

暂无简介

点击这里,打开新窗口观看完整视频

该视频下的所有用户提问列表

请看附图,IW0被强制为2#1001000100010000,为什么在LAD中显示为-28400?这个是怎么得出的?望高手解惑。

图片说明:

S7-200CN跟我学81讲-BCD码与整数的转换应用举例,视频中有个地方不解    S7-200CN跟我学81讲-BCD码与整数的转换应用举例,视频中有个地方不解   

最佳答案

西门子 PLC 系统的单整数即16 位二进制整数的取值范围为 -32768 到 +32767。
其中:最高位是符号位,符号位为 0,则为正整数;符号位为 1,则表示这个数是一个负数,而负数存储时是以补码存储的,负整数的补码在用整数方式监视时,系统会将补码换算成真值。
因为正整数的原码 = 其反码 = 其补码,并且就是其本身,而负整数的补码与原码表示方式是不同的。所以我们可以认为整数在西门子的 PLC 系统中就是以补码的形式存储的。
关于这方面的内容,可以百度一下码制方面的内容去了解一下。
现在来解析你所看到的。
原强制值为 2# 1001 0001 0001 0000,它最高位为 1,则是一个负数,至于是多大的负数,则要按负数的补码求真值的方法来算。 求的过程如下:
负数补码: 2# 1001 0001 0001 0000
     减1得    2#  1001 0001 0000 1111
按位取反    2#  0110 1110  1111 0000
将最后得到的二进制码转换为十进制就是 28400,加上符号,则为 -28400,就是你程序中监视到的值。

提问者对于答案的评价:
原因、过程清晰,谢谢。

最佳答案作者回复:
谢谢夸奖,共同学习

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 下午2:21
下一篇 2021年7月5日 下午2:21

相关推荐

发表回复

登录后才能评论