如何通过 SIMATIC S7-300/400 CPU 在 STEP7 V5.5 中处理 64 位浮点数?

描述
在 SIMATIC S7-300/400 CPU 中不能直接处理 64 位数据类型的数据,为了数据使用需要将它转换成不同类型的数据。这种转换会导致数据的精度降低和/或取值范围有局限。这些影响一方面是由于数据长度减少了 32 位,另一方面是由于浮点数数据格式的近似表示方法。

本条目中供下载的 STEP 7 程序中包含四个功能块。这些功能块用于将 64 位浮点数(符合 IEEE754 标准)转换为如下数据类型。

  • DINT ( 32 位整数 )整数 (FC2)
  • REAL ( 32 位浮点数)实数 (FC3)

以及将如下数据类型转换为 64 位浮点数。

  • DINT ( 32 位整数 )整数 (FC1)
  • REAL ( 32 位浮点数 )实数 (FC4)

如何通过 SIMATIC S7-300/400 CPU 在 STEP7 V5.5 中处理 64 位浮点数?
图 1STEP7 程序的结构

下表列出了功能块的接口参数

名称 类型

描述

DINT2LREAL (FC1)
IN 输入 DINT 数据类型的输入值
OUT 输出 LREAL 数据类型的输出值
LREAL2DINT (FC2)
IN 输入 LREAL数据类型的输入值
Ret_Val 返回 DINT 数据类型的输出值
STATUS 输出 输出状态值*
LREAL2REAL (FC3)
IN 输入 LREAL 数据类型的输入值
Ret_Val 返回 REAL 数据类型的输出值
STATUS 输出 输出状态值*
REAL2LREAL (FC4)
IN 输入 REAL 数据类型的输入值
OUT 输出 LREAL 数据类型的输出值

表1
* 状态信息是按位的形式给出的。

表 2列出了各状态位描述

位号 描述
0 LREAL 的值比0大
1 LREAL 的值比0小
2

上溢: LREAL的数值大于最大的能显示的实数值

3 下溢(非规范化的范围): LREAL 的值小于最小的能显示的实数值。数值近似为0.
4 转换时丢失信息
5 保留
6 警告
7

错误

表2

供下载的 STEP7 程序中还包含一个变量表,可以通过这个变量表给功能块赋值。

如何通过 SIMATIC S7-300/400 CPU 在 STEP7 V5.5 中处理 64 位浮点数?
图 2 变量表的摘录

下载
如何通过 SIMATIC S7-300/400 CPU 在 STEP7 V5.5 中处理 64 位浮点数?Registrierung notwendig 64_bit_convertion.zip (282,2 KB)

创建环境
这个 FAQ 中供下载的 STEP7 程序是在 SIMATIC STEP7 V5.5 + SP3 环境下创建的。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc323565.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论