Skip to content

模拟量与工程量例程 ​

传感器送来的是原始读数(4~20mA、0~4000 这类),要先换算成工程量(℃、%、kPa)才能比较和显示。 本页覆盖采集链路上的每一环:变换 → 限幅 → 取整 → 多路取舍 → 工况切换 → 状态字 → 运行时间累计。

返回 例程总览。

这一页的主角

一条标准采集链:原始读数 → 线性变换(换算工程量) → 限值运算(夹住异常) → 取位取整(写进 D)。 跳过第一步直接比较,是最常见的"温度显示 4000 度"事故。

例程 1:4~20mA 温度变送器换算(线性变换) ​

场景:温度变送器送来 4~20(mA 对应的原始值),要变成 -40~70℃ 参与控制和显示。

软元件

软元件作用
D100原始读数(4~20)
D110换算后的温度(℃)

块图(照着拖即可)

例程 1:4~20mA 温度变送器换算(线性变换) 的块图

对应的 ddc.json(点「生成 JSON」得到的就是它;也可存成 .ddc.json 导入)

json
{
  "version": 1,
  "name": "温度线性变换",
  "scan_ms": 200,
  "lines": [
    {
      "op": "assign",
      "target": {"op":"ref","device":"D","addr":110},
      "expr": {
        "op": "linear",
        "args": [
          {"op":"ref","device":"D","addr":100},
          {"op":"const","value":4},
          {"op":"const","value":20},
          {"op":"const","value":-40},
          {"op":"const","value":70}
        ]
      }
    }
  ]
}

要点

  • 线性变换填 4 个数:输入下限、输入上限、输出下限、输出上限,块内部按比例映射,不用自己写公式。
  • 换算结果带小数,可以直接参与比较;要写进 D 寄存器显示时再取整(见例程 2)。
  • 换成百分比也一样:0~4000 的原始读数 → 0~100%。

验证:D100 写 12(量程中点)→ D110 = 15℃;写 4 → -40;写 20 → 70。

注意事项

  • 输入上下限填反(写成 20~4):映射方向倒过来,温度越高读数越低,控制动作全是反的。
  • 拿原始读数和工程量阈值比较:D100 = 4000 时永远"超温",程序一直动作。
  • 输入超出量程时会外推(2mA 算出 -71℃),断线、超量程的数据要靠限值夹住或判掉线。

其余例程(各自一页) ​


相关文档 ​

LPPLC 工业物联网云平台 · 软硬件与云平台全栈自研