直播课堂
HOME
直播课堂
正文内容
plc编程语言浮点数 PLC编程基础浮点数数学运算
发布时间 : 2025-05-01
作者 : 小编
访问数量 : 23
扫码分享至微信

PLC编程基础浮点数数学运算

浮点数的四则运算方式与整数的运算方式一直。在浮点数中,PLC还具有指数运算,开方运算,数据翻转等功能指令。这些丰富的功能指令在进行复杂的算法计算时,非常方便。极大地扩展了PLC的运用范围。以下就这些数学运算指令分析如下:

1、浮点数加法运算

2个浮点数加法运算的指令。

将[S1 +1,S1 ]和[S2 +1,S2 ]的浮点数数据进行加法运算,并将其运算结果以浮点数形式传送到[D +1,D ]中。

S1:保存进行加法运算的浮点数数据的字软元件编号

S2:保存进行加法运算的浮点数数据的字软元件编号

D:保存加法运算后的浮点数数据的数据寄存器编号

注意 :在[S1 +1,S1 ]和[S2 +1,S2 ]中指定了常数(K、H)时,数值会自动被转换成浮点数。

2、浮点数减法运算

2个浮点数减法运算的指令。

从[S1 +1,S1 ]中减去[S2 +1,S2 ]的2进制浮点数数据,并将其运算结果以浮点数形式传送 到[D +1,D ]中。

S1:保存执行减法运算的浮点数数据的字软元件编号

S2:保存执行减法运算的浮点数数据的字软元件编号

D:保存减法运算后的浮点数数据

注意 :在[S1 +1,S1 ]和[S2 +1,S2 ]中指定了常数(K、H)时,数值会自动被转换成浮点数。

3、浮点数乘法运算

2个浮点数乘法运算的指令。

将[S1 +1,S1 ]和[S2 +1,S2 ]的2进制浮点数数据相乘,并将其运算结果以浮点数形式传送 到[D +1,D ]中。

S1:保存执行乘法运算的浮点数数据的字软元件编号

S2:保存执行乘法运算的浮点数数据的字软元件编号

D:保存乘法运算后的浮点数数据的数据寄存器编号

注意 :在[S1 +1,S1 ]和[S2 +1,S2 ]中指定了常数(K、H)时,数值会自动被转换成浮点数。

4、浮点数除法运算

2个浮点数除法运算的指令。

将[S1 +1,S1 ]和[S2 +1,S2 ]的浮点数数据相除,并将其运算结果以浮点数形式传送 到[D +1,D ]中。

S1:保存执行除法运算的浮点数数据的字软元件编号

S2:保存执行除法运算的浮点数数据的字软元件编号

D:保存除法运算后的浮点数数据的数据寄存器编号

注意 :在[S1 +1,S1 ]和[S2 +1,S2 ]中指定了常数(K、H)时,数值会自动被转换成浮点数。

5、浮点数指数运算

是以e(2.71828)为底的指数运算指令。

以[S +1,S ]为指数做运算,将运算结果保存到[D +1,D ]中。 此外,可以在S中直接指定实数。

S:保存执行指数运算的浮点数数据的软元件起始编号

D:保存运算结果的软元件起始编号

在指数运算中,将底(e)作为“2.71828”进行运算。如下图所示:

6、浮点数自然对数运算

指令执行自然对数运算。

执行 [S +1,S ] 的自然对数 [ 以e(2.17828)为底时的对数 ] 运算,并将运算结果保存到 [ D+1,D ]中。此外,可以在S中直接指定实数。

S:保存进行自然对数运算的浮点数数据的软元件的起始编号

D:保存运算结果的软元件起始编号

7、浮点数10为底的对数运算

指令执行10为底的对数运算。

执行 [S +1,S ]的常用对数 (10为底时的对数 )运算,并将运算结果保存到[ D+1,D ]中。此 外,可以在S中直接指定实数。

S:保存进行10为底对数运算的浮点数数据的软元件的起始编号

D:保存运算结果的软元件起始编号

注意 :在S中指定的值,只可以设定正数。(负数不能运算。)

8、浮点数开方运算

浮点数开方(开根号)运算的指令。

将[S +1,S ]进行开方(开根号)运算(浮点数运算)后,将其结果传送到[D +1,D ]中。

S:保存执行开方运算的浮点数数据的软元件的起始编号

D:保存开方运算后的浮点数数据的数据寄存器编号

9、浮点数符号翻转

浮点数(实数)数据的符号翻转的指令。

[D +1,D ]的浮点数数据的符号翻转,保存在[D +1,D ]中。

D:保存要执行符号翻转的浮点数数据的软元件的起始编号

10、浮点数到整数转换

浮点数转换成整数的指令。[S +1,S ]的浮点数转换成整数后,传送到D中。

S:保存要转换成整数的浮点数数据的数据寄存器编号

D:保存转换后的整数的数据寄存器编号

(转载请注明来源函控自动化工程师头条号)

了解 PLC 编程中的浮点数

PLC 必须处理三种主要类型的数值:布尔值、整数和浮点数。这些最后的浮点数可能会给程序员和技术人员带来最大的困惑。

任何包含处理器的数字控制系统都被设计为接收输入值,使用这些值计算解决方案,然后使用这些计算向其他设备提供输出。此过程中每个步骤使用的数字必须仔细选择 - 不仅足够精确以提供正确的输出值,而且还足够小,以免消耗太多有限的可用内存空间。

数字的主要类别

数字属于三个主要的值类别:

一位二进制数 多位整数 浮点数

单位布尔值只能保存 0 或 1 值。这些布尔值非常适合传感器和开关输入以及线圈输出。

多位整数通常是 8、16 或 32 个连续位,并且只能保存整数值。使用这些数字可以存储或计算的最大值受到位数的限制。较大的数字需要更多的位数,但也会消耗更多的内存。

图 1.PLC上的模拟输入需要使用浮点数,以确保正确读取温度、压力或光线等实际值。

最后一个类别经常出现在表示现实生活中的值时,例如温度、速度或压力。这些类型的值不限于整数,因为以一定的精度了解该值通常很重要。

例如,测量压力时,了解 15.1 Mpa 和 15.8 Mpa 之间的变化可能很重要。如果我们将值限制为整数,它们都会显示为 15 Mpa,从而失去精度。

这种数据类型的名称是“浮点十进制”数字,在编程软件中通常称为“浮点数”或“实数”数据类型。

32 位浮点数的 IEEE 754 结构

通常没有必要理解与实际值和二进制浮点等效值之间转换相关的每个数学运算。与许多数字转换的情况一样,这是一个复杂的过程,如果需要可以进行研究。但这并不意味着整个概念应该被忽略。

在本文中,这些数字将被称为浮点数。但是,如果您是 RSLogix 用户或该术语的任何其他适当的标题,您可以在心里将其转换为真实的。

PLC 中的浮点数由 32 位组成。在许多现代计算机处理器中,可以使用 64 位,但对于几乎所有 PLC,32 位是标准。这意味着就内存容量而言,浮点数不会比 32 位整数(例如 double 或 DINT)消耗更多空间。有时,两个 32 位数字可以组合起来形成一个 64 位浮点值。

浮点数的组成部分

浮点数由三个部分组成,每个部分使用 32 位的一部分。

符号位

第一位是符号位,用于标识它是正值还是负值。温度很容易为负值,如果真空表示为表压值,压力也可能为负值。速度可以是正/负,也可以使用 CW/CCW 或类似术语来区分。第一位标识正或负。

下表显示了 32 位浮点数的示例细分。此示例显示了可能的最小正值,指数为 1,尾数为 0。

表 1. 32 位浮点数的示例细分

符号位

指数

尾数

0

00000001

00000000000000000000000

正指数和负指数

浮点数的第二部分是使用 8 位的指数。数字的这一部分负责小数点的实际位置,因为这会对数字的大小产生巨大的差异。考虑数字 375 - 没有小数位,它是一个整数,一个整数,一个整数。如果我们把小数点放在开头,它是 0.375,但换个位置,它可能是 37.5——小数点的位置非常重要。

指数可以是正数或负数。正指数表示数字大于 1。负指数表示小于 1。在 32 位浮点数中,八个指数位给出的值范围是 0 到 255。但是,正值和负值都必须是可能的,因此指数实际上计算如下:

2^(指数 - 127)

0 和 255 的极端指数值保留给 0 和无穷大,因此对于数字转换,我们可以使用 1 到 254。

尾数

使用剩余 23 位的浮点数的最后也是最大的部分实际上显示了该值中包含的数字。这在技术上称为“尾数”,由任何浮点数中小数点后面的数字组成。当所有位都为 0 时,或者当所有位都为 1 时,通过使用二进制逆来找到尾数的极限范围,如下所示:

2 - 2^(0)

2 - 2^(-23)

PLC 数据类型表中浮点数的总范围是通过尾数乘以指数得出的。两者中的最小者找到最小的浮点值。两者中最大的找到最大的浮点值。

2 - 2^0 x 2^(1-127) = 1.1754944*10^-38

2 - 2^(-23) x 2^(256-127) = 3.4028235*10^38

浮点数的限制

与整数值相比,浮点数的主要谨慎考虑可能是计算解决方案的额外时间。在一个具体示例中,根据 Rockwell Automation 针对 ControlLogix 处理器的文档,执行 REAL 数据类型的 ADD 计算所需的时间比执行 DINT 相同 ADD 的时间长约 6.5 倍。

图 2.数据表摘录,在罗克韦尔自动化的 ControlLogix 或 CompactLogix 处理器上使用 32 位 DINT 与 32 位 REAL 数据类型的 ADD 指令时间。

有时,浮点数是必要的,但是处理指令的额外时间应该强烈提醒我们在合理的情况下考虑使用整数。

某些情况下的另一个潜在问题是无法真正处理绝对精确的值。对于整数,例如数数,您可以数 100 个项目,但最终永远不会数到 100.5 个项目。因此,它很容易显示为 100,没有理由显示 100.0000000 个项目。

然而,对于需要非常大精度的值(这意味着尾数非常大),该值可能会被舍入。对于许多系统来说,这可能不是问题,但当系统必须定期测量大模拟值时,舍入误差可能会导致问题。

相关问答

plc浮点数用法?

PLC浮点数用法是指在PLC编程中使用浮点数数据类型的方法。浮点数是一种用于表示带有小数部分的数值的数据类型。在PLC编程中,浮点数通常用于处理需要精确计算...

为什么PLC要运用到浮点数运算-POPPIN_CHAXILY的回答-懂得

难道你要自己编写浮点数的计算方法?浮点数有小数,而且表示范围也很大(比整数大)。整数没法满足的时候就需要用浮点数。如果PLC总是用16进制(二进制...

plc中浮点是什么意思?

在PLC(可编程逻辑控制器)中,浮点数是一种数据类型,用于存储实数(即带有小数点的数字)。浮点数通常用于需要高精度计算的应用程序中,例如控制系统中的PID控...

plc怎么显示浮点数?

需要自己编程,比如数值A是一个计算过得浮点数有很多的小数,而且你只要保留小数点的后一位,那么A*10.0=B,B执行一次TRUNC指令保留小数点之前的数,这个时候的B...

三菱PLC里的浮点运算,浮点是什么意思?-懂得

浮点运算就是小数点的运算。所谓浮点就是计算机里面一般的运算有两种数,在计算机里面这数怎么表示,2进制数就是一个表示,比如一个16位的2进制数,你...

plc浮点数运算实例?

PLC(可编程逻辑控制器)通常支持浮点数运算,下面是一个简单的PLC浮点数运算实例:假设有两个浮点数变量A和B,需要将它们相加并将结果存储到另一个浮...PLC(可...

三菱plc怎么把浮点数传到脉冲?

你好,要将浮点数传输到脉冲,您需要使用以下步骤:1.选择一个可编程逻辑控制器(PLC)。三菱PLC通常使用GXWorks编程软件。2.编写程序来读取浮点数并将其转...

三菱PLC中经常使用FLT把BIN整数转化为2进制浮点数,有什么用呢?BIN是什么意思?浮点有是什么意思?

浮点数运算是用来进行带有小数部分的实数之间的运算,BIN是二进制,计算机语言浮点数运算精度相对整数而言精确度更高,在一些高精度场合是必须的浮点数运算是...

plc浮点数能跟浮点数相加吗?

可以,+-*\都可以。可以,+-*\都可以。

有谁能帮我介绍下,我对西门子PLC的实数,整数,双整数,浮点数,字符串有写不明?

实数,就是浮点数可以理解为带小数点的数据如1.5100.5整数,顾名思义就是没有小数点范围0-65535的双整数,同上范围0-4294967295浮点数,...实数,就...

 小北门  魔术团 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部