// 基本运算Sum := A + B;Diff := A - B;Product := A * B;// REAL 除法(保留小数)Quotient := 10.0 / 3.0; // 结果: 3.333...// 整数除法(截断)Division := 10 DIV 3; // 结果: 3// 取余Remainder := 10 MOD 3; // 结果: 1// 幂运算Square := 5 ** 2; // 结果: 25Cube := 3 ** 3; // 结果: 27
2. 比较运算符
运算符
说明
示例
=
等于
A = B
<>
不等于
A <> B
<
小于
A < B
>
大于
A > B
<=
小于等于
A <= B
>=
大于等于
A >= B
// 比较结果为 BOOL 类型Equal := (A = B); // TRUE 如果相等NotEqual := (A <> B); // TRUE 如果不相等LessThan := (A < B); // TRUE 如果 A 小于 BGreaterThan := (A > B); // TRUE 如果 A 大于 B// 在 IF 条件中使用IF Temperature >= 100.0 THEN Alarm := TRUE;END_IF;IF Mode <> 0 AND NOT Error THEN RunProcess();END_IF;
3. 逻辑运算符
运算符
说明
真值表
AND
与
TRUE AND TRUE = TRUE
OR
或
FALSE OR TRUE = TRUE
XOR
异或
TRUE XOR FALSE = TRUE
NOT
非
NOT TRUE = FALSE
// 基本逻辑AND_Result := A AND B; // 两个都为 TRUE 才为 TRUEOR_Result := A OR B; // 有一个为 TRUE 就为 TRUEXOR_Result := A XOR B; // 不同为 TRUE,相同为 FALSENOT_Result := NOT A; // 取反// 组合使用(注意优先级:NOT > AND > OR)IF (Sensor1 AND Sensor2) OR EmergencyStop THEN Alarm := TRUE;END_IF;IF NOT Motor_Running AND Start_Button THEN Motor_Run();END_IF;// 实际场景:安全条件检查SafeToStart := NOT EmergencyStop AND Door_Closed AND (AutoMode OR ManualMode);
4. 位运算
运算符
说明
示例
AND
位与
Data AND 16#FF00
OR
位或
Data1 OR Data2
XOR
位异或
Data XOR 16#FFFF
NOT
位取反
NOT Data
SHL
左移
Data SHL 2
SHR
右移
Data SHR 3
// 位与(掩码提取)UpperByte := Data AND 16#FF00;LowerByte := Data AND 16#00FF;// 位或(组合数据)Combined := (HighByte SHL 8) OR LowByte;// 位异或(翻转特定位)Flipped := Data XOR 16#00FF;// 位取反Inverted := NOT Data;// 移位操作ShiftedLeft := Data SHL 2; // 左移 2 位ShiftedRight := Data SHR 3; // 右移 3 位// 实际应用:状态位解析VAR StatusWord : WORD; Bit0 : BOOL; Bit1 : BOOL; Bits4to7 : BYTE;END_VARBit0 := (StatusWord AND 16#0001) <> 0; // 检查第 0 位Bit1 := (StatusWord AND 16#0002) <> 0; // 检查第 1 位Bits4to7 := (StatusWord AND 16#00F0) SHR 4; // 提取 4-7 位
运算符优先级
从高到低:
() - 括号
** - 幂运算
NOT - 逻辑非
*, /, DIV, MOD - 乘除
+, - - 加减
<, >, <=, >= - 比较
=, <> - 等于/不等于
AND, & - 与
XOR - 异或
OR - 或
建议: 不确定时加括号,提高可读性。
// 清晰的写法Result := ((A + B) * C) - (D / E);// 逻辑表达式IF (Sensor1 AND Sensor2) OR (Backup AND Emergency) THEN