1、PLC 模拟量(工程量)转化的方法1、基本概念我们生活在一个物质的世界中。世间所有的物质都包含了化学和物理特性,我们是通过对物质的表观性质来了解和表述物质的自有特性和运动特性。这些表观性质就是我们常说的质量、温度、速度、压力、电压、电流等用数学语言表述的物理量,在自控领域称为工程量。这种表述的优点是直观、容易理解。在电动传感技术出现之前,传统的检测仪器可以直接显示被测量的物理量,其中也包括机械式的电动仪表。2、标准信号在电动传感器时代,中央控制成为可能,这就需要检测信号的远距离传送。但是纷繁复杂的物理量信号直接传送会大大降低仪表的适用性。而且大多传感器属于弱信号型,远距离传送很容易出现衰减、干
2、扰的问题。因此才出现了二次变送器和标准的电传送信号。二次变送器的作用就是将传感器的信号放大成为符合工业传输标准的电信号,如05V、010V 或4 20mA(其中用得最多的是420mA) 。而变送器通过对放大器电路的零点迁移以及增益调整,可以将标准信号准确的对应于物理量的被检测范围,如0100 或-10100等等。这是用硬件电路对物理量进行数学变换。中央控制室的仪表将这些电信号驱动机械式的电压表、电流表就能显示被测的物理量。对于不同的量程范围,只要更换指针后面的刻度盘就可以了。更换刻度盘不会影响仪表的根本性质,这就给仪表的标准化、通用性和规模化生产带来的无可限量的好处。3、数字化仪表到了数字化时
3、代,指针式显示表变成了更直观、更精确的数字显示方式。在数字化仪表中,这种显示方式实际上是用纯数学的方式对标准信号进行逆变换,成为大家习惯的物理量表达方式。这种变换就是依靠软件做数学运算。这些运算可能是线性方程,也可能是非线性方程,现在的电脑对这些运算是易如反掌。4、信号变换中的数学问题信号的变换需要经过以下过程:物理量传感器信号标准电信号A/D 转换数值显示。声明:为简单起见,我们在此讨论的是线性的信号变换。同时略过传感器的信号变换过程。假定物理量为 A,范围即为 A0Am,实时物理量为 X;标准电信号是 B0Bm,实时电信号为 Y;A/D 转换数值为 C0-Cm,实时数值为 Z。如此,B0对
4、应于 A0,Bm 对应于 Am,Y 对应于 X,及 Y=f(X)。由于是线性关系,得出方程式为 Y=(Bm-B0)*(X-A0)/(Am-A0)+B0。又由于是线性关系,经过 A/D 转换后的数学方程 Z=f(X)可以表示为 Z=(Cm-C0)*(X-A0)/(Am-A0)+C0。那么就很容易得出逆变换的数学方程为 X=(Am-A0)*(Z-C0)/(Cm-C0)+A0。方程中计算出来的 X 就可以在显示器上直接表达为被检测的物理量。5、PLC 中逆变换的计算方法以 S7-200和420mA 为例,经 A/D 转换后,我们得到的数值是640032000 ,及 C0=6400,Cm=32000。
5、于是,X=(Am-A0)*(Z-6400)/(32000-6400)+A0。例如某温度传感器和变送器检测的是-10 60,用上述的方程表达为 X=70*(Z-6400)/25600-10。经过 PLC 的数学运算指令计算后,HMI 可以从结果寄存器中读取并直接显示为工程量。用同样的原理,我们可以在 HMI 上输入工程量,然后由软件转换成控制系统使用的标准化数值。在 S7-200中,(Z-6400)/25600的计算结果是非常重要的数值。这是一个01.0(100)的实数,可以直接送到 PID 指令(不是指令向导)的检测值输入端。PID 指令输出的也是01.0 的实数,通过前面的计算式的反计算,可
6、以转换成640032000,送到D/A 端口变成420mA 输出。以上讲述的是 PLC 中工程量转换的基本方法,程序的编写则因人、因事而异。但是万变不离其衷。如果大家感兴趣,我可以给出自己编写的程序供大家参考,同时也希望各位网友不吝赐教、互相交流模拟量值和 A/D 转换值的转换假设模拟量的标准电信号是 A0Am(如:4 20mA) , A/D 转换后数值为 D0Dm(如:6400 32000) ,设模拟量的标准电信号是 A,A/D 转换后的相应数值为 D,由于是线性关系,函数关系Af (D)可以表示为数学方程:A(DD0)(AmA0)(DmD0 )A0 。根据该方程式,可以方便地根据 D 值计
7、算出 A 值。将该方程式逆变换,得出函数关系 Df(A)可以表示为数学方程:D(AA0)(DmD0)(AmA0 )D0 。具体举一个实例,以 S7-200 和4 20mA 为例,经 A/D 转换后,我们得到的数值是6400 32000,即A04,Am20,D06400,Dm32000,代入公式,得出:A(D6400)(204)(320006400)4假设该模拟量与 AIW0 对应,则当 AIW0 的值为12800 时,相应的模拟电信号是6400162560048mA。又如,某温度传感器,10 60与4 20mA 相对应,以 T 表示温度值,AIW0为 PLC 模拟量采样值,则根据上式直接代入得
8、出:T=70(AIW0 6400 )2560010可以用 T 直接显示温度值。模拟量值和 A/D 转换值的转换理解起来比较困难,该段多读几遍,结合所举例子,就会理解。为了让您方便地理解,我们再举一个例子:某压力变送器,当压力达到满量程5MPa 时,压力变送器的输出电流是20mA,AIW0 的数值是32000。可见,每毫安对应的A/D 值为32000/20,测得当压力为0.1MPa 时,压力变送器的电流应为4mA,A/D 值为(32000/20)46400。由此得出,AIW0 的数值转换为实际压力值(单位为 KPa)的计算公式为:VW0 的值(AIW0 的值 6400)(5000100)/(32
9、0006400)100(单位:KPa)DescriptionThe SCALE function takes an integer value (IN) and converts it to a real value in engineering units scaled between a low and a high limit (LO_LIM and HI_LIM). The result is written in OUT. The SCALE function uses the equation:OUT = (FLOAT (IN) -K1)/(K2-K1) * (HI_LIM-LO_
10、LIM) + LO_LIMThe constants K1 and K2 are set based upon whether the input value is BIPOLAR or UNIPOLAR.?BIPOLAR: The input integer value is assumed to be between ?7648 and 27648, therefore, K1 = ?7648.0 and K2 = +27648.0?UNIPOLAR: The input integer value is assumed to be between 0 and 27648, therefo
11、re, K1 = 0.0 and K2 = +27648.0If the input integer value is greater than K2, the output (OUT) is clamped to HI_LIM, and an error is returned. If the input integer value is less than K1, the output is clamped to LO_LIM, and an error is returned.Reverse scaling can be obtained by programming LO_LIM HI_LIM. With reverse scaling, the value of the output decreases as the value of the input increases.