描述
测量设备 7KM PAC3200和 7KM PAC4200 传送的是 64 位实数(浮点)数据类型的功率测量值。由于 SIMATIC S7-300 和 S7-400 控制器产品家族是基于 32 位的技术,所以这个值不能被直接处理。
如果转换成支持的数据类型会导致该设备计数值的信息丢失。
为了使用 64 位的功率计数值,请下载本条目中 SIMATIC STEP7 V5.5 SP2 库文件。
说明
附件中的库文件中的程序块,能将 64 位浮点计数值分成两个计数单元。
将程序块拷贝到项目中,并确保使用未被占用的 FB 块号。
为了能正确地传递块参数,将 64 位实数数据的高 DWORD赋值给输入参数 "id_hdword" 并且将低 DWORD 赋值给输入参数 "id_ldword"。
图. 01:将 64 位实数拆分为高 DWORD 和低 DWORD
那么在输出接口就可以得到这两个计数值:
- "FINE" 输出信号是精确的计数值,取值范围为 0到 109 Wh。
- "RAW" 输出信号是粗略的计数值,取值范围为 0到 109 Wh。
达到最大值后两个计数值会回到起始值重新计数。
由于 FB64 的计数值会多次的大于最大计数值,可以忽略 SENTRON PAC 计数值的翻转。
下载
下载包含 "64Bit_Converting" 的库文件。
拷贝 "64Bit_Converting.zip" 文件到单独的目录下,双击打开文件。然后可以使用 STEP 7 打开和处理这个库文件。
64Bit_Converting.zip ( 26 KB )
注意
块只能使用的LREAL的最大值为1012 。
背景信息
信息丢失的原因是因为 64 位实数数据和 32 位实数数据类型结构的不同。
64 位实数数据:
- 1 位符号位
- 11 位指数区域
- 52 位尾数
- 值范围:± 2.2 x 10-308 .. 1.8 x 10308
图. 02:64 位实数数据结构
32 位实数数据:
- 1 位符号位
- 8 位指数区域
- 23 位尾数
-值范围:± 1,17 * 10-38 .. 3,4 * 1038
图. 03:32 位实数数据结构
指数区域指定了向左有多少位有效。而且,指数有一个指定的偏移值。对于 32 位实数数据类型是 127,对于 64 位实数类型是 1023。为了从这个表达式中获得一个数值,尾数的前边加 1。
例如:32 位实数数据有 23 位有效
图. 04:例子
1111 1111 1111 1111 1111 1111 - 16.777.215 Wh
1 0000 0000 0000 0000 0000 0000 - 16.777.216 Wh
1 0000 0000 0000 0000 0000 0001 - 16.777.216 Wh
(1 Wh 丢失,实际值 16.777.217 Wh)
1 0000 0000 0000 0000 0000 0010 - 16.777.218 Wh
1 0000 0000 0000 0000 0000 0011 - 16.777.218 Wh
(1 Wh 丢失,实际值 16.777.219 Wh)
1 0000 0000 0000 0000 0000 0100 - 16.777.220 Wh
实数需要有一个尾数大于23位,所有超出尾数的位数的值清 0,这是很重要的计数值信息丢失的原因。计数值越大,丢失的 Wh值越大。
11 0000 0000 0000 0000 0000 0000 - 50.331.648 Wh
11 0000 0000 0000 0000 0000 0011 - 50.331.648 Wh
(3 Wh 丢失,实际值 50.331.651 Wh)
安全注意事项
警告
本文中描述的功能和解决方案仅限于自动化功能的实现。此外,当连接设备到工厂,企业网或者因特网时,请考虑相关的工业安全方面的保护 措施。更多信息参考:50203404。
关键字
Sentron,powerrate,数据类型,转换,功率计数,长实数,64 位
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc322646.html