模拟量在工业现场使用的非常普遍,常见的模拟量信号有±10V、±5V、0~20mA、4~20mA等等。当模拟量传感器连接到模拟量输入模块后,CPU必须将采集到的信号进行转换才能正确的处理,这也就是常说的模数转换。
不过,模数转换后的数值并不具有明显的工程意义。比如,经过模数转换后,得到模拟量的信号值为15680。这个值并不具有工程意义,必须将其转换成工程量值(比如温度、压力等)才有实际意义。今篇这篇文章,我们就来谈谈怎样将模拟量的信号值转换成工程量值。
![2f8031d68ea1d8729192a18254b81661.png](https://i-blog.csdnimg.cn/blog_migrate/aafacba5e0280296a428bb23c65b3b91.jpeg)
很多PLC都集成了模拟量信号值与工程量值的转换指令/函数,比如S7-1200 系列PLC,可以使用指令SCALE_X和NORMAL_X来完成转换。
![b0c5c34c5488ed2ac04ee6fcc98145c8.png](https://i-blog.csdnimg.cn/blog_migrate/e0b23f43a1f8ca741a364b1b842480fd.jpeg)
![89d3531e6ec6df405c2dbdcfff86a8b1.png](https://i-blog.csdnimg.cn/blog_migrate/b042aa26d1af424e55a0714fcee33c8e.jpeg)
具体可以去网站(https://www.founderchip.com)看看这篇文章:如何对模拟量模块SM1232进行组态和编程?
其实,模拟量信号值和对应的工程量值之间成正比关系,有一个通用的转换公式。
接下来我们介绍下这个转换公式。有了这个公式,也可以自己编程来实现转换函数。
在介绍公式之前,先做如下定义:
Ish:模拟量信号转换后的最大值(上限,Input scale value high);
Isl:模拟量信号转换后的最小值(下限,Input scale value low);
Osh:工程值的最大值(上限,Output scale value hight);
Osl:工程值的最小值(下限,Output scale value low);
Iv:输入的模拟量信号值(Input value);
Ov:输出的工程值(Output Value);
以模拟量转换后的信号值为横坐标,以与之对应的工程量值为纵坐标,在二维坐标系中画出一条直线。上述各值在坐标系中的分布如下图:
![b50db3cccb97a7ac856a1e1b13e6d7b9.png](https://i-blog.csdnimg.cn/blog_migrate/f00a333c67b24b12c34680a34daa8263.jpeg)
根据正比关系,有如下方程:
(Osh-Osl)/(Ish-Isl)=(Ov-Osl)/(Iv-Isl)
解方程得出:
Ov=[(Osh-Osl)*(Iv-Isl)/(Ish-Isl)]+Osl
这个就是模拟量信号值转换成工程量值的公式,感兴趣的小伙伴可以根据这个公式编写出自己的转换函数。
好了,关于模拟量信号值与工程量值的转换就介绍到这里。如果你喜欢这篇文章,可以去官网(www.founderchip.com)下载本文PDF版本。