登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:求教,位、字节、字、整数、浮点数?

点击:5418 回复:13

如题,看西门子s7 300 PLC碰到不少的困难,楼主又在这种数据类型上受阻,十分不解,上来向各位前辈请教。
    位的真假、字和浮点数的定义都看了一下,还是很不明白:
    例如不知道整数通过指令转化为双整数,再由双整数转化为浮点数,浮点数除以十,这类转换有什么意义?
又对控制起了什么变化,怎么达到控制的目的?还是楼主把始末都没搞明白?求指教。!!!!
    多谢各位了!!!
13-01-17 16:03
在线坐等,希望诸位热心肠。。。。
13-01-17 16:05
例如不知道整数通过指令转化为双整数,再由双整数转化为浮点数,浮点数除以十,这类转换有什么意义?
这仅仅用于从模块读取热电偶或者PT热电阻的温度信号,因为:
  从S7-300模板规范手册来看,西门子温度信号的实际值与其模块的读数的关系是10倍的关系,因此需要除以10。
  为何要转换为浮点数?因为使用整数除以10的话,小数位被丢弃,这样就丢弃了精度,当然,你无所谓10.5度与10度的差异话,可以不用转换为浮点数。
Good Luck~
13-01-17 17:06
多谢了!!!!
最后修改:2013/1/17 21:51:46
13-01-17 21:50

引用 kachakacha 在 2013/1/17 17:06:40 发言【内容省略】

对了,能不能把整数变为双整数这个解释下,要是您有空的话,希望能说细一点,对这一整套体系都不大懂。。。
13-01-17 21:52

引用 467437736 在 2013/1/17 21:52:11 发言【内容省略】

整数16位,双整数32位,其转换过程为:
首先保留16位整数的最高位,即符号位,并将最高位置0。
然后将16位扩展为32位。
最后根据最高位置0还是置1.
如果你自己扩展的话,那会非常简单,例如MW0扩展为Md0,
1、首先保留MW0的最高位,用字与操作,结果保存在Mw10中。
2、将16位扩展为32位,即将使用移动指令将MW0移入Mw2中。
3、根据最高位置0或者1,将MW10的数据移入Mw0中。
通过以上步骤,当读取Md0的时候就是32位数据,当然,系统的ITD指令不是这样做的,其使用的时地址指针来完成的,实现原理相同。
Good Luck~
13-01-18 06:02
希望得到比较正确的解释!表情
13-01-18 11:51
7楼
该帖内容不符合相关规定!
13-01-21 10:14

引用 cvlsam 在 2013/1/18 6:02:55 发言【内容省略】

cvlsam大,这次可说错了。
整型转长整型很简单,原来的整型数放在低字,高字补与符号位相同的16个位就可以了。
正数补16个0,负数补16个1.
13-01-21 11:03
例如不知道整数通过指令转化为双整数,再由双整数转化为浮点数,浮点数除以十,这类转换有什么意义?
这仅仅用于从模块读取热电偶或者PT热电阻的温度信号,因为:
 从S7-300模板规范手册来看,西门子温度信号的实际值与其模块的读数的关系是10倍的关系,因此需要除以10。
 为何要转换为浮点数?因为使用整数除以10的话,小数位被丢弃,这样就丢弃了精度,当然,你无所谓10.5度与10度的差异话,可以不用转换为浮点数。
13-01-27 13:37

上一页下一页

工控新闻

更多新闻资讯