如图3-1所示为彩灯控制示意图。 图3-1 彩灯控制 现有L1-L8共8盏彩灯,要求按下开始按钮,霓虹灯L1-L8以正序每隔1S轮流点亮,当L8亮后,停2S;然后,反向逆序间隔1S轮流点亮,当L1再亮后,停5S,重复上述过程。按下停止按钮,彩灯停止工作。 根据控制要求描述对需要用到的I/O进行分配,如图3-2所示:
图3-2 I/O分配表 【相关指令解读】:此案例主要用到移位指令和其它指令配合,这里主要解读移位指令。 循环左移字节(图3-2):循环移位指令将输入值 IN 的位值循环左移位,位置循环移位计数 N,然后将结果装载到分配给 OUT 的存储单元中。循环移位操作为循环操作。 图3-2:循环左移字节 举例说明1:程序如图3-3,利用系统时钟SM0.1第一个扫描周期给QB0字节中赋值为1,此时QB0中最低位(Q0.0)为 1。当按下I0.0按钮后,QB0字节中的数据左移一位,Q0.1变为1。 图3-3 举例说明2:程序如图3-4,利用系统时钟SM0.1第一个扫描周期给QB0字节中赋值为1,此时QB0中最低位(Q0.0)为 1。当按下I0.0按钮后,QB0字节中的数据左移二位,Q0.2变为1。 图3-4 循环右移字节: 如图3-5,循环移位指令将输入值 IN 的位值循环右移,位置循环移位计数 N,然后将结果装载到分配给 OUT 的存储单元中。循环移位操作为循环操作。 图3-5:循环右移字节 举例说明1:程序如图3-6,利用系统时钟SM0.1第一个扫描周期给QB0字节中赋值为1,此时QB0中最低位(Q0.0)为 1。当按下I0.0按钮后,QB0字节中的数据右移一位,Q0.7变为1。 图3-6 举例说明2:程序如图3-7,利用系统时钟SM0.1第一个扫描周期给QB0字节中赋值为1,此时QB0中最低位(Q0.0)为 1。当按下I0.0按钮后,QB0字节中的数据右移二位,Q0.6变为1。 图3-7 (1)主程序,对数据初始化,调用相关子程序。M1.0接通代表左移位开始,左移开始之前,将1赋值给QB0。M1.2接通代表右移开始,将128给到QB0, Q0.7为1。程序如图3-8所示 图3-8主程序 (2)循环子程序主要控制灯是启停和循环。按下启动按钮,左移开始标志位M1.0自锁,总共移7位,定时时间为7秒,左移完成断开M1.0延时2秒接通右移标志位M1.2。右移完成延时5秒接通M1.0左移开始标志位,形成循环。程序如图3-9所示 图3-9循环程序 (3)左移程序,利用移位指令和系统时钟配合。程序如图3-10所示 图3-10左移程序 (4)右移子程序程序,利用移位指令和系统时钟配合。程序如图26-6所示 图3-11右移程序 结束语:本案例采用子程序的结构编程,并且结合循环指令、定时器指令等编写彩灯循环案例。希望大家能在此文章中汲取西门子200SMART PLC编程相关知识及理念。 来源:PLC发烧友,作者:郭彪。转载请注明出处!评论处大家可以补充文章解释不对或欠缺的部分,这样下一个看到的人会学到更多,你知道的正是大家需要的。。。 |
|
来自: PLC发烧友 > 《西门子PLC技术文章》