- {{item.name}}
如何通过 SIMATIC S7-300/400 CPU 在 STEP7 V11 中处理 64 位浮点数?
- 0
- 419
- 1086
由于在SIMATIC S7-300/400 CPU 中不能直接处理 64 位数据类型,所以需要转换成不同类型的数据进行处理。这种转换会影响数据的精度和/或取值范围。
描述
在 SIMATIC S7-300/400 CPU 中不能直接处理 64 位数据类型,所以需要转换成不同类型的数据进行处理。这种转换会影响数据的精度和/或取值范围。这些影响一方面是由于数据长度减少了 32 位,另一方面是由于浮点数数据格式的近似表示方法造成的。
说明
在 STEP7 的在线帮助中能找到有关 64 位数据类型(LREAL)结构和取值范围的信息。
本条目中供下载的 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 类型的输出数据 |
* 状态信息的结构是位对位的。表2列出了对单独位的描述。
位号 | 描述 |
0 | LREAL 值大于 0 |
1 | LREAL 值小于 0 |
2 | 上溢:LREAL值比最大的REAL值大才能显示出来 |
3 | 下溢(非规范化的范围):LREAL值比最小的REAL值小才能显示出来。数值舍入为0。 |
4 | 转换时丢失信息 |
5 | 保留 |
6 | 报警 |
7 | 错误 |
供下载的 STEP7 程序中还包含一个监控表,可以通过这个监控表给功能块写值。
图2 监控表的引用。
下载
64_bit_conversion.zip (1,1 MB)
创建环境
这个 FAQ 中供下载的 STEP7 程序是在 TIA Portal V13 SP1 环境下创建的。
https://support.industry.siemens.com/cs/cn/zh/view/56098697
剩余80%未阅读,请登录后下载/查看文档
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错
- 如何通过 SIMATIC S7-300/400 CPU 在 STEP7 V5.5 中处理 64 位浮点数?
- 在 Windows 7 64位操作系统中,如何将 WinCC flexible 2008 SP3 项目移植到 WinCC V11 (TIA Portal) V11 SP2?
- 如何通过3G网络对 S7-300/400远程编程调试
- 如何将定时器(Timer)的剩余时间转为浮点数(Real)?
- 如何通过 PROFIBUS/MPI网络组态WinCC flexible Runtime (PC/Panel)和SIMATIC S7-300/S7-400之间通讯?
- STEP 7 Professional V11 使用SCL对S7-300/400间接寻址的变量表达式
- 如何通过STEP7(TIA Portal)或web服务器保存CPU的服务数据?
- 如何通过用户程序读出SIMATIC存储卡的序列号?
- 通过STEP7 V11软件实现 F-CPU之间安全相关的DP主站与智能从站通讯
- 在 STEP 7 V5 中通过 PROFINET 或 PROFIBUS-DP 将 SINAMICS G120 变频器连接至故障安全 S7-300/400 CPU
{{item.nickName}}