基于西门子1200PLC模拟量测温案例2

 

03
模拟量与数字量的转换

在实际的工程项目中,读者往往采集温度、压力、流量等信号,那么在程序中如何处理这些模拟量信号呢?换句话说编写模拟量程序的目的是什么呢?编写模拟量程序的目的是将模拟量转换成对应的数字量,最终将数字量转换成工程量(物理量)。

模拟量转换为工程量分为单极性和双极性两种。双极性的-27648对应工程量的最小值,27648对应工程量的最大值。

单极性模拟量分为两种,即4-20mA0-10V0-20mA

1)第一种为4-20mA,是带有偏移量的。

因为4mA为总量的20%,而20mA转换为数字量为27648,所以4mA对应的数字量为5530。模拟量转换为数字量是S7-1200PLC完成的,读者要在程序中将这些数值转换为工程量。

2)第二种是没有偏移量的

没有偏移量的是如0-10V0-20mA等模拟量,27648对应最大工程量,0对应工程量的最小值。

3)模拟量信号(0-10V0-5V0-20mAS7-1200PLC CPU内部用0-27648的数值表示(4-20mA对应5530-27648),这两者之间有一定的数学关系,如图3-5-5

3-5-5 模拟量信号与数字量曲线

04
标准化指令和缩放指令

(1)标准化指令(NORM_X)

NORM_X指令:使用“NORM_X”指令,可将输入VALUE中变量的值映射到线性标尺对其标准化。使用参数MIN和MAX定义输入VALUE值范围的限值:

LAD

参数

数据类型

说明

EN

BOOL

允许输入

ENO

BOOL

允许输出

MIN

整数、浮点数

取值范围的下限

VALUE

整数、浮点数

要标准化的值

MAX

整数、浮点数

取值范围的上限

OUT

浮点数

标准化结果

注意:可以从指令框“<???>”下拉列表中选择该指令的数据类型。

标准化指令的计算公式是:OUT= (VALUE - MIN) / (MAX - MIN),其中 (0.0 <= OUT <= 1.0),计算原理如图3-5-6

图3-5-6 标准化指令公式对应计算原理图

用一个例子来说明标准化指令(NORM_X)的使用,梯形图如图3-5-7所示:

当I0.0闭合激活标准化指令,要标准化的VALUE存储在MW10中,VALUE的范围是0-27648,将VALUE标准化的输出范围是0.0-1.0。假设MW10中是13824,那么MD12中的标准化的结果是0.5。

图3-5-7 标准化指令示例

(2)缩放指令(SCALE_X)

SCALE_X指令:使用“SCALE_X”指令,可将输入VALUE的值映射到指定的值范围来对其缩放。当执行缩放指令时,输入VALUE的浮点值会缩放到有参数MIN和MAX定义的值范围。缩放结果为整数,存储在OUT输出中。缩放指令参数见下表:

LAD

参数

数据类型

说明

EN

BOOL

允许输入

ENO

BOOL

允许输出

MIN

整数、浮点数

取值范围的下限

VALUE

整数、浮点数

要标准化的值

MAX

整数、浮点数

取值范围的上限

OUT

浮点数

标准化结果

注意:可以从指令框“<???>”下拉列表中选择该指令的数据类型。

缩放指令的计算公式是:OUT= VALUE (MAX - MIN) + MIN,其中 (0.0 <= VALUE <= 1.0),计算原理如图3-5-8;

用一个例子来说明标准化指令(NORM_X)的使用,梯形图如图3-5-8所示,当I0.0闭合激活标准化指令,要标准化的VALUE存储在MD16中,VALUE的范围是0-27648,将VALUE标准化的输出范围是0-27648。假设MD10中是0.5,那么MW20中的标准化的结果是13824。

图3-5-8 缩放指令示例
四、任务实施

本任务的实施步骤主要分为PLC接线、IO地址分配以及程序设计思路:

01
IO地址分配

输入地址

说明

温度显示地址

说明

IW64

模拟量输入

MD24

温度显示

02
程序设计思路

1)使用标准化指令,把采集过来的模拟量值进行标准化,标准化后的范围值在0.0-1.0之间。

2)再使用缩放指令,把标准化后的数值进行缩放,缩放后的范围值在温度传感器量程(-50.0-200.0℃)范围之间。

03
程序设计


五、经验与总结

1、模拟量的换算,主要是要理解模拟量与数字量之间的关系。

2、在本任务中,主要使用的是标准化和缩放指令进行模拟量采集换算,换算的时候要注意数字量及工程量数值的填写,以免换算错误。

3、在上述例子中,温度传感器的量程为-50℃-200℃,所以在缩放指令中需要正确填写数值。

4、如果现场有多个温度传感器,可以使用带参数子程序的方式编写更加方便。

5、如果现场的传感器是4-20mA电流输出的,那么在标准化指令中的MIN管脚填写的数值应该是5530,而不是0。

猜你喜欢

转载自blog.csdn.net/m0_73687141/article/details/127968270