分享免费的编程资源和教程

网站首页 > 技术教程 正文

在调用NORM_X和SCALE_X指令过程中由于参数输入错误发现的问题

goqiw 2024-10-26 11:03:48 技术教程 25 ℃ 0 评论

小伙伴都应该知道在STEP7中我们用FC105和FC106来进行模拟量转化,在博途中我们一般用NORM_X和SCALE_X指令。功能基本是一样的。我以前文章中有专门的讲解。(链接:博途如何使用SCALE_X和NORM_X来转化模拟量值

今天跟大家聊聊的是在编程中输入MAX参数错误造成输出值错误的例子。

如上图所示:在编程中由于失误在MAX值也输入了0,发现输出的值异常。最开始的时候没有发现(惯性思维了,认为不能犯这种错误)。发现后也只能莞尔一笑了。

这里就要说的就是我们对于指令要仔细看手册,研究指令的使用细节。针对这里这个问题其实可以从指令的计算公式中知道,下面跟大家讲讲

NORM_X计算公式:

标准化”指令将按以下公式进行计算:

OUT = (VALUE – MIN) / (MAX – MIN)

如果满足下列条件之一,则使能输出 ENO 的信号状态为“0”:

1.使能输入 EN 的信号状态为“0”。

2.输入 MIN 的值大于或等于输入 MAX 的值。

3.根据 IEEE-754 标准,指定的浮点数的值超出了标准的数范围。

4.输入 VALUE 的值为 NaN(无效算术运算的结果)。

从公式中可以知道本例中的除数是0,所以NORM_X应该计算出错。

SCALE_X计算公式:

OUT = [VALUE ? (MAX – MIN)] + MIN

从上面公式应该可以知道SCALE_X的值应该为0。

发现这个错误后就将MAX输入正确后,一切都正常了。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表