DIV

IEC 操作:从一个变量中除另一个变量。

允许的类型: BYTE, WORD, DWORD, LWORD, SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, REAL, LREAL, TIME. TIME-变量可以被一个整形数据除。

IL 示例: ( Var1 结果为 4)

ST 示例:

var1 := 8/2;

FBD 示例:

1. 多个DIV 块, 2. 单个 DIV 块, 3. 具有 EN/ENO 参数的 DIV 块

小心!

请注意,不同的目标系统可以有不同的处理 除数为零的方式。

Check functions

为了检查除数的值,例如为了避免除数为零可以使用检查函数  CheckDivInt, CheckDivLint, CheckDivReal 以及 CheckDivLReal。在将它们包含在应用中之后每个相关代码发生的除法过程都将产生一个此函数调用的预处理。要将它们包含在工程中使用: “添加对象”。选择其中的对象 POUs 隐式检查,用相关的检查块标记被检查块,选择一个编程语言并通过“打开”确认选择。选择的函数将会按照选择的语言在相应的编辑器中打开。独立于这个选择函数的定义部分被预先编辑好并且除了添加变量之外不能被修改。一个默认的编程语言并且可以被修改是 ST 语言。

参阅下文帮助有关函数 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 的输出作为除数。在下边的示例中因为隐式的初始化变量的值被初始化为 0 造成除数为 0 的情况,经过指向除法运算检查的 CheckDivReal 函数之后除数 'd' 的值在初始化的时候变为 '1' 。因此除法的结果为 799 。

PROGRAM PLC_PRG
VAR
 erg:REAL; 
 v1:REAL:=799;
 d:REAL;
END_VAR
erg:= v1 / d;