新闻详情

新闻详情

首页 / 资讯中心 / 详情

三菱FX2N+组态王实现洗衣机PLC顺序控制系统详解

发布时间:2026/10/2 4:53:01来源:尧图网络
三菱FX2N+组态王实现洗衣机PLC顺序控制系统详解
做过PLC项目的朋友应该都有同感不管是在学校做毕设还是在车间里做设备改造翻来覆去就那么几套经典组合。三菱FX2N加上组态王这套搭配在国内自动化行业里算是“老朋友”了——一个是皮实耐用的小型PLC一个是装机量极大的上位机组态软件。而洗衣机控制系统呢又是一个典型的顺序控制项目几乎能把PLC编程的基础知识点全部串起来定时器、计数器、状态跳转、互锁保护再加上组态王做监控画面就是一套完整的“下位机上位机”工业控制方案。这套系统解决的核心问题很直接把传统洗衣机的机械控制模式改造成可编程逻辑控制并且通过组态王实现运行状态可视化、参数在线设定和故障报警监控。对于正在做PLC毕设的学生、刚入行想找项目练手的电气工程师或者一直没搞明白“PLC到底怎么和上位机组态软件配合干活”的朋友来说这个项目都是一个很好的实战样板。下面我就把这个项目的完整实现过程拆开讲从硬件选型到梯形图程序从组态王画面到联调排障每一步都按我实际做过的经验来说。1. 系统架构与硬件选型思路1.1 为什么选FX2N和组态王这个组合先说选型逻辑。FX2N是三菱的经典小型PLC虽然现在FX3U、FX5U都出来了但FX2N在存量市场里的保有量依然非常大二手模块价格便宜资料也极其丰富特别适合做学习和教学项目。它的指令系统覆盖了基本的位逻辑、定时器、计数器、比较指令、传送指令和步进顺序控制指令用来做洗衣机这种典型的顺序控制性能完全足够甚至可以说杀鸡用牛刀。组态王Kingview是亚控科技的产品在国内组态软件里占有率一直很高。选它有几个实实在在的理由它自带了针对三菱FX系列PLC的通信驱动程序不需要自己写通信协议配置一下设备地址就能连上。画面开发是所见即所得拖控件、绑变量、写动画连接学习曲线平缓一个礼拜就能上手。报表、报警、趋势曲线这些功能是内置的不用自己从零开发适合快速搭建监控系统。这个组合的另一个优势是“教学链路完整”。从PLC编程软件GX Developer或者GX Works2写梯形图到组态王建工程、配变量、做画面再到串口通信联调整条链路都是公开资料能查到的遇到问题搜一下基本都有答案。这一点对新手极其重要因为真正做项目时最怕的就是遇到问题找不到参考。1.2 硬件清单与I/O分配这个系统的硬件构成不复杂我实际用的配置如下设备型号/规格用途PLC主机三菱FX2N-32MR或者32MT带继电器输出即可核心控制编程电缆USB-SC09-FX 或 原装SC09程序下载与调试通信线RS232转RS485或直接用组态王支持的串口方式PLC与电脑通信模拟按钮启动、停止、急停、手动/自动切换操作输入指示灯电源、运行、洗涤、脱水、报警状态指示执行元件进水阀、排水阀、洗涤电机正反转接触器、脱水接触器被控对象传感器高水位开关、低水位开关、门开关状态检测上位机普通工业电脑组态王6.55或6.60监控与操作I/O分配是PLC项目里最先要做的事分配得好后面写程序和接线都省心。我习惯把输入输出分开编号并且预留备用点输入地址功能输出地址功能X0启动按钮Y0进水阀X1停止按钮Y1排水阀X2高水位开关Y2电机正转洗涤/漂洗X3低水位开关Y3电机反转洗涤/漂洗X4门开关门闭合为ONY4脱水接触器X5手动/自动切换Y5运行指示灯X6急停按钮Y6报警指示灯X7备用Y7备用这里有个细节要注意输入端的传感器我统一用了常开触点也就是水位到了才闭合。这样编程逻辑更符合直觉X2为ON表示水位已到高位X3为ON表示水位低到下限。如果你用的是常闭触点那梯形图里的取反逻辑会让新手绕晕排查起来也麻烦。所以从一开始就把传感器接线方式定清楚能省掉后面一堆调试时间。2. 洗衣机控制流程设计与梯形图编程2.1 先把控制流程拆成状态洗衣机的工作流程本质上是一串有先后顺序的状态启动后进水水位到了停下进水开始洗涤洗涤一定时间后排水排完水再进水漂洗漂洗完脱水最后停机或进入下一轮。每个状态都依赖“前一个状态完成”这个条件典型的顺序控制。我画流程的时候习惯先列状态表再写梯形图。因为直接在脑子里想梯形图很容易乱尤其是状态多了以后互锁和跳转条件会把人绕晕。这个项目的状态划分如下状态编号状态名称进入条件动作S0待机上电/复位完成无S1进水启动按钮按下门已关进水阀开S2洗涤高水位开关动作电机正转/反转交替S3排水洗涤时间到排水阀开S4漂洗进水低水位开关动作水位排低进水阀开S5漂洗高水位开关再次动作电机正转/反转交替S6排水漂洗时间到排水阀开S7脱水低水位开关动作脱水接触器吸合S8结束脱水时间到停止蜂鸣提示用状态S来做程序最大的好处是每个时刻只有一个状态是“激活”的程序结构一目了然。三菱FX2N的SFC顺序功能图指令天然支持这种做法但我个人在实际项目中更喜欢直接用普通辅助继电器M来模拟状态因为这样程序的可读性和在线调试便利性更好——你可以在组态王里看到当前是哪个M是ON的一眼就能判断洗衣机跑到哪一步了。2.2 梯形图核心逻辑实现下面把几个核心段的梯形图逻辑思路写出来。首先是状态切换的基础用M0到M8代表S0到S8这九个状态每次切换用SET和RST指令。启动进水的逻辑就是在待机状态下按下启动按钮X0并且门已关X4为ON就把M0复位、把M1置位同时输出Y0打开进水阀。用梯形图写的话可以这样组织// 待机 - 进水 LD M0 // 当前在待机状态 AND X0 // 启动按钮按下 AND X4 // 门已关 ANI X6 // 没有急停 SET M1 // 进入进水状态 RST M0 // 退出待机状态 // 进水状态输出进水阀 LD M1 OUT Y0这里用SET和RST而不是直接用OUT是因为状态切换的本质是“记忆”——我不能让进水阀在你松开启动按钮的瞬间就断电。SET/RST指令相当于一个带自锁的RS触发器这是顺序控制里最基础也最常用的手法。进水完成后进入洗涤判断条件是X2高水位开关动作LD M1 AND X2 // 高水位到位 SET M2 // 进入洗涤状态 RST M1 // 关断进水状态洗涤阶段的核心是电机正反转交替这里就要用到定时器了。我习惯用两个定时器实现T0控制正转时间比如15秒T1控制反转时间比如10秒。程序里用一个辅助继电器M10来切换方向// 洗涤状态运行 LD M2 OUT Y2 // 默认正转 // 正转计时 LD M2 AND Y2 OUT T0 K150 // 15秒FX2N的定时器单位是0.1秒K15015秒 // 时间到切换到反转 LD T0 SET M10 // 方向切换标志 RST T0 // 反转状态 LD M2 AND M10 OUT Y3 // 反转计时 LD M2 AND M10 OUT T1 K100 // 10秒 // 反转时间到切回正转并累加次数 LD T1 RST M10 RST T1这里有一个至关重要的细节三菱FX2N的定时器分为两大类一类是普通的T0-T199单位是0.1秒另一类是T200-T245单位是0.01秒。很多人第一次写程序时在这里翻车比如想定时5秒写了K5以为够了结果发现实际只有0.5秒。用FX2N做定时K值的单位要看清T0这种0.1秒的定时器K150才是15秒。如果你需要更高精度的定时用T200系列但要注意它们的分辨率是0.01秒最大定时范围也有限。洗涤次数的控制需要用计数器。我用C0来做洗涤次数的累加比如设定洗涤2次就进入排水// 每次方向切换完成计数一次 LD T1 OUT C0 K4 // 正转反转算一次完整循环设定4次 LD C0 SET M3 // 计数到进入排水状态 RST M22.3 互锁保护与手动/自动切换写洗衣机程序最容易忽略但又最不能省的是互锁和保护逻辑。先用最直白的电机正转和反转的接触器绝对不能同时吸合否则就是相间短路。所以在梯形图里正转输出和反转输出必须互相“锁死”LD M2 AND M10 ANI Y2 // 正转时不能反转 OUT Y3 LD M2 ANI M10 ANI Y3 // 反转时不能正转 OUT Y2用ANI指令做互锁是最简单可靠的方案比在组态或者外部硬件上做互锁更直接。当然正规项目里还要在硬件接触器回路里加机械互锁梯形图和硬件双保险这个后面调试部分再说。另一个重要的保护是门开关和急停。洗衣机在脱水时如果门被打开必须立刻停止电机并报警。所以在程序里所有电机输出都要串联门开关条件// 脱水输出带门锁保护 LD M7 AND X4 // 门必须关好 AND X5 // 手动/自动开关在自动档 OUT Y4急停则直接接在PLC输入端的X6程序里在每个输出前都串联了X6的常闭点。这里有一个经验之谈急停按钮最好用常闭触点接到PLC输入端程序里用ANI X6。这样一旦急停回路断线PLC会当作急停触发而不是当作没按下。如果你用常开触点线断了系统是不知道的这是重大安全隐患。手动/自动切换在实验项目里很实用。手动模式下我可以直接点动控制进水阀、排水阀、电机方便单独测试每个执行元件自动模式下程序才按状态流程跑。这个切换我放在X5。手动模式的逻辑相对简单就是每个输出独立控制并且仍然保留互锁// 手动模式下的正转点动 LD X5 // 手动档 AND X10 // 手动正转按钮 ANI Y3 OUT Y2实际做项目时我强烈建议把手动模式做进去。因为调试阶段你不可能第一次就跑自动流程总得先逐个验证执行元件的好坏和接线方向。没有手动模式你就得拔线或者改程序来测效率极低。3. 组态王画面开发与通信对接3.1 组态王与FX2N的通信配置PLC程序写完、能跑起来之后接下来就是组态王的部分。组态王和FX2N的通信常见的方式有两种一种是直接用PLC的编程口422口通过USB转串口线和电脑连接在组态王里选“三菱FX系列”驱动另一种是PLC加FX2N-485BD通信模块走RS485总线。前者简单适合单机监控后者适合以后扩展多台设备。我这里用的是第一种简单直接。在组态王里配置通信有几个关键步骤新建工程后在工程浏览器左侧的“设备”节点下新建“PLC——三菱——FX系列”。设置设备地址默认一般是0要和PLC的站号对应上。设置串口参数。波特率、数据位、校验位必须和PLC通信参数一致否则连不上。这里是最容易出问题的地方。FX2N的编程口默认波特率是9600数据位7偶校验停止位1。而组态王新建设备时默认的串口参数可能不是这一套很多人就是卡在这一步怎么都连不上一看参数全是默认的。所以我建议你在PLC软件端把通信参数固定下来比如波特率96007位数据偶校验然后在组态王里手动改成相同的参数不要信默认值。还有一个细节是串口号。现在很多电脑特别是笔记本没有原生串口用的是USB转串口线。这种情况下你必须在设备管理器里确认转出来的串口号是COM几然后在组态王里把串口选对。USB转串口的驱动质量参差不齐我踩过坑的是某些廉价转接线在通信量大的时候会丢数据后来换了带FTDI芯片的线就再没出现过。3.2 画面设计与变量关联组态王画监控画面核心工作有两块一是搭画面二是建变量。画面是给人看的变量是连PLC的两者通过“动画连接”联系起来。我这套洗衣机的监控画面主要包含这么几个区域设备概览区一台洗衣机的外形示意图在不同状态下会切换颜色或闪烁比如进水时进水管路的颜色高亮洗涤时滚筒图标旋转起来。状态指示区用文字灯显示当前状态——待机、进水、洗涤、排水、漂洗、脱水、结束、报警。操作按钮区启动、停止、急停复位按钮。参数设置区洗涤时间、漂洗时间、脱水时间、洗涤次数的设定值。数据实时显示区当前时间、当前状态编号、电机运行时长、进水/排水状态等。建变量的方式是这样的在工程浏览器的“数据库——数据词典”里新建变量。变量类型选“I/O整数”或“I/O离散”寄存器地址填PLC内部的软元件。组态王对三菱FX的寄存器映射很直接M0对应M0X0对应X0Y0对应Y0D0对应D0。要注意的是X和Y是按位访问的数据类型要选离散D寄存器是16位的类型选整数。比如我想监控洗衣机的当前状态就可以建一个变量叫“当前状态”类型为I/O整数寄存器地址填D10。然后在PLC程序里每个状态切换的时候把状态编号传送到D10// 状态编码传送 LD M1 MOV K1 D10 // 进水状态编码为1 LD M2 MOV K2 D10 // 洗涤状态编码为2 // 以此类推这样做的好处是组态王只需读一个D10就能知道整个系统跑到了哪个状态不用每个状态都做一个变量变量管理和画面刷新都更简洁。3.3 数据记录与报警功能组态王的价值不在于“能显示”而在于“能记录、能报警”。我在这套系统里做了两个实用的功能一是运行数据报表。组态王自带报表控件可以定时把D10的状态、电机的累计运行时间、进水阀门动作次数等写入报表。我实际做的时候是让组态王每隔一分钟从PLC读取一次数据写入当天的运行记录。这样洗衣机跑了一整天之后你能看到这天的洗涤流程是怎么走的每个状态持续了多久有没有异常跳变。对于分析设备使用情况非常有帮助。二是报警系统。我在组态王的报警配置里把几个关键故障点都设成了报警事件报警内容触发条件处理方式电机过载PLC输入X11热继电器动作弹窗提示停输出门未关启动启动时X4为OFF弹窗提示进水超时进水超过10分钟未到高水位报警停机通信中断组态王读不到PLC数据画面提示红色闪烁进水超时这个报警我是特别建议做的。很多初学者做的洗衣机程序进水阀开了就等着水位开关到位但万一水管没水或者水位开关故障进水阀会一直开着水漫金山都不知道。加一个超时判断其实就是用一个定时器在进水状态启动时开始计时10分钟到了水位还没到位说明出了问题立刻关阀报警。这个思路放到其他项目里也一样通用——任何执行机构动作都应该有超时判断这是工业逻辑的基本素养。4. 系统调试全过程实录4.1 硬件接线检查要点写程序之前先把硬件接线理清楚。我第一次做这个项目的时候就是在接线环节吃了亏所以这部分我多说两句。PLC输入端接线要注意“漏型/源型”的区别。FX2N默认是漏型输入也就是输入公共端COM接24V正极各个输入点通过外部开关接到0V。如果你用的是三线制的传感器还要把传感器的电源线接好。我习惯把所有输入开关的一端统一接到COM另一端接到对应的X点这样接线整齐检查也方便。输出端接线FX2N-32MR这种继电器输出型的COM端子是分组隔离的比如Y0-Y3共用一组COMY4-Y7共用另一组。每组COM可以接不同的电压源但同组内的输出必须共用一个电源。我实际做的控制柜里Y0-Y3接的是AC220V的负载电磁阀、接触器线圈Y4-Y7接DC24V的指示灯这样分组设计让强弱电分离安全性和抗干扰性都好一些。还要留意输出端必须给感性负载接触器线圈、电磁阀线圈并联续流二极管或者RC吸收电路。接触器线圈断电瞬间会产生很高的反向电动势如果不加保护元件轻则干扰PLC运行重则打坏输出继电器触点。这个细节经常被新手忽略但恰恰是设备长时间稳定运行的关键。4.2 程序下载与在线监控技巧程序写好后用GX Developer或者GX Works2连接PLC把程序写入然后切到RUN模式。连接不上PLC的常见原因有三个USB转串口线驱动没装好设备管理器里看不见串口。PLC的通信参数和编程软件里设置的不一致。编程口被占用比如组态王正在通过同一个口读PLC。第三点特别有意思很多人调试完PLC程序打开组态王去连PLC结果发现连不上其实就是因为编程口同一时间只能被一个软件占用。解决方法是调试PLC程序的时候关掉组态王或者PLC程序和组态王分开用不同的物理口。GX Developer远程操作PLC的时候是会独占串口的。程序下载之后在线监控是排查逻辑错误的神器。我在调试这个洗衣机程序时最常用的就是在梯形图上监控M0-M8的状态变化。比如按下启动按钮后我盯着M1有没有置位Y0有没有输出。如果按了启动没反应就去看M0是不是还在ON、X0有没有ON、门开关X4有没有ON一步一步追下去。很多新手遇到程序不工作第一反应是改程序其实更好的做法是先看监控数据。程序不工作的原因八成出在输入信号上而不是逻辑上。用组态王或者编程软件监视X0-X7的实时状态一眼就能看出哪个输入没接通。4.3 通信联调的实际操作顺序PLC程序调试好了组态王画面也搭完了接下来就是联调。我建议按照下面的顺序来避免两头都在找问题先确认串口物理链路。把串口线接好在组态王设备管理器里试着“测试连接”看能不能读到设备。用PLC读取测试。在组态王数据词典里建一个最简单的变量比如读D0画面里放一个数值显示看能不能读到PLC里D0的值。这个不用跑洗衣机流程只测试通信。手动模式测试。在组态王画面里做的手动控制按钮逐一测试进水阀、排水阀、电机的动作。自动流程测试。把水位开关先用短接线模拟或者实际供水跑一遍全流程观察状态跳转是否流畅。我实际联调时遇到过一个问题组态王画面上的启动按钮点了PLC就是没反应。排查了半天发现是按钮的“弹起时”和“按下时”的动画连接配置反了。组态王里按钮触发变量变更要设置好按下时的动作——常见的做法是在按钮的“按下”事件里写“\本站点\启动按钮1”在“弹起”事件里写“0”。如果你只在弹起事件里写了动作PLC收到的就是一个很短的脉冲时序稍有偏差就漏了。所以我后来都改成长按触发加自锁的逻辑把启动信号做成置位停止信号做成复位避免脉冲丢失的问题。5. 常见故障与排查技巧速查最后把我这几轮调试里遇到的典型问题整理成一张表方便你对照排查故障现象可能原因排查方法组态王连不上PLC串口号选错、波特率不一致、编程口被GX软件占用确认COM口号核对通信参数关闭其他软件按下启动没反应X0没接通、门开关X4未闭合、急停X6动作在线监控X0/X4/X6状态进水阀不动作Y0没输出、输出点烧坏、电磁阀线圈坏先看Y0指示灯再量输出端子电压洗涤时正反转不切换定时器K值设错0.1秒单位、M10逻辑问题在线看T0/T1计时状态脱水时电机不转门开关X4断开、脱水时间内有互锁干扰确认门锁信号查看Y4输出高水位到了还在进水水位开关接线类型不对、X2地址搞错监控X2状态用短接线测试输入组态王画面数据不动变量寄存器地址错误、数据类型不匹配用设备管理器测试读该地址的数据这里面我想重点讲两个高频坑。坑一电磁干扰导致通信不稳定。洗衣机的电机、接触器都是强干扰源如果PLC和电脑之间的通信线走在动力线旁边运行中很容易出现组态王数据闪断、画面数据跳变的情况。我以前贪省事把通信线和220V动力线绑在一个线槽里结果电机一启动组态王就开始报通信故障。后来把通信线单独走线、远离动力线并在两端加了磁环问题才彻底解决。做这个项目时务必给通信线留出独立的走线路径。坑二定时器和计数器掉电清零导致流程错乱。FX2N的T和C在PLC断电后会复位这个大家都知道。但如果洗衣机在洗涤过程中突然断电再来电程序会回到待机状态但洗衣机里的水可能还没排掉衣物还在滚筒里——直接重新启动就可能出现问题。我在项目里对这个问题做了处理用断电保持型的辅助继电器M500-M1023这类掉电保持区做当前状态的备份来电后检测到之前不是待机状态就提示用户选择“继续”还是“重新开始”。这个“掉电恢复”功能看起来不起眼但在用户实际使用中非常加分因为设备运行中突然停电实在太常见了。另外一个经验是调试时多用短接线和万用表少依赖猜测。水位开关、门开关这些输入信号如果用手去按或者用嘴吹气来模拟感应往往不可靠。我调试时直接拿了几个短接线在PLC接线端子上短接X0到X7模拟各种输入条件几分钟就能把整个流程跑完。等到真机上电后再逐个替换成真实的传感器信号这样能快速定位是传感器问题还是程序问题。最后再讲一下程序备份的习惯。我吃过一次亏程序改到一半电脑蓝屏没保存几十行逻辑全没了。自那以后我每完成一个版本的改动就另存一份带版本号的文件文件名类似“wash_v2_20250115.gxw”放在专门的备份文件夹里。调试完成后还会把最终版程序注释完整方便以后维护或者其他人接手。这个习惯在毕业设计、交给客户验收、或者后续自己做扩展时都会让你省下大量时间。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

智能工厂系统解决方案拆解:架构设计、数据采集与落地避坑 2026/10/2 5:36:46

智能工厂系统解决方案拆解:架构设计、数据采集与落地避坑

简介:面向智能制造升级场景的109页PPT方案,系统阐述某著名企业智能工厂整体架构与落地路径,适合制造业信息化规划、工业互联网平台选型及智能产线改造项目参考。方案融合云计算、大数据、物联网与AI,覆盖营销云、采购云、制造云、…

阅读更多 →
MES基础业务考核试题设计:从考点地图到docx文档落地 2026/10/2 5:36:46

MES基础业务考核试题设计:从考点地图到docx文档落地

简介:这是面向制造业从业者、MES系统实施人员及企业信息化初学者的基础业务考核资料,以2016年实习生MES基础业务考核试题为载体,覆盖MES核心概念、ISA-95标准、物料与BOM管理、QMS质量系统、JIT生产方式、KPI指标、离散/流程制造区别及数字化…

阅读更多 →
告别苦劳陷阱:用验收标准和结果导向提升职场效率 2026/10/2 5:36:25

告别苦劳陷阱:用验收标准和结果导向提升职场效率

时间管理、个人成长、职场效率这些话题我聊过不少,但真正让我想坐下来写点东西的契机,是上个月的一次复盘。我有个朋友,连续加班四十天,每天在群里发自己凌晨下班打卡的照片,配一句“今天又是充实的一天”。结果季度考…

阅读更多 →
Hindsight:面向LLM应用的轻量级请求可观测性调试工具 2026/10/2 5:36:18

Hindsight:面向LLM应用的轻量级请求可观测性调试工具

1. 项目概述:Hindsight 不是“事后诸葛亮”,而是一套可落地的 LLM 应用观测与调试基础设施最近在多个技术社区和内部工程群里,频繁看到hindsight这个词被提起——不是作为哲学概念,也不是调侃式表达,而是实实在在出现在…

阅读更多 →
灯塔工厂四层解耦架构:OT/IT时序一致性设计 2026/10/2 5:36:18

灯塔工厂四层解耦架构:OT/IT时序一致性设计

简介:本资源是一份面向制造业数字化转型从业者、智能制造规划师及企业技术决策者的灯塔工厂架构设计专业课件,系统梳理灯塔工厂的核心内涵、顶层设计逻辑与技术落地路径。课件紧扣世界经济论坛(WEF)认证标准,深入解析“…

阅读更多 →
RGB归一化全解析:从数值稳定到高效工程实现 2026/10/2 5:36:17

RGB归一化全解析:从数值稳定到高效工程实现

做图像处理和视觉算法的,几乎没有人能绕开RGB归一化这件事。我第一次认真琢磨它,不是因为读论文受启发,而是因为训练时loss从第一个epoch开始就一路NaN,排查到凌晨才发现输入张量还停在0到255的整数区间,几层卷积一叠加…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉