DIV

概述

用于对两个变量进行相除的 IEC 操作符

允许的类型:

oBYTE

oWORD

oDWORD

oLWORD

oSINT

oUSINT

oINT

oUINT

oDINT

oUDINT

oLINT

oULINT

oREAL

oLREAL

oTIME

TIME 变量可以被整数变量相除。

IL 中的示例

Var1 中的结果是 4。)

LD     8
DIV    2
ST     Var1

ST 中的示例

var1 := 8/2;

FBD 中的示例

G-SE-0024267.1.gif-high.gif

 

1.   一系列 DIV

2.   单个 DIV

3.   带有 EN/ENO 参数的 DIV

不同目标系统对除以零错误可能具有不同行为。这可能导致控制器停止,或者变为无法检测。

Warning_Color.gif警告

意外的设备操作

使用本文档中描述的检查函数,或者编写您自己的检查以在编程代码中避免除以零的行为。

不遵循上述说明可能导致人员伤亡或设备损坏。

注意: 有关隐式检查函数的更多信息,请参阅用于隐式检查的 POU 一章。

检查函数

您可以使用下列检查函数来验证除数的值以避免除以零,并在必要时对它们加以调整:

oCheckDivDInt

oCheckDivLint

oCheckDivReal

oCheckDivLReal

关于插入函数的信息,请参阅用于隐式检查的 POU 函数的说明。

每次在应用程序代码中确立相除之前,检查函数都会被自动调用。

请参阅以下示例以了解函数 CheckDivReal 的实现。

函数 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;