Skip to content

线性变换 ​

线性变换(类型名 ddc_linear):Out=(Y2-Y1)×(In-X1)/(X2-X1)+Y1,结果限制在 Y1~Y2 之间。如 4~20mA 转 -40~70°C。

这块是什么 ​

  • 编辑器里的名字:线性变换
  • 类型名:ddc_linear(写在程序文件 ddc.json 里的身份,AI 生成或改逻辑时按它对名,别猜中文名)
  • 分类:计算(数值加工)
  • 形态:值块
  • 状态:无状态

Out=(Y2-Y1)×(In-X1)/(X2-X1)+Y1,结果限制在 Y1~Y2 之间。如 4~20mA 转 -40~70°C。

块面长什么样 ​

线性变换在逻辑编程编辑器里的样子

图上这一颗就是刚把它从工具箱拖到画布时的样子:下拉框和输入框里是默认值,凹口(←形的那个孔)是要接值的地方,右边凸起是能被别人接的输出口。

块面参数(在块上直接填/选) ​

  • 无 —— 这个块没有可填参数,行为只由连线决定

连线端子(从别的块接进来) ​

  • 输出 Number
  • 端子 IN、X1、X2、Y1、Y2

下发到设备变成什么 ​

  • 生成 ddc.json 的操作(op):linear

手册里其它相关位置 ​

量程换算:把一个区间的数按比例搬到另一个区间 ​

最常用的场景是模拟量量程换算:

输入 4~20(mA 对应的原始值)→ 输出 -40~70(℃)

线性变换区间映射示意

  • 填 4 个数:输入下限 X1、输入上限 X2、输出下限 Y1、输出上限 Y2
  • 例:4~20mA 的温度变送器接进 D100,用线性变换把 D100 换算成实际温度,再参与比较和显示
  • 公式 Out = (Y2-Y1)×(In-X1)/(X2-X1) + Y1,结果限制在 Y1~Y2 之间(超出端点就按端点输出)

屏上数字差 10 倍,多半是该在这里换算

文本屏不会自动除以 10。想显示 26.5,就在这里把整数采集值换算成带小数的结果, 再把这个结果接到显示行的「值」上(见 2.6 显示模块的验证步骤)。

串起来用的例子(整条采集链) ​

应用逻辑主循环(每 200ms)
 └─ 赋值 D110 ← 限值( 线性变换(D100, 4~20 → 0~100) , 0~100 )
      ↑ 原始采集值换算成百分比,再限幅保护
 └─ 赋值 D120 ← 取位(D110, 取整数部分)
      ↑ 取整后就是可直接显示/比较的百分数

对应块:线性变换 → 限值运算 → 取位运算 → 赋值。

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