数学运算函数(Math Functions)
基本数学运算函数如 ADD、SUB、MUL 和 DIV,用于完成加减乘除等基础计算。它们在 PLC 控制逻辑中常被用作构建更复杂逻辑的基础模块。
符号
ADD
EN
ENO
IN1
<???>
IN2
<???>
OUT
<???>
配置说明
每个基础数学函数都需要两个输入参数 IN1、IN2,以及一个输出参数 OUT。除此之外,函数块还由两个控制参数驱动:EN 用于启用,ENO 用于指示块已启用。也就是说,EN 导通时函数执行,ENO 表示执行条件成立。计算结果会写入 OUT。
需要注意的是,这些参数通常只允许使用 Number 或 Time 类型变量。
ADD
EN
ENO
IN1
InputNumber1
IN2
<???>
OUT
<???>
运行行为
当 EN 为 打开 时,数学函数会执行,结果写入 OUT,同时 ENO 也会为 打开。若 EN 为 关闭,函数不会执行,ENO 也会被置为 关闭。如果 EN 持续导通,则函数会在每个扫描周期中重复运行。若只希望其执行一次,可以使用上升沿或下降沿检测触点。
SUB
EN
ENO
IN1
10InputNumber1
IN2
2InputNumber2
OUT
8OutputNumber
加法
Result = Input1 + Input2
ADD
EN
ENO
IN1
10Input1
IN2
2Input2
OUT
12Result
减法
Result = Input1 - Input2
SUB
EN
ENO
IN1
10Input1
IN2
2Input2
OUT
8Result
乘法
Result = Input1 \* Input2
MUL
EN
ENO
IN1
10Input1
IN2
2Input2
OUT
20Result
除法
Result = Input1 / Input2
DIV
EN
ENO
IN1
10Input1
IN2
2Input2
OUT
5Result
指令类型与数据类型
数学运算指令按照"基础运算 × 数据类型"组合成多种指令,共 12 种。数据类型后缀含义如下:
| 后缀 | 含义 | 可绑定的变量类型 |
|---|---|---|
| W | 16 位字 | Int16 / Uint16 |
| D | 32 位双字 | Int32 / Uint32 |
| R | 32 位实数 | Real |
| 基础运算 | W(16 位) | D(32 位) | R(实数) |
|---|---|---|---|
| 加法 ADD | ADDW | ADDD | ADDR |
| 减法 SUB | SUBW | SUBD | SUBR |
| 乘法 MUL | MULW | MULD | MULR |
| 除法 DIV | DIVW | DIVD | DIVR |
选择指令时,应根据操作数的数据类型选择合适的后缀:整数运算选择 W/D,需要小数精度时选择 R(实数)。旧版本工程中保存的 ADD、SUB、MUL、DIV 指令会自动迁移为对应的 16 位字指令(ADDW 等),无需手动调整。