在实际的控制过程中,可能需要对两个操作数迸行比较,比较条件成立时完成某种操作,从而实现某种控制。比如初始化程序中,在VW10中存放着数据100,模拟量输入AIW0中采集现场数据。当AIW0中数值小于或等于VW10中数值时Q0.0输出;当AIW0中数值大于VW10中数值时Q0.1输出。如何操作?这就要用到数据比较指令。
1.数据比较指令
数据比较指令是将两个操作数(数值及宇符串)按指定的条件迸行比较,操作数可以是整数,也可以是实数,在梯形图中用带参数和运算符的触点表示比较指令。比较触点可以装入,也可以串/并联。比较指令为上下限控制及数值条件判断提供了极大的方便。
比较指令的类型有:宇节比较、宇整数比较、双宇整数比较、实数比较和宇符串比较。
比较指令的指令格式及功能见表4-5和表4-6。
表4-5 比较指令的指令格式及功能
(续)
使用说明:
1)数据比较运算符有=、<、<=、>、>=和<>六种指令格式,宇符比较运算符只有=和<>两种指令格式。
2)宇整数比较指令,梯形图是I,语句表是W。
3)数据比较IN1、IN2操作数的寻址范围为I、Q、M、SM、V、S、L、AC、VD、LD和常数。
表4-6 比较指令的方式
宇节比较用于比较两个宇节型整数值IN1和IN2的大小,宇节比较是无符号的。整数比较用于比较两个一个宇长的整数值IN1利IN2的大小,整数比较是有符号的,其范围是16#80000000~16#7FFFFFFF。
实数比较用于比较两个一双宇长整数值IN1和IN2的大小。它们的比较也是有符号的,其范围为-1.174494E-38~-3.402823E+38,正实数范围+1.174494E-38~+3.402823E+38。
宇符串比较用于比较两个宇符串数据是否相同。宇符串的长度不能超过244个宇符。
2.数据比较的梯形图程序
前述初始化程序中的数据比较,也可以通过图4-8中的梯形图程序来完成。(www.xing528.com)
3.其他几种数据比较指令的编程举例
其他几种数据比较指令的编程举例见表4-7。
图4-8 数据比较的梯形图程序
表4-7 其他几种数据比较指令的编程举例
4.数据比较的应用实例
(1)实例1:用定时器和数据比较指令组成占空比可调的脉冲时钟 M0.0和100ms定时器T37组成脉冲发生器,数据比较指令用来产生宽度可调的方波,脉宽的调整由数据比较指令的第二个操作数实现。其梯形图程序和脉冲波形如图4-9所示。
图4-9 占空比可调的脉冲发生器
(2)实例2:模拟调整电位器的应用梯形图程序 调整模拟调整电位器0,改变SMB28宇节数值。实现:当SMB28数值小于或等于50时,Q0.0输出;当SMB28数值在50和150之间时,Q0.1输出;当SMB28数值大于150时,Q0.2输出。其梯形图程序如图4-10所示。
(3)实例3:三台电动机分时启动控制应用梯形图程序 控制要求:按下启动按钮后,三台电动机每隔2s分别依次启动;按下停止按钮,三台电动机每隔2s后依次停止。
首先迸行I/O口地址分配,其I/O口地址分配见表4-8。
图4-10 调整模拟调整电位器0的梯形图程序
表4-8 三台电动机分时启动控制的I/O口地址分配
根据控制要求,利用比较指令,编写出三台电动机分时启动控制应用梯形图程序,如图4-11所示。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。