用于对两个变量进行相除的 IEC 操作符
允许的类型:
oBYTE
oWORD
oDWORD
oLWORD
oSINT
oUSINT
oINT
oUINT
oDINT
oUDINT
oLINT
oULINT
oREAL
oLREAL
oTIME
TIME 变量可以被整数变量相除。
(Var1 中的结果是 4。)
LD 8
DIV 2
ST Var1
var1 := 8/2;
1. 一系列 DIV 框
2. 单个 DIV 框
3. 带有 EN/ENO 参数的 DIV 框
不同目标系统对除以零错误可能具有不同行为。这可能导致控制器停止,或者变为无法检测。
|
意外的设备操作 |
使用本文档中描述的检查函数,或者编写您自己的检查以在编程代码中避免除以零的行为。 |
不遵循上述说明可能导致人员伤亡或设备损坏。 |
注意: 有关隐式检查函数的更多信息,请参阅用于隐式检查的 POU 一章。
您可以使用下列检查函数来验证除数的值以避免除以零,并在必要时对它们加以调整:
oCheckDivDInt
oCheckDivLint
oCheckDivReal
oCheckDivLReal
关于插入函数的信息,请参阅用于隐式检查的 POU 函数的说明。
每次在应用程序代码中确立相除之前,检查函数都会被自动调用。
请参阅以下示例以了解函数 CheckDivReal 的实现。
声明部分
// Implicitly generated code : DO NOT EDIT
FUNCTION CheckDivReal : REAL
VAR_INPUT
divisor:REAL;
END_VAR
实现部分:
// Implicitly generated code : only an suggestion for implementation
IF divisor = 0 THEN
CheckDivReal:=1;
ELSE
CheckDivReal:=divisor;
END_IF;
操作符 DIV 使用函数 CheckDivReal 的输出作为除数。在以下示例中,禁止除以零,因为在执行除法之前,d 会将除数 CheckDivReal 的初始化值 0 更改为 1。因此,该除运算的结果是 799。
PROGRAM PLC_PRG
VAR
erg:REAL;
v1:REAL:=799;
d:REAL;
END_VAR
erg:= v1 / d;