看图4,就是模拟量转换计算程序。大家看一下一共才用了6个西门子PLC指令,就把实际的压力值计算了出来,其中:
1,是整数转双整数指令。
2,是双整数转浮点数指令。
3,是减法指令。
4,是除法指令。
5,是减法指令。
6,是乘法指令。这些减法,乘法,除法指令和我们平时用的加减乘除的原理是一样的。而整数转双整数和双整数转浮点数指令是为了将0-32000这个整数转换为浮点数。因为我们的模拟量数据,压力,温度,流量等,多数都是带小数点的数值,所以模拟量输入以后,先把它转换成带小数点浮点数的数据类型。
为了便于大家理解,下面我们就以输入压力为:5kpa,压力变送器量程为:0-10kpa为例进行讲解。
看图5,
第一个指令:整数转双整数:作用是把输入地址AIW0的整数数据19200,转换成双整数数据19200,然后把数据放入通用寄存器MD0。至于为什么压力是5kpa时,AIW0的数据是19200,看一下图5下面的黑色方块内的转换过程就知道了。
第二个指令:双整数转浮点数:作用是把通用寄存器MD0中的19200转换成浮点数19200.0(大家看有小数点了,但数据大小并没有改变。就好比你穿了件棉袄,但你还是你),然后把19200.0放入通用寄存器MD4。大家如果看到AIWO,MD0,MD4等不知道是什么意思,就看看我以前的文章全都讲过了。当时可能大家没有足够重视,现在用到了。不懂的赶紧去学学,这都是PLC处理模拟量的基础,如果西门子PLC的模拟量处理你不明白,其他品牌的PLC模拟量处理你也不会看懂。
第三个指令:浮点数减法:作用是实现量程下限标准化(可以理解为,计算出压力变送器的量程范围0-10kpa中的最小值0kpa)。即让MD4中的19200.0减去6400.0然后把结果放入MD8。
第四个指令:浮点数除法:作用是实现量程上限标准化,它和上面量程下限标准化的原理是一样的。即让MD8中的12800.0除以25600.0然后把结果放入MD12。
第五个指令:浮点数减法:作用是定义并计算出压力变送器的量程范围(压力变送器量程范围是0-10kpa就写成0.0和10.0。如果量程范围是0-0.6MP就写成0.0和0.6。以此类推),然把数据放入MD16.
第六个指令:浮点数乘法:作用是计算出我们实际的压力数值。让量程上限标准化MD12中的值乘以量程范围MD16中的值,就是我们实际的压力数值5.0kpa,数据放在通用寄存器MD20中。
这就是西门子S7-200 PLC的模拟量的处理过程,上面的程序是一个标准的4-20mA模拟量信号的PLC计算程序,我们在实际项目应用中可以直接拿来使用。自己也可以实验一下当压力是:8kpa时各个指令数值是怎样变化的。