基于S7-200控制的自动洗车系统 本设计包括设计报告,PLC组态仿真,I/O接口,带注释程序pdf版,接线图,控制电路图,主电路图,PLC接线图,顺序功能图。 总体设计 系统有自动和手动模式,选择手动模式,通过外部的手动开关单独启动各个设备;选择自动模式,按启动按钮,通过设定的程序进行洗车。
每次去洗车店排队都让人头大,我就想着能不能用PLC搭个自动洗车系统。最近用S7-200搞了个支持自动/手动双模式的洗车控制器,手动模式随便玩,自动模式直接躺平,今天就跟大伙儿唠唠实现细节。
硬件配置上咱整得挺简单,输入口接启动按钮、急停、模式切换旋钮,输出口控制水泵、毛刷电机、风干机这些。重点在于怎么用梯形图实现两种模式的丝滑切换。程序里专门搞了个模式标志位M0.0,手动模式激活时直接跳过自动流程。
手动模式的代码贼直球:
NETWORK 1 LD I0.2 //手动模式开关 AN M0.0 //非自动模式 = Q0.0 //水泵手动启动这就是典型的点动控制,I0.2接通时Q0.0直接上电,松手就停。毛刷和风干机的代码结构跟这个完全一样,相当于给每个设备配了个独立开关。
自动模式才是重头戏,用顺序控制指令(SCR)搭了个六步流程:
- 检测车辆到位(光电开关I0.4)
- 喷淋30秒(T37定时)
- 毛刷正转40秒(T38)
- 毛刷反转40秒(T39)
- 风干25秒(T40)
- 复位所有设备
对应的状态转换代码是这样的:
NETWORK 5 LD SM0.1 //首次扫描 MOVB 0, S0.0 //初始化所有状态 NETWORK 6 LSCR S0.0 //待机状态 LD I0.3 //启动按钮 AN I0.1 //未急停 S S0.1,1 //进入喷淋状态 R S0.0,1 SCRE NETWORK 7 LSCR S0.1 //喷淋状态 TON T37,300 //30秒定时 LD T37 S S0.2,1 //转毛刷正转 R S0.1,1 SCRE每个状态块用SCR指令隔开,T37到T40四个定时器接力控制时间节奏。特别注意SM0.1这个特殊寄存器,上电瞬间给所有状态位清零,避免系统抽风。
调试时发现个坑:喷淋结束转毛刷时,水泵有时会延迟关闭。后来在状态转换时加了段复位代码:
NETWORK 8 LD S0.2 //毛刷正转状态 R Q0.0,1 //强制关闭水泵这种状态机编程最怕步骤间干扰,每个新状态先把前序设备全关了最稳妥。后来用仿真软件跑流程,发现急停按钮复位后设备还会动,又在主程序开头加了急停连锁:
NETWORK 0 LD I0.1 //急停按下 MOVB 0, QB0 //瞬间切断所有输出现在这系统跑得比洗车店还6,手动模式适合处理顽固污渍,自动模式全程无脑操作。下次打算加个预约功能,用时钟指令搞分时段洗车,说不定还能整个物联网模块远程启动呢。