简介:本资源为一套面向自动化、机电一体化专业学生及PLC初学者的课程设计与毕业设计参考文档,围绕三菱FX2N系列PLC实现大小球自动分拣展开,解决机械臂上下左右移动与抓取释放动作的编程控制问题,适合作为课程设计模板、答辩备查材料或自学梯形图编程的实操范例。压缩包内共1个docx文件,约251KB,内容完整覆盖硬件设计、I/O地址分配及接线图、元件选型、系统流程图、顺序功能图、梯形图与指令表、程序分析以及软硬调试等章节,并附有摘要、目录、设计感想与参考文献。读者可据此了解从控制要求分析到程序落地的完整设计链路,掌握机械臂动作时序编排与递进式分拣逻辑的编写思路。该资源已有643人学习下载,对需要快速搭建设计框架、参照格式撰写文档或排查程序逻辑的读者具有一定参考价值。
1. 大小球分拣为什么适合用FX2N顺序控制
一条传送带上混着大小球,机械臂停在左限、上限的原点,按下启动后要完成下降、吸球、上升、右行、下降、释放、上升、左行返回。这个动作链看着简单,真正难的是每一步的转换条件:没到上限不能右行,没吸住球不能上升,小球和大球的右行终点还不是同一个限位开关。三菱FX2N系列PLC适合这种小规模、强顺序、点位固定的分拣系统,输入端接启动/停止按钮、左限、上限、下限、小球右限、大球右限和接近开关,输出端接电磁阀和位置指示灯。课程设计里反直觉的一点是球径判别:小球能被吸盘压到下限,X2接通;大球顶住吸盘,X2断开。把X2和接近开关X6一起用,吸球完成后才能分流。适合复现机电课程设计、PLC编程入门和小型分拣台架的人。
2. FX2N硬件链路与I/O地址分配
2.1 主电路与PLC控制回路边界
这套系统的主电路仍然是电动机正反转拖动机械臂上下、左右移动,PLC处理的是控制回路:按钮、行程开关、接近开关进入X端,接触器线圈、电磁阀、指示灯挂在Y端。机械臂右行和左行、上行和下行之间要做互锁,常见做法是主电路用接触器常闭触点做电气互锁,程序里再用输出步互锁作双保险。三菱PLC输出有继电器型和晶体管型,如果Y1到Y4直接带交流接触器线圈,继电器输出寿命会被频繁动作吃掉,我一般会加中间继电器,再由中间继电器去带接触器;Y5吸球电磁阀如果是DC24V,线圈两端并一只续流二极管,减少断电反峰。
接近开关X6用来确认吸盘下方确实有球,下限开关X2用来区分球径。这里要特别注意:控制要求写的是“压着大球时X2断开,压着小球时X2接通”,所以X2的机械安装和触点类型必须围绕这个逻辑选,不能只看常开常闭哪个顺手。若选错,后面梯形图的大小球分支会整体反过来,表现为小球跑到大球右限、大球跑到小球右限,程序本身却没有任何语法错误。
2.2 I/O地址分配表与接线图落地
按原始设计要求,输入输出分配可以整理成下面这张表。接线前先把每个地址对应的物理器件写在标签上,再对应到PLC端子,能省掉大量“监控到X动作但找不到是哪个开关”的时间。
| 类型 | 地址 | 功能 | 信号来源/负载 | 备注 |
|---|---|---|---|---|
| 输入 | X0 | 启动按钮 | 绿色按钮常开 | 按下置位启动步 |
| 输入 | X1 | 左限位开关 | 微动式行程开关 | 原点条件之一 |
| 输入 | X2 | 下限位开关 | 压合/断开判别球径 | 小球接通,大球断开 |
| 输入 | X3 | 上限位开关 | 微动式行程开关 | 原点条件之一 |
| 输入 | X4 | 小球右限位开关 | 小球落点检测 | 右行到位 |
| 输入 | X5 | 大球右限位开关 | 大球落点检测 | 右行到位 |
| 输入 | X6 | 接近开关 | 霍尔式,检测有球 | 吸球确认 |
| 输入 | X14 | 停止开关 | 停止按钮 | 原始指令表未展开,复现时补 |
| 输出 | Y0 | 原点显示 | 指示灯 | 左限且上限时亮 |
| 输出 | Y1 | 下行 | 接触器/中间继电器 | 驱动下降 |
| 输出 | Y2 | 上行 | 接触器/中间继电器 | 驱动上升 |
| 输出 | Y3 | 右行 | 接触器/中间继电器 | 驱动右移 |
| 输出 | Y4 | 左行 | 接触器/中间继电器 | 驱动左移 |
| 输出 | Y5 | 吸球 | 电磁阀线圈 | 通电吸,断电放 |
为了在编程时少翻表格,可以先把软元件命名写成一份映射草稿,GX Developer 或 GX Works2 里建工程时按FX系列选型,再逐条核对X/Y地址。
// FX2N软元件命名草稿,注释仅用于对照,不占用程序行 START_BTN := X0 // 启动,常开 LS_LEFT := X1 // 左限 LS_LOWER := X2 // 下限,球径判别:小球ON,大球OFF LS_UPPER := X3 // 上限 LS_RIGHT_SMALL := X4 // 小球右限 LS_RIGHT_BIG := X5 // 大球右限 SENSOR_BALL := X6 // 接近开关,有球吸合 STOP_BTN := X14 // 停止 ORIGIN_LAMP := Y0 // 原点显示 DOWN_VALVE := Y1 // 下行 UP_VALVE := Y2 // 上行 RIGHT_VALVE := Y3 // 右行 LEFT_VALVE := Y4 // 左行 MAGNET_VALVE := Y5 // 吸球电磁阀这段映射不是要写进PLC,而是用来检查“程序里的X2是不是接线端子上的X2”。参数上唯一要盯住的是X2和X6的配合:X2只说明机械臂压到了下限,X6才说明吸盘附近有球。启动后进入下降步,X2和X6同时满足才允许进入吸球步,这样比只看X2可靠。若接近开关是NPN输出,FX2N输入公共端接法要和传感器类型匹配,接反时X灯可能常亮或不亮。
2.3 元件选择与接线细节
按钮按使用场合选,绿色启动、红色停止,常见规格交流500V、持续电流5A,够课程设计台架用。行程开关有直动式、滚动式、微动式,直动式结构简单但触头容易烧蚀,滚动式价格高,台架小、动作轻时用微动式更合适。接近开关用霍尔式检测铁球,安装位置要避开机械臂金属干扰,感应面离球太远会漏检,太近又容易撞坏。
接触器选交流电磁式CJ12系列时,要按负载电流、控制电压和主回路电压核对,50Hz、380V场景下线圈电压别接错。熔断器选RT15型有填封闭管式,额定分断能力和最大额定电流按主回路选,别为了“保险”把熔体选得过小,否则接触器吸合瞬间就会误断。电磁阀从可靠性、经济性看,直动式适合这种小流量吸放动作,线圈断电释放铁球,程序中Y5的SET/RST时机直接决定球是吸住还是落下。
2.4 上电前静态检查
先断主电路,只给PLC控制电源,按下面顺序查一遍:
- 用万用表通断挡确认X0、X1、X3、X4、X5、X14在对应机械位置下能可靠通断。
- 手动压住吸盘模拟小球,确认X2接通;垫住模拟大球,确认X2断开。
- 遮挡霍尔接近开关,确认X6输入灯变化,传感器供电电压与FX2N输入匹配。
- 查Y0到Y5所带负载,电磁阀和中间继电器线圈并联续流二极管,极性不能反。
- 把PLC切到RUN前,先只监控输入,不让输出带机械负载,确认每个X点与物理动作一一对应。
提示:第一次上电不要直接吸球,先把电磁阀气管断开或把机械臂架空,用输出指示灯看Y5动作,确认程序时序无误后再接机械负载。
3. 顺序功能图到梯形图:机械臂分拣步进编程
3.1 状态步划分与转换条件
这套动作适合用三菱PLC的步进指令写,S0是初始等待,S20到S31把每个动作拆开。每个状态只负责一件事:输出某个动作、等待某个转换条件、置位下一步。原始程序里S20显示原点,S21下行,S22/S25开始按X2分流,S23/S26上行,S24/S27右行,S28下降释放,S29复位吸球并延时,S30上行,S31左行回原点。
| 步 | 动作 | 输出 | 转换条件 | 下一步 |
|---|---|---|---|---|
| S0 | 上电等待 | 无 | X1且X3 | S20 |
| S20 | 原点显示 | Y0 | X0启动 | S21 |
| S21 | 下降 | Y1 | X2且X6 | S22 |
| S21 | 下降 | Y1 | 非X2且X6 | S25 |
| S22 | 吸球,小球分支 | Y5 | T0到 | S23 |
| S23 | 上升 | Y2 | X3 | S24 |
| S24 | 右行至小球位 | Y3 | X4 | S28 |
| S25 | 吸球,大球分支 | Y5 | T0到 | S26 |
| S26 | 上升 | Y2 | X3 | S27 |
| S27 | 右行至大球位 | Y3 | X5 | S28 |
| S28 | 下降释放 | Y1 | X2 | S29 |
| S29 | 复位吸球并延时 | 无 | T1到 | S30 |
| S30 | 上升 | Y2 | X3 | S31 |
| S31 | 左行返回 | Y4 | X1 | S20 |
这张表里最容易写错的是S21的分支:X2接通对应小球,X2断开对应大球。原始程序分析文字里有一处把大小球说反了,按控制要求和梯形图应以X2接通为小球、断开为大球为准。复现时先照表检查,再照梯形图检查,别照着文字描述硬改。
3.2 初始化、下降与大小球分支
下面截取关键指令表,行号按原始表整理,注释是我加的,用于对照动作。M8002只在FX2N上电后的第一个扫描周期ON,用它置位S0;X1和X3同时满足说明机械臂在左限和上限,进入S20等待启动。
; 上电初始化与原点确认 0 LD M8002 1 SET S0 2 STL S0 3 LD X1 ; 左限 4 AND X3 ; 上限 5 SET S20 6 STL S20 7 OUT Y0 ; 原点显示 8 LD X0 ; 启动按钮 9 SET S21 ; 下降与吸球分流 10 STL S21 11 OUT Y1 ; 机械臂下行 12 LD X2 13 AND X6 14 SET S22 ; X2接通且吸到球,走小球分支 15 LDI X2 16 AND X6 17 SET S25 ; X2断开且吸到球,走大球分支逻辑上,STL指令让每个S步有独立的母线,S21内OUT Y1只在下行步有效。转换条件X2与X6的关系要连起来看:X6表示有球,X2表示压到下限;小球能被压到下限,所以X2为ON,程序进入S22,后面右行到X4;大球顶住吸盘,X2为OFF,程序进入S25,后面右行到X5。参数上M8002不能换M8000,M8000上电后一直ON,会让S0反复置位,原点显示和启动步都会乱。
3.3 吸球延时、右行与释放回原点
吸球和释放都要给电磁阀一点保持时间,原始程序用T0和T1,各K10。FX2N里T0到T199是100ms定时器,K10就是1s;如果换成T200以后,时基会变,K10只有0.1s。下面片段展示小球分支的吸球、上升和右行,大球分支结构相同,只是右限从X4换成X5。
18 STL S22 19 SET Y5 ; 吸球电磁阀通电 20 OUT T0 K10 ; 吸球保持1s 21 LD T0 22 SET S23 24 STL S23 25 OUT Y2 ; 上升 26 LD X3 27 SET S24 28 STL S24 29 OUT Y3 ; 右行 30 LD X4 31 SET S28 ; 到小球右限 ; 释放与返回部分 46 STL S28 47 OUT Y1 ; 下降 48 LD X2 49 SET S29 50 STL S29 51 RST Y5 ; 断电释放铁球 52 OUT T1 K10 ; 释放后延时1s 54 LD T1 55 SET S30 56 STL S30 57 OUT Y2 ; 上升 58 LD X3 59 SET S31 60 STL S31 61 OUT Y4 ; 左行返回S28到S31这段决定球能不能平稳放下。RST Y5之后电磁阀断电,铁球落下,T1延时1s再上升,避免吸盘还带剩磁或球还没完全离开。左行返回时,程序应等待X1左限接通,回到S20显示原点。原始指令表第62、63、64行出现“LD X1 / ANI X1 / SET S20”,从逻辑上X1与“非X1”不可能同时成立,复现时不要照抄,应改成“LD X1 / SET S20”;若需要停止后回原点,再把停止请求串进回原点条件。
3.4 停止按钮与回原点逻辑补充
X14停止开关在原始指令表里没有完整展开,但控制要求写得很明确:停止时机械臂必须已回到原点。比较稳的写法不是一按停止就切断所有输出,而是置位一个停止请求M10,让当前动作走完,回到左限X1、上限X3后复位M10并回到S20。示意逻辑如下:
; 停止请求锁存 LD X14 SET M10 ; 回原点后清除停止请求 LD M10 AND X1 AND X3 RST M10 SET S20这段逻辑里X14建议按停止按钮的常闭或常开统一处理,程序里SET M10的触发沿最好只取一次,避免长按反复置位。M10不直接切Y输出,是为了防止机械臂停在中途、吸盘还吸着球。实际调试时可以把M10接到一个备用指示灯,按停止后看灯什么时候灭,就能判断回原点流程有没有走完。
4. 指令表逐段分析与软硬件联调排错
4.1 从M8002到S20的程序骨架
M8002置位S0后,S0步等X1和X3,这两个信号一个是左限,一个是上限。很多台架第一次上电原点灯不亮,不是程序错,而是机械臂停在中间,X1或X3没被压住。S20步输出Y0,再等X0启动,这里X0只置位S21,不直接驱动Y1,是为了让启动动作也纳入步进链,后续每一步都能被X1、X2、X3、X4、X5、X6约束。
STL步进指令的特点是:进入某个S步后,该步内的OUT才有效,上一步的输出会自动断开,不需要额外写互锁。但要注意RET指令的位置,所有STL步结束后要写RET,再写END。原始指令表最后有RET和END,复现时别漏。若漏RET,程序可能报语法错误,或者后续普通梯形图段不按预期扫描。
4.2 用GX Developer或GX Works2做软元件监控
三菱PLC编程教学里最实用的调试手段不是反复改程序,而是先监控软元件。把PLC切到监控模式,添加下面这些点位,按动作顺序观察哪个条件卡住。
监控窗口建议加入: X0, X1, X2, X3, X4, X5, X6, X14 Y0, Y1, Y2, Y3, Y4, Y5 S0, S20, S21, S22, S23, S24, S25, S26, S27, S28, S29, S30, S31 T0, T1 M10(如果补了停止请求)监控时先手按启动X0,看S21是否置位;再看Y1是否输出,机械臂是否下行;压到下限后看X2和X6是否同时ON,S22或S25是否按预期置位。若X2状态和实际球径相反,不用改程序,先改行程开关触点或安装位置。若S22置位但Y5不吸,查Y5输出端子和电磁阀电源;若T0不走,查S22步是否被后续步意外置位打断。强制输出功能只建议在空载时用,带机械负载强制Y1到Y4很容易撞限位。
4.3 典型故障与排查表
| 现象 | 可能原因 | 排查点 |
|---|---|---|
| 上电原点灯Y0不亮 | X1或X3未接通,原点条件不满足 | 监控X1、X3,手动压限位看变化 |
| 按启动无反应 | X0接线松动,S0未置位,PLC未RUN | 看X0输入灯,监控S0、S20 |
| 下降后不吸球 | X6未检测到球,接近开关距离不对 | 看X6,调整霍尔开关位置 |
| 吸球后不进分支 | X2状态与球径相反 | 小球应X2 ON,大球应X2 OFF |
| 小球走到大球右限 | X4/X5接反,或X2判别反 | 监控X4、X5撞块位置 |
| 右行到位不停 | 行程开关常开常闭选错 | 监控X4或X5,查撞块是否压住 |
| 释放后不上升 | T1未到,RST Y5后条件没转 | 监控T1、S29、S30 |
| 停止后停在中途 | X14停止逻辑未写回原点 | 补M10锁存和X1/X3复位 |
| 左行不回原点 | X1信号未到,回S20逻辑有误 | 检查原始LD X1/ANI X1段 |
这张表里最值得提前做的是X2和X6。X2是机械压合信号,X6是传感器信号,两者都可能因为安装位置变化而漂移。调试时不要只看一次,连续放十个小球和十个大球,观察每次S22、S25是否稳定,必要时在吸球步前加一个短延时确认X6,避免机械振动造成瞬间误判。
4.4 空载、单步、联调的顺序
我一般按三步走:第一步空载,不接电磁阀气管,只让PLC输出指示灯和接触器动作,确认每个S步能按顺序走完;第二步单步,手动压X1、X3、X2、X4、X5、X6,逐个模拟传感器,看分支和回原点是否闭合;第三步带载,先放小球,再放大球,最后混放。带载时先调下限开关X2,再调右限X4和X5,最后调接近开关X6。若机械臂右行时撞到限位才停,说明右限开关撞块位置太靠后,或者程序里等待的X4/X5不是当前分支该等的位置。
5. 从单球分拣到节拍优化:状态机写法与验证技巧
5.1 用M寄存器和状态机替代大段STL
STL写顺序动作很直观,但步数一多,分支和停止逻辑会显得散。想继续优化,可以用M寄存器写状态机,每个状态只做三件事:输出、判断、转移。下面是一个下降和吸球段的状态机示意,M20表示下降状态,M21表示吸到小球,M25表示吸到大球。
; M状态机片段,每个状态独立转移 LD M20 ; 下降状态 OUT Y1 LD X2 AND X6 SET M21 ; 小球:X2 ON LDI X2 AND X6 SET M25 ; 大球:X2 OFF LD M21 SET Y5 OUT T0 K10 LD T0 SET M22 ; 进入小球上升 LD M25 SET Y5 OUT T1 K10 LD T1 SET M26 ; 进入大球上升M状态机的好处是可以用普通触点、置位、复位指令组合,便于把停止请求M10串进每个转移条件,也方便在HMI或触摸屏上做状态显示。参数上T0、T1仍然按100ms时基算,K10为1s;如果改用10ms定时器,K100才是1s。状态机里要记住每次置位新状态时复位旧状态,否则两个状态同时ON,Y输出会打架。
5.2 节拍测量与互锁增强
验证节拍时,可以在启动步和回原点步各加一个计数器或数据寄存器,记录一个完整周期的时间。简单做法是用T2做周期计时,S21置位时RST T2,回S20时读T2当前值。若节拍偏慢,先看T0、T1这两个1s延时能不能压缩:吸球保持时间取决于电磁阀和球重,常常可以从K10降到K5,即0.5s;释放延时如果球能可靠落下,也可以缩短。但下限X2、上限X3、左限X1这些机械行程开关,不能为了快而绕过,它们仍然是安全互锁。
增强互锁时,把X6吸球确认串进每一步的转换条件,而不是只在吸球步检查,节拍会多几毫秒,但废品率更可控。
本文还有配套的精品资源,点击获取