• {{item.name}}
{{item.name}}
{{item2.name}}
更多
常问问题

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

star star star star star
5.0 分
  • 软件编程
  • SIMOTION 软件
文档编号:56600676| 文档类型:常问问题| 发布时间:2023年11月02日
  • 0
  • 171
  • 2013
内容预览: 描述: 在 SIMATIC S7-300/400 CPU 中不能直接处理 64 位数据类型的数据,所以需要将它转换成不同类型的数据进行处理。这种转换会在数据的精度和/或取值范围方面带来影响。这些影响一方面是由于数据长度减少了 32 位,另一方面是由于浮点数数据格式的近似表示方法。 ......

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

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

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

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

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


图 1  STEP7 程序的结构

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

名称类型描述
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列出了各状态位描述

位号描述
0LREAL 的值比0大
1LREAL 的值比0小
2上溢: LREAL的数值大于最大的能显示的实数值
3下溢(非规范化的范围): LREAL 的值小于最小的能显示的实数值。数值近似为0.
4转换时丢失信息
5保留
6警告
7错误

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


图 2 变量表的摘录

下载

  64_bit_convertion.zip (282,2 KB)

创建环境

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


您可以前往全球资源库查看此文档:

https://support.industry.siemens.com/cs/cn/zh/view/56600676


剩余80%未阅读,请登录后下载/查看文档

  • 评论
更多
  • 分享

    扫码分享

提示
您即将前往“全球技术资源库”。
“全球技术资源库”的用户名与本地支持中心(下载中心、技术论坛、找答案、1847工业学习平台)的用户名不通用。如果需要在全球技术资源库下载文档,您需要重新登录或注册。
确定

扫码进入移动端

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。