当前位置: 主页 > PLC控制

s7-200 BCD转整数求教?

请高手指教,我看了S7-200跟我学视频第81集,IW0BCD2#1001_0001_0001_0000转为整数VW2009110,这看得懂。但是强制后,为什么程序块里IW0标为-28400,这是个什么数,怎么来?请大侠们不吝赐教,谢谢!

最佳答案

这个问题,我现在搞明白了:数据的定义
整数(int
整数数据类型长度为16位,数据格式为带符号十进制数,16位中最高为符号位。正整数是以原码格式进行存储的,如+786,对应的二进制码为2#0000_0011_0001_0010,而负整数则表示为正整数的二进制补码,即对应正整数的二进制码取反后加1,例如负整数-786,对应的二进制码为2#1111_1100_1110_1110。将负零(1000_0000_0000_0000)定义为-32768因此取值范围为-32768~32767。0表示正,1表示负。
这里2#1001_0001_0001_0000这个数据在PLC地存储是2进制的格式,第一位为符号位,那么这个数就是个负数,根据上面的定义,除符号位的其他位取反得到110-1110-1110-1111,取反后得到的这个二进制数的十进制值为28399,再根据定义加上1就得到了28400,因为符号位是1,所以是-28400

提问者对于答案的评价:
非常感谢您!我计算了就是这个答案。

专家置评

已阅,最佳答案正确。

  • 关注微信

猜你喜欢

微信公众号