对于西门子plc比较指令的比较范围、指令处理过程,S7-200与S7-300/400有所区别,在编程时应引起注意。
(1)指令格式与比较范围
①比较指令在S7-200中以“功能触点”的形式使用,如图10-3.1 (a)所示。梯形图中的表达形式如图10-3.1 (b)所示,需要比较的两个操作数分别位于功能触点的上部与下部,其中上部为需要比较的数据,下部为比较基准数据。
S7-200允许的比较操作如下:
一:等于(EQ)比较,IBO= MBO时触点闭合;
<>:不等于(NE)比较,IBO≠MBO时触点闭合;
>=:大于等于( GE)比较:IBO≥MBO时触点闭合:
<=:小于等于(LE)比较;IBO≤MBO时触点闭合:
>:大于(GT)比较:IBO>MBO时触点闭合;
<:小于( LT )比较;IBO<MBO时触点闭合。
S7-200允许的数据长度与形式如下:
B:l字节数据;
I:16位整数:
D: 32位整数:
R: 32位浮点数(浮点数)。
当比较数据为字、双字时,数据为带符号,因此,7FFF> 8FFF,7FFF FFFF>8FFF FFFF。
②比较指令在S7-300/400中以功能指令图的形式使用,梯形图中的表达形式如图10-3.2所示。
图10-3.2中“CMP”为比较标记,“>=”为执行的比较操作,在S7-300/400中允许的比较操作与S7-200相同。
IN1为需要比较的数据,IN2为比较基准数据。S7-300/400允许的数据长度与形式为16位整数I、32位整数D、32位浮点数(浮点数)R,不可以使用字节比较指令。
(2)指令的处理过程
比较指令在S7-200与S7-300/400中的梯形图程序、实际处理过程与指令表程序不同。
在S7-200中的处理是直接比较两个存储器的数据,指令表程序如图10-3.3所示。
比较指令在S7-300/400中的编程如图10-3.2所示,处理过程如下:
①将操作数1(INl)移动到累加器1中;
②将操作数2 (IN2)移动到累加器l中,原累加器1中的内容(操作数1)移动到累加器2中:
③累加器1与累加器2的内容进行规定的比较;
④比较条件满足,功能指令图上部的连线接通。