一、比较指令
1、关系比较指令(CMP)
用于比较两个相同数据类型的大小,其中<>为不等于,其余都与常识一致
比较结果为逻辑值Ture->有能流经过;False->没有能流经过。
比较指令的符号如下图4-20所示
2、范围内和范围外指令
范围内指令IN_RANGE和范围外指令OUT_RANGE可意等效为一个触点,用于测试输入值在指定值的范围之内还是之外:
满足以下条件时IN_RANGE比较结果为真:MIN<=VAL<=MAX;
满足以下条件时OUT_RANGE比较结果为真:VAL<MIN或VAL>MAX;
范围内和范围外指令的符号如上图4-21所示
二、移动指令与移动快指令
1、移动指令MOVE
功能:将单个数据从IN参数指定的源地址复制到OUT参数指定的目标地址
2、块移动指令
(王阿妹没有自己的理解,因为这里有点儿迷糊,但估计就是和前面的保持型接触延时定时器与延时定时器的区别一个意思)
MOVE_BIK将数据块复制到新地址期间可中断移动
UMOVE_BIK将数据块复制到新地址期间不中断移动
MOVE_BIK和UMOVE_BIK具有附加的COUNT参数,COUNT参数指定要复制的数据的个数
移动和块移动指令的符号如下图所示
实例:灯闪烁控制程序设置
按上图4-24灯闪烁控制梯形图分析
程序段一:在整个电路中,没有设置使得第一次闪烁停止的标志位,只是使用与第二次按动的互锁,以及计数器为2时控制其停止完成。因此在第二次按动时需将第一次标志位复位。
程序段二:利用计数器统计当前的时需要闪烁还是停止,可以考虑计数为偶数时停止闪烁,奇数时开始闪烁,但是书中给出更加方便、精巧的设计:在计数到达2时给计数器复位,后续的闪动与停止只需匹配计数器CV是1还是2即可。
程序段三:建立第一次按钮按下的标志位,按下之后开始闪烁。
程序段四:按钮第二次按下,需要给计数器复位(但是在程序段二中还有复位指令,不知道为什么这里也要设置),同时第一次标志位也须复位(在程序段一中,按钮第二次按下已经给第一次标志位复位了,不知道为什么这里也要设置)
程序段五:闪烁功能设置的也非常精巧,由于不按下第二次按钮就会使得灯一致按照亮3s灭1s的规律闪动,以此需要设置周期为4s,但是计时器一般需要上升沿的产生才会开始计时,而第一次按下标志位一直处于1的状态,如何使其规律计时。
按照程序段五的第一行设置,利用接通延时的输出位即,C1.Q设置常闭触点在计时器之前,到达4s之后断电一瞬间,再次通电出现上升沿即可重新计时。
重新计时时间非常短,因为之前需要统计C1.Q时需要借助扫描上升沿信号