摘要: 模拟量信号(如 4-20mA)对于新手是个门槛。本文通过 S7-200 SMART 的标准化指令 SCALE_X,将复杂的换算过程简化为“填空”,轻松读取温度值。
一、 问题根源:为什么需要转换?
我们的温度变送器将 0-100℃ 的温度,线性地转换成 4-20mA 的电流信号。PLC 的模拟量输入模块接收到这个电流后,将其转换成一个内部的数字量。这个数字量的范围是固定的,比如 0-27648(对于 4-20mA 信号)。
所以,我们需要解决一个数学问题:如何将 AIW16 通道里读到的数值(比如 13824),对应成实际的温度值(比如 50.0℃)?
二、 SCALE_X 指令:你的单位转换器
SCALE_X 指令(在“缩放”指令库中)就是专门干这个的。它帮你完成了线性映射的计算。
参数详解:
输入:
MIN:你的工程量下限,对应 4mA。这里是0.0(℃)。MAX:你的工程量上限,对应 20mA。这里是100.0(℃)。
输出:
OUT:转换后的实际工程值,比如50.0(℃)。
连接:
V:这里填你从模拟量通道直接读取的 原始值。比如AIW16。
三、 编程实战步骤
硬件组态: 在系统块中,正确配置你的模拟量输入通道,信号类型选择 4-20mA 电流。
调用指令: 在程序块中,从左侧指令树的“库”->“Scale”里找到
Scale指令,拖到程序中。填写参数:
在
V管脚处,填入AIW16(假设温度变送器接在第一个通道)。在
MIN管脚处,填入0.0。在
MAX管脚处,填入100.0。在
OUT管脚处,填入一个实数型地址,如VD100(用来存放计算出的温度值)。
下载运行:
当程序运行时,SCALE_X 指令会自动完成以下计算:
VD100 = (AIW16 - 5530) / (27648 - 5530) * (100.0 - 0.0) + 0.0注意: 实际上,指令内部已经处理了 4mA 对应的起始值 5530(=27648 * 4/20),你只需要告诉它 0-100℃ 这个最终范围即可,非常简单!
现在,VD100 里存放的就是实时的温度值了。你可以把它显示在 HMI 上,或者用于逻辑判断(如超温报警)。
RAYBET雷竞技首页官网