返回主站|会员中心|保存桌面

明纬电源服务商    

明纬开关电源

联系方式
  • 联系人:吴经理
  • 电话:18576370666
  • 邮件:18576370666@163.com
新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > 触摸屏数值输入到变量,如何计算到PLC的模拟量输出?
新闻中心
触摸屏数值输入到变量,如何计算到PLC的模拟量输出?
发布时间:2025-12-16        浏览次数:1        返回列表

在触摸屏上输入数值,将这个数值传递到 PLC 的变量中,再通过计算把该变量转换为 PLC 模拟量输出(如 4-20mA、0-10V)对应的数值,最终驱动模拟量模块输出信号。这个过程核心是数值的标度变换(工程量与模拟量量程的转换),以下是详细的实现步骤,以常见的 PLC(三菱 FX、西门子 S7-1200)为例说明。

一、核心原理:标度变换公式

PLC 的模拟量输出模块(如 AO 模块)的输出值实际工程量之间是线性对应关系,需要通过公式完成转换:

1. 模拟量输出模块的量程对应关系

以最常见的4-20mA 电流输出0-10V 电压输出为例:

模拟量输出类型工程量范围(用户输入的数值范围,如 0-100% 转速)PLC 内部数字量范围(如 16 位 AO 模块,常见 0-27648 或 0-32767)对应关系
4-20mA0~100(假设为转速百分比)5530~27648(西门子 S7-1200/1500 标准)0~4095(三菱 FX 模拟量模块,4mA 对应 819,20mA 对应 4095)4mA 对应工程量最小值,20mA 对应最大值
0-10V0~50(假设为温度设定值)0~27648(西门子)0~4095(三菱)0V 对应最小值,10V 对应最大值

2. 通用标度变换公式(线性转换)

plaintext

转换后数字量 = ((工程量输入值 - 工程量最小值) / (工程量最大值 - 工程量最小值)) × (数字量最大值 - 数字量最小值) + 数字量最小值

这个公式的作用是将触摸屏输入的工程量(如 0-100 的转速) 转换为模拟量模块能识别的数字量(如 5530-27648)

二、实现步骤(分 PLC 型号说明)

场景前提

假设需求:触摸屏输入0-100 的转速百分比,PLC 模拟量输出4-20mA驱动变频器(4mA 对应 0 转速,20mA 对应 100 转速)。


(一)西门子 S7-1200/1500 实现方案

1. 硬件与变量定义

  • 触摸屏:建立输入框,绑定 PLC 的DB1.DBD0(实数,命名为Speed_Set,对应 0-100 的转速输入)。

  • PLC 变量

    • Speed_Set:实数,触摸屏输入的转速值(0.0~100.0)。

    • AO_Output:整数,模拟量输出模块的数字量(5530~27648,对应 4-20mA)。

  • 模拟量模块:如 SM1232(AO 模块,4-20mA 输出,数字量范围 5530~27648)。

2. TIA Portal 中编写转换程序(梯形图 / STL)

使用结构化文本(ST) 编写转换逻辑,更简洁:

st

// 变量定义(在DB块中提前定义)
VAR
    Speed_Set: REAL := 0.0; // 触摸屏输入的转速值(0-100)
    AO_Output: INT := 0;    // 模拟量输出数字量(5530-27648)
    // 常量定义
    Eng_Min: REAL := 0.0;   // 工程量最小值(转速0)
    Eng_Max: REAL := 100.0; // 工程量最大值(转速100)
    Dig_Min: INT := 5530;   // 4mA对应的数字量
    Dig_Max: INT := 27648;  // 20mA对应的数字量
END_VAR

// 标度变换计算(加入边界限制,防止超量程)
IF Speed_Set < Eng_Min THEN
    AO_Output := Dig_Min;
ELSIF Speed_Set > Eng_Max THEN
    AO_Output := Dig_Max;
ELSE
    AO_Output := INT(((Speed_Set - Eng_Min) / (Eng_Max - Eng_Min)) * REAL(Dig_Max - Dig_Min) + REAL(Dig_Min));
END_IF;

// 将计算后的数字量写入模拟量输出模块(地址为QW100,根据模块实际地址调整)
"QW100" := AO_Output;

3. 关键说明

  • 边界限制:加入IF判断防止触摸屏输入值超出 0-100 时,模拟量输出超量程(如 20mA 以上)。

  • 模块地址:SM1232 的 AO 通道地址如 QW100、QW102 等,需根据硬件组态确认。


(二)三菱 FX 系列实现方案

1. 硬件与变量定义

  • 触摸屏:建立输入框,绑定 PLC 的D100(整数,命名为Speed_Set,对应 0-100 的转速输入)。

  • PLC 变量

    • D100:整数,触摸屏输入的转速值(0~100)。

    • D101:整数,模拟量输出数字量(819~4095,对应 4-20mA,FX2N-4DA 模块的量程)。

  • 模拟量模块:如 FX2N-4DA(4 通道 AO 模块,4-20mA 输出时,数字量范围 819~4095)。

2. GX Works2 中编写转换程序(梯形图)

plaintext

// 步骤1:初始化常量(上电执行)
LD M8002
MOV K0 D200    // Eng_Min = 0
MOV K100 D201  // Eng_Max = 100
MOV K819 D202  // Dig_Min = 819(4mA对应)
MOV K4095 D203 // Dig_Max = 4095(20mA对应)

// 步骤2:边界限制(防止输入值超出0-100)
LD M8000
CMP D100 K0 M0
// 如果D100 < 0,M0=1,设置为0
LD M0
MOV K0 D100
// 如果D100 > 100,M2=1,设置为100
CMP D100 K100 M3
LD M3
MOV K100 D100

// 步骤3:标度变换计算(公式转换)
// 计算:(D100 - D200) * (D203 - D202) / (D201 - D200) + D202
LD M8000
SUB D100 D200 D300        // D300 = Speed_Set - Eng_Min
SUB D203 D202 D301        // D301 = Dig_Max - Dig_Min
MUL D300 D301 D302        // D302 = (Speed_Set - Eng_Min) * (Dig_Max - Dig_Min)
DIV D302 D201 D303        // D303 = 上述结果 / (Eng_Max - Eng_Min)
ADD D303 D202 D101        // D101 = 最终数字量(写入模拟量模块)

// 步骤4:将D101写入FX2N-4DA模块的输出通道(如通道0)
LD M8000
MOV K0 K4Y000             // 选择通道0
MOV D101 D8192            // 将数字量写入模块的输出寄存器(FX2N-4DA的通道0寄存器为D8192)

3. 关键说明

  • FX 模拟量模块寄存器:FX2N-4DA 的各通道输出寄存器为 D8192(通道 0)、D8194(通道 1)等,需根据模块手册确认。

  • 除法处理:三菱 FX 的整数除法会舍去小数,若需要更高精度,可先放大 1000 倍计算,再缩小 1000 倍(如用浮点数指令 FLT 转换后计算)。


三、触摸屏设置要点

  1. 建立变量连接:在触摸屏组态软件(如威纶通 EBPro、西门子 WinCC)中,添加 PLC 的变量(如 D100、DB1.DBD0),设置为输入框类型。

  2. 输入限制:在触摸屏输入框中设置数值范围(如 0-100),防止用户输入超出工程量范围的数值,减少 PLC 端的处理压力。

  3. 数据类型匹配:触摸屏变量的数据类型需与 PLC 变量一致(如 PLC 用实数,触摸屏也选浮点数;PLC 用整数,触摸屏选整数)。

四、常见问题处理

  1. 模拟量输出与计算值不符

    • 检查模拟量模块的量程设置(如是否正确选择 4-20mA,而非 0-20mA)。

    • 核对标度变换公式中的常量(如 Dig_Min、Dig_Max 是否与模块手册一致)。

  2. 触摸屏输入值无法传递到 PLC

    • 检查触摸屏与 PLC 的通讯连接(如网线、串口是否正常,通讯参数是否匹配)。

    • 确认变量地址是否正确(如 DB 块编号、寄存器地址是否对应)。

总结

  1. 实现触摸屏输入转 PLC 模拟量输出的核心是线性标度变换公式,需根据工程量范围和模拟量模块的数字量范围完成转换。

  2. 编程时要加入边界限制逻辑,防止输入值超出范围导致模拟量输出异常。

  3. 触摸屏需与 PLC 做好变量地址和数据类型的匹配,并设置输入范围限制,提升系统稳定性。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服