首页 理论教育 比较指令及其应用场景

比较指令及其应用场景

时间:2023-06-21 理论教育 版权反馈
【摘要】:例如当MW8的值等于-24732时,图4-31第一行左边的比较触点接通。图4-31 比较指令用接通延时定时器和比较指令组成占空比可调的脉冲发生器。比较指令用来产生脉冲宽度可调的方波,Q0.0为0的时间取决于比较触点下面的操作数的值。输入比较指令上面的操作数MD4后,指令中“>=”符号下面的数据类型自动变为“Time”。

比较指令及其应用场景

比较指令用来比较数据类型相同的两个数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存储区中的变量或常数。双击指令名称下面的问号,单击出现的下拉按钮,用下拉式列表框设置要比较的数据的数据类型。

978-7-111-47789-1-Chapter04-33.jpg

图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,不会执行乘法指令。

978-7-111-47789-1-Chapter04-34.jpg

图4-32 自复位接通延时定时器

978-7-111-47789-1-Chapter04-35.jpg

图4-33 OK与NOT_OK指令

978-7-111-47789-1-Chapter04-36.jpg

图4-34 OK指令的应用

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈