模拟值处理-base on simatic
1. 模拟量有哪些
- 温度
- 压力
- 速度
- 填充量
- PH值
2. 变送器
对于PLC而言,只能处理位模式格式
的模拟值(-32767~32767)。所以变送器的目的是测量如压力流量温度等物理值,再转换成电流/电压/电阻
等形式,方便模拟量输入模块采集,采集后再模块内部有一个AD(模数)转换器,可以把电流电压电阻值变成16位
整数值。
- 电压变送器
- 电流变送器
- 2线制电流变送器(无源变送器,靠模拟量模块给电压)
- 4线制电流变送器(有源,变送器自己出一个负载供电)
- 电阻变送器
- 2线
- 3线
- 4线
- 热电偶
- 隔离变送器
3. 模数转换
PLC只能处理数字格式的信息。因此模块内部靠ADC转换,把模拟量的连续变化的曲线数字化为一个近似的跳变曲线(采样点越多,越趋近于真实的模拟量曲线)。对于西门子的产品,ADC芯片的转换始终返回的是一个16bits
字。
- 模数转换关键参数1:准确性/精度
- 模数转换关键参数2:转换速度
4. 精度
精度越高,跳变的数字曲线才会越趋近于物理上连续的真实模拟量曲线。
在西门子的模拟量模块选型中,经常会遇到描述模块精度的词汇,如模块精度为13bits,或者模块精度为16位。下面将用计算来说明一下模块精度怎么理解:
- 在0-10V的测量模块中,模块精度等于13位(=12bit + S),其中
S表示符号位;0-正1-负
。1
2
3
4//仅作举例
2^12=4096
最小增量 = 10V / 4096
= 2.4mV - 在0-10V的测量模块中,模块精度等于16位(=15bit + S),其中
S表示符号位;0-正1-负
。1
2
3
4
5
6
72^15=32768
//实际上因为额定范围,上溢下溢等概念,导致10V对应的数字值应该是27648,这里只是理论计算
//双极性-32768~+32767,单极性0~+32767,所以单双极性之间最小增量是一致的。
理论最小增量 = 10V / 32768
= 0.305mV
实际最小增量 = 10V / 27648
= 0.3617mV
5. 输出范围
低于16bit的模块未使用的有效位用“0”填充,
模拟值左对齐,即右边部分是填充部分
无论是何种精度,模块都将占用-32768~+32767的所有范围,精度决定了两个连续值之间的缩放值(单位步长)
- 16bit模块以1个单位步长递增,(2^0=1)
- 13bit模块以8个单位步长递增,(2^3=8)
双极性输入输出范围表示
- 输入,精度16bit,+-10V
- 输出,精度16bit,+-10V
- 输入,精度16bit,+-10V
单极性输入输出范围表示
- 输入,精度16bit,+-10V
- 输出,精度16bit,+-10V
- 输入,精度16bit,+-10V
6. 误差
- 基本误差,在25℃环境下的操作极限,使用
最大值*误差值
- 全温范围误差,整个温度范围的操作限值,使用
最大值*误差值
- 线性误差
- 温度误差
- 如下图,西门子的手册里对温度误差的案例可能会引起一些误会,其实在这个案例里面不管是+-2.4K(开式温度)还是+-6℃(摄氏温度),它们所表达的都是一个
相对温度
(相对于-273.15或者相对于0)。相对温度下不考虑绝对计量起点,所以这里用K和用摄氏度都可以,直接相加就行。
- 如下图,西门子的手册里对温度误差的案例可能会引起一些误会,其实在这个案例里面不管是+-2.4K(开式温度)还是+-6℃(摄氏温度),它们所表达的都是一个
7. 重复精度
重复精度是指一个值重复输入或者输出的次数很多的时候,实际值离重复值直接最大的偏差范围
8. 干扰频率抑制
抑制由AC电压电源产生的一些干扰。这些干扰在测热电偶的时候影响会相对大些。设置的时候,设置的频率越高,转换的时间越短
- 干扰频率的设置值越大,对干扰的过滤效果越差。因为越大的设置值采样时间越短,所以单位时间内可以采集到更多的点位。400Hz一般用在航空和军工场景。
9. 共模干扰和串模干扰
10. 串扰
因为在工艺上,其实并不可能完全隔绝模块通道和环境条件,也就是说始终会有泄露电流或者干扰耦合。
11. 模拟量的常见诊断
- L+ 缺失
- 断路
- 只对电流有效,最电流小于某个值时不可用
- 短路
- 只对电压有效,最电压小于某个值时不可用
- 上溢
- 下溢
- 共模
- 诊断测量输入(-)和模拟地之间的参考点是否超过了允许的最大电位差.
- 过载
- 环境温度或者模块温度太高
- 基准节
- 用于热电偶测量,若外部参考端的RTD电阻产生了错误,可能触发该诊断。
12. 值状态
用于表征信号输出或者输入的质量状态,QI。没有诊断发生的时候不一定有QI,有QI的时候通道一定不存在诊断信息。
13. 转换时间,循环时间
14. 滤波
滤波用在处理缓慢变化的模拟量(如温度),可降低干扰信号的强度。
- 组态中有无,弱,中,强四种滤波方式。越大滤波效果越好
15. 模拟量校准
- 用户校准
- 工厂校准
16. PTC和RTD的区别
- PTC,基于半导体材料的热敏电阻,阻值和温度变换正相关(负相关的是NTC)
- RTD,基于金属材料如Pt的热敏电阻,它们的阻值随温度的升高而下降。
- 相比于PTC, RTD具有更高的精度和稳定性,也有更宽泛的温度范围。但是PTC具有更低的价格,以及比RTD更快的响应时间。
17. 标定和反向标定模拟量值
- SCALE,标定。把数字值(-27647~+27648)转换成对应的物理量值(电压电流)
1
#tempScaleWord := SCALE(IN := #value.AQ_digital, HI_LIM := #HI_LIM, LO_LIM := #LO_LIM, BIPOLAR := #BIPOLAR, OUT => #value.AQ_analog);
- UNSCALE,反向标定。把物理量值转换成对应的数字值
1
#tempUNScaleWord := UNSCALE(IN := (#HI_LIM * #statTemperaPara.range), HI_LIM := #HI_LIM, LO_LIM := #LO_LIM, BIPOLAR := #BIPOLAR, OUT => #statTemperaPara.digitalvalue);
- SCALE和UNSCALE的算法规则
- SCALE:
OUT = [((FLOAT (IN) – K1)/(K2–K1)) ∗ (HI_LIM–LO_LIM)] + LO_LIM
- UNSCALE:
OUT = [((IN–LO_LIM)/(HI_LIM–LO_LIM)) ∗ (K2–K1) ] + K1
- 在西门子官方指令中,如果单极性,则K1=0.0,K2=+27648.0;如果双极性,则K1=-27648.0.0,K2=+27648.0
- 在西门子官方指令中,如果IN值超过27648或者小于-27648,其输出结果会被固定为一个最接近输出值的合法值,并输出一个超范围错误状态。
- 如果想输出超过-27648 ~ +27647的值,比如输出-32512 ~ +32511。可以按照以上算法手动计算。
- SCALE:
18. RTD的标准型和气候型的差别
- 如果配置为
标准型
的热电阻,则读到的值除以10
就得到温度值,精度是0.1。 - 如果配置为
气候型
的热电阻,则读到的值除以100
就得到温度值,精度是0.01。
模拟值处理-base on simatic
http://example.com/2024/07/21/模拟值处理-base on simatic/