导读
在工业现场,温度是最常见的测量参数之一。如何将温度传感器的信号正确接入PLC,并在程序中组态和读取温度值,是每个PLC工程师必须掌握的基本功。
本文将以西门子S7-1200 PLC + TIA博图(TIA Portal)为平台,带你走通从传感器选型、硬件接线、模块组态到程序编写的完整流程。同时也会介绍三菱、罗克韦尔等品牌的基本处理思路,让你一通百通。
一、先搞懂:温度传感器有哪些信号类型?
温度传感器不能直接输出温度数值给PLC,它输出的是电信号。常见的温度传感器输出信号有三种类型:
类型一:热电阻(RTD)直接输出电阻值
最常见的是PT100(铂电阻,0℃时阻值100Ω)。温度变化 → 阻值变化。例如:
● 0℃ → 100.00 Ω
● 100℃ → 138.51 Ω
● 需要专用RTD模块直接读取电阻值并换算为温度
类型二:热电偶(TC)输出毫伏电压
两种不同金属接触产生热电势(mV级电压)。常见型号:K型、J型、T型等。需要专用的TC模块来读取。
类型三:温度变送器输出标准模拟量信号(最常用!)
这是工程实践中最主流的方式:传感器(PT100或热电偶)+ 温度变送器 → 输出标准4-20mA或0-10V信号 → 接入PLC通用模拟量输入模块。
● 4-20mA电流信号:抗干扰能力强,可检测断线(电流为0即断线),是工业首选
● 0-10V电压信号:接线简单,但抗干扰能力弱,适合近距离使用
● 0-20mA电流信号:无断线检测功能,实际用得较少
RealPars建议(2026.2):温度变送器+通用AI模块的方式灵活性最高,AI模块可复用于其他控制回路,抗干扰能力强,适合长距离传输。是大多数工程项目的首选方案。
三种接入方式对比
| 接入方式 | 需要模块 | 优点 | 缺点 |
| PT100直连RTD模块 | 专用RTD模块 | 无需变送器,系统简单 | 仅适合近距离,模块专用 |
| 热电偶直连TC模块 | 专用TC模块 | 直接读取,成本低 | 需冷端补偿,精度受限 |
| 变送器→ 通用AI模块 |
通用AI模块 (4-20mA/0-10V) |
灵活通用,抗干扰强, 适合长距离 |
需额外配置变送器 |
二、硬件接线—— 线制识别与实操
温度变送器(4-20mA)的接线有"两线制""三线制""四线制"之分,这是现场最容易出错的地方。本节以西门子S7-1200配模拟量输入模块(如SM 1231 AI 4×13bit,订货号6ES7 231-4HD32-0XB0)为例。
两线制(2-Wire)—— 最常见
变送器只有两根线,既是电源线又是信号线。PLC模拟量模块的通道端子提供24V DC电源,变送器串接在回路中。
▸ 接线:变送器+端 → 模块通道的24V供电端(如L+),变送器-端 → 模块通道的AI+端,模块的AI-端 → 模块的M端
▸ 核心要点:模块通道必须设置为"电流(2线制变送器)"模式
四线制(4-Wire)—— 有独立供电
变送器有独立的电源线(接外部24V DC)和独立的信号输出线。
▸ 接线:变送器电源端接外部24V DC,变送器信号+ → 模块AI+,变送器信号- → 模块AI-
▸ 核心要点:模块通道必须设置为"电流(4线制变送器)"模式
常见错误:将4-20mA变送器的通道错误组态为电压测量(0-10V)——这会导致读数完全错误!软件中的通道组态(信号类型、量程)必须与实物传感器一致。这是现场调试中最高发的错误之一。
三、TIA博图硬件组态 —— 在软件中配置模块
硬件接好后,第一步是在TIA Portal的"设备和网络"视图中完成硬件组态。以下是详细步骤:
步骤1:添加模拟量输入模块
在项目树中双击"设备配置",将模拟量输入模块(如AI 4×13bit)从硬件目录拖入CPU右侧的扩展槽位。系统会自动分配I/O地址(例如起始地址IW100)。
步骤2:配置通道属性
双击模块→ 在属性窗口中找到"模拟量输入" → "通道0"(或其他通道号),设置以下参数:
● 测量类型:电流(或"电流(2线制变送器)"/"电流(4线制变送器)",根据实际接线选择)
● 电流范围:4..20 mA
● 平滑处理:建议设置为"弱"或"中等"(用于滤波)
● 诊断中断:根据需要勾选(建议开启,便于故障排查)
对于4-20mA信号,西门子S7-1200内部A/D转换后的数字量范围为:
● 0 mA → 数字量 0
● 4 mA → 数字量 5530
● 20 mA → 数字量 27648
● 超出量程(>20mA或<0mA)会有溢出指示
步骤3:编译下载
点击"编译" → "下载到设备",将硬件配置下载到PLC中。下载完成后,模块的指示灯应正常亮起,没有红色故障灯。
四、程序编写—— 将数字量转换为温度值
这是本文最核心的部分。假设我们使用一个温度变送器:
● 传感器量程:0 ~ 100 ℃
● 输出信号:4 ~ 20 mA
● 接入模块通道地址:IW100
西门子S7-1200(TIA博图)处理模拟量的标准方法是使用两个关键指令:NORM_X(标准化)和 SCALE_X(缩放)。这也是西门子官方推荐的标准做法(来源:西门子工业支持文档ID 109814829)。
数据处理流程:
模拟量输入(IW100, 0~27648) → NORM_X → 浮点数(0.0~1.0) → SCALE_X → 温度值(0.0~100.0 ℃)
指令详解
| 指令 | 作用 | 参数说明 |
|
NORM_X (标准化) |
将输入的数字量映射到 0.0~1.0之间的浮点数 |
MIN = 0(数字量下限) VALUE = IW100(输入地址) MAX = 27648(数字量上限) OUT → 传给SCALE_X的VALUE |
|
SCALE_X (缩放) |
将0.0~1.0的浮点数映射 到实际工程量范围 |
MIN = 0.0(温度下限,℃) VALUE = NORM_X的OUT MAX = 100.0(温度上限,℃) OUT → 最终温度值(Real型) |
在TIA博图中编写程序的具体操作:
① 打开OB1(主程序块),从右侧指令列表中拖入 NORM_X 指令(位于"基本指令→转换操作"下)
② 在NORM_X的MIN引脚输入0,VALUE引脚输入"IW100"(或使用%IW100格式),MAX引脚输入27648
③ 拖入 SCALE_X 指令,将NORM_X的OUT连接到SCALE_X的VALUE引脚
④ 在SCALE_X的MIN引脚输入0.0,MAX引脚输入100.0
⑤ SCALE_X的OUT输出即为最终温度值(Real型),可存入DB块中的变量(如"温度值")
数据变化举例验证:
| 信号电流 | PLC数字量 | NORM_X输出 | SCALE_X输出(℃) |
| 4 mA | 5530 | 0.2 | 20.0 |
| 12 mA | 13824 | 0.5 | 50.0 |
| 20 mA | 27648 | 1.0 | 100.0 |
| 0 mA(断线) | 0 | 0.0 | 0.0(需做断线判断) |
通用换算公式(不依赖指令块,适用于所有品牌PLC):
温度值 = (AI - K2) / (K1 - K2) × (量程上限 - 量程下限) + 量程下限
其中:
● AI = 当前模拟量输入的原始数字量
● K1 = 数字量上限(西门子S7-1200: 27648)
● K2 = 数字量下限(西门子S7-1200: 0,但4mA对应5530)
● 量程上/下限 = 温度传感器的量程(如 0~100℃)
简化后(0~100℃,4-20mA,S7-1200):
温度值 = (AI / 27648) × 100.0
五、断线检测与报警处理—— 程序的"安全防线"
4-20mA信号的一个重要优势是可以检测断线:当回路断开时,电流降为0mA,PLC读取的数字量也变为0。在程序中需要做以下判断:
● 当数字量 < 5530(即电流 < 4mA),可能是传感器断线或故障
● 当数字量 > 27648(即电流 > 20mA),可能是传感器短路或超量程
● 在程序中添加比较指令,检测到异常值时触发报警,并保持上一次有效值
西门子S7-1200的模拟量模块可以开启"诊断中断"功能。当发生断线、超量程等故障时,模块会自动触发诊断中断,无需在程序中持续轮询判断,更加高效可靠。
六、其他品牌PLC的处理方法 —— 一通百通
虽然本文以西门子S7-1200为例,但模拟量处理的核心原理在所有品牌PLC中都是一样的。以下是其他主流品牌的处理方式对比:
| 品牌 | 数字量范围(4-20mA) | 推荐处理方式 | 软件平台 |
| 西门子 S7-1200/1500 | 0 ~ 27648 | NORM_X + SCALE_X | TIA Portal |
| 三菱 FX5U / R系列 |
0 ~ 4000 (FX) 0 ~ 32000 (R) |
SCL指令(缩放指令) 或数学运算公式 |
GX Works3 |
|
罗克韦尔 ControlLogix / CompactLogix |
模块自动缩放 (Engineering Units) |
模块属性中直接设置 工程量范围,无需编程 |
Studio 5000 (RSLogix 5000) |
注意:罗克韦尔(Allen-Bradley)的ControlLogix/CompactLogix平台最为方便——在模块属性中直接设置4-20mA对应0-100℃的工程量范围,模块自动完成缩放,PLC程序中读取的就已经是温度值,无需额外编程。
七、常见问题与排查清单
Q1: 读到的温度值一直为0?
检查模块通道是否已正确组态(信号类型、量程)、检查接线是否正确、检查变送器是否有24V供电、检查IW地址是否与程序中的一致。
Q2: 读到的值乱跳不稳定?
在模块属性中增大"平滑处理"(滤波)等级;检查接线是否有松动或干扰;检查变送器接地是否良好;在程序中增加滑动平均滤波。
Q3: 温度值明显偏高或偏低?
检查模块通道组态是"电流"还是"电压",确认量程设置与变送器一致;检查变送器本身量程设置是否正确;用万用表实测回路电流验证。
Q4: NORM_X报错?
检查MIN和MAX参数的数据类型是否匹配(通常应为Int或DInt);确保VALUE输入值在MIN和MAX之间。
Q5: 4-20mA和0-20mA有什么区别?
4-20mA可以检测断线(电流为0=断线),0-20mA无法区分0mA是"0信号"还是"断线"。工业现场优先使用4-20mA。
八、总结
将温度传感器接入PLC并进行组态,整体流程可以概括为以下四步:
1. 选型确认:确定传感器类型(PT100/热电偶/带变送器)和输出信号(4-20mA/0-10V/电阻/mV)
2. 硬件接线:根据线制(2线/3线/4线)正确接线,特别注意区分电源线和信号线
3. 软件组态:在TIA博图中配置模块通道属性,设置测量类型和量程(必须与实物一致)
4. 程序编写:使用NORM_X+SCALE_X将数字量转换为温度值,加入断线检测和报警逻辑
只要理解了信号类型→数字量→工程量的转换逻辑,无论使用哪个品牌的PLC,核心思路都是一样的。掌握了本文的内容,你就具备了处理工业现场绝大多数温度测量场景的能力。
最后提醒一句:在下载程序前,反复核对模块通道组态(信号类型、量程)是否与实物传感器一致。这是现场调试中最常见也最容易避免的错误。配置必须匹配!
全部0条评论
快来发表一下你的评论吧 !