在PLC编程中,只要涉及到数据采集和输出,都会遇到模拟量的线性变换。在西门子300PLC编程中,系统自带的两个线性变换功能块FC105和FC106是最常用的两个数据转换模块。但是在博图中,模拟量的线性转换跟300PLC有一定的差异,本文详细介绍1200,1500中模拟量的线性转换问题。

1. 线性变换原理

1ab2ecbd988e3d79ac391c75de9f42e6.png

线性变换原理公式

线性变换的原理很简单,比如说,在工程测量中,常会遇到4-20mA的传感器,如压力传感器或位移传感器等,要转换为0-50MPa的物理量。用高中学过的直线方程两点式就可以了。已知两点(4,20)和(20,50),求(x,y)。

2. 线性变换用到的指令模块

(1).标准化(NORM_X)指令:

可以使用“标准化”指令,通过将输入 VALUE 中变量的值映射到线性标尺对其进行标准化。可以使用参数 MIN 和 MAX 定义(应用于该标尺的)值范围的限值。输出 OUT 中的结果经过计算并存储为浮点数,这取决于要标准化的值在该值范围中的位置。如果要标准化的值等于输入 MIN 中的值,则输出 OUT 将返回值“0.0”。如果要标准化的值等于输入 MAX 的值,则输出 OUT 需返回值“1.0”。

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

上面是PLC帮助文档的官方解释:很拗口,理解不了不用去管他。下面直接看应用就会好。

11b889e73838098811b4b57d9ebe5258.png

标准化(NORM_X)指令

89a92cd73c35704b6af9b1a701e07021.png

标准化(NORM_X)指令映射关系

9130902fbb9d4e16626c8045331b279b.png

标准化(NORM_X)指令参数

注意这个数据类型就可以了。

(2)SCALE_X:缩放

“缩放”指令,通过将输入 VALUE 的值映射到指定的值范围来对其进行缩放。 当执行“缩放”指令时,输入 VALUE 的浮点值会缩放到由参数 MIN 和 MAX 定义的值范围。 缩放结果为整数,存储在 OUT 输出中。

同样的,不用去刻意理解这个意思。后面看举例应用就可以了。

7b21475e7b2317bf42ba91ac689a2d92.png

SCALE_X:缩放指令

58ac9625031fd15f257914aace7d537f.png

缩放指令映射

6bf19debf861b9b590f2792ec009cf6a.png

缩放指令参数

同样的,注意这个数据类型就可以了。

3. 线性变换指令块的应用举例

线性变换的原理很简单,比如说,在工程测量中,常会遇到4-20mA的传感器,如压力传感器或位移传感器等,要转换为0-50MPa的物理量。用高中学过的直线方程两点式就可以了。已知两点(4,20)和(20,50),求(x,y)。

先熟悉模拟量采集的对应关系,如图,4-20mA对应0-27648

7c41291eb551ba3c278a8de1307f6f68.png

PLC电压测量值对应关系

b4b4ba5b1e6a897a6e009264be9da5d3.png

PLC电流测量值对应关系

ffe8b84f122527e68b5d5b75071fa585.png

4-20mA转换为0-50MPa程序

如图所示:经过两步就可以把,采集到的模拟量4-20mA,转换为0-50MPa。

如果是-10V-10V对应0-50MPa,只需要把min赋值为-27648(查表)即可。

4. 理解

上述两步,其实就是把线性关系

两点式分两步完成了。

理解起来可能有点拗口,应用起来知道怎么处理就行。

第一步:看是单极性,还是双极性,单极性对应0-27648,双极性(-10V到10V)对应-27648—27648,

第二步:调用模块。

第三步:分别给两个模块的MIN,MAX,VALUW赋值即可。注意其数据类型,一般的%IW0为INT,转换后位REAL。

下一篇小文准备写模拟量的输出线性变换。这个需要两个模块来转换得到物理量,再下一篇小文介绍两点式线性变换程序的编写,用一个模块就可以搞定。

谢谢观看。

527366c3b76e7a54d2f9b36418431ffc.png
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐