ARTICLE DETAIL

资讯详情

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

S7-200 PLC与组态王的分拣系统设计:传感器、梯形图与调试全流程

S7-200 PLC与组态王的分拣系统设计:传感器、梯形图与调试全流程 搞过自动化项目的人都明白一条产线上最磨人的往往不是梯形图本身而是把机械、传感器、气动和上位机串联起来的整套逻辑。今天要聊的这套基于S7-200 PLC和组态王的分拣系统就是一个非常典型的多属性复合项目振动盘不断把大小球送到传送带上经过颜色、大小、材质三组检测再由PLC判断后指挥气缸把不同属性的球分别推入对应料槽组态王在电脑上实时显示运行状态和计数。别小看这套东西它几乎涵盖了非标自动化小产线的所有核心环节。这套系统适合谁刚做PLC毕业设计的学生、准备电工或自动化技能竞赛的选手、想入非标自动化门的现场工程师甚至是在工厂里琢磨怎么替代人工分拣的工艺人员。它不算复杂但信息量很足开关量逻辑、频率量采集、PPI通信、组态动画、传感器抗干扰、气缸时序全都凑齐了。下面我按实际项目的推进顺序把整个设计思路和踩坑过程捋一遍希望能给你省掉几周的弯路。1. 项目到底在解决什么问题一条传送带上的“三属性”分流逻辑1.1 分拣系统的整体流程设计先说机械布局。最常见也是最稳的方案是料斗或振动盘出料球体逐个落到一条水平传送带上传送带把球依次带到三个检测工位。第一个工位测大小第二个工位测颜色第三个工位测材质。三个传感器把检测结果交给PLCPLC根据组合结果决定球到达末端分流区时哪一个推料气缸动作把球推进哪个料槽。这里有个关键取舍是每个检测工位后面立刻分一次还是检测完所有属性后在末端统一分流我推荐后者。原因很简单如果每检测一个属性就推一次机械结构上需要多级传送带或中间料道气缸数量翻倍程序里还要处理“换线”、“排队”的麻烦。而“一次检测、末端分流”只需要一条主传送带和一组推料气缸传感器集中安装调试起来非常方便。实际操作中末端分流区一般设计成多路并列的料槽每路对应一个推料气缸。球到了某个料槽入口如果它的属性组合匹配这个料槽气缸就伸出把它推进去然后气缸缩回等下一个球。如果匹配不上球继续往前走到下一个料槽入口直到找到归属或进入“未识别”回收箱。这个“边走边判断”的逻辑正好是S7-200这种小型PLC最擅长干的活。1.2 为什么选S7-200 PLC 组态王的组合现在市面上PLC选择很多S7-200本身也停产多年但它在教学、竞赛和存量设备改造里的地位一直没被动摇。原因很现实一是指令简单梯形图生态极其成熟网上随便一搜就是案例二是它自带两个PPI通讯口和组态王做上位机联调非常顺畅三是二手设备和配件便宜实验室、实训室里的存货也大。用S7-200做一个需要通信、需要动画监控的项目综合成本和学习门槛都低。组态王更是国内中小型监控项目的“老熟人”。它做画面组态速度快变量绑定直观对西门子S7-200的PPI协议支持得非常完善基本就是“选好驱动、填好COM口、设好站号”三步的事情。相比直接用WinCC或博途组态王不用折腾复杂的授权体系也不需要装一堆组件非常适合一个人快速搞定一套可视化监控界面。当然如果是工业现场长期运行我更建议考虑昆仑通态或组态王商业授权版本稳定性更有保障但作为项目学习和功能验证这个组合完全够用。1.3 系统硬件清单与选型理由硬件推荐型号/规格选型理由PLCS7-200 CPU226 DC/DC/DC24点输入、16点输出自带2个PPI口点数富余扩展简单扩展模块EM221/EM222按需输入输出点不够时补CPU226本身点数多半够用传送带小型皮带线带减速电机速度控制在0.1~0.3m/s便于传感器检测和气缸推料大小检测对射式光电开关一对抗干扰强球体遮光信号干净适合区分直径差异颜色检测工业色标传感器或TCS230模块响应快输出开关量/频率量可直接进PLC材质检测电感式接近开关 电容式接近开关电感测金属电容测非金属组合可区分材质二元属性执行机构双作用气缸 单线圈电磁阀动作简单可靠配节流阀调节推出速度供电24V开关电源外加一路隔离电源PLC和传感器供电分离避免电磁阀干扰上位机普通电脑 USB-PPI电缆 组态王通信方便驱动成熟适合学习和演示很多新手会忽略一个问题传感器的输出类型。S7-200的数字量输入只认“通断”所以颜色传感器如果输出模拟量或频率量就得多配一块模拟量模块或者用高速计数器采集。为了控制成本和复杂度我一般建议颜色传感器选用输出开关量的工业色标传感器一个颜色对应一路输出直接接PLC输入点。如果手头只有TCS230这种模块那就走高速计数器通道后面我会单独展开说。2. 传感器选型与检测原理怎么让PLC“看”出大小、颜色和材质2.1 大小检测光电传感器的高度法安装技巧区分大球和球在固定规格的工件场景下最省事的方法就是“高度法”。把一组对射式光电开关安装在传送带一定高度的支架上发射端和接收端跨过传送带让球正好能从它们中间通过。假设大球直径50mm小球直径30mm那就把光路高度设在40mm左右。小球通过时光路不遮挡输出不变大球通过时明显遮光输出翻转。这样PLC拿到一个干干净净的开关量信号比用相机、激光测距简单可靠得多。这里有几个细节要提醒第一对射式光电的发射端和接收端要严格同轴传送带两侧支架不能存在左右偏移否则球稍一跑偏就出现漏检或误检第二传送带导向挡板一定要做好让球在传送带上横向位置固定不然球贴着左边缘和贴着右边缘遮光情况会完全不同第三光电玻璃表面要定期清洁灰尘是光学传感器最大的隐形杀手。如果球体直径会波动就改用“遮光时间法”让球通过一对光电记录遮光时间配合S7-200的定时中断也能比较准确地分出大小档位。2.2 颜色检测标定、遮光和抗反光颜色检测是这套系统里最容易翻车的一环。工业色标传感器的原理是发射红绿蓝三色光然后根据目标反射光的比例来判断色标。选型时优先买能输出多路开关量的型号例如红色输出一路、绿色输出一路、蓝色输出一路调试时直接看PLC输入点就很直观。如果你手头只有TCS230这类颜色识别模块也完全能用。TCS230输出的是频率信号红绿蓝三种通道的频率比例反映颜色。S7-200用高速计数器例如HSCO读取频率把结果存到VW区然后在程序里做归一化比较。具体做法是先用白色参考板标定三通道比例再把目标球的RGB读数换算成0~255的标定值最后与预设阈值比较。注意球体表面如果有反光传感器不要正对球体建议倾斜15到30度安装减少镜面反射带来的读数漂移。我调试时踩过最大的坑是环境光干扰。荧光灯、窗边自然光都会让颜色传感器读数缓慢漂移有时明明是红色球下午却识别成橙色。解决办法很粗暴但有效在颜色传感器外侧加一个半封闭遮光罩只留一个让球通过的缺口内部用白色LED环形补光。这样球经过时受光条件恒定颜色重复性立刻好了很多。另外颜色判定不要只看一次采样最好连续采样3次后再做决定滤掉偶发噪声。2.3 材质检测电感式与电容式接近开关的分工材质检测要看你到底分几种材质。如果只分金属和非金属一只电感式接近开关就够了——金属球靠近时输出塑料球、陶瓷球、玻璃球没反应。但如果你要区分铁、铝、铜这种不同金属单靠电感式开关做不到需要上涡流传感器或者多个传感器配合成本和复杂度都会上去。对绝大多数课程设计和小型分拣项目来说“金属/非金属”二元分类已经能满足题目要求了再配合颜色和大小足够组成一套完整的三维属性分拣逻辑。电容式接近开关可以检测金属也能检测非金属但它有个缺点检测距离近而且受湿度、灰尘甚至塑料材质配方的影响都很大现场标定特别费劲。稳妥的做法是先用一个电感式接近开关判断“是不是金属”如果电感没反应再用一个电容式接近开关确认“是不是有明显介电常数的非金属”两个信号加起来PLC里就得到一个材质属性变量。安装时一定注意传感器检测面要和球体正对的中心线齐平安装距离按传感器铭牌上的标称值来别一味追求“越近越灵”太近容易误触发太远又检测不到。3. PLC程序设计I/O分配、梯形图思路与核心逻辑3.1 I/O地址分配表动手写程序前先把I/O表排清楚。下面是我实际用过的一份分配表你可以直接参考地址信号名称说明I0.0启动按钮常开触点I0.1停止按钮常闭触点I0.2急停按钮常闭触点串在安全回路I0.3大小检测光电大球遮光时为1I0.4颜色检测-红色红色球为1I0.5颜色检测-绿色绿色球为1I0.6颜色检测-蓝色蓝色球为1I0.7电感式接近开关金属球为1I1.0电容式接近开关非金属球为1I1.1推料气缸1原位磁簧开关I1.2推料气缸2原位磁簧开关I1.3推料气缸3原位磁簧开关Q0.0传送带电机接触器启动传送带Q0.1振动盘给料机控制出料Q0.2推料气缸1电磁阀对应料槽1Q0.3推料气缸2电磁阀对应料槽2Q0.4推料气缸3电磁阀对应料槽3Q0.5推料气缸4电磁阀对应料槽4Q0.6报警灯故障提示Q0.7蜂鸣器故障报警这里没有把气缸4、5、6的原位全列进去实际接线时按同样格式补在I1.4后面就行。输入输出分配原则很简单所有传感器信号只占输入点所有电磁阀、指示灯只占输出点中间运算靠M区和V区。另外一定要留几个备用输入输出点调试时你会回来感谢我这句话的。3.2 传送带启停与送料节拍控制启停逻辑看起来简单但要把“顺序停机”做好才算是老手。我的实现思路是按下启动按钮先启动传送带等传送带运行稳定了2秒再启动振动盘开始出料。按下停止按钮时反过来先停振动盘让已经落在传送带上的球继续走完等待一段固定延时比如传送带长3米、速度0.2m/s就延时15秒确认线上没有遗留球后再停传送带。这样既不会让球堆积在出料口也不会在停机后传送带上还剩一堆半路球。用S7-200写的话可以这样组织梯形图SM0.1在首次扫描时复位所有Q输出和M中间继电器启动按钮置位一个M0.0“运行模式”Q0.0传送带输出由M0.0控制T37定时2秒后置位M0.1“送料允许”Q0.1振动盘输出由M0.1控制。停止时复位M0.0传送带保持运行同时启动一个长延时延时结束后复位传送带。急停I0.2是常闭点直接串在传送带输出回路里做硬件级切断。3.3 分拣决策与推料动作移位寄存器是正解这是整个程序的核心。检测工位在传送带前段推料工位在传送带后段球从检测点走到推料点需要时间PLC不能检测到信号就立刻推必须让信号“跟着球一起走”。最笨的办法是固定延时比如检测点离末端推料区0.8米传送带速度0.2m/s就延时4秒再推。这个方法在演示时能用但传送带一旦打滑、负载变化球的实际位置就会偏推料十有八九错位。我强烈建议改用移位寄存器方案把传送带从上料到推料区之间均匀切成若干格每一格对应一个二进制位。某个球通过检测点时把它的颜色、大小、材质属性分别写入三条移位寄存器队列的最低位每过固定时间或者从动轮编码器每发一个脉冲队列整体移动一位当那一位移动到推料气缸位置时PLC取出对应的属性值判断要不要推。在S7-200里移位寄存器可以不用循环指令那么麻烦直接用字节右移指令SLB就能实现。比如用VB100保存整条线上每个位置当前有无球的标记用VB101保存颜色标记用VB102保存大小标记用VB103保存材质标记。每次移位脉冲到来时把新检测结果写进最低位同时读最高位最高位就代表此刻位于最后一个位置格的球的属性。这种写法代码短、扫描周期快而且非常好排查——在组态王里把VB100用“按位显示”拉出来你能直观看到小球一点一点往前挪。3.4 梯形图实现的关键细节延时、互锁与复位推料气缸动作不能一直通电否则会把球压在料槽口。我习惯用TON定时器生成一个0.3到0.5秒的“推料脉冲”检测到球到位且属性匹配时置位一个中间M标志M标志带动气缸输出同时启动T40定时0.4秒T40到时复位气缸输出并复位M标志。这样每个球只会被推一次不会出现“推完又缩回又再推”的连击现象。互锁逻辑同样重要。一行里多个推料气缸如果同时动作两个气缸会把球夹在中间轻则卡球重则顶坏机械结构。我的做法是在每个气缸输出前串联“上一气缸动作中”的反逻辑触点例如Q0.2动作时Q0.3的输出回路里就串一个Q0.2的常闭点。这属于最传统的电气互锁但也最可靠。另外程序里要统一处理“无法识别的球”如果球走到最后一个料槽还不匹配任何条件就让它在末端自然落进回收箱别傻傻地等一个不存在的气缸动作。4. 组态王监控画面从通信配置到画面组态4.1 PPI通信配置与组态王设备连接组态王连S7-200本质上是走PPI协议。先把USB-PPI编程电缆插到电脑上安装好驱动在设备管理器里确认COM口号比如COM3。然后打开组态王新建一个设备驱动类型选择“西门子S7-200系列PPI”设置通信参数波特率默认9600数据位8、停止位1、偶校验PLC站号填写2S7-200的默认站号就是2。填完后点“设备测试”如果读到PLC的型号和固件信息说明通信链路已经通了。很多人会遇到“创建协议组件失败”这个报错。我排查下来十有八九是驱动安装时被杀毒软件拦截或者安装组态王时没有用管理员权限。解决办法简单退出杀毒软件右键“以管理员身份运行”重新安装PPI驱动如果还不行检查一下系统是否缺少VC运行库装上之后基本就好了。另外还要小心COM口被别的软件占用比如串口调试助手或PLC编程软件没关闭组态王是抢不到这个口的使用权的。4.2 画面对象与变量绑定组态王的核心操作是数据词典和动画连接。先在数据词典里把PLC变量全部定义成I/O变量例如“I0.3大小检测”、“Q0.2气缸1”、“VB100队列位”等。变量的数据类型要对齐开关量用Bit或离散类型计数、时间用整数类型属性队列如果用字节显示就定义成BYTE类型然后在画面里按位显示。主监控画面我建议画成“侧视图”左边是料斗中间是传送带右边是一排料槽。传送带上的球可以用一个圆形图元它的水平位置连接“VB100位移变量”随着移位脉冲往右移动。颜色传感器的检测结果可以用三个指示灯显示金属材质用一个指示灯。每个推料气缸画成一个矩形条输出为1时矩形向右平移一段距离看起来就像气缸把球推进料槽。这样做的好处是现场操作员一眼就能看出球在传送带上的位置、传感器有没有误报、哪个气缸正在动作比盯着原始输入输出点的红绿变化直观得多。4.3 报警与数据记录配置组态王的报警功能我建议至少配两级设备通信报警和工艺状态报警。设备通信报警由组态王自带的“设备状态”变量提供一旦PLC通信断开画面弹出红色提示。工艺状态报警可以在数据词典里定义内存离散变量比如“气缸1超时未到位”PLC里用一个标志位在超时后置1组态王读取后触发报警窗口并联动蜂鸣器。产量统计也是这类项目必做的。最简单的方法是PLC里用VW200保存总数、VW202保存红色球数、VW204保存金属球数组态王读出来显示在画面上。如果想做班报、日报就用组态王的SQL访问管理器先在系统ODBC里创建一个数据库数据源然后在组态王的SQL模块里定义记录体和表格模板PLC变量变化时插入一条记录。这样每天都有历史产量数据哪怕PLC断电也不会丢。5. 调试实录从“不动作”到“错分”的排查方法5.1 传感器信号抖动导致的误判第一次联调你会发现最头疼的不是程序而是传感器乱跳。颜色传感器可能在同一颗红色球通过时输出一会儿红一会儿紫接近开关在气缸动作的瞬间误触发一下。我当时的处理步骤是这样的先用万用表测传感器供电电压确认是不是低于DC24V然后把PLC输入端的公共端和传感器电源接到同一个开关电源上但电磁阀的供电要换独立电源。做完这两步大部分抖动都能压下去。如果还抖就在程序里加防抖。S7-200的梯形图实现防抖很直接检测信号到来后不立刻置位而是等待10ms再读一次同一个输入点两次都为1才算有效。这样能滤掉大部分触点抖动和电磁干扰。颜色传感器如果还是偶尔误判就要考虑加屏蔽线并且把屏蔽层单端接地别让它绕电磁阀线束走线。5.2 气缸推料与传送带速度的同步问题推料错位是第二大类问题典型表现是球还没到位气缸就推了或者球已经过去了气缸才动。用固定延时的方案最容易出这个问题因为传送带带速受负载影响会漂多带上几个球速度就慢一点点误差积累起来球就偏了。我的建议是双管齐下一是在程序里改用移位寄存器不要用固定延时二是在每个推料口前面加一个“到位光电”只有球真实挡住到位光电PLC才允许对应气缸动作。这两个措施叠加后错位率几乎降到了零。如果你还想让速度更稳给传送带电机加一台小变频器恒定在0.2m/s效果会更好。5.3 组态王变量不刷新或通讯超时问题组态王里最典型的故障是“通讯失败”或者变量显示不刷新。我的排查顺序很固定第一步看设备管理器里USB-PPI驱动是否正常COM口号有没有变。有些USB转串口线每次插拔后COM口号会变组态王里就不会自动更新。第二步打开组态王的设备测试点击连接如果能读到PLC信息说明通信层正常如果读不到检查波特率、校验位、PLC站号。第三步确认PLC编程软件Micro/WIN没有占用同一个COM口两个软件抢口位会互相踢。第四步如果通信参数全对还是连不上大概率是USB-PPI线兼容性不好换一条原装电缆试试。5.4 常见问题速查表故障现象可能原因解决办法PLC不运行模式开关在STOP程序没下载拨到RUN重新下载程序输入指示灯不亮传感器电源断信号线接错查24V供电查公共端接线输出指示灯亮但执行器不动输出点驱动能力不足或电磁阀坏换继电器中间转换查电磁阀线圈组态王创建协议组件失败驱动被拦截运行库缺失管理员权限重装驱动装VC运行库组态王通讯失败COM口号变、波特率错、PLC站号错按设备测试逐项排除颜色误判环境光干扰、表面反光加遮光罩倾斜安装重新标定推料错位速度波动、固定延时不准改移位寄存器加到位光电材质检测不到安装距离过远、检测面不垂直调整距离至标称范围对准中心线6. 这个项目还能怎么升级6.1 从固定分拣到柔性分拣触摸屏配方这套系统做完后如果还想继续往后做第一个值得加的就是触摸屏。用昆仑通态或其他品牌的触摸屏跟S7-200走PPI通信把分拣规则做成配方比如“当前分红色金属大球”和“当前分绿色塑料小球”一键切换。PLC的参数区集中在V区触摸屏直接读写V区不需要改梯形图。S7-200的V区有断电保持功能设好保持范围后就算关机再开配方参数也还在。这个升级对毕业设计和竞赛答辩来说非常加分因为它体现了“人机交互”和“柔性生产”的思想而不只是简单的启保停。6.2 与上位机数据库对接组态王本身支持ODBC和SQL访问管理器把产量数据写到Access、SQL Server都很方便。我做过一次对接SQL Server先在Windows的ODBC数据源管理器中创建一个系统DSN指向数据库然后在组态王的SQL模块里新建记录体把VW200、VW202这些PLC变量映射到表字段最后用“插入记录”函数在PLC的产量值发生变化时写一条记录。这样车间主管打开数据库报表就能看到每个班次的红球数量、金属球数量、总产量比纯靠组态王画面截图要专业得多。6.3 成本与成效复盘最后算一笔账。CPU226二手大概600到1000元光电开关一对100到300元工业色标传感器国产1500到3000元电感接近开关和电容接近开关各100元左右气缸加电磁阀加节流阀一套三四百元传送带如果自制改造500到1000元USB-PPI线几十到两百元组态王看授权方式学习版或演示版几百元能搞定整套下来不含人工大约5000到8000元。这样一条线如果真放在工厂里替代一个人工分拣工位按三班倒计算几个月就能收回设备成本后面全是节省下来的人工费。真正做完这套系统我的体会是PLC程序和组态王画面反而不是最难的最难的是机械安装和传感器调试。你会为了把一组对射光电对得笔直蹲一下午会为了躲开日光灯干扰反反复复试颜色传感器的安装角度也会因为气缸推料慢了一拍而蹲在料槽前面观察一整天。但这些“脏活累活”恰恰是自动化工程师最值钱的功夫。如果条件允许建议在这个小系统后面再接一台机械臂或者直角坐标机器人让PLC把分拣结果直接发给机器人抓取那就不止是个分拣系统了已经是一个完整的智能产线雏形。
返回列表