LIMIT 上下限

功能:限制值输出。判断输入数据是否在最小值和最大值之间,若输入数据在两者之间,则直接把输入数据作为输出数据进行输出。若输入数据大于最大值,则把最大值作为输出值。若输入数据小于最小值,则把最小值作为输出值。 语法:其文本化语言语法格式如下

OUT := LIMIT(Min, IN, Max)

这个语句用的挺多的,主要是在做参数限幅的时候用。

例子:创建一个POU,使用限制值指令,无论输入为何值,确保输出值在能在30~80 的范围内。具体实现程序如下。

VAR
    iVar:INT:=90;
    iOutVar: INT;
END_VAR

iOutVar:=limit(30,iVar,80);

最小值输入值为30,最大值输入值为80,实际输入值为90,大于最大值,故最终输出以最大值80 为输出,故最终结果为80

SEL 二选一

功能:通过选择开关,在两个输入数据中选择一个作为输出,选择开关为FALSE 时,输出为第一个输入数据,选择开关为TRUE 时,输出为第二个数据。

语法:其文本化语言语法格式如下 OUT := SEL(G, IN0, IN1)

参数G:必须是布尔变量。如果G 是FALSE,则返回值的结果是IN0, 如果G 是TRUE,则返回值的结果为IN1。

例子:当输入值bInput 为FALSE,输出为3,反之,当其为TRUE 时,输 出为4,具体实现程序如下。

VAR
    iVar1:INT:=3;
    iVar2:INT:=4;
    iOutVar: INT;
    bInput: BOOL;
END_VAR
iOutVar:=SEL(bInput,iVar1,iVar2);

MUX 多选一

功能:多路器操作。通过控制数在多个输入数据中选择一个作为输出。 语法:其文本化语言语法格式如下, OUT := MUX(K, IN0,...,INn) IN0,...,INn 以及 返回值可以是任何变量类型。但是K 必须为 BYTE, WORD, DWORD, LWORD,SINT, USINT, INT, UINT, DINT, LINT, ULINT 或者UDINT。 MUX 从变量组中选择第K 个数据输出。

例子:创建一个POU,使用多选一指令,根据输入控制数iVar 选择最终要输出的数据。具 体实现程序如下。

VAR
    iVar:INT:=1;
    iOutVar: INT;
END_VAR
iOutVar:=MUX(iVar,30,40,50,60,70,80);

最终输出结果为40,因为数据排序是从第0 个元素开始累积。如果数据超出范围,最数据按最后一个数据为输出,如例6.x 中,将iVar 的值设定为10,最终的输出结果为80。如果iVar 为-1,最终输出值还是为80。

MAX 最大值

功能:最大值函数。在多个输入数据中选择最大值作为输出。 语法:其文本化语言语法格式如下所示, OUT := MAX(IN0, …,INn)

例子:创建一个POU,iOutVar 的输入值为iVar1 和iVar2 中的较大者,具体实现程序如下。

VAR
    iVar1:INT:=30;
    iVar2:INT:=60;
    iOutVar: INT;
END_VAR

iOutVar:=MAX(iVar1,iVar2);

程序运行后输出结果为60。

MIN 最小值

功能:最小值函数。在多个输入数据中选择最小值作为输出。 语法:其文本化语言语法格式如下所示 OUT := MIN(IN0, …,INn) IN0, INn 以及 OUT 可以是任何数据类型

例子:创建一个POU,iOutVar 的输入值为iVar1 和iVar2 中的较小者,具体实现程序如下。

VAR
    iVar1:INT:=30;
    iVar2:INT:=60;
    iOutVar: INT;
END_VAR

iOutVar:=MIN(iVar1,iVar2);

程序运行后输出结果为30。

Copyright © www.yanjuntech.cn 2018-2025 all right reserved,powered by Gitbook该文件修订时间: 2019-04-21 16:55:44

results matching ""

    No results matching ""