在S7-200 PLC中,将温度传感器(如热电偶或热电阻)的模拟量输入转换为数字量(即实际温度值)需经过硬件配置和软件编程两个步骤。以下是详细流程:
一、硬件配置
选择温度传感器类型
热电偶(如K型、J型):需使用EM231 TC模块(支持2路热电偶输入)。
热电阻(如PT100、PT1000):需使用EM231 RTD模块(支持2路热电阻输入)。
模拟量输入模块(如EM231 AI):若传感器输出4~20mA或0~10V信号,需配置为对应量程。
模块接线与DIP开关设置
接线:将传感器输出信号(4~20mA或0~10V)接入模块端子(如AIW0+、AIW0-)。
DIP开关:设置输入量程(如0~20mA或4~20mA)。
接线:将热电阻三线制接入模块端子(如RTD1+、RTD1-、RTD1C)。
DIP开关:设置电阻类型(如PT100)、导线补偿(默认3线制)。
接线:将热电偶正负极接入模块端子(如TC1+、TC1-)。
DIP开关:设置传感器类型(如K型)、冷端补偿(默认开启)。
EM231 TC模块:
EM231 RTD模块:
EM231 AI模块:
PLC硬件组态
在STEP 7-Micro/WIN中,通过“系统块”→“模拟量输入”配置模块通道类型(如温度、电流、电压)。
二、软件编程
方法1:直接读取模块转换后的数字量(推荐)
EM231 TC/RTD模块内部已将温度值转换为数字量(单位为0.1℃或0.1℉),可直接读取:
读取原始值
热电偶模块:温度值存储在AIWx寄存器中(如AIW0),单位为0.1℃(例如AIW0=250表示25.0℃)。
热电阻模块:同理,AIWx单位为0.1℃。
编程示例
ladLD SM0.0 // 常ON触点MOVW AIW0 VW10 // 将AIW0的值存入VW10(实际温度×10) // 若需显示为整数温度,可除以10(但S7-200无除法指令,需用浮点运算)
浮点运算示例(转换为实际温度值):
ladLD SM0.0LDW AIW0 // 读取AIW0 ITD D0 VD4 // 整数转双整数(扩展精度) DTR VD4 VD8 // 双整数转实数 LDR 0.1 // 加载0.1(分度值) /R VD8 VD0 // VD8 / 0.1 → VD0(实际温度值)
方法2:模拟量输入模块(EM231 AI)的线性转换
若使用EM231 AI模块接收4~20mA信号(如温度变送器输出),需手动线性转换:
确定量程
假设温度变送器量程为0~100℃,输出4~20mA。
AIWx原始值范围:6400(4mA)~32000(20mA)。
线性转换公式
温度=32000−6400(AIWx−6400)×100
简化后:
温度=25600(AIWx−6400)×100
编程示例
ladLD SM0.0LDW AIW0 // 读取AIW0 SUBW 6400 // AIW0 - 6400 MOVD WD0 VD4 // 结果存入VD4 LDW #100 // 加载温度量程上限 MULD VD4 WD0 VD8 // VD4 × 100 → VD8 LDW #25600 // 加载分母 DDIV VD8 WD0 VD12 // VD8 / 25600 → VD12(实际温度值)
优化版(使用整数运算简化):
若仅需整数温度值,可省略浮点运算:ladLD SM0.0LDW AIW0 SUBW 6400 MOVD WD0 VD4 LDW #100 MULD VD4 WD0 VD8 LDW #25600 DIV VD8 WD0 VD12 // 整数除法(结果为整数部分) MOVW VD12 VW10 // 存入VW10
三、注意事项
模块类型匹配
热电偶/热电阻必须使用专用模块(EM231 TC/RTD),普通AI模块无法直接处理。
若传感器输出4~20mA,需确认变送器量程与PLC量程一致(如0~100℃对应4~20mA)。
数据类型处理
S7-200的整数运算指令(如
DIV)会截断小数部分,需用浮点指令(如DDIV)保留精度。若使用HMI显示温度,建议将结果转换为浮点数(
REAL类型)。调试验证
通过PLC监控表观察AIWx原始值,确认是否在预期范围内(如4~20mA对应6400~32000)。
用标准温度源(如冰点槽、恒温水浴)校准模块,确保转换精度。
四、总结
直接读取温度模块:EM231 TC/RTD模块输出已为温度值(单位0.1℃),直接读取AIWx即可。
模拟量输入模块转换:EM231 AI需通过线性公式将4~20mA信号转换为实际温度值,需注意数据类型和精度。
编程关键:正确配置模块量程、使用合适的数学运算指令、处理数据类型转换。

