前两篇教程介绍了模拟量输入模块的接线,和配置模块参数。
这些工作完成后,就需要在程序中把模块读取到的数据,进行规范化以方便我们使用。
模拟量模块工作的基本原理是:通过模数转换器(A-D转换),将模拟量信号转换成数字量信号。并且以二进制补码的形式表示,占用两个字节,共16位,最高位为符号位。
16位二进制补码表示的数值范围是-32768~+32767,但模块的测量范围却不与数值范围相同。
测量范围为-27648~+27648,比如测量的电压为±10V,那么对应关系就是:
-10V=-27648
+10V=+27648
数值范围与测量范围的不同,可以表示当传感器输入信号超限时的数据,这样CPU就能对故障进行诊断。
下表是输入信号与转换的数字值之间的对应关系:
1、模拟量值的规范化
刚才讲了,无论外部的信号是什么(温度、压力、流量、速度),这些信号经模块转换后都用-27648~+27648范围的整数表示,这个整数没有单位,更不容易记忆。
我们在程序中使用模拟量时,如果程序中的数值和实际中的情况一致,那么将会更加方便。把无意义的数值转换成有实际意义的数据,就是模拟量的规范化。
2、SCALE指令
在经典STEP7软件中通过库的方式,提供规范化程序模块,在博途中把这些常用的功能块做成了指令。
SCALE指令就相当于经典STEP7中的FC105,用法相同。
示例:利用压力传感器通过4-20mA信号,采集压力值ÿ