1、S7-300的模拟量输入模块一般采用积分转化法,转换后的二进制数的位数可以设置为916位(与模块的型号和组态有关),如果小于16位(包括符号位),则转换值被自动左移,使其最高位(符号位)在16位字的最高位,左移后未使用的低位则填入0。设转换的精度为12位加符号位,左移3位后低3位为0,相当于实际的值被乘以8。这种处理方法使转换后的数值与模拟量的关系与组态的A/D转换的位数无关,便于对转换值的后续计算和处理,例如PID控制功能块FB41需要将来自模拟量输入模块的整数转换为0100.0%的浮点数。下表给出了模拟量输入模块的转换值与以百分数表示的模拟量之间的对应关系,其中最重要的关系是双极性模拟量量
2、程的上、下限(100%和100%)分别对应于模拟值27648和27648。单极性模拟量量程的上、下限(100%和0%)分别对应于模拟值27648和0。有人可能要问,为什么是27648呢?我认为可能是制定规则的人担心实际的模拟量输入可能会超过选择的量程,因此在量程的上、下限(-100%100%)之外设置了18.5%的裕量。为什么是27648而不是别的数呢?因为27648的十六进制数6C00H是个较特殊的数。不能认为模块的分辨率为1/27648,分辨率还是取决于模块设置的实际精度(转换后的位数)。现场采集的底层数据分两种情况讨论(对于单极性检测)1、有信号时底层数据应该在027648属于正常范围,
3、我调试还没有发现类似27650等之类的数据;底层数据还可能为32767,此时说明信号线输入有问题(常见的就是信号线的正负接反了)。即,有信号时底层数据要么是027648,要么是32767(我们没有尝试在信号端口加大于20mA的信号,比如21mA等等)2、没有信号时底层数据为一直为-32767,常见的就是备用通道,即没有信号输入的通道。以上观点请大家批评指正,我会虚心接受大家的意见和建议的32767和-32767是有故障时的输出值。我认为精度就是精确度或者分辨率,比如12位的卡件相当于4096对应全量程的16mA,16/4096=3.90625uA,就是说低于3.9uA的变化卡件没法识别;同样道
4、理13位的卡件分别率为1.95uA,14位卡件的分辨率为0.97uA,16位的卡件分辨率为0.244uA;0-27648是一个同一代码,便于工程变换;不知道这样理解对不对。12位的精度1/4096,13位精度1/8192,14位精度1/18384,他们都是用数字0-27648来表示。位数越高对应的转换的精度就会高啊。就好比2和2.0数值上面是一样大的,但在计算的场合浮点数是比整数准确的 热电阻这种都是直接除以10得数个无论什么精度的模块4-20MA对应的都是0-2764812位 110 1100 0000 000013位 110 1101 0000 000014位 111 1110 0000 000015位 111 1111 0000 0000AD转换单元12位的,一个整型的存贮单元是16位的,12位在16位中的存放,有两种情况,即所谓的右对齐(左边补0或符号)和左对齐(右边补0)。S7200中采用左对齐。采用这个对齐方式的好处,在于不管是多少位AD,其最大值是相同的。