比较指令用来比较数据类型相同的两个数IN1与IN2的大小(见图4-31),IN1和IN2分别在触点的上面和下面。它们的数据类型(见图4-31下边的下拉式列表)应相同。操作数可以是I、Q、M、L、D存储区中的变量或常数。比较两个字符串时,实际上比较的是它们各对应字符的ASCII码的大小,第一个不相同的字符决定了比较的结果。
可以将比较指令视为一个等效的触点,比较符号可以是“=”(等于)、“<>”(不等于)、“>”、“>=”、“<”和“<=”。满足比较关系式给出的条件时,等效触点接通。例如当MW8的值等于-24732时,图4-31第一行左边的比较触点接通。
生成比较指令后,双击触点中间比较符号下面的问号(见图4-31下边未输入参数的比较触点),单击出现的下拉按钮,用下拉式列表设置要比较的数的数据类型。
实际上比较指令的比较符号也可以修改,双击比较符号,单击出现的下拉按钮,可以用下拉式列表修改比较符号。
1.范围内与范围外比较指令
范围内比较指令IN_RANGE与范围外比较指令OUT_RANGE可以等效为一个触点。如果有能流流入指令方框,执行比较。图4-31中IN_RANGE指令的参数VAL满足MIN≤VAL≤MAX(-3752≤MW22≤27535),或OUT_RANGE指令的参数VAL满足VAL<MIN或VAL>MAX(MB20<24或MB20>124)时,等效触点闭合,有能流流出指令框的输出端。如果不满足比较条件,没有能流输出。如果没有能流输入指令框,不执行比较,没能流输出。
指令的MIN、MAX和VAL的数据类型必须相同,可选SInt、Int、DInt、USInt、UInt、UDInt、Real,可以是I、Q、M、L、D存储区中的变量或常数。双击指令名称下面的问号,单击出现的下拉按钮,用下拉式列表框设置要比较的数据的数据类型。
图4-31 比较指令
【例4-5】用接通延时定时器和比较指令组成占空比可调的脉冲发生器。
M2.0和接通延时定时器TON组成了一个脉冲发生器,使MD4中TON的已耗时间按图4-32所示的波形变化。比较指令用来产生脉冲宽度可调的方波,Q0.0为0的时间取决于比较触点下面的操作数的值。(www.xing528.com)
MD4用于保存定时器TON的已耗时间ET,其数据类型为Time。输入比较指令上面的操作数MD4后,指令中“>=”符号下面的数据类型自动变为“Time”。输入IN2的值1000后,自动变为t#1000ms。
2.OK与NOT_OK指令
OK和NOT_OK指令(见图4-33)用来检测输入数据是否是实数(即浮点数)。如果是实数,OK触点接通,反之NOT_OK触点接通。触点上面的变量的数据类型为Real。
执行图4-34中的乘法指令MUL之前,首先用OK指令检查MUL指令的两个操作数是否是实数,如果不是,OK触点断开,没有能流流入MUL指令的使能输入端EN,不会执行乘法指令。
图4-32 自复位接通延时定时器
图4-33 OK与NOT_OK指令
图4-34 OK指令的应用
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。