模拟值处理-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
    7
    2^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

6. 误差

  • 基本误差,在25℃环境下的操作极限,使用最大值*误差值
  • 全温范围误差,整个温度范围的操作限值,使用最大值*误差值
  • 线性误差
  • 温度误差
    • 如下图,西门子的手册里对温度误差的案例可能会引起一些误会,其实在这个案例里面不管是+-2.4K(开式温度)还是+-6℃(摄氏温度),它们所表达的都是一个相对温度相对于-273.15或者相对于0)。相对温度下不考虑绝对计量起点,所以这里用K和用摄氏度都可以,直接相加就行。

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。可以按照以上算法手动计算。

18. RTD的标准型和气候型的差别

  • 如果配置为标准型的热电阻,则读到的值除以10就得到温度值,精度是0.1。
  • 如果配置为气候型的热电阻,则读到的值除以100就得到温度值,精度是0.01。

模拟值处理-base on simatic
http://example.com/2024/07/21/模拟值处理-base on simatic/
作者
xiao cuncun
发布于
2024年7月21日
许可协议