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

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

来源:艾特贸易2017-09-19

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

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

    4条将浮点数转换为双整数的指令(见表3-13),它们将累加器1中的浮点数转换为双整数。因为转换规则不同,得到的结果也不相同,表3-14给出了不同的取整格式的例子。4条指令中用得最多的是RNDRND+RND-很少使用。

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

不同的取整格式举例

    因为浮点数的数值范围远远大于32位整数,有的浮点数不能成功地转换为32位整数。如果被转换的浮点数超出了32位整数的表示范围,得不到有效的结果,状态字中的OVOS位被置1。例2-1中的压力P(kPa)计算公式为

   P=(10000×N)/27648=0.36169×N   (3-1)

    来自AI模块的PIW320的原始数据Ⅳ为16位整数,首先用I_DI指令将整数转换为双整数(见图3-95),然后用DI_R指令转换为实数(Real),再用实数乘法指令MUL_R完成式(3-1)的运算。最后用四舍五入的ROUND指令,将运算结果转换为以kPa为单位的整数。图中的程序在随书光盘的例程“指令应用”中。

使用浮点数运算指令的压力计算程序

    3-95    使用浮点数运算指令的压力计算程序

    用仿真软件调试程序时,可将027 648分别输入PIW320,观察MD16中的计算结果是否是010000 kPa。将0~27648之间的任意数值输入PIW320,观察计算结果是否与计算器计算的相同。

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

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

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

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

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

   T    MW    0