您现在的位置是:首页 > PLC技术 > PLC技术

S7 300/400双整数与浮点数之间的转换

来源:艾特贸易2017-06-05

简介(1) 双整数转换为浮点数 DTR 指令将累加器 1 中的 32 位双整数转换为 32 位 IEEE 浮点数(实数),结果仍在累加器 1 。因为 32 位双整数的精度比浮点数的高,指令将转换结果四舍五入。

    (1)双整数转换为浮点数

   DTR指令将累加器1中的32位双整数转换为32IEEE浮点数(实数),结果仍在累加器1。因为32位双整数的精度比浮点数的高,指令将转换结果四舍五入。

   (2)浮点数转换为双整数

    浮点数转换为双整数有4条指令,它们将累加器1中的浮点数转换为32位整数。因为转换规则不同,得到的结果也不相同,表3-9给出了不同的取整格式的例子。

    3-9    不同的取整格式举例

指令

取整前

取整后

    说 

RND

+ 100. 6

- 100. 6

+ 101

- 101

  将浮点数转换为四舍五入

的双整数

RND+

+ 100. 2

- 100. 6

+ 101

- 100

  将浮点数转换为大于等于

它的最小双整数

RND -

+100. 6

- 100. 2

+ 100

 

- 101

  将浮点数转换为小于等于

它的最大双整数

TRUNC

+ 100. 7

- 100. 7

+ 100

- 100

  将浮点数转换为截位取整

的双整数

    因为浮点数的数值范围远远大于32位整数,有的浮点数不能成功地转换为32位整数。如果被转换的浮点数超出了32位整数的表示范围,得不到有效的结果,此时状态字中的OVOS位被置1

    【例子】将101in(英寸)转换为以cm(厘米)为单位的整数,保存到MW0

   L    101.0    //将浮点数101.0装入累加器1

   L    2. 54    //将浮点数2.54装入累加器1,累加器1的内容装入累加器2

   *R    //101.0乘以2.54,得256. 54cm

   RND    //四舍五入转换为整数257

   T    MW  0