IEC 操作:从一个变量中除另一个变量。
允许的类型: BYTE, WORD, DWORD, LWORD, SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, REAL, LREAL, TIME. TIME-变量可以被一个整形数据除。
小心! 请注意,不同的目标系统可以有不同的处理 除数为零的方式。 |
为了检查除数的值,例如为了避免除数为零可以使用检查函数 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;