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

ABB变频器服务商    

ABB变频器

联系方式
  • 联系人:方经理
  • 电话:13073017555
  • 邮件:gzws26@126.com
新闻分类
  • 暂无分类
站内搜索
 
友情链接
首页 > 新闻中心 > 如何在ABB PLC中使用公式运算实现线性函数?
新闻中心
如何在ABB PLC中使用公式运算实现线性函数?
发布时间:2026-04-05        浏览次数:2        返回列表

一、线性函数通用公式

y=xmaxxminxxmin×(ymaxymin)+ymin

或者你要最简单的斜率截距形式:y=k×x+b

ABB PLC 里直接在 ST 结构化文本 里写公式最方便,梯形图也能用浮点运算块实现。


二、ABB PLC 实现步骤

1. 变量定义(REAL 浮点)

VAR 里定义:

st

VAR
    x        : REAL;  // 输入值(AI、计数器、位置等)
    x_min    : REAL;  // 输入最小值
    x_max    : REAL;  // 输入最大值
    y_min    : REAL;  // 输出最小值
    y_max    : REAL;  // 输出最大值
    y        : REAL;  // 线性输出结果
END_VAR

2. 直接写线性公式(复制即用)

st

// 线性函数计算
y := ((x - x_min) / (x_max - x_min)) * (y_max - y_min) + y_min;

// 限幅(必须加,防止超量程)
y := LIMIT(y, y_min, y_max);

这就是 ABB 里等价于 SCP 缩放的纯公式实现。


三、如果你只要最简单的 y = kx + b

直接写:

st

y := k * x + b;
y := LIMIT(y, 下限, 上限);

例如:

st

y := 1.25 * x + 30.0;

四、梯形图方式(浮点运算块)

如果你必须用梯形图,就按顺序拖块:

  1. SUB:x − x_min

  2. SUB:x_max − x_min

  3. DIV:(x−x_min) ÷ (x_max−x_min)

  4. SUB:y_max − y_min

  5. MUL:结果 × (y_max−y_min)

  6. ADD:+ y_min

  7. LIMIT:限幅

和公式完全一一对应。


五、实战例子:模拟量输出 AO

需求

  • 输入 x:0 ~ 1000

  • 输出 AO:4–20mA → 对应 0 ~ 276486241 ~ 31206(看模块)

  • 线性跟随

程序

st

x := INT_TO_REAL(AI1);        // AI 整数转浮点
x_min := 0.0;
x_max := 1000.0;
y_min := 6241.0;    // 4mA
y_max := 31206.0;   // 20mA

y := ((x - x_min)/(x_max - x_min))*(y_max - y_min) + y_min;
y := LIMIT(y, y_min, y_max);

AO1 := REAL_TO_INT(y);

六、ABB PLC 关键注意点

  1. 一定要用 REAL 浮点INT 整数运算会丢精度,线性输出不准。

  2. 必须 LIMIT 限幅防止输入超范围导致 AO 输出爆表。

  3. AI/AO 要做类型转换

    • AI 整数 → INT_TO_REAL

    • AO 输出 → REAL_TO_INT

  4. ABB 不叫 SCP 指令线性缩放就是用上面这条公式,所有品牌通用。

收缩
  • QQ咨询

  • 电话咨询

  • 13073017555
  • 添加微信客服