ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

基于S7-200 PLC与MCGS触摸屏的苹果自动分拣控制系统设计

基于S7-200 PLC与MCGS触摸屏的苹果自动分拣控制系统设计 1. 先把分拣工艺说清楚苹果从哪来、到哪去、PLC要管什么我这两年接触的苹果分拣控制需求基本都长一个样苹果从料斗出来在传送带上走一段按大小或颜色分到几个料箱里顺带统计产量。这个活儿看着简单真动手做起来IO怎么定义、梯形图怎么组织、触摸屏和PLC怎么配合每一步都有讲究。这篇文章要聊的是一套完整的方案西门子S7-200 PLC负责逻辑控制MCGS触摸屏做人机界面传送带电机负责输送光电传感器和颜色识别传感器负责检测三个气缸按等级把苹果推进对应的料箱。内容覆盖工艺分析、IO分配、梯形图设计、接线图原理图绘制、MCGS组态以及现场调试经验大部分内容都来自我在类似小型设备上反复验证过的做法。先说明一点如果系统的基础工艺逻辑没理清后面画再漂亮的图纸、写再多程序都是白搭所以这一章先把控制对象和需求讲透。1.1 一套典型苹果分拣线的动作流程按最常见的配置来说设备结构大致是这样料斗或振动给料器把苹果逐个放到传送带上传送带以恒定速度向前走苹果依次经过检测区。检测区装了两个传感器一个是光电传感器检测“有苹果到了”另一个是颜色识别类传感器判断这个苹果属于哪一档。苹果继续往前走走到1号、2号、3号分拣口时对应气缸把苹果推进料箱没被推走的苹果最后从传送带末端掉入废料收集箱。用一句话概括PLC的任务读检测区信号判断等级然后按苹果在传送带上的位置在正确的分拣口、正确的时机驱动气缸。这句话听起来简单但它牵扯出的问题很实际——检测区到每个分拣口的距离不同传送带速度又不可能绝对恒定苹果也不是一个一个等间距排列的那么PLC怎么知道某个苹果到没到该推的位置这就引出了项目中最核心的控制难点苹果的“等级信息”和“到达时机”必须同时对得上。在文中这套方案里我采用教学和调试都比较友好的做法检测区到三个气缸口分别按距离计算定时时间用定时器把“到达时刻”推算出来。皮带速度稳定时这套方案可靠性很高如果节拍很快、精度要求高可以给传送带加编码器用高速计数器替代定时器逻辑上也是这篇文章思路的延伸。1.2 为什么选S7-200和MCGS这套组合有人会问西门子S7-200不是停产了吗为什么还要用它来写教程这个问题我在好几个现场被问过。实际原因很现实市面上大量存量设备还在用它很多院校的PLC课程也以S7-200为教学机型资料多、指令简单、梯形图直观学生和一线电工都能快速上手。MCGS触摸屏则胜在组态方便对串口设备驱动支持得很全和S7-200通过PPI协议通信几乎是“天然一对”。另一个原因是性价比。一条小型苹果分拣线的输入输出点并不算多用中型PLC属于浪费S7-200这种级别的控制器加一块7寸MCGS触摸屏成本可控程序开发周期也短。我并不是说新项目一定要选S7-200只是针对“苹果分拣机控制”这个具体场景S7-200完全够用而且它把“逻辑控制”这件事讲得很清楚非常适合想从原理层面搞懂顺序控制的人。1.3 控制系统要解决的三个核心问题第一是识别。苹果属于哪一档靠检测区两个传感器组合判定。第二是定位。什么时候该推、推哪个气缸这是定时或位置跟踪逻辑的核心。第三是统计与人机交互。产量要显示、报警要提示、运行模式要切换这是MCGS触摸屏的舞台。把这三个问题拆开就得到了文章后面所有内容的骨架识别靠IO接线和梯形图判断定位靠定时器与执行逻辑统计和交互靠触摸屏组态。2. 硬件到手之前先做IO分配一张表定乾坤我在现场遇到过不少新手上来就打开编程软件开始写梯形图写到一半发现输出点不够用或者传感器类型和PLC输入端不匹配只能回去改图纸。实际上一个PLC控制项目最先应该做的不是写程序而是出一张完整的IO分配表。IO分配表的作用相当于给所有输入信号和输出负载“办户口”。有了它后面画图、编程、组态、接线、调试全部围绕这一张表展开。表里每个点对应的物理器件、线号、触摸屏变量都要一致这才是项目能顺利推进的基础。2.1 输入信号和输出信号怎么梳理方法很简单把整个分拣线上的所有电气元件列出来分成两类。一类是给PLC送信号的比如启动停止按钮、光电传感器、颜色传感器、热继电器触点、急停按钮这些全是输入。另一类是接受PLC驱动指令的负载比如传送带电机接触器、分拣气缸电磁阀、报警灯、蜂鸣器这些全是输出。梳理过程中最容易被忽略的是“备用”和“联锁”点。比如气源压力开关很多小设备不装但压缩空气一旦停了气缸没动作苹果全挤在传送带上现场又看不出原因会排查到崩溃。再比如热继电器的常闭触点一定要接入PLC输入没有过载保护的控制系统等于裸奔。每预留10%到15%的备用输入输出点也是这类项目的基本习惯。2.2 本文使用的IO分配表下面是我在这个项目里的分配方案PLC选的是西门子S7-200 CPU22414点输入、10点继电器输出。地址信号名称类型说明I0.0启动按钮SB1常开输入按下启动传送带I0.1停止按钮SB2常闭输入按下停止I0.2急停按钮SB3常闭输入急停硬接线同时切断控制回路I0.3热继电器FR1辅助触点常闭输入电机过载信号I0.4检测区光电传感器常开输入检测到苹果为ONI0.5等级识别传感器A常开输入用于颜色/大小识别I0.6等级识别传感器B常开输入用于颜色/大小识别I0.7末端废果计数光电常开输入统计流入尾部收集箱的果I1.0气源压力开关常开输入气压正常为ON可选Q0.0传送带电机接触器KM1继电器输出驱动电机运转Q0.11号分拣气缸电磁阀YV1继电器输出1号口推出Q0.22号分拣气缸电磁阀YV2继电器输出2号口推出Q0.33号分拣气缸电磁阀YV3继电器输出3号口推出Q0.4红色报警灯/蜂鸣器继电器输出故障报警Q0.5绿色运行灯继电器输出自动运行状态指示Q0.6黄色手动状态灯继电器输出手动模式指示Q0.7~Q1.1备用输出继电器输出预留扩展两个等级识别传感器组合出来的结果是I0.5和I0.6都为OFF判为不合格果不推I0.5为ON、I0.6为OFF判为A级红果1号气缸推I0.5为OFF、I0.6为ON判为B级青果2号气缸推两个都为ON判为特级果3号气缸推。这套组合相当于用两个开关量编码出4个状态PLC梯形图里用常开常闭触点组合就能判断不需要额外配模拟量模块。2.3 按IO点数选PLC型号和触摸屏型号上面输入用了9个点输出用了7个点CPU224的14DI/10DO基本就是一个“紧平衡”方案实际还有I0.0~I3等备用输入和Q1.0、Q1.1备用输出。如果考虑后期增加变频器、模拟量传感器就选CPU226加一个EM231模拟量扩展模块IO余量会大很多。触摸屏选用MCGS嵌入版7寸屏比如TPC7062K这一档的机型。它自带RS485串口和S7-200的PORT0口通过PPI协议通信只需两根信号线外加一根公共地线。MCGS的嵌入版组态软件虽然画面上的“控件风格”偏传统但胜在稳定和PLC、变频器等串口设备的驱动非常多像S7-200这种经典机型支持得相当完善。2.4 IO映射为什么值得做很多参考程序喜欢直接把I0.4、Q0.1这样的地址铺满全文看着直白但到了工程中就不好维护。我习惯在程序起始段做一次IO映射输入信号拷贝到V区或M区位输出逻辑最终汇总到Q点。这样做有三个好处。第一现场接线改动时比如把1号气缸电磁阀从Q0.1改到Q0.2只需要改一处映射网络和接线不用翻遍整个梯形图改地址。第二MCGS触摸屏读写V区和M区更稳定尤其位变量操作比直接对输入输出映像区频繁读写要干净。第三程序结构清楚上下位机分离以后复用这套程序做其他分拣设备直接改映射段就能适配。这里顺便回答一个很多人会搞混的问题IO映射不是只映射输入输出点同样要映射。输入把实际状态“搬”到内部区输出把逻辑结果“汇”到实际输出点两边都做程序才真正解耦。3. 梯形图程序分段设计每个逻辑块拆开讲这一节是整篇文章的重点。我的习惯是把整个程序的梯形图按功能拆成若干Network每个Network只干一件事。这样调试时能快速定位到报警是哪一段的问题。下面按编号逐段解释你照着这个思路在STEP 7-Micro/WIN里逐段搭出来就是一套完整的程序。3.1 Network 1~2启停、急停与过载的双保险Network 1是运行标志M0.0的控制逻辑。启动按钮I0.0按下时如果停止按钮I0.1没有按下、急停按钮I0.2没有按下、热继电器I0.3没有动作M0.0就置位并自保持。停止按钮是常闭接法也就是正常时该输入点为ON按下后变为OFF梯形图里用常开触点读取它的“未停止”状态。用ASCII梯形图看一下电机输出这段Network 2 传送带电机输出 M0.0 I0.2 I0.3 Q0.0 ------| |---------|/|----------|/|-----------( )--其中“| |”是常开触点“|/|”是常闭触点“( )”是输出线圈。这段逻辑的意思是运行标志为ON、急停没有按下、热继电器没有动作这三个条件同时满足传送带电机才运转。这里有两点要重点解释。第一急停按钮的常闭触点要同时接在PLC输入里和硬件控制回路里PLC里的急停用于逻辑联锁硬件回路里的急停用于物理断电。只靠PLC程序做急停是不安全的如果PLC故障或者程序跑飞了急停会失去意义。第二热继电器FR1的动作触点必须串进主回路接触器的控制回路中同时在PLC输入端留一个监测点用于报警显示。3.2 Network 3~5苹果等级识别与“记住它是谁”检测区光电传感器I0.4的上升沿表示“一个苹果到了”。当I0.4由OFF变ON时立即采样I0.5和I0.6的状态判断等级并给对应的“分拣标志位”置1。具体是这样如果I0.5为ON且I0.6为OFF说明是A级果置位M10.0并启动定时器T37如果I0.5为OFF且I0.6为ON说明是B级果置位M10.1并启动T38如果两个都是ON说明是特级果置位M10.2并启动T39两个都是OFF则视为不合格果不置位任何标志让苹果直接流到末端废料箱。先解释为什么用“置位”而不是用“输出线圈”。因为I0.4的上升沿只在一个扫描周期内有效如果用普通输出线圈下一周期M10.0就会被自动清零根本来不及等待定时器到达。置位指令能把这个状态“锁存”住等到气缸完成推出动作后再统一复位这是顺序控制里最常用的思路。再解释等级组合为什么要用两个传感器而不是一个。因为一个开关量只能表示“是/否”而本文的工艺有四个分类两个开关量组合起来可以表示四种状态。如果现场是模拟量颜色传感器那就需要模拟量模块和比较指令逻辑类似只是多了量程标定本文先不展开。3.3 Network 6~8定时跟踪与气缸推出的时序配合这一组网络是分拣成功与否的关键。先算一组时间假设传送带速度约0.3米/秒检测区光电到1号气缸中心距离0.6米到2号气缸1.2米到3号气缸1.8米那苹果从检测区到三个气缸口的时间大约是2秒、4秒、6秒。于是T37设为20倍率100ms即2秒T38设40T39设60。注意这里的定时值只是初值现场调试还要根据气缸动作速度和皮带实际速度微调。参数数值说明皮带速度0.3 m/s现场实测修调检测区到1号口距离0.6 m定时约2s检测区到2号口距离1.2 m定时约4s检测区到3号口距离1.8 m定时约6s气缸动作时间0.2~0.5s决定定时补偿量当T37到时如果M10.0还处于置位状态说明确实有一个A级果到达1号口Q0.1输出1号气缸电磁阀得电把苹果推进料箱。同时接通一个0.5秒的延时定时器延时结束复位Q0.1和M10.0。为什么推出后要延时复位因为气缸不能一直顶着电磁阀推出到位后要断电让气缸缩回电磁阀通电时间太长还会发热。这里有个容易踩的坑如果两个A级果连续通过检测区间隔小于T37的设定时间第一个A级果还没到1号口第二个A级果就触发了新的T37计时前面分拣逻辑的时间基准会乱。所以必须约束给料节拍苹果在传送带上的间距要足够大。最小间距的估算公式是皮带速度乘以最大分拣口动作时间气缸复位时间安全余量。按本文参数至少保证2.5米左右的间距比较稳。3.4 Network 9~10产量计数和数据上报计数用S7-200的计数器实现。C0统计检测区光电的总苹果数C1统计1号口推出的A级果数C2统计B级果数C3统计特级果数C4统计末端废果数。计数器的计数输入直接用对应设备的上升沿脉冲比如C1的计数输入就是T37到时且M10.0置位那个脉冲的上升沿。为了让MCGS触摸屏稳定读取我加了两条传送指令把计数器当前值传送到VW存储区MOVW C0, VW100MOVW C1, VW102以此类推。为什么不直接让触摸屏读计数器因为不同PPI驱动对计数器区的支持有差异而V区是所有西门子PLC和组态软件都承认的“通用交换区”。触摸屏只要读VW100~VW108就能拿到全部产量数据。清零操作也交给触摸屏。MCGS画面放一个“产量清零”按钮按下时把VW100等清零并在梯形图里把计数器复位线圈接通。复位计数器时要注意S7-200的计数器复位用R指令同时要保持计数器的计数输入为0否则清零后马上又会累计。3.5 Network 11报警逻辑与状态灯报警条件有三个热继电器过载I0.3动作、急停按钮I0.2被按下、气源压力开关I1.0为OFF。任何一个条件满足Q0.4报警灯和蜂鸣器输出同时程序里把M0.0运行标志断开强制停掉传送带电机。恢复后必须再次按启动按钮才能重新投入运行这样既符合安全习惯也避免“一复位电机自己转起来”的惊悚场景。状态灯逻辑简单M0.0为ON时Q0.5绿灯亮表示自动运行手动模式下Q0.6黄灯亮表示当前处于调试状态。有了这两个灯现场操作工一眼就能判断系统处于什么模式省去很多沟通成本。4. 电气原理图与接线图的设计要点图纸部分很多学生或新人习惯把注意力放在梯形图上认为图纸就是“把线连起来”这是误区。电气图纸是接线、调试、维修的依据画不清楚后期自己都会看不懂。4.1 图纸怎么分按回路而不是按器件一套完整的小型PLC控制柜图纸至少包含这些页电气原理图含主电路和控制电路、PLC输入输出接线图、端子排图、柜内元件布置图、现场传感器与执行器接线图、电缆表与材料清单。画图的顺序建议先从主电路和控制电路开始再画PLC外围回路最后整理端子排和电缆清单。很多新手是按“器件”画图比如把接触器、继电器、PLC各画一张图结果现场接线时线号完全对不上。正确的做法是按“回路”组织主回路是一路控制回路是一路PLC输入回路是一路输出回路是一路每路都有明确的电源走向线号连续每个端子都必须有编号。4.2 主电路与控制回路先画动力再画逻辑主电路这条链路是三相电源→断路器QF1→接触器KM1主触点→热继电器FR1发热元件→传送带电机M1。断路器负责短路保护热继电器负责过载保护接触器负责通断控制。这条回路线径按电机功率定常规0.75kW电机用1.5mm²电缆即可再大按口诀放一级。控制回路的逻辑是这样的从控制电源L取电经过熔断器FU1串入急停按钮SB3常闭触点然后再并接KM1辅助触点和启动按钮SB1最后串接到接触器KM1线圈和热继电器FR1常闭触点回N。这样急停按下或过载动作接触器线圈断电电机无条件停止完全不依赖PLC是否正常工作。为什么控制回路里已经做了急停和过载硬接线PLC输入还要再接一遍因为PLC需要“知道”这个状态。如果只是物理断电触摸屏上没有任何提示操作工不知道到底是急停、过载还是别的原因排查困难。硬回路负责安全软信号负责透明两者互补。4.3 PLC输入输出接线的关键细节PLC输入侧要特别注意传感器极性。S7-200 CPU224的输入同时支持源型和漏型两种接法本方案我更推荐用源型接法输入端公共端子1M接直流0V按钮和传感器信号线采用高电平有效按钮一端接24V另一端接输入点按下时输入点得到高电平。如果现场选用的是NPN型光电传感器情况正好反过来传感器输出低电平有效PLC公共端要改接24V很多新手第一台设备就栽在这个极性问题上。订货前一定先确认传感器是NPN还是PNP再定公共端的接法。输出侧全部走中间继电器隔离。Q0.0驱动中间继电器KA1线圈KA1的触点再去控制交流接触器KM1线圈。因为PLC继电器输出触点虽然是“继电器”但它主要用于控制小功率负载直接带交流接触器线圈虽然也能用但在频繁动作场合触点寿命下降快且会产生干扰。中间继电器起到强弱电隔离和触点放大的作用成本很低工程上值得坚持。电磁阀YV1~YV3是直流负载通过PLC输出直接驱动时建议在每个电磁阀线圈两端反向并联续流二极管防止断电瞬间产生反电动势击穿输出触点。交流接触器线圈这种交流负载则要并联RC阻容吸收器。4.4 端子排图与线号规则端子排图的核心是编号一致。IO表里I0.4对应前端光电传感器那么现场传感器过来的线接到端子排的X8端子X8另一端再接到PLC的I0.4整条线的线号都写“I0.4”。后期万用表排查时顺着线号找十分钟就能定位故障。传感器电缆原则上用屏蔽电缆信号线和动力线分开走线。屏蔽层单端接地一般接在柜内接地排上。我在早期项目里偷懒用普通电缆代替屏蔽电缆结果变频器一启动光电传感器误触发满天飞计数乱得没法看最后全部换线。这个教训很深刻写在这里提醒大家。5. MCGS触摸屏组态别把画面只做成“遥控器”MCGS触摸屏的工作绝不是放几个按钮和数字显示那么简单。做得好的画面现场操作工不用看说明书就知道怎么用做得差连你自己隔两个月再看都要回忆半天。5.1 设备组态第一步把PPI驱动跑通打开MCGS嵌入版组态软件先在设备窗口添加设备。结构是“通用串口父设备”下面挂“西门子S7-200(PPI)”子设备。串口参数必须和PLC侧一致波特率9600、数据位8、停止位1、偶校验PLC站号设为2触摸屏作为PPI主站。接线方面MCGS触摸屏的RS485 A接S7-200 PORT0口的3脚B接8脚地线接5脚。如果通讯不上优先检查三件事波特率是否一致、站号是否冲突、通讯线A/B是不是接反了。S7-200的9针口针脚很密自制插头时最容易把3和8搞反这个坑我在现场踩过不止一次。变量连接时我强烈建议把产量数据都映射到VW100~VW108把控制位放到M区。MCGS里的通道类型选择“M区位”“V区字”时要仔细位和字不要混否则画面显示会全部错乱。5.2 变量和画面的对应关系主画面我放了这几样东西一个启动按钮、一个停止按钮、一个手动/自动模式切换开关、四组产量显示A级、B级、特级、废果、总产量、运行状态显示、报警状态显示。启动按钮的连接属性是“按下时置位M0.0抬起时复位”停止按钮反过来。手动/自动切换用触摸屏的一个内部开关变量映射到M20.1。M20.1为OFF是手动模式为ON是自动模式。手动模式下画面切换到“手动调试页”三个气缸各放一个“点动”按钮分别对应M0.5、M0.6、M0.7按住就动作松开就停止。这在没有苹果的空车状态下调试气缸行程和气压特别有用。自动模式下这些手动按钮的“使能”条件要关掉。MCGS脚本里写一行如果M20.1为ON则手动按钮不可操作。别小看这一步现场操作工不小心碰到手动按钮气缸突然动作轻则苹果被打飞重则伤到人必须做互锁。5.3 产量统计与历史数据保存技巧MCGS自身有存盘功能但很多新手不知道或者配置起来觉得复杂。这里分享一个常见做法把每个班次的产量通过MCGS脚本写入配方变量然后利用MCGS的配方管理功能保存为记录。用的时候虽然有点“曲线救国”但确实能解决“今天这个班做了多少”“上周五产量多少”这类历史查询需求。更直白的方式是MCGS每60秒执行一次脚本把VW100等区域的数值追加到历史数据库第二天就能按时间段生成产量趋势曲线。这个做法在嵌入版组态里很常用配置不复杂比Excel表格人工登记省心得多。做毕业设计的话这一项内容足够作为亮点写进论文。6. 现场调试与踩坑记录程序写完、画面做完只算完成了一半另一半在调机现场。这一节我专门把调试中常见的问题和排查思路完整列出来基本都是重复性的坑。6.1 光电传感器重复计数问题现象触摸屏上的总产量比实际苹果数多出一大截。原因多半是光电传感器把同一个苹果计了几次常见于苹果表面反光不均或者传送带抖动造成的信号断续。排查顺序是这样的先看传感器指示灯是不是在苹果没有遮挡时偶尔也闪再看信号线是不是和动力线走在同一根线槽里有没有感应干扰最后看梯形图里对I0.4是否做了防抖处理。如果传感器本身正常就在检测区光电逻辑前加一个延时去抖网络用I0.4的上升沿启动一个0.05秒定时器定时器输出作为“有效脉冲”再去触发等级判断和计数。这样小于50ms的毛刺信号会被滤掉多数重复计数问题都能解决。6.2 气缸动作时序和“推偏”处理现象1号气缸推出时苹果还没完全走到料箱口被打偏到导轨边缘或者气缸已经在缩回苹果才到落料口根本推了个空。核心原因是“气缸动作时间”与“苹果到达时间”没有对准。电磁阀得电后气缸活塞从静止到完全伸出通常需要0.2秒到0.5秒而定时器算的是“苹果到达气缸中心”的时间。所以比较准的做法是T37时间应设定为“苹果实际到达落料口的时间”减去“气缸动作时间的60%左右”让活塞在苹果到位前刚好伸出或正在伸出而不是到位后再伸出。这个系数没有标准值必须在空载状态观察几次微调定时器。另一个容易忽略的地方气缸推出速度太快苹果会被弹飞。气缸进排气口要加节流阀把推出速度调到一个“推得动苹果、又不会弹跳”的程度。这个细节写不进梯形图但直接影响分拣合格率。6.3 急停复位后电机自己启动的隐患现象调试过程中按了急停恢复急停后传送带电机竟然自己重新转起来。原因就是M0.0运行标志在程序里一直保持置位急停只切断了Q0.0输出没有切断M0.0。正确的做法是在急停输入的常闭触点逻辑里不仅要断开电机的输出还要断开运行标志的自锁回路。更严格一点可以用急停的下降沿触发一个复位网络把M0.0、M10.0、M10.1、M10.2以及所有气缸输出全部复位这样系统恢复到“待机”状态必须重新按启动按钮才能运行。安全逻辑宁可多写几行也不能留隐患。6.4 MCGS与S7-200通讯断线的排查顺序现场最常见的通讯故障是“触摸屏画面全部变成灰色或者数值不刷新”。不要急着重装系统按这个顺序查第一步确认S7-200本身是不是在RUN状态强制把程序切到RUN再观察。第二步看通讯电缆A/B有没有接反两个设备距离超过50米时有没有加终端电阻。第三步对比两边的PPI波特率、站号、校验方式S7-200站号默认是2MCGS里如果也把站号设成2就会冲突触摸屏站号按时建议用0。第四步检查是不是有第二台电脑通过PPI电缆同时占用了PLC的PORT0口并口被占时触摸屏会间歇性断线。第五步看现场有没有变频器等强干扰设备通讯线是否贴近变频器输出侧。按这个顺序排查绝大多数通讯问题在第三步就能解决。剩下的真问题再考虑换屏蔽电缆、加光电隔离器或者改用以太网模块。最后多嘴一句这类项目真正花时间的往往不是梯形图而是IO表、时序分析和现场调试。我后来再做苹果、橙子、包装盒分拣类设备程序底稿基本都是复用这套思路改改IO映射、调调定时参数就上线了。如果看完这篇你觉得某个逻辑网络还能优化特别是想把定时器方案换成编码器位置跟踪那说明你已经摸到PLC顺序控制的门道了这套底稿就可以放心魔改了。
返回列表