压力传感器 4-20mA 信号的 PLC 标定方法
工业现场中,压力传感器通常输出 4-20mA 电流信号,而 PLC 只能识别数字量。标定就是将电流信号转换为实际压力值的过程。本文提供一套通用的标准化操作流程,适用于西门子、三菱、欧姆龙等主流 PLC 系统。
1. 准备工作
在开始标定前,确认现场具备以下条件,避免中途停顿导致数据误差。
- 准备标准压力源,精度等级需高于传感器一级(如 0.05 级压力泵)。
- 准备高精度万用表,用于串联在回路中测量真实电流值。
- 连接编程电脑与 PLC,确保在线监控权限已开启。
- 确认传感器量程,例如
0-1.0MPa或0-10Bar。
2. 硬件接线检查
错误的接线会导致信号缺失或干扰。按照以下顺序核查回路。
- 断开控制柜电源,防止短路损坏模块。
- 找到模拟量输入模块的接线端子。
- 连接传感器正极到模块信号正端(通常标记为
M+或I+)。 - 连接传感器负极到模块信号负端(通常标记为
M-或I-)。 - 串联万用表电流档在回路中,用于实时监测
4-20mA电流。 - 恢复控制柜电源,观察万用表读数是否稳定在
4mA左右(空载状态)。
3. 标定原理与公式
PLC 读取到的原始数值(Raw Value)与实际压力值(Engineering Value)呈线性关系。标定核心是确定两个端点:零点(4mA)和满量程点(20mA)。
3.1 线性变换公式
使用以下通用公式计算实际压力值:
$$ P = \frac{(Raw - Raw_{min}) \times (P_{max} - P_{min})}{(Raw_{max} - Raw_{min})} + P_{min} $$
其中:
- $P$ :计算后的实际压力值
- $Raw$ :PLC 当前读取的原始整数数值
- $Raw_{min}$ :4mA 电流对应的 PLC 原始数值
- $Raw_{max}$ :20mA 电流对应的 PLC 原始数值
- $P_{min}$ :传感器量程下限(通常为 0)
- $P_{max}$ :传感器量程上限
3.2 常见 PLC 数值范围参考
不同品牌 PLC 对 4-20mA 的数字定义不同,查阅硬件手册确认具体范围。
| PLC 品牌 | 信号类型 | 4mA 对应值 | 20mA 对应值 | 备注 |
|---|---|---|---|---|
| 西门子 S7-1200/1500 | 4-20mA | 0 | 27648 | 需在硬件组态中选择 4-20mA |
| 西门子 S7-1200/1500 | 0-20mA | 5530 | 27648 | 若组态为 0-20mA,4mA 约为 5530 |
| 三菱 FX 系列 | 4-20mA | 0 | 16000 | 取决于特定模拟量模块型号 |
| 欧姆龙 CJ/NJ 系列 | 4-20mA | 0 | 16000 (hex 3E80) | 需确认单元设置 |
4. 标定操作流程
严格按照以下步骤执行,确保零点与量程准确。
4.1 零点标定(4mA 点)
- 释放传感器压力,确保物理压力为
0。 - 观察万用表,确认电流稳定在
4.00mA。 - 读取PLC 监控画面中的原始数值,记录为 $Raw_{actual\_zero}$。
- 对比理论值 $Raw_{min}$。
- 计算零点偏移量:$Offset = Raw_{min} - Raw_{actual\_zero}$。
- 修改程序中的零点参数,将偏移量补偿进去。
4.2 满量程标定(20mA 点)
- 施加压力至传感器量程上限(如
1.0MPa)。 - 观察万用表,确认电流稳定在
20.00mA。 - 读取PLC 监控画面中的原始数值,记录为 $Raw_{actual\_span}$。
- 对比理论值 $Raw_{max}$。
- 计算增益系数:$Gain = \frac{Raw_{max} - Raw_{min}}{Raw_{actual\_span} - Raw_{actual\_zero}}$。
- 修改程序中的斜率参数,应用增益系数。
4.3 流程逻辑图
以下流程图展示了标定的完整决策路径:
graph TD
A["开始:准备工具与接线"] --> B["释放压力至 0"]
B --> C["读取 PLC 零点原始值"]
C --> D{"零点误差 < 1% ?"}
D -- "否" --> E["调整零点偏移参数"]
D -- "是" --> F["施加压力至满量程"]
E --> F
F --> G["读取 PLC 满量程原始值"]
G --> H{"量程误差 < 1% ?"}
H -- "否" --> I["调整增益系数参数"]
H -- "是" --> J["保存程序并断电重启"]
I --> J
J --> K["结束:验证线性度"]
5. 程序编写示例
以西门子 S7-1200 为例,使用结构化文本(SCL)进行缩放计算。将以下逻辑植入功能块中。
// 定义变量
// RawValue: INT (来自模拟量通道)
// Pressure: REAL (输出压力值)
// P_Min: REAL := 0.0
// P_Max: REAL := 10.0
// Raw_Min: INT := 0
// Raw_Max: INT := 27648
// 执行标定计算
IF #RawValue <= #Raw_Min THEN
#Pressure := #P_Min;
ELSIF #RawValue >= #Raw_Max THEN
#Pressure := #P_Max;
ELSE
#Pressure := (REAL(#RawValue - #Raw_Min) * (#P_Max - #P_Min)) / REAL(#Raw_Max - #Raw_Min) + #P_Min;
END_IF;
注意:必须处理超出范围的情况,防止压力值显示负数或超量程错误。
6. 验证与误差分析
标定完成后,必须验证线性度,确保中间点准确。
- 施加 50% 量程压力(如
0.5MPa)。 - 记录万用表电流值,应为
12.00mA左右。 - 记录PLC 显示压力值,应为
0.50MPa左右。 - 计算相对误差:$\delta = \frac{|P_{display} - P_{standard}|}{P_{max}} \times 100\%$。
- 确认误差在允许范围内(通常要求
< 0.5%)。
若误差过大,检查以下潜在问题:
- 接地干扰:信号线屏蔽层是否单端接地。
- 电源波动:24V 电源是否稳定,纹波是否过大。
- 线路阻抗:回路总电阻是否超过传感器负载能力(通常
< 500\Omega)。 - 温度影响:传感器是否未进行温度补偿,环境温度变化过大。
7. 常见问题排查
遇到信号异常时,按照下表诊断故障原因。
| 故障现象 | 可能原因 | 解决方法 |
|---|---|---|
| 读数恒为 0 | 接线断路或电源未通 | 检查 24V 供电及回路通断 |
| 读数恒为最大值 | 信号线短路或模块损坏 | 测量 端子间电阻,更换模块测试 |
| 数值跳动剧烈 | 接地不良或变频器干扰 | 增加 信号滤波器,完善 接地网 |
| 压力显示负值 | 零点偏移过大 | 重新执行 零点标定步骤 |
| 响应速度过慢 | 滤波时间常数设置过大 | 减小 硬件组态中的滤波时间 |
完成上述所有步骤后,保存项目文件并备份参数,标定工作结束。

暂无评论,快来抢沙发吧!