登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:转换

点击:1374 回复:7

大虾好,想问一下 我通讯读出的数据如何转换成我想要的数据呢?实际的温度是16.7度,而返回的结果却是+1099268344,一个32位的双字存放的结果。我是用的S7-200的 ,究竟如何转换呢?小弟先谢谢大虾了。
08-12-01 09:57
在你的温控那部分的手册里应该有这数字的组成说明吧
+1099268344,每一位代表的含义是什么呢
应该有个类似这样的说明的,这是三菱伺服通讯的读到的数据
附件
08-12-01 10:31
这个数据要查一下你测温用的设备对应的协议;
08-12-01 10:38
这个数据是带小数的,其存贮格式是32位浮点数格式,而不是十进制整数格式。
你以浮点数格式查看,其显示值为16.68797。
在使用中按浮点数使用就可以了。如要转换整数格式,可以用ROUND指令四舍五入或用TRUNC指令舍去小数部分。但其值就变成17或16了。
08-12-01 10:58
三楼的大虾 我把上面的1099268344 放在VD2000中 然后用DIR转换结果VD2004还是那样呀,没有16.8度,还是不明白请在指点下小弟,谢谢!
08-12-01 12:13
你还是要先弄清每一个位代表多少刻度,满刻度是多少,之后根据相关公式就可以求出
08-12-01 12:53
大虾在帮我看看啊 还是不懂 能帮我举个例子吗?我用了DIR 把那个数值转换了 结果还是那样啊 最多添了小数位数,数值还没有变,小弟在次感谢!
08-12-01 13:30

引用 史立广 在 2008-12-1 13:30:00 发言【内容省略】

这个数据本来就是小数格式,不需要再用DTR指令转换了。
DTR是把整数格式转换成小数格式。你这样做还是把VD2000中的数当成整数来处理了,做为整数来处理,就表示1099268344,再把1099268344转成小数,还是1099268344,当然不会变成16.8了。
把这个数据做为一个小数格式的数来看,就是在监控变量时输入VD2000后,其类型选择FLOAT,再看其值。
在程序监控中,并不会自动分辩数据的类型,一般在变量表中未定义类型的数据,都是以整数格式显示的,即使其中存的是一个小数。所以才会出现你看到的情况。
这样吧,你定义一个浮点数格式的变量,然后直接把D2000中的值赋给这个变量,再看这个浮点数变量的值是多少,肯定没错。
08-12-01 17:33

工控新闻

更多新闻资讯