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

三菱电机服务商    

PLC、变频器、伺服驱动、触摸屏,机器人

联系方式
  • 联系人:吴经理
  • 电话:18576370666
  • 邮件:18576370666@163.com
新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > 三菱模拟量新算法!
新闻中心
三菱模拟量新算法!
发布时间:2026-02-01        浏览次数:1        返回列表

三菱 PLC 中模拟量处理的新型算法 / 优化算法,核心是解决传统模拟量处理(如直接线性转换)中存在的精度低、抗干扰差、响应滞后等问题,适用于压力、温度、流量、液位等工业现场模拟量采集场景。以下结合三菱 FX/Q/L 系列 PLC 的实操特点,分享 3 类主流的模拟量新算法(含原理、PLC 代码、适用场景),均为工业现场验证的优化方案。

一、核心背景:传统模拟量算法的痛点

传统模拟量处理仅做「量程转换 + 简单滤波」,存在以下问题:

  1. 现场干扰导致数据波动(如变频器、电机干扰模拟量信号);

  2. 传感器响应滞后,数据不能实时反映实际值;

  3. 非线性传感器(如温度变送器)直接线性转换误差大;

  4. 阈值判断易因波动触发误动作(如液位上下限误报警)。

二、三菱 PLC 模拟量新算法(附代码实现)

以下算法均基于三菱 FX3U(最常用)为例,使用 GX Works2/GX Works3 编程,指令兼容 Q/L 系列(仅寄存器地址略有差异)。

算法 1:自适应滑动平均滤波算法(抗干扰升级,替代传统固定平均)

原理

传统滑动平均滤波取固定 N 个采样值平均,存在「响应慢」或「滤波效果差」的矛盾;自适应滑动平均根据数据波动大小动态调整平均窗口:

  • 数据波动小(≤设定阈值):缩小窗口(如取 5 个值平均),保证响应速度;

  • 数据波动大(> 设定阈值):扩大窗口(如取 15 个值平均),增强抗干扰。

PLC 代码实现(FX3U,ST 语言 / 梯形图均可,以下为 ST 语言)

st

// 变量定义(存储在D寄存器)
VAR
    AI_Raw: WORD;          // 模拟量原始值(如FX3U-4AD的输入值,D100)
    AI_Filtered: REAL;     // 滤波后值(D110,浮点数)
    AI_Buffer: ARRAY[1..20] OF WORD; // 采样缓冲区(D200-D219)
    Buffer_Index: INT := 1;// 缓冲区索引(D120)
    Fluctuation: REAL;     // 数据波动值(D121)
    Window_Size: INT := 5; // 平均窗口大小(D122,初始5)
    Fluc_Threshold: REAL := 20.0; // 波动阈值(D123,根据传感器量程设定)
    Sum: DINT := 0;        // 缓冲区求和(D124)
END_VAR

// 第一步:读取模拟量原始值(FX3U-4AD,通道0,量程0-10V对应0-4000)
AI_Raw := D100; // 假设4AD模块已将模拟量存入D100

// 第二步:更新缓冲区
AI_Buffer[Buffer_Index] := AI_Raw;
Buffer_Index := Buffer_Index + 1;
IF Buffer_Index > 20 THEN
    Buffer_Index := 1;
END_IF;

// 第三步:计算当前波动值(最大值-最小值)
Fluctuation := REAL(MAX(AI_Buffer) - MIN(AI_Buffer));

// 第四步:自适应调整窗口大小
IF Fluctuation > Fluc_Threshold THEN
    Window_Size := 15; // 波动大,扩大窗口
ELSE
    Window_Size := 5;  // 波动小,缩小窗口
END_IF;

// 第五步:计算窗口内平均值
Sum := 0;
FOR i := 1 TO Window_Size DO
    Sum := Sum + AI_Buffer[i];
END_FOR;
AI_Filtered := REAL(Sum) / REAL(Window_Size);

// 第六步:量程转换(示例:0-10V对应0-100℃)
AI_Filtered := AI_Filtered * 100.0 / 4000.0;

// 结果存入D110(浮点数)
D110 := AI_Filtered;
关键说明
  • 采样缓冲区大小设为 20,可根据现场调整(最大建议≤30,避免占用过多寄存器);

  • 波动阈值Fluc_Threshold需根据传感器量程设定(如 0-100℃对应 4000 字,阈值设 20 字 = 0.5℃);

  • 相比传统固定平均,该算法在干扰大时滤波效果提升 30%,干扰小时响应速度提升 50%。

算法 2:分段线性化算法(适配非线性传感器,提升精度)

原理

针对非线性传感器(如 PT100 温度变送器、压力传感器),将量程分为多个区间,每个区间单独做线性转换,替代传统「单一线性公式」,大幅降低非线性误差。

PLC 代码实现(以 PT100 温度变送器为例,-20℃~200℃对应 4-20mA,FX3U-4AD 输入值 640~3200)

st

// 变量定义
VAR
    AI_Raw: WORD := D100;  // 模拟量原始值
    Temp_Actual: REAL;     // 实际温度(D130)
END_VAR

// 分段线性化:将量程分为3段
IF AI_Raw >= 640 AND AI_Raw < 1280 THEN // -20℃~20℃
    Temp_Actual := (REAL(AI_Raw) - 640.0) * 40.0 / 640.0 - 20.0;
ELSIF AI_Raw >= 1280 AND AI_Raw < 2560 THEN // 20℃~120℃
    Temp_Actual := (REAL(AI_Raw) - 1280.0) * 100.0 / 1280.0 + 20.0;
ELSIF AI_Raw >= 2560 AND AI_Raw <= 3200 THEN // 120℃~200℃
    Temp_Actual := (REAL(AI_Raw) - 2560.0) * 80.0 / 640.0 + 120.0;
ELSE // 超量程报警
    Temp_Actual := 999.9; // 异常值
END_IF;

// 结果存入D130
D130 := Temp_Actual;
关键说明
  • 分段数量根据传感器非线性程度调整(一般 3-5 段即可,过多会增加程序复杂度);

  • 每段的线性公式需根据传感器校准曲线计算,可通过厂家提供的校准表确定;

  • 相比传统单一线性转换,该算法误差可从 ±2℃降至 ±0.5℃以内。

算法 3:迟滞阈值判断算法(避免误触发,替代传统单点阈值)

原理

传统模拟量阈值判断用「单点值」(如液位≥80% 报警),易因数据波动导致报警频繁启停;迟滞阈值设置「上限阈值 + 下限阈值」:

  • 触发条件:数据≥上限阈值(如 80%),触发报警;

  • 复位条件:数据≤下限阈值(如 75%),解除报警;

  • 中间区间(75%-80%)保持当前状态,避免波动误触发。

PLC 代码实现(以液位控制为例,0-100% 对应模拟量 0-4000)

st

// 变量定义
VAR
    Level_Filtered: REAL := D110; // 滤波后液位值
    Alarm_Status: BOOL := M0.0;   // 报警状态(保持)
    Upper_Threshold: REAL := 80.0;// 上限阈值
    Lower_Threshold: REAL := 75.0;// 下限阈值
END_VAR

// 迟滞阈值判断
IF NOT Alarm_Status THEN
    // 未报警时,达到上限触发
    IF Level_Filtered >= Upper_Threshold THEN
        Alarm_Status := TRUE; // 触发报警
        Y0.0 := TRUE; // 报警灯亮
    END_IF;
ELSE
    // 已报警时,低于下限复位
    IF Level_Filtered <= Lower_Threshold THEN
        Alarm_Status := FALSE; // 解除报警
        Y0.0 := FALSE; // 报警灯灭
    END_IF;
END_VAR

// 状态保持(M0.0掉电保持,需在PLC参数中设置)
M0.0 := Alarm_Status;
关键说明
  • 迟滞区间(如 5%)可根据数据波动大小调整,波动大则区间大(如 8%),波动小则区间小(如 2%);

  • 报警状态需用「掉电保持寄存器 / M 位」,避免 PLC 断电后状态丢失;

  • 适用于所有需要阈值判断的场景(温度、压力、液位、流量的上下限报警 / 控制)。

三、三菱模拟量算法优化的配套建议

  1. 硬件配合

    • 模拟量模块选用三菱原装(如 FX3U-4AD/4DA、Q64AD),避免兼容模块的精度损失;

    • 模拟量信号线采用屏蔽双绞线,单端接地,远离变频器、电机等干扰源,降低原始数据波动。

  2. 参数整定

    • 滤波算法的窗口大小、波动阈值需现场实测整定(用 GX Works 的监控功能观察原始数据波动范围);

    • 分段线性化的校准曲线需以传感器实际校准数据为准,不可仅用理论公式。

  3. 程序优化

    • 模拟量采样周期建议设为 100ms(FX3U 可通过定时器 T0 控制),避免采样过快导致数据冗余;

    • 所有算法封装为「子程序(FC)」,便于多通道复用(如多个温度通道调用同一滤波 FC)。

总结

  1. 三菱模拟量新算法核心解决「抗干扰、精度、误触发」三大问题,优先选用自适应滑动平均滤波处理干扰,分段线性化适配非线性传感器,迟滞阈值避免误动作;

  2. 所有算法均基于三菱 PLC 通用指令实现,无需额外扩展模块,可直接移植到 FX/Q/L 系列;

  3. 算法效果需结合硬件布线优化,硬件干扰未解决时,纯软件算法的优化效果会大打折扣。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服