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

AB罗克韦尔服务商    

PLC、变频器、人机界面、传感器

联系方式
  • 联系人:方经理
  • 电话:13073017555
  • 邮件:gzws26@126.com
新闻分类
  • 暂无分类
首页 > 新闻中心 > 如何在AB罗克韦尔PLC中使用公式运算实现线性函数?
新闻中心
如何在AB罗克韦尔PLC中使用公式运算实现线性函数?
发布时间:2026-04-05        浏览次数:0        返回列表

AB 罗克韦尔 PLC 用公式实现线性函数

我给你最标准、最通用、所有 AB 系列都能用的公式实现方法,梯形图 + ST 文本双版本,一步一步照着做就能用。

一、AB PLC 线性函数标准公式

你要实现的是:y = kx + b

在工控里,标准写法是:

y = ( (x - x_min) × (y_max - y_min) ) / (x_max - x_min) + y_min


二、你只需要 4 个参数

  1. x:输入值(自变量,比如温度、计数器、AI、时间)

  2. x_min、x_max:输入范围

  3. y_min、y_max:输出范围(模拟量 AO / 控制目标)

  4. y:最终输出值


三、最清晰:结构化文本 ST 实现

AB 所有 PLC(Logix5000 / Micro800)都支持,最直观、最不容易错

1. 先定义变量(REAL 类型)

st

2. 直接写公式

st

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

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

3. 送给模拟量输出 AO

st

// 例:4-20mA 对应 6241~31206
Local:2:O.Ch0Data := REAL_TO_INT(y);

四、梯形图实现(纯指令,不用 SCP)

按顺序用这 5 个指令:

  1. SUB 减法

  2. SUB 减法

  3. MUL 乘法

  4. DIV 除法

  5. ADD 加法

梯形图步骤

plaintext

1. x - x_min        → A
2. y_max - y_min    → B
3. A × B            → C
4. C ÷ (x_max - x_min) → D
5. D + y_min        → y

指令对应:

plaintext

SUB  x, x_min, A
SUB  y_max, y_min, B
MUL  A, B, C
SUB  x_max, x_min, E
DIV  C, E, D
ADD  D, y_min, y
LIMIT y_min, y, y_max  // 最后限幅

五、超实用例子

需求

输入 x:0 ~ 1000输出 AO:4-20mA → 6241 ~ 31206

公式计算

plaintext

y = ((x - 0) * (31206 - 6241)) / (1000 - 0) + 6241

ST 代码

st

x := 计数器D0;
x_min := 0.0;
x_max := 1000.0;
y_min := 6241.0;
y_max := 31206.0;

y := ((x - x_min) * (y_max - y_min)) / (x_max - x_min) + y_min;
y := LIMIT(y_min, y, y_max);
Local:2:O.Ch0Data := REAL_TO_INT(y);

六、关键注意事项

必须用 REAL 浮点数运算不要用 INT,会丢精度、输出不准。

  1. 必须加 LIMIT 限幅防止 x 超范围导致 AO 输出超限。

  2. AO 模块必须设为:Raw 格式不要用工程单位模式,否则公式无效。

  3. 4-20mA 固定范围6241 = 4mA31206 = 20mA。

收缩
  • 电话咨询

  • 13073017555
  • 添加微信客服