TIA博途模拟量测量与工程量转换

2018年9月17日18:50:34 发表评论 105 阅读

模拟量输入模块提供了一个数值用于标准化模拟量信号(电流、电压、电阻或温度)。这个数值代表被测量的参数(例如:以公升计量料位)。这个过程被称作标准化或缩放模拟量值。

图. 01 是标准化的例子。

相反,使用用户程序计算过程值。这个过程值被转换成数字信号,模拟量输出模块再将其转换成模拟量信号用来驱动模拟执行器。此转换过程被称作逆标准化。

图. 02

因此,Y 数值总是转换结果。X 数值在不同情况下都是已知参数。

有以下几种方式进行标准化:

一、FC165和FC166

通过输入 yMIN  和 yMAX ,能限制计算值y (计算出的y值)到低限和高限之间的一个特定值。这限制了模拟量输入和输出量程卡的上限和下限范围(这限制了模拟量输入和输出卡件的上溢和下溢)。

y值根据一般线性方程计算:y = a x + b。

由此引出以下关系:y = (y1-y0) / (x1-x0) * (x-x0) + y0 。

以下是用功能块 SKAL_LINEAR+LIM_INT_REAL [FC165] (INTEGER > REAL)  实现线性缩放的例子。

图. 03

例子:

模拟量输入模块用来测量一个4mA 至 20mA 的电流信号。此信号在 CPU 内部被转换为 0 至27648。液位用此计算值来测量。由此可知 4mA 对应 0.0m 液位,而 20mA 对应 1.7m 液位。

输出如下参数:
P0(x0=0; y0=0.0)
P1(x1=+27648; y1=+1.7)

按照如下方式调用 FC165 功能块:

图. 04

注:该函数没有加密,不受TIA Portal版本限制。

二、FC105和FC106

程序库例程FC105,FC106,用户可以使用它们将模拟量输入/输出的整数数值与工程量单位之间进行转换。用户需要将此例程安装到程序库中。

步骤1:解压缩“analog_convert.rar”文件到一个文件夹。
步骤2:打开STEP7 Basic中的“Libraries Tab”, 点击“Open global library”图标。

图. 01

步骤3:选择“analog_convert”库所解压的文件夹。

图. 02

步骤4:在添加程序库后,FC105(SCALE),FC106(UNSCALE)即可以被添加到用户程序中。

图. 03

参数转化关系:
OUT = [((FLOAT (IN) – K1)/ (K2–K1)) * (HI_LIM–LO_LIM)] + LO_LIM
注意:如果用户使用的输入/输出类型为双极性(如±10V,±5V等),BIPOLAR参数应当给定为TRUE,此时K1=-27648,K2=27648,否则K1=0,K2=27648。

例如:假设模拟量模块所接传感器为0-20mA 类型,其测量对象为温度,当温度为0℃时电流为0 mA,当温度为100℃时电流为20 mA。此时模拟量输入模块得到的对应数值0 mA对应为0,20 mA对应为27648。如果当前电流值为10 mA,则模拟量模块得到的输入值为13824,如果用户希望在CPU中得到一个最终的实际温度值,则可以调用FC105,将模拟量输入模块的数值赋给参数IN,工程量上限值给定为100.0,下限值给定为0.0,即可在输出参数OUT得到实际温度值50℃。

图. 04:FC105 使用例子

2. 用户可以使用本例子所提供的FC106将工程量值转换为模拟量输出模板所需要的数值。

参数转化关系:
OUT = [ ((IN–LO_LIM)/(HI_LIM–LO_LIM)) * (K2–K1) ] + K1
注意:如果用户使用的输入/输出类型为双极性(如±10V等),BIPOLAR参数应当给定为TRUE,此时K1=-27648,K2=27648,否则K1=0,K2=27648。

例如:假设模拟量输出模块输出设置为0-20mA 类型,其所连接的执行器为调节阀。当电流为0 mA时阀门开度为0%,当电流为20 mA时阀门开度为100%。如果用户希望阀门开度为50%,则可以调用FC106,将开度给定值赋给参数IN,工程量上限值给定为100.0,下限值给定为0.0,将模拟量输出模块的地址赋给参数OUT,此时OUT数值为13824,即可使模拟量输出模块输出电流值为10 mA,即阀门开度为50%。

图. 05:FC106 使用例子

注:该函数有加密,高版本TIA Portal不能使用。

 

三、NORM_X和SCALE_X

可以使用 SCALE_ X “缩放”  和 NORM_X “标准化”来转化模拟量值。这些功能块位于 TIA Portal基本指令的“转换操作”中。  功能与参数的详细说明参考 TIA Portal在线帮助。若要取得某个功能块的在线帮助,需选中该块 ( 如 SCALE_X )  然后按下“F1” 键。

下面的例子中假设测量范围是单极性的。整数值介于 0  到 27648 之间。

例子 1:
整数  27648  对应于 20 mA 电流,整数 0  对应于 0 mA 电流。上下限分别为 MAX=27648  和 MIN=0 ,量程转化后对应于 MAX=20  和 Min=0 。输入值为整数数据类型,量程转化后输出值为实数数据类型,功能块 NORM_X    可将整数转化为实数。

图. 01

图. 01 中连接的两个功能块运算后,功能块 NORM_X  的输入值和功能块 SCALE_X 的输出值之间有如下的定义:

NORM_X_VALUE - NORM_X_MIN   SCALE_X_OUT - SCALE_X_MIN
------------------------------------------- = -----------------------------------------
NORM_X_MAX - NORM_X_MIN   SCALE_X_MAX - SCALE_X_MIN

如果功能块 NORM_X 的输入值“VALUE”为 10500,上下限值如图. 01 所示,那么功能块 SCALE_X 输出值“OUT” 有如下的数值:

 10500 - 0   SCALE_X_OUT - 0
 ------------- -----------------------
 27648 - 0   20 - 0

 

SCALE_X_OUT = 7.5955 (表示 7.5955 mA)

例子 2 - 电流测量:
模拟量值 4 - 20 mA 将显示为整数值。因为输入的实数值转化为输出的整数值,功能块 SCALE_X 将实数转化为整数。整数值 27648 对应于 20 mA (上限) ,整数值 5530 对应于 4 mA (下限)。例如,整数值 10500 转化为模拟量值 7.5955 (mA)。

图. 02

注:该函数比较灵活,但是要换算工程量,还需要做一些修正。

weinxin
微信扫一扫西门子PLC 立即报价
1分钟内报价1天内发货1年内质保(为了省去等待时间,请提供准确型号)-享受专属VIP客服服务
6ES7215-1HG40-0XB0
6ES7314-1AE04-0AB0
6ES7235-0KD22-0XA0
6ES7288-1SR400-AA0

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: