lujianfeng2001 发表于 2013-11-8 17:13:20

S7-200怎么处理双精度浮点型数据????

在和仪表modbus通信时,有的数据是Double类型的(比如累积流量),卡到这里不知道该怎么弄了,不知道有没有大侠弄过~~~~~~~

wye11083 发表于 2013-11-8 19:32:40

自己计算,查IEEE754数据格式,1位符号,48位尾数(好象),还有16位移码阶数的样子。要不然直接转换。

jrdxf 发表于 2013-11-15 11:20:37

刚好我搞过,在我的QQ日志中有详细记录,包括说明。读的是该死的科隆流量计。给你一个S7-300的例子,200也是一样的处理。
IN
IN            Array Of DWord
OUT
STATUS      Byte
TEMP
StatusB      Byte
Sign         Bool
Exponent   Int
Mantissa   DInt
RETURN
RET_VALReal


NETWORK1               //初始化状态位
L   B#16#0
T   #StatusB
NETWORK2                //取符号位
L   #IN
SRD   31
L   1
==D
=   #Sign
A   #Sign
JC    STSN
L   B#16#1
JU    GEXP
STSN: L   B#16#2
GEXP: T   #StatusB
L   #IN
L   DW#16#38000000
==D
JCN   STS0
L   B#16#0
T   #StatusB
STS0: NOP   0
NETWORK3:             //开始转换指数部分
L   #IN
SRD   20
AD    DW#16#7FF
+   -896
T   #Exponent
NETWORK4:            //转换尾数部分
L   #IN
SLD   12
L   #IN
SRD   20
OD
T   #Mantissa
NETWORK5:             //处理符号
L   #IN
AD    DW#16#FFFFF
L   #StatusB
JZ    NSIG
OW    W#16#10
NSIG: T   #StatusB
NETWORK6:                // 重组成单精度浮点数
L   #Exponent
SLD   23
L   #Mantissa
OD
A   #Sign
JCN   POS
OD    DW#16#80000000
POS:T   #RET_VAL
L   #StatusB
T   #STATUS

lujianfeng2001 发表于 2013-11-20 18:24:02

jrdxf 发表于 2013-11-15 11:20 static/image/common/back.gif
刚好我搞过,在我的QQ日志中有详细记录,包括说明。读的是该死的科隆流量计。给你一个S7-300的例子,200也 ...

谢谢~~~我看看~~~

aihe 发表于 2013-11-23 23:50:55

斩首去尾
页: [1]
查看完整版本: S7-200怎么处理双精度浮点型数据????