2024-03-26 02:33:12 | 人围观 | 评论:
▲图1 | 左移指令格式▲
左移位指令(SHL)将输入端IN中数各位的值向左移动N位后把结果输出到由OUT所指定的地址。在移动过程中每一位移出后留下的空位会自动的补零。若移位计数N 大于或等于允许的最大值(字节操作为8、字操作为16、双字操作为32),则会按相应操作的最大次数对值进行移位,若移位计数N大于0,则在移动过程中的最后移出位会存储于溢出标志SM1.1中,若移位操作结果为0,则零标志位SM1.0会置位为ON,如图2所示为左移指令执行效果。
▲图2 | 左移指令移位过程▲
02 右移指令
右移指令SHR可以根据数据类型分为字节右移指令(SHR_B)、字右移指令(SHR_W)和双字右移指令(SHR_DW)。如图3为右移指令格式。
▲图3 | 右移指令格式▲
右移位指令(SHR)将输入端IN中数各位的值向右移动N位后把结果输出到由OUT所指定的地址。在移动过程中每一位移出后留下的空位会自动的补零。若移位计数N 大于或等于允许的最大值(字节操作为8、字操作为16、双字操作为32),则会按相应操作的最大次数对值进行移位,若移位计数N大于0,则在移动过程中的最后移出位会存储于溢出标志SM1.1中,若移位操作结果为0,则零标志位SM1.0会置位为ON,如图4所示为右移指令执行效果。
▲图4 | 右移指令移位过程▲
二、移位指令应用
假设有8个指示灯,对应PLC的Q0.0~Q0.7,要求每次点亮一盏指示灯,当按下启动按钮后,从Q0.0~Q0.7每隔一秒点亮,当Q0.7被点亮时,停止2S,然后反向每隔1S点亮,当Q0.0被点亮时,延时2S后,进入下个循环,若按下停止按钮,停止所有的指示灯输出,示意图如图5所示。
▲图5 | 控制示意图▲
分析:8个指示灯,每次只点亮1个指示灯,而且是按照顺序的方式进行点亮,因此在设计程序是可考虑使用移位指令进设计,程序如图6所示:
▲图6 | 移位控制部分程序▲
编辑:黄飞
全站搜索