xiaqingasus
级别: 探索解密
精华主题: 0
发帖数量: 4 个
工控威望: 112 点
下载积分: 521 分
在线时间: 16(小时)
注册时间: 2012-07-26
最后登录: 2016-06-29
查看xiaqingasus的 主题 / 回贴
楼主  发表于: 2012-12-03 20:21
本人自学S7-300,,,看到模拟量的地方 想知道为什么 模拟量输入需要经过 I   DI  R这三个过程.什么道理呢 求教啊 尽量说的简单点好了谢谢
cvlsam
富士低压,POD(觸摸屏),PLC专卖
级别: VIP会员

精华主题: 3 篇
发帖数量: 6770 个
工控威望: 38371 点
下载积分: 3232 分
在线时间: 9510(小时)
注册时间: 2006-09-13
最后登录: 2024-11-26
查看cvlsam的 主题 / 回贴
1楼  发表于: 2012-12-03 20:48
一般模拟量并不做这种,而是采集温度才这样做。

为何采集温度会这样做呢?因为对于7KF这种多用途模块来说,其实际温度值与采集数据之间的关系为  采集数据处以10就是实际温度。

那么,当采集数据为322,明眼人一看就知道,那不就是32.2度么,是的,如果直接除以10,那么由于整形的关系,其结果0.2度被丢弃了。

所以,需要切换到浮点数除法,这样才能保留精度。

为了转换为浮点数,浮点数的数据长度为32位,因此,必须首先扩展16位的整形到32位的长整形,因此需要ITD指令扩展。

其次才能通过DTR指令来转换到浮点数。

如果你不在意小数点后的精度,那无需去转换,直接整形除法即可。

Regards