PLC程序中单精度浮点数与十进制之间的转换

在

对于 S7-200 PLC,数据转换主要涉及显示格式和数制问题。

显示格式

S7-200 PLC 存储的数据都是二进制位序列。这些位序列可以表示不同的数据类型,如浮点数、整数和字符的 ASCII 码。

例如,10 这个数字可以存储为:

  • BCD 码:00010000 (等同于十六进制 10)
  • 二进制:00001010 (等同于十六进制 0A)

如果计算机没有声明以 BCD 码存储数据,则会将其视为二进制数。

数制问题

S7-200 PLC 以字为单位传递数据。数据可以是无符号数或有符号数。

例如,1680 赋值给一个无符号变量时,变量的值为 +128。而赋值给一个有符号变量时,变量的值为 -128。

Modbus RTU 通信

当使用 S7-200 PLC 通过 Modbus RTU 通信时,通常以字为单位传递数据。地址范围为 4xxxx。

在 STEP 7 MicroWin 中,可以设置数据显示为十进制格式。

程序中的数据转换

在 PLC 程序中进行数据转换时,无需关注数制问题。而是应该关注赋值给哪种类型变量(整数还是实数)。

对于有小数部分流量计,通信时通常将实际流量除以某个单位流量得到整数后存储和传输。例如,2.56 L/min 可能存储为 321 (十六进制 0100),默认单位为 0.01 L/min。

在这种情况下,需要使用 DI_R 指令将数据转换为实数,然后使用 DIV_R 指令除以 100.0 才能得到真正的流量大小。

结论

S7-200 PLC 的数据转换主要涉及显示格式和数制问题。在程序中进行数据转换时,无需关注数制问题,而是应该关注赋值给哪种类型变量。

PLC程序中单精度浮点数与十进制之间的转换
数据类型转换示例
数据类型 赋值 十进制值
无符号整数 1680 +128
有符号整数 1680 -128
实数 DI_R(321) / DIV_R(100.0) 2.56

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论