以下是引用cww2008在2020/12/9 16:05:49的发言:
这个是大连海峰的热表,第一张图,我读他的累积热量和累积流量转换之后变成了NAN,我从状态表里查,数据类型选择浮点数显示NAN,无符号和有符号显示正常值,但是我以前都是这么来编程的,这次为什么会显示NAN了?希望前辈解释一下。
以你图中浮点数2.440068E-007为例:
其16进制表示为34 83 00 0A
转换为二进制为:0011 0100 1000 0011 0000 0000 0000 1010,
通过程序中高低字进行转换,其翻转后的结果为 0000 0000 0000 1010 0011 0100 1000 0011,转换为16进制为00 0A 34 83
通过将其转换为浮点数,其结果如下:
而西门子S7-200支持的浮点数范围如下:
显然,转换后的数值已经超过了你的PLC能支持的浮点数的值域,因此现时NAN,即表示数据出错。
最后,你目前的错误是基于你长久以来对于数据范围的不限定,也就是说,你的转换程序存在较大的BUG。
Good Luck~