news 2026/4/23 15:49:17

基于 PLC 的全自动洗衣机控制设计实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于 PLC 的全自动洗衣机控制设计实战

基于plc的全自动洗衣机控制设计 采用博途1200仿真,提供程序,设计报告,接线图。 实现要求(详见上方演示视频):PLC投入运行,系统处于初始状态,准备好启动。 启动时开始进水,水满(即水位到达高水位)时停止进水并开始正洗涤。 正转洗涤15s后暂停,暂停3s后开始反转洗涤。 反转洗涤15s后暂停,暂停3s后若正、反洗涤未满3次,则返回从正转洗涤开始的动作;若正、反洗涤满3次时,则开始排水。 排水水位若下降到低位时,开始脱水并继续排水。 脱水10s即完成一次从进水到脱水的工作循环过程。 若未完成3次大循环,则返回从进水开始的全部动作,进行下一次大循环;若完成了3次大循环,则进行洗完报警。 此外,还要求可以按排水按钮以实现手动排水;按停止按钮以实现手动停止进水、排水、脱水及报警。

最近折腾了基于 PLC 的全自动洗衣机控制设计,用的是博途 1200 仿真,和大家分享下成果。

设计准备

在开始编程之前,我们得先了解硬件接线。虽然没有实际的 PLC 硬件,但接线图是很重要的参考。这里简单画一下接线思路(实际接线要严格按照 PLC 手册来):

  • 水位传感器连接到 PLC 的输入点,用于检测水位高低。比如高水位传感器接到 I0.0,低水位传感器接到 I0.1。
  • 进水阀、排水阀、电机正反转以及报警装置连接到 PLC 的输出点。进水阀接 Q0.0,排水阀接 Q0.1,电机正转 Q0.2,电机反转 Q0.3,报警 Q0.4。

程序设计

下面就是核心的程序部分啦。

初始化及启动

// 初始化部分,将各个状态复位 // 大循环次数、正反转次数、时间计数器等清零 DB1.DBW0 := 0; // 大循环次数 DB1.DBW2 := 0; // 正反转次数 DB1.DBD4 := 0; // 时间计数器
// 启动逻辑 IF I0.5 = 1 THEN // I0.5 假设为启动按钮 M0.0 := 1; // 启动标志置 1 END_IF;

这部分代码,先把各种计数相关的变量清零,为整个流程做准备。然后通过检测启动按钮(这里假设为 I0.5)来设置启动标志 M0.0。

进水过程

IF M0.0 = 1 AND Q0.0 = 0 AND I0.0 = 0 THEN // 启动且进水阀未开且水位未到高水位 Q0.0 := 1; // 打开进水阀 END_IF; IF I0.0 = 1 THEN // 水位到高水位 Q0.0 := 0; // 关闭进水阀 M0.1 := 1; // 准备正洗涤标志置 1 END_IF;

这段代码表示,当启动且进水阀没开,同时水位没到高水位时,打开进水阀。一旦水位到高水位,关闭进水阀,并设置准备正洗涤的标志 M0.1。

洗涤过程

// 正洗涤 IF M0.1 = 1 THEN TON T0, 15s; // 正洗涤定时器开始计时 15s Q0.2 := 1; // 电机正转 IF T0.Q = 1 THEN // 15s 到 Q0.2 := 0; // 电机停止正转 M0.2 := 1; // 暂停标志置 1 TON T1, 3s; // 暂停定时器开始计时 3s END_IF; END_IF; // 反转洗涤 IF M0.2 = 1 AND T1.Q = 1 THEN // 暂停 3s 结束 TON T2, 15s; // 反转洗涤定时器开始计时 15s Q0.3 := 1; // 电机反转 IF T2.Q = 1 THEN // 15s 到 Q0.3 := 0; // 电机停止反转 DB1.DBW2 := DB1.DBW2 + 1; // 正反转次数加 1 M0.3 := 1; // 检查正反转次数标志置 1 TON T3, 3s; // 暂停定时器开始计时 3s END_IF; END_IF;

正洗涤时,先启动 15 秒定时器,电机正转。15 秒到了就停止正转,进入 3 秒暂停。暂停结束开始反转洗涤,同样 15 秒,结束后正反转次数加 1,再暂停 3 秒。

循环判断及排水脱水

// 判断正反转次数 IF M0.3 = 1 AND T3.Q = 1 THEN IF DB1.DBW2 < 3 THEN // 正反转未满 3 次 M0.1 := 1; // 重新开始正洗涤 M0.2 := 0; M0.3 := 0; ELSE // 正反转满 3 次 Q0.1 := 1; // 打开排水阀 M0.4 := 1; // 准备脱水标志置 1 END_IF; END_IF; // 排水及脱水 IF M0.4 = 1 AND I0.1 = 1 THEN // 水位到低水位 TON T4, 10s; // 脱水定时器开始计时 10s Q0.5 := 1; // 开始脱水 Q0.1 := 1; // 继续排水 IF T4.Q = 1 THEN // 10s 到 Q0.5 := 0; // 停止脱水 DB1.DBW0 := DB1.DBW0 + 1; // 大循环次数加 1 M0.5 := 1; // 检查大循环次数标志置 1 END_IF; END_IF;

这里判断正反转次数,如果未满 3 次,就重新开始正洗涤。满 3 次就打开排水阀,水位到低水位时开始脱水 10 秒,完成一次小循环,大循环次数加 1。

大循环判断及报警

// 判断大循环次数 IF M0.5 = 1 THEN IF DB1.DBW0 < 3 THEN // 大循环未满 3 次 M0.0 := 1; // 重新开始整个流程 M0.1 := 0; M0.2 := 0; M0.3 := 0; M0.4 := 0; M0.5 := 0; DB1.DBW2 := 0; ELSE // 大循环满 3 次 Q0.4 := 1; // 洗完报警 END_IF; END_IF;

最后判断大循环次数,未满 3 次就重新开始整个流程,满 3 次就报警。

手动控制

// 手动排水 IF I0.6 = 1 THEN // I0.6 假设为手动排水按钮 Q0.1 := 1; // 打开排水阀 END_IF; // 手动停止 IF I0.7 = 1 THEN // I0.7 假设为手动停止按钮 Q0.0 := 0; // 关闭进水阀 Q0.1 := 0; // 关闭排水阀 Q0.2 := 0; // 停止电机正转 Q0.3 := 0; // 停止电机反转 Q0.4 := 0; // 停止报警 Q0.5 := 0; // 停止脱水 M0.0 := 0; M0.1 := 0; M0.2 := 0; M0.3 := 0; M0.4 := 0; M0.5 := 0; DB1.DBW0 := 0; DB1.DBW2 := 0; END_IF;

手动排水和手动停止的代码比较简单,检测对应按钮状态来控制相应的输出和标志变量。

设计报告要点

  • 需求分析:详细描述全自动洗衣机的功能需求,如上面提到的各个运行状态和控制要求。
  • 硬件设计:介绍 PLC 选型、I/O 分配以及接线图的设计思路。
  • 软件设计:说明程序的整体架构,各部分功能模块的设计原理,就像上面代码分析那样。
  • 测试与优化:讲述如何进行仿真测试,遇到的问题及解决办法。

通过这样的设计,我们就可以用 PLC 实现一个全自动洗衣机的基本控制逻辑啦,希望对大家有所帮助。

基于plc的全自动洗衣机控制设计 采用博途1200仿真,提供程序,设计报告,接线图。 实现要求(详见上方演示视频):PLC投入运行,系统处于初始状态,准备好启动。 启动时开始进水,水满(即水位到达高水位)时停止进水并开始正洗涤。 正转洗涤15s后暂停,暂停3s后开始反转洗涤。 反转洗涤15s后暂停,暂停3s后若正、反洗涤未满3次,则返回从正转洗涤开始的动作;若正、反洗涤满3次时,则开始排水。 排水水位若下降到低位时,开始脱水并继续排水。 脱水10s即完成一次从进水到脱水的工作循环过程。 若未完成3次大循环,则返回从进水开始的全部动作,进行下一次大循环;若完成了3次大循环,则进行洗完报警。 此外,还要求可以按排水按钮以实现手动排水;按停止按钮以实现手动停止进水、排水、脱水及报警。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 14:46:07

医生级AI助手来了!MedGemma 1.5实战:症状自查与病理分析指南

医生级AI助手来了&#xff01;MedGemma 1.5实战&#xff1a;症状自查与病理分析指南 1. 为什么你需要一个“本地医生”&#xff1f;——从隐私焦虑到真实需求 你有没有过这样的经历&#xff1a;深夜刷到一篇关于某种症状的科普文章&#xff0c;心跳加速&#xff0c;立刻打开搜…

作者头像 李华
网站建设 2026/4/23 14:10:13

CSDN开发者专属:教你打造自己的AI助手模型

CSDN开发者专属&#xff1a;教你打造自己的AI助手模型 你有没有想过&#xff0c;让一个大模型真正“认得”你&#xff1f;不是泛泛而谈的“我是Qwen”&#xff0c;而是清清楚楚地说出&#xff1a;“我由CSDN迪菲赫尔曼开发和维护”。这不是科幻设定&#xff0c;而是今天就能在…

作者头像 李华
网站建设 2026/4/23 14:09:42

Phi-3-mini-4k-instruct参数详解:Ollama中temperature/top_p/num_ctx调优指南

Phi-3-mini-4k-instruct参数详解&#xff1a;Ollama中temperature/top_p/num_ctx调优指南 1. 为什么你需要关注这三个参数 你刚在Ollama里拉取了phi3:mini&#xff0c;输入“你好”就得到了一句礼貌又简洁的回复——看起来一切顺利。但当你试着让它写一封专业邮件、解一道数学…

作者头像 李华
网站建设 2026/4/23 14:08:55

Llama-3.2-3B惊艳效果:Ollama本地运行3B模型生成带格式表格数据

Llama-3.2-3B惊艳效果&#xff1a;Ollama本地运行3B模型生成带格式表格数据 1. 为什么3B模型也能“扛大活”&#xff1f;——轻量不等于妥协 很多人一听到“3B参数”&#xff0c;第一反应是&#xff1a;“这能干啥&#xff1f;怕不是连长句子都理不清。” 但Llama-3.2-3B彻底…

作者头像 李华
网站建设 2026/4/19 13:05:42

零代码玩转SiameseUIE:中文文本智能分析实战

零代码玩转SiameseUIE&#xff1a;中文文本智能分析实战 你有没有遇到过这样的场景&#xff1a;手头有一堆产品评论、新闻报道或客服对话&#xff0c;想快速找出其中的人名、公司、时间、地点&#xff0c;甚至提取“音质很好”“发货慢”这类带情感的评价&#xff0c;却要花半…

作者头像 李华