西门子PLC实数和长整数间的转换

指 令

说       明

RND

将实数化整为最接近的整数。

RND+

将实数化整为大于或等于该实数的最小整数

RND-

将实数化整为小于或等于该实数的最大整数

TRUNC

取实数的整数部分(截尾取整)

因为实数的数值范围远大于32位整数,所以有的实数不能成功地转换为32位整数。如果被转换的实数格式非法或超出了32位整数的表示范围,则在累加器1中得不到有效结果,而且状态字中的OV和OS被置1。
上面的指令都是将累加器1中的实数化整为32位整数,因化整的规则不同,所以在累加器1中得到的结果也不一致,如下表

执行的

指令

累加器l内容

说    明

化整前

化整结果

RND

+99.5

+100

将实数化整为最接近的整数

RND+

+99.5

+100

将实数化整为大于或等于该实数的最小整数

RND-

+99.5

+99

将实数化整为小于或等于该实数的最大整数

TRUNC

+99.5

+99

只取实数的整数部分(截尾取整)

,

指 令

说       明

RND

将实数化整为最接近的整数。

RND+

将实数化整为大于或等于该实数的最小整数

RND-

将实数化整为小于或等于该实数的最大整数

TRUNC

取实数的整数部分(截尾取整)

因为实数的数值范围远大于32位整数,所以有的实数不能成功地转换为32位整数。如果被转换的实数格式非法或超出了32位整数的表示范围,则在累加器1中得不到有效结果,而且状态字中的OV和OS被置1。
上面的指令都是将累加器1中的实数化整为32位整数,因化整的规则不同,所以在累加器1中得到的结果也不一致,如下表

执行的

指令

累加器l内容

说    明

化整前

化整结果

RND

+99.5

+100

将实数化整为最接近的整数

RND+

+99.5

+100

将实数化整为大于或等于该实数的最小整数

RND-

+99.5

+99

将实数化整为小于或等于该实数的最大整数

TRUNC

+99.5

+99

只取实数的整数部分(截尾取整)

西门子PLC实数和长整数间的转换

相关文章:

你感兴趣的文章:

标签云: