(1)模拟量值和A/D转换值的转换是成线性关系的。假设模拟量的标准电信号是A0~Am(如4~20mA),A/D转换后的数值为D0~Dm(如6 400~32 000),设模拟量的标准电信号是A,A/D转换后的相应数值为D,由于是线性关系,函数关系A=f(D)可以表示为数学方程:
A=(D-D0)×(Am-A0)/(Dm-D0)+A0
根据该方程式,可以方便地根据D值计算出A值。将该方程式逆变换,得出函数关系D=f(A)可以表示为数学方程:
D=(A-A0)×(Dm-D0)/(Am-A0)+D0
(2)具体举一个实例,以S7-200和4~20mA为例,经A/D转换后,得到的数值是6 400~32 000,即A0=4,Am=20,D0=6 400,Dm=32 000,代入公式,得出:
A=(D-6400)×(20-4)/(32000-6400)+4
假设该模拟量与AIW0对应,则当AIW0的值为12800时,相应的模拟电信号是6400×16/25600+4=8mA。
例如,当输入模拟量设定为电流信号的输入,在S7-200 CPU内部,电流信号0-20mA对应于数值范围0-32000;但是对于4-20mA的信号,对应的内部数值为6400-32000。那可能有学员不知道这个6400是怎么算来的?其实这里的数字量和电流是成正比的,只需要按比例去算就可以了。因为电流信号0-20mA对应于数值范围0-32000,那么1mA对应的数字量就是32000/20=1600,而4mA对应的数字量就等于4*1600,等于6400。(这里是以S7-200 PLC来作为举例,对于S7-200 SMART S7-300 400等等PLC也是同理的,只是对应的数字量不同而已)
不同的传感变送器,通过不同的模拟量输入输出模块进行转换,其转换公式是不一样的,如果选用的转换公式不对,编出的程序肯定是错误的。比如有3个温度传感变送器:
(1)、测温范围为 0~200 ,变送器输出信号为4~20ma
(2)、测温范围为 0~200 ,变送器输出信号为0~5V
(3)、测温范围为 -100 ~500 ,变送器输出信号为4~20ma
(1)和(2)二个温度传感变送器,测温范围一样,但输出信号不同,(1)和(3)传感变送器输出信号一样,但测温范围不同,这3个传感变送器既使选用相同的模拟量输入模块,其转换公式也是各不相同。
下面选用S7-200的模拟量输入输出模块EM235的参数为依据对上述的3个温度传感器进行转换公式的推导:
对于(1)和(3)传感变送器所用的模块,其模拟量输入设置为0~20ma电流信号 ,20ma
对应数子量=32000,4 ma对应数字量=6400;
对于(2)传感变送器用的模块,其模拟量输入设置为0~5V电压信号,5V对应数字量=32000,0V对应数字量=0;
这3种传感変送器的转换公式该如何推导的呢?这要借助与数学知识帮助,请看下图: