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

西驰电气专营    

变频器、软启动器

新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > 如何用三角波、正弦波实现模拟量的自动来回变化?
新闻中心
如何用三角波、正弦波实现模拟量的自动来回变化?
发布时间:2026-03-01        浏览次数:13        返回列表

一、三角波(最常用:匀速上升 + 匀速下降)

实现思路

从最小值 → 匀速上升 → 到最大值 → 匀速下降 → 到最小值 → 循环

通用程序逻辑(所有 PLC / 组态王都能写)

你只需要定义 3 个变量

  • AO:输出模拟量(0~100 或 4~20mA 对应工程量)

  • Step:步长(变化速度,比如 0.5)

  • Dir:方向(0 = 上升,1 = 下降)

定时程序(100ms 执行一次)

plaintext

// 三角波核心逻辑
IF Dir = 0 THEN    // 上升
    AO = AO + Step;
    IF AO >= 100 THEN  // 到上限,开始下降
        Dir = 1;
    END_IF;
ELSE              // 下降
    AO = AO - Step;
    IF AO <= 0 THEN    // 到下限,开始上升
        Dir = 0;
    END_IF;
END_IF;

效果

0 → 100 → 0 → 100 → 0 匀速来回完美用于:

  • 模拟液位 / 温度 / 压力变化

  • 测试模拟量输出

  • 调试组态王曲线


二、正弦波(平滑、柔和、波浪式变化)

实现思路

平滑的波浪形,不是匀速,两头慢、中间快,最接近真实物理波动。

通用程序(直接用,不用懂数学)

只需要 2 个变量

  • Angle:角度(0~360 循环)

  • AO:输出模拟量(0~100)

定时程序(100ms 执行一次)

plaintext

// 角度自增(控制速度)
Angle = Angle + 5;

// 超过360度归零
IF Angle > 360 THEN
    Angle = 0;
END_IF;

// 正弦波输出 0~100
AO = 50 + 50 * SIN(Angle * 3.14159 / 180);

效果

平滑波浪:0 → 50 → 100 → 50 → 0 →...非常适合:

  • 模拟流量波动

  • 模拟液位晃动

  • 模拟温度波动


三、最关键:速度怎么调?

  • 三角波:改 Step 步长

    • 越大 → 越快

  • 正弦波:改角度增量 Angle = Angle + X

    • X 越大 → 波浪越快


四、你直接复制的版本(0~100 标准量程)

三角波(复制即用)

plaintext

IF Dir = 0 THEN
    AO := AO + 0.5;
    IF AO >= 100 THEN Dir := 1; END_IF;
ELSE
    AO := AO - 0.5;
    IF AO <= 0 THEN Dir := 0; END_IF;
END_IF;

正弦波(复制即用)

plaintext

Angle := Angle + 5;
IF Angle > 360 THEN Angle := 0; END_IF;
AO := 50 + 50 * SIN(Angle * 3.14159 / 180);

五、如果你要 4~20mA 输出

直接把范围映射一下即可:

  • 三角波:下限 = 4,上限 = 20

  • 正弦波:AO = 12 + 8 * SIN(...)

收缩
  • QQ咨询

  • 电话咨询

  • 13073017555
  • 添加微信客服