如图3-1所示为彩灯控制示意图。

图3-1彩灯控制
控制要求描述现有L1-L8共8盏彩灯,要求按下开始按钮,霓虹灯L1-L8以正序每隔1S轮流点亮,当L8亮后,停2S;然后,反向逆序间隔1S轮流点亮,当L1再亮后,停5S,重复上述过程。按下停止按钮,彩灯停止工作。
I/O分配根据控制要求描述对需要用到的I/O进行分配,如图3-2所示:

图3-2I/O分配表
【相关指令解读】:此案例主要用到移位指令和其它指令配合,这里主要解读移位指令。
循环左移字节(图3-2):循环移位指令将输入值IN的位值循环左移位,位置循环移位计数N,然后将结果装载到分配给OUT的存储单元中。循环移位操作为循环操作。

图3-2:循环左移字节
举例说明1:程序如图3-3,利用系统时钟第一个扫描周期给QB0字节中赋值为1,此时QB0中最低位()为1。当按下按钮后,QB0字节中的数据左移一位,变为1。

图3-3
举例说明2:程序如图3-4,利用系统时钟第一个扫描周期给QB0字节中赋值为1,此时QB0中最低位()为1。当按下按钮后,QB0字节中的数据左移二位,变为1。

图3-4
循环右移字节:如图3-5,循环移位指令将输入值IN的位值循环右移,位置循环移位计数N,然后将结果装载到分配给OUT的存储单元中。循环移位操作为循环操作。

图3-5:循环右移字节
举例说明1:程序如图3-6,利用系统时钟第一个扫描周期给QB0字节中赋值为1,此时QB0中最低位()为1。当按下按钮后,QB0字节中的数据右移一位,变为1。

图3-6
举例说明2:程序如图3-7,利用系统时钟第一个扫描周期给QB0字节中赋值为1,此时QB0中最低位()为1。当按下按钮后,QB0字节中的数据右移二位,变为1。

图3-7
程序控制程序(1)主程序,对数据初始化,调用相关子程序。接通代表左移位开始,左移开始之前,将1赋值给QB0。接通代表右移开始,将128给到QB0,为1。程序如图3-8所示


图3-8主程序
(2)循环子程序主要控制灯是启停和循环。按下启动按钮,左移开始标志位自锁,总共移7位,定时时间为7秒,左移完成断开延时2秒接通右移标志位。右移完成延时5秒接通左移开始标志位,形成循环。程序如图3-9所示




图3-9循环程序
(3)左移程序,利用移位指令和系统时钟配合。程序如图3-10所示

图3-10左移程序
(4)右移子程序程序,利用移位指令和系统时钟配合。程序如图26-6所示

本案例采用子程序的结构编程,并且结合循环指令、定时器指令等编写彩灯循环案例。希望大家能在此文章中汲取西门子200SMARTPLC编程相关知识及理念。





