当前位置: 主页 > PLC控制

scl 中 DW TO REAL 与 DW TO DINT 再 DINT TO REAL 数据为什么不一样?

scl中DWTOReal与DWTODint再DINTTOREAL数据为什么不一样?

最佳答案

BIT,BYTE,WORD,DOUBLEWORD是位组合类型数据。
REAL,INT,DINT是数字型数据。
DINT是有符号32位数,DWORD是无符号32位数。一个双子内存中如果值16#FFFFFFFF

DINT_TO_REAL,首先DINT类型所占的4个字节类容如果为FFFFFFFF,那么它就是代表DINT类型的值为-1.执行DINT_TO_REAL后,值就变为REAL类型的-1.0.
首先,在

DWORD_TO_DINT仅仅拷贝数据,不改变任何位类存,DINT所占的内存中的4个字节值任然为16#FFFFFFFF即DINT类型值为-1

DWORD_TO_REAL仅仅拷贝数据,不改变任何位类存,REAL类型所占的4个字节类容仍然为16#FFFFFFFF具体是代表REAL类型的什么数字,需要你自己根据IEEE75432位浮点数的表示方法来解析(符号+阶码+尾数).根据这个规则算出来的REAL类型值


也就是在位数据类型和数字型据类型之间转换时,PLC仅仅是拷贝位内存。只有在数字型数据类型之间转换时,PLC才会根据IEEE标准对内存中的位进行改变。

提问者对于答案的评价:
谢谢你的指导。

  • 关注微信

猜你喜欢

微信公众号