S7-1200和S7-1500比较操作

CMP ==:等于

可以使用“等于”指令判断第一个比较值(<操作数 1>)是否等于第二个比较值(<操作数 2>)。

如果满足比较条件,则指令返回逻辑运算结果 1。如果不满足比较条件,则指令返回 0。

在指令上方的操作数占位符中指定第一个比较值(<操作数 1>)。在指令下方的操作数占位符中指定第二个比较值(<操作数 2>)。

如果启用了 IEC 检查,则要比较的操作数必须属于同一数据类型。如果未启用 IEC 检查,则操作数的宽度必须相同。

比较浮点数

如果要比较数据类型 REAL 或 LREAL,则可使用指令“CMP ==:等于”。建议使用指令“IN_RANGE:值在范围内”。

比较浮点数时,待比较的操作数必须具有相同的数据类型,而无需考虑具体的“IEC 检查”(IEC Check) 设置。

对于无效运算的运算结果(如,-1 的平方根),这些无效浮点数 (NaN) 的特定位模式不可比较。即,如果一个操作数的值为 NaN,则指令“CMP ==:等于”的结果将为 FALSE。

比较字符串

在比较字符串时,通过字符的ASCII码比较各字符(例如“a”大于“A”)。从左到右执行比较。第一个不同的字符决定比较结果。

CMP <>:不等于 

CMP >=:大于或等于

CMP <=:小于或等于

CMP >:大于

CMP <:小于 

IN_RANGE:值在范围内

可以使用“值在范围内”指令查询输入 VAL 的值是否在指定的取值范围内。

使用输入 MIN 和 MAX 可以指定取值范围的限值。“值在范围内”指令将输入 VAL 的值与输入 MIN 和 MAX 的值进行比较,并将结果发送到功能框输出中。如果输入 VAL 的值满足 MIN <= VAL 或 VAL <=MAX 比较条件,则功能框输出的信号状态为“1”。如果不满足比较条件,则功能框输出的信号状态为“0”。

如果功能框输入的信号状态为“0”,则不执行“值在范围内”指令。

只有待比较值的数据类型相同且连接了功能框输入时,才能执行该比较功能。

OUT_RANGE:值超出范围 

可以使用“值超出范围”指令查询输入 VAL 的值是否超出指定的取值范围。

如果输入 VAL 的值满足 MIN > VAL 或 VAL >MAX 比较条件,则功能框输出的信号状态为“1”。如果指定的 REAL 数据类型的操作数具有无效值,则功能框输出的信号状态也为“1”。 

如果输入 VAL 的值不满足 MIN > VAL 或 VAL > MAX 的条件,则功能框输出返回信号状态“0”。

如果功能框输入的信号状态为“0”,则不执行“值超出范围”指令。

只有待比较值的数据类型相同且连接了功能框输入时,才能执行该比较功能。

----I OK I----:检查有效性 

可使用“检查有效性”指令检查操作数的值(<操作数>)是否为有效的浮点数。如果该指令输入的信号状态为“1”,则在每个程序周期内都进行检查。

查询时,如果操作数的值是有效浮点数且指令的信号状态为“1”,则该指令输出的信号状态为“1”。在其它任何情况下,“检查有效性”指令输出的信号状态都为“0”。

可以同时使用“检查有效性”指令和 EN 机制。如果将该指令功能框连接到 EN 使能输入,则仅在值的有效性查询结果为有效时才置位使能输入。使用该功能,可确保仅在指定操作数的值为有效浮点数时才启用该指令。

当操作数“Tag_Value1”和“Tag_Value2”的值显示为有效浮点数时,会执行“乘”指令。

----I NOT_OK I----:检查无效性 
 

猜你喜欢

转载自blog.csdn.net/Airfrozen/article/details/107214436