[西门子] 西门子博途比较指令

[复制链接]
查看51384 | 回复0 | 2024-5-23 17:23:16 | 显示全部楼层 |阅读模式
1、CMP==等于指令

比较两个值是否相等,相等时触点闭合

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



2、CMP<>不等于



3、CMP>=大于或等于



4、程式展示

注意选择的数据类型,占用的数据资源大小,两个操作数数据类型需一直;



5、CMP<=小于或等于、CMP<小于、CMP>大于;类似用法

6.1、IN_Range值在范围内



6.2、有三个操作数,一个上限、一个下限、判定目标数是否在这个范围内;当在范围内时有输出;

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

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



7、OUT_Range超出范围,与上述功能相反;



8、|OK|  检查标量是否为有效的浮点数

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

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

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



下面看程序执行

当操作数“float1”和“float2”的值显示为有效浮点数时,会执行“减法”指令。将操作数“float1”的值中减去操作数“float2”的值。差值将写入操作数“float3”。如果成功执行该指令,则将M60.6和“ENO”使能输出的信号状态置位为“1”。



9、----I NOT_OK I----:检查无效性,与上述过程相反



10、变量:参照上述比较指令



EQ_Type:比较数据类型与变量数据类型是否“相等”;参考CMP==

NE_Type:比较数据类型与变量数据类型是否“不相等”;CMP<>

EQ_ElemType:比较 ARRAY 元素数据类型与变量数据类型是否“相等”;CMP==

NE_ElemType:比较 ARRAY 元素数据类型与变量数据类型是否“不相等”;CMP<>

IS_NULL:检查 EQUALS NULL 指针;

NOT_NULL:检查 UNEQUALS NULL 指针

IS_ARRAY:检查 ARRAY

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则