工业自动化中的 AI

文章指南

如何在 PLC 中将模拟量输入转换为工程单位

了解如何利用线性数学将 PLC 模拟量输入的原始计数值转换为工程单位,掌握分辨率和数据类型对结果的影响,并学习如何在 OLLA Lab 中安全地验证转换逻辑。

直接回答

要在 PLC 中转换模拟量输入,工程师需要使用从 y = mx + b 推导出的线性方程,将输入模块的原始数字计数值转换为物理工程单位。分辨率、数据类型选择以及验证方法决定了该数值是仅仅“看起来合理”还是真正“值得信赖”。

本文回答的问题

文章摘要

要在 PLC 中转换模拟量输入,工程师需要使用从 y = mx + b 推导出的线性方程,将输入模块的原始数字计数值转换为物理工程单位。分辨率、数据类型选择以及验证方法决定了该数值是仅仅“看起来合理”还是真正“值得信赖”。

模拟量转换并非接线后的简单清理步骤,它是传感器电信号与逻辑、报警、趋势图及 PID 回路所用数值之间的数学桥梁。如果这座桥梁搭建错误,后续的控制策略也可能随之失效。

Ampergon Vallis 指标: 在一项内部 OLLA Lab 验证中,使用 0–100 PSI 变送器配置,将 12 位输入模型升级为 16 位输入模型后,最小可测量步长从 0.0244 PSI 减小至 0.0015 PSI,量化间隔降低了 93.8%。方法论: 1 项模拟压力转换任务,对比 12 位与 16 位配置,测量日期为 2026 年 3 月 24 日。该数据仅支持关于特定转换案例中分辨率粒度的观点。它本身并不能证明在所有工厂中都能提升回路性能,因为回路质量还取决于变送器精度、滤波、扫描时间、整定参数及过程动态。

一个常见的误区是:只要梯形图能编译通过,转换就是没问题的。事实并非如此。语法正确并不代表具备部署能力。

什么是标准的 PLC 转换公式 (y = mx + b)?

标准的 PLC 转换公式是将原始数字输入范围映射到工程单位范围的线性映射。简单来说,它回答了一个问题:给定输入模块的一个整数,它代表什么物理值?

工业转换公式展开式

转换值 = [((原始输入 - 原始最小值) × (工程单位最大值 - 工程单位最小值)) / (原始最大值 - 原始最小值)] + 工程单位最小值

这是由 y = mx + b 推导出的点斜式在 PLC 中的实际应用形式。

各项含义

  • 原始输入 (Raw Input):模拟量输入模块报告的当前整数值
  • 原始最小值 (Raw Min):对应信号范围低端的整数
  • 原始最大值 (Raw Max):对应信号范围高端的整数
  • 工程单位最小值 (EU Min):工程单位的低端值,例如 0 PSI
  • 工程单位最大值 (EU Max):工程单位的高端值,例如 100 PSI

为什么 PLC 使用此公式

PLC 无法直接读取压力、液位或温度。它们读取的是由模拟量输入硬件产生的转换后整数。

例如:

  • 压力变送器可能输出 4–20 mA
  • PLC 模拟量模块将该电流转换为数字计数值
  • 梯形图逻辑将该计数值转换为 0–100 PSI

如果不进行转换,控制器只知道它接收到了一个数字,却不知道该数字代表 47.2 PSI 还是其他数值。

示例:转换 0–100 PSI 变送器

假设:

  • 原始最小值 = 0
  • 原始最大值 = 32767
  • 工程单位最小值 = 0.0 PSI
  • 工程单位最大值 = 100.0 PSI
  • 原始输入 = 16384

则:

转换值 = [((16384 - 0) × (100.0 - 0.0)) / (32767 - 0)] + 0.0

转换值 ≈ 50.0 PSI

这就是模拟量转换的核心工作:将模块计数值转换为过程可用的数值。

原始模拟信号如何变成 PLC 整数?

模拟传感器产生连续的电信号,而 PLC 逻辑处理的是离散的数字值。模拟量输入模块负责执行此转换。

物理与硬件路径

典型的路径如下:

  • 现场设备产生连续信号,如 4–20 mA0–10 V
  • PLC 模拟量输入模块对该信号进行采样
  • 模块的模数转换器 (ADC) 将信号分配给一个离散整数
  • PLC 程序将该整数转换为工程单位

这一点很重要,因为 PLC 从未“看到”无限平滑的物理信号,它看到的是有限的数字步长。这就是分辨率发挥作用的地方。

实践中常见的原始范围

原始范围因平台和模块设计而异。例如:

  • 0 到 4095(12 位范围)
  • 0 到 32767(15 位有符号或厂商标准化范围)
  • 0 到 65535(16 位无符号范围)

确切的原始范围取决于厂商,但转换方法是通用的。

12 位与 16 位分辨率如何影响模拟量精度?

位深决定了输入模块在整个信号范围内可以表示的离散值数量。位数越多,粒度越细,量化间隔越小。

分辨率数学

可用步长数量为:

2^n

其中 n 为位深。

因此:

  • 12 位 = 4096 个步长
  • 15 位 = 32768 个步长
  • 16 位 = 65536 个步长

0–100 PSI 变送器的步长大小

对于 0–100 PSI 的范围,近似的工程单位步长为:

步长 = 工程单位范围 / (原始步长 - 1)

| 分辨率 | 整数范围 | 0–100 PSI 的近似步长 | |---|---:|---:| | 12 位 | 0 到 4095 | 0.0244 PSI/步 | | 15 位 | 0 到 32767 | 0.0030 PSI/步 | | 16 位 | 0 到 65535 | 0.0015 PSI/步 |

操作层面的意义

更高的分辨率可减少量化误差,从而提高逻辑、报警、趋势记录和闭环控制所呈现数值的保真度。

需要注意以下边界条件:

  • 更高的分辨率并不自动意味着更高的测量准确度
  • 不能纠正变送器校准不良的问题
  • 不能解决接地不良、噪声或回路整定不佳的问题

它仅意味着模块能够区分更细微的变化。

为什么这对 PID 回路很重要

PID 回路对测量的过程值做出反应。如果测量值以粗糙的步长更新,控制器看到的将是现实的“分块”版本。

这可能导致:

  • 输出震荡
  • 在设定点附近控制精度不佳
  • 微分行为产生噪声
  • 趋势解读困难

分辨率不是影响回路质量的唯一变量,但它是其中之一。

为什么模拟量转换中会出现整数截断错误?

整数截断的发生是因为 PLC 数学运算严格遵循数据类型。如果使用整数数学进行除法运算,小数余数会被丢弃。

这不是软件 Bug,而是整数算术的预期结果。

核心风险

如果梯形图程序使用 INT(整数)类型执行以下运算:

16384 / 32767 = 0

PLC 不会保留小数部分,它会将结果截断为 0

如果该截断后的结果再乘以工程范围,转换值就会错误地坍缩。

为什么运算顺序很重要

在使用整数数据类型时,以下顺序风险很高:

  1. 先除法
  2. 后乘法
  3. 将结果存入 INT

这种顺序通常会在逻辑使用前就破坏了精度。

以下顺序更安全:

  1. 减去偏移量
  2. 先进行分子乘法
  3. 转换为 REAL(浮点数)
  4. 使用浮点数学进行除法
  5. 加上工程单位偏移量

简而言之:在除法前保持精度。

错误整数转换示例

假设:

  • 原始输入 = 16384
  • 原始最大值 = 32767
  • 工程单位范围 = 100

如果逻辑计算:

(16384 / 32767) × 100

使用整数数学:

  • 16384 / 32767 = 0
  • 0 × 100 = 0

结果为 0 PSI,这显然是错误的。

正确浮点转换示例

如果逻辑计算:

(16384 × 100.0) / 32767

使用 REAL 数学:

  • 1638400.0 / 32767 ≈ 50.0

结果正确。

截断错误代价高昂的场景

截断错误在以下场景中尤其具有破坏性:

  • 流量累积
  • 能源计算
  • 配料控制
  • 剂量控制
  • 长时间运行的累积逻辑

丢失的一点小数看起来无伤大雅,但经过多次累积,可能会产生重大的操作影响。

PLC 模拟量转换应使用什么数据类型?

对于原始模块值,请使用整数类型;对于转换后的工程值以及涉及小数精度的中间数学运算,请使用浮点类型。

实用原则

一个稳妥的默认做法是:

  • 原始输入:INT 或 DINT(取决于平台)
  • 中间数学运算:REAL
  • 转换后的工程值:REAL

这样既保持了面向硬件的值处于原生形式,又在计算中保留了小数精度。

为什么 REAL 很重要

工程单位通常带有小数:

  • 47.3 PSI
  • 62.8%
  • 18.6 GPM
  • 101.2 °C

如果过程变量可能带有小数,那么数学路径通常也应使用浮点数。

额外的实施检查

还需核实:

  • 厂商文档中模拟量模块的实际原始范围
  • 模块是否为欠量程或超量程预留了计数值
  • 是否使用了有符号值
  • 在转换前是否应用了滤波或平均值处理
  • 报警阈值是定义在原始单位还是工程单位中

公式是通用的,但端点不是。

如何以梯形图形式编写模拟量转换逻辑?

典型的梯形图实现使用一系列数学指令,这些指令映射了展开后的转换公式。

梯形图数学块序列

Rung 1: SUB Raw_Input Raw_Min -> Raw_Offset

Rung 2: SUB EU_Max EU_Min -> EU_Range

Rung 3: MUL Raw_Offset EU_Range -> Numerator_REAL

Rung 4: SUB Raw_Max Raw_Min -> Raw_Range

Rung 5: DIV Numerator_REAL Raw_Range -> Scaled_Offset_REAL

Rung 6: ADD Scaled_Offset_REAL EU_Min -> Scaled_Value_REAL

4–20 mA 等效原始范围的示例值

如果模块将信号映射为 0–32767,且变送器代表 0.0–100.0 PSI,则:

  • Raw_Min = 0
  • Raw_Max = 32767
  • EU_Min = 0.0
  • EU_Max = 100.0

如果您的平台使用实时信号范围(例如仅对应 4–20 mA 的计数值),请相应调整原始端点。这是最常见的隐蔽转换错误来源之一。

如何在 OLLA Lab 中模拟模拟量转换数学?

模拟量转换应在安全环境中进行验证,然后再应用于实际过程。在 OLLA Lab 中,这意味着在基于浏览器的模拟工作流中观察原始值、中间数学行为以及最终的工程单位输出。

此处的“仿真就绪 (Simulation-Ready)”含义

在本文中,仿真就绪意味着工程师可以:

  • 注入定义的输入条件
  • 观察控制器的中间逻辑状态
  • 将梯形图状态数学与模拟设备或信号行为进行对比
  • 诊断错误的转换或数据类型处理
  • 修改逻辑
  • 在部署前验证修正后的结果

这是一种验证行为,本身并不代表现场就绪。

OLLA Lab 中的实用验证工作流

将 OLLA Lab 作为转换逻辑的受限排练环境:

  1. 注入原始值 使用仿真环境应用已知的模拟量输入条件。
  2. 监控中间数学状态 观察梯形图编辑器中 SUBMULDIV 步骤的输出。
  3. 检查变量面板 对比原始整数、中间值和最终的 REAL 工程单位标签。
  4. 对照预期数学结果进行验证 确认仿真结果与手动计算值匹配。
  5. 测试边界条件 验证低端、中端、高端、欠量程和超量程行为。
  6. 故意破坏数据类型 强制使用仅限整数的版本,观察截断错误。

为什么变量面板很重要

变量面板非常有用,因为它揭示了以下各项之间的关系:

  • 原始 I/O 值
  • 标签状态
  • 模拟量值
  • 转换后的输出

这种可见性有助于区分“看起来正确”的逻辑和“经过检查”的逻辑。

图片替代文本: OLLA Lab 变量面板截图,显示了一个模拟量转换程序。原始 16 位整数值 16384 被转换为 50.0 PSI 的浮点工程单位。

在控制逻辑中使用转换后的模拟量值前应核实什么?

只有在检查了整个信号路径后,转换后的数值才值得信赖。工程师应同时核实数学逻辑和背后的操作假设。

最低验证清单

  • 根据模拟量模块文档确认实际原始范围
  • 确认传感器的校准工程范围
  • 核实输入是有符号还是无符号
  • 在涉及小数精度的地方使用 REAL 数学
  • 使用已知的测试值检查中点转换
  • 检查低端和高端端点
  • 在相同的单位域中验证报警和跳闸阈值
  • 确认滤波是否影响显示值与控制值
  • 验证信号丢失或输入超量程等异常条件

现场感知区分

如果变送器范围、模块配置或报警理念不匹配,即使数值在数学上是正确的,在操作上仍可能是错误的。

工程师应如何记录模拟量转换技能作为证据?

工程师应将模拟量转换记录为紧凑的工程证据,而不是截图库。重点在于展示推理过程、验证方法和修订纪律。

使用以下结构:

  1. 系统描述 定义信号源、原始范围、工程范围和控制目的。
  2. “正确”的操作定义 说明什么算作成功:端点匹配、中点准确度、报警阈值行为和可接受的精度。
  3. 梯形图逻辑和模拟设备状态 展示转换逻辑以及相应的模拟信号或设备条件。
  4. 注入的故障案例 引入一个现实的错误,例如错误的原始最大值、仅限整数的除法或不匹配的 4–20 mA 端点。
  5. 所做的修订 记录变更:数据类型转换、重新排序数学运算、修正原始范围或调整报警基准。
  6. 经验教训 解释失败的原因,以及如何验证修正后的逻辑。

哪些标准和文献支持严谨的模拟量验证与仿真实践?

模拟量转换本身是基础控制数学,但部署前验证控制行为的纪律得到了标准和工业文献的支持。

相关标准与指南

  • IEC 61508 强调了电气、电子和可编程电子安全相关系统的系统能力、验证纪律和生命周期严谨性。
  • ISA-5.1 支持一致的仪表标识和文档记录实践,当转换逻辑必须与实际现场设备对齐时,这一点至关重要。
  • exida 指南 关于自动化和安全生命周期实践,始终强调在现场运行前的验证、配置控制和故障感知验证。

为什么仿真属于工作流

仿真非常有用,因为它允许工程师在可重复的条件下测试控制行为,而无需将实际过程暴露在不必要的风险中。这在验证以下内容时尤为重要:

  • 报警阈值
  • 模拟量转换
  • 联锁
  • 顺序控制
  • 异常状态处理

数字孪生或仿真器不能取代现场调试,但可以在现场调试开始前减少可避免的意外。

结论

在 PLC 中转换模拟量输入是一个具有操作后果的线性数学问题。公式虽然简单,但分辨率限制、原始范围假设和整数截断可能会悄悄破坏结果。

实用的标准很简单:

  • 了解模块的真实原始范围
  • 使用正确的端点进行转换
  • 在需要的地方使用浮点数学
  • 在部署前验证结果

OLLA Lab 作为一个受限的验证环境,非常适合该工作流。它允许用户在一个地方观察原始计数值、中间数学运算和最终工程值,然后安全地测试故障案例。这本身并不能使人具备现场能力,但它能让转换错误的发现成本更低。

继续探索

Interlinking

References

编辑透明度

本博客文章由人类作者撰写,核心结构、内容和原创观点均由作者本人创建。但本文部分文本在 ChatGPT 和 Gemini 的协助下进行了润色。AI 仅用于语法与句法修正,以及将英文原文翻译为西班牙语、法语、爱沙尼亚语、中文、俄语、葡萄牙语、德语和意大利语。最终内容已由作者进行严格审阅、编辑与验证,作者对其准确性承担全部责任。

作者简介:PhD. Jose NERI, Lead Engineer at Ampergon Vallis

事实核验: 技术有效性已于 2026-03-23 由 Ampergon Vallis 实验室 QA 团队确认。

可直接实施

使用仿真支撑的工作流,将这些洞见转化为可衡量的工厂成果。

© 2026 Ampergon Vallis. All rights reserved.
|