无符号比较指令CMP是将两个通道值或两个4位十六进制数进行比较,并将结果反映到状态标志位上,参与比较的两个数值不变。CMP具有即时刷新型指令的特性。其梯形图符号如下:
操作数区域:
S1:CIO,W,H,A,T,C,D,*D,@D,#或DR。
S2:CIO,W,H,A,T,C,D,*D,@D,#或IR。
与CMP指令相关的各状态标志位见表3-9。CMP指令的使用示例见例3-33和例3-34。
表3-9 CMP指令相关状态标志位表
【例3-33】 CMP指令梯形图及助记符示例如图3-55所示。
图3-55 CMP梯形图及助记符示例
【例3-34】 利用CMP指令监视TIM0000的当前值,如图3-56所示。当TIM0000的当前值大于某值时,则产生相应的动作。(www.daowen.com)
图3-56 CMP指令的应用示例
上例中,两个CMP监视TIM0000的当前值。第一个CMP的常数为20s,第二个CMP的常数为10s。在0.00为ON时,当TIM0000当前值大于20s而小于30s时,第一个大于标志P_GT为ON,100.03为ON,则100.04和100.05为OFF。
当TIM0000当前值大于10s而小于20s时,第一个大于标志P_GT为OFF,100.03为OFF,而第二个大于标志P_GT为ON,则100.04为ON。
当TIM0000当前值大于0而小于10s时,两个P_GT均为OFF,100.03和100.04为OFF,100.05为ON。
当TIM0000为ON时,TIM0000复位,此比较过程重新开始。
注意:状态标志位必须紧跟CMP指令,二者共用一个执行条件且中间不能插入其他指令,如图3-57所示。
图3-57 状态标志位用法示例
a)状态标志位不正确用法 b)状态标志位的正确用法
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。