quote:以下是引用冬日在2012-06-06 10:33:55的发言:quote:以下是引用Automann在2012-06-03 11:41:24的发言:quote:以下是引用冬日在2012-06-03 11:20:11的发言:
WORD/DWORD并没有正负的概念,他只是定义了数据的长度而已。他存储的数据是什么含义取决于读取时你把它看成的数据类型---也就是你在变量表里选择显示的数据类型。
WORD/DWORD是数据类型,这事还用怀疑吗?请看FB、FC里的数据类型。冬侠还是把WORD/DWORD和MW、MD等混淆了。变量表里只有显示格式,没有数据类型。
A大侠,我没有混淆。WORD/DWORD是数据类型这事也不用怀疑!
Word和DWORD由于没办法直接进行数学计算,所以他们更多只是作为一个存储单位来告诉我们数据长度而已。很多现场仪表通信时也只是告诉我们总共有几个word,几个dword,至于其中详细的含义的根据实际情况。换句话说:
我定义了MD300为DWORD,MD304为Real,并赋值MD300为DW#16#3FA66666(如果作为浮点数这个值就是1.3)
然后把MD300送到MD304。难道这两种数据类型存储的值不一样?楼主的困惑不也在这里吗----同样的存储区域,同样的数据,作为不同的数据类型表示的值(含义)就不一样。
其实楼上冬日提到的两种数据类型存储的值不一样的问题,只能说如果用二进制、八进制、十六进制等方式来表示时是完全相同的。但是由于浮点数采用的是ANSI/IEEE 754 格式,因此,如果用十进制表示时,才会出现浮点数与其它数据类型表示的十进制不一致的现象。
但是如果使用*_TO_REAL的功能块做数据类型转换时,此时功能块内部已经做了相应的转换,因此,就不会出现楼上冬日提到的问题了。