安川 PLC 实现三次曲线函数 y = ax³+bx²+cx+d(完整步骤 + 公式 + 程序)
安川 PLC(MP/CP/GL 系列,软件 MPE720)实现 ** 三次曲线(立方曲线)** 非常简单,核心就是:分步浮点运算 + 严格公式拆解全程用 REAL 浮点数 计算,精度极高,可直接输出给模拟量 AO / 伺服 / 控制曲线。
一、三次曲线标准公式
y = a·x³ + b·x² + c·x + d
x:输入变量(时间、位置、AI、计数器)
a:三次项系数
b:二次项系数
c:一次项系数
d:常数项
y:最终输出(给 AO / 控制目标)
二、安川 PLC 必须用的指令(浮点运算)
安川梯形图里,所有运算必须用 F 开头浮点指令,否则精度丢失、曲线变形:
MULF:浮点乘法
ADDF:浮点加法
INT_TO_REAL:整数转浮点
REAL_TO_INT:浮点转整数
LIMITF:浮点限幅(保护输出)
三、最清晰:ST 文本实现
安川 MP/GL/CP 全系列支持 结构化文本 ST,写三次曲线最简单、最不容易错。
1. 变量定义
st
VAR X : REAL; // 输入值(时间/位置/AI) A : REAL; // x³ 系数 B : REAL; // x² 系数 C : REAL; // x 系数 D : REAL; // 常数 Y : REAL; // 最终输出 END_VAR
2. 三次曲线公式
st
// 三次曲线核心公式 Y := A * X * X * X + B * X * X + C * X + D; // 输出限幅(必须加,防止超量程) Y := LIMITF( Y, 最小值, 最大值 );
3. 输出到 AO 模拟量
st
// 浮点转整数 → 写入模拟量输出 QW0000 := REAL_TO_INT( Y );
四、梯形图分步实现
如果你必须用梯形图,就按下面7 步运算,完全对应公式:
步骤 1:输入 X 转浮点
plaintext
INT_TO_REAL IN=IW0000 OUT=X // AI/整数 → REAL
步骤 2:计算 X³
plaintext
MULF X, X → Temp1 // X² MULF Temp1, X → X3 // X³
步骤 3:计算 a・x³
plaintext
MULF A, X3 → AX3
步骤 4:计算 b・x²
plaintext
MULF B, Temp1 → BX2
步骤 5:计算 c・x
plaintext
MULF C, X → CX
步骤 6:总和:ax³ + bx² + cx + d
plaintext
ADDF AX3, BX2 → Temp2 ADDF Temp2, CX → Temp3 ADDF Temp3, D → Y
步骤 7:限幅保护
plaintext
LIMITF Y, 0.0, 100.0 → Y
五、实战完整示例
需求
输入 X:0 ~ 1000(位置 / 时间)
三次曲线:y = 0.000001x³ - 0.001x² + 0.5x + 100
输出:AO 0-10V(0~27648)
限幅:0 ~ 27648
ST 完整程序
st
// 赋值系数 A := 0.000001; B := -0.001; C := 0.5; D := 100.0; // 输入 X := INT_TO_REAL( IW0000 ); // 三次曲线公式 Y := A * X*X*X + B * X*X + C * X + D; // 限幅 Y := LIMITF( Y, 0.0, 27648.0 ); // 输出到 AO QW0000 := REAL_TO_INT( Y );
六、安川 PLC 必注意 4 个关键点
1. 必须用 REAL 浮点数
整数运算会直接让曲线变形、跳变、不准。
2. 运算顺序:先立方 → 平方 → 一次 → 求和
安川 PLC 不支持自动优先级,分步运算最安全。
3. 必须加 LIMITF 限幅
防止 X 超范围导致 AO 输出爆表、损坏设备。
4. AI/AO 要做数据类型转换
AI 整数 → INT_TO_REAL
AO 输出 → REAL_TO_INT。

