首页 理论教育比较指令:用于判断相同数据类型的有符号数或无符号数的操作

比较指令:用于判断相同数据类型的有符号数或无符号数的操作

【摘要】:比较指令用于两个相同数据类型的有符号数或无符号数IN1和IN2的比较判断操作。在梯形图中,比较指令是以动合触点的形式编程的,在动合触点的中间注明比较参数和比较运算符。第二段程序行中是一条双字比较指令,这里的操作数IN1是0号高速计数器HC0,操作数IN2是HC0的设定值存放地址SMD42,当两者相等时线圈Q0.1为ON状态。从这里可看出操作数IN1、操作数IN2与比较参数都是统一对应的,不可错用。

比较指令用于两个相同数据类型的有符号数或无符号数IN1和IN2的比较判断操作。

比较运算符有等于(=)、大于等于(>=)、小于等于(<=)、大于(>)、小于(<)、不等于(<>)共6种比较形式。

梯形图中,比较指令是以动合触点的形式编程的,在动合触点的中间注明比较参数和比较运算符。触点中间的参数B、I、D、R分别表示字节、整数、双字、实数,当比较的结果满足比较关系式给出的条件时,该动合触点闭合。梯形图及语句表中比较指令的基本格式如图1-12所示,左为梯形图,右为语句表,图中第一段程序行中有两条比较指令,第一条是计数器C5与整数3比较,如C5中的计数值与3相等,该动合触点将闭合为ON状态。指令中的C5即是操作数IN1,3即是操作数IN2,触点中间的参数I表示与整数比较,运算符是“=”号,说明IN1与IN2如相等,此触点就为ON状态。后面的第二条是MB10与6相比较,这条的比较参数是B,也就是说这是一条字节比较指令,意思是当字节MB10中的数据大于等于6时条件满足,此触点为ON状态,那么当两条指令的条件都满足时线圈Q0.0也就为ON状态。第二段程序行中是一条双字比较指令,这里的操作数IN1是0号高速计数器HC0,操作数IN2是HC0的设定值存放地址SMD42,当两者相等时线圈Q0.1为ON状态。从这里可看出操作数IN1、操作数IN2与比较参数都是统一对应的,不可错用。表1-6列出了操作数IN1与操作数IN2的寻址范围。

978-7-111-59315-7-Chapter01-17.jpg

图1-12 比较指令在梯形图中的基本格式

1-6 比较指令的操作数IN1和操作数IN2的寻址范围

978-7-111-59315-7-Chapter01-18.jpg

字节比较指令用于两个无符号的整数字节IN1和IN2的比较;整数比较指令用于两个有符号的一个字长的整数IN1和IN2的比较,整数范围为十六进制的8000~7FFF,在S7-200中,用16#8000~16#7FFF表示;双字节整数比较指令用于两个有符号的双字长整数IN1和IN2的比较。双字整数的范围为16#80000000~16#7FFFFFFF;实数比较指令用于两个有符号的双字长实数IN1和IN2的比较,正实数的范围为+1.175495E-38~+3.402823E+38,负实数的范围为-1.175495E-38~-3.402823E+38。

978-7-111-59315-7-Chapter01-19.jpg

图1-13 比较指令使用举例

图1-13所示是一个比较指令使用较多的程序段。从中可以看出,计数器C10中的当前值大于等于20时,Q0.0为ON;VD100中的实数小于36.8且I0.0为ON时,Q0.1为ON,MB1中的值不等于MB2中的值或者高速计数器HC1的计数值大于等于4000时,Q0.2为ON。