☰
S7-200 PLC与组态王的分拣系统设计:传感器、梯形图与调试全流程
2026/9/28 8:19:54 网站建设 项目流程

搞过自动化项目的人都明白,一条产线上最磨人的往往不是梯形图本身,而是把机械、传感器、气动和上位机串联起来的整套逻辑。今天要聊的这套基于S7-200 PLC和组态王的分拣系统,就是一个非常典型的多属性复合项目:振动盘不断把大小球送到传送带上,经过颜色、大小、材质三组检测,再由PLC判断后指挥气缸把不同属性的球分别推入对应料槽,组态王在电脑上实时显示运行状态和计数。别小看这套东西,它几乎涵盖了非标自动化小产线的所有核心环节。

这套系统适合谁?刚做PLC毕业设计的学生、准备电工或自动化技能竞赛的选手、想入非标自动化门的现场工程师,甚至是在工厂里琢磨怎么替代人工分拣的工艺人员。它不算复杂,但信息量很足:开关量逻辑、频率量采集、PPI通信、组态动画、传感器抗干扰、气缸时序,全都凑齐了。下面我按实际项目的推进顺序,把整个设计思路和踩坑过程捋一遍,希望能给你省掉几周的弯路。

1. 项目到底在解决什么问题:一条传送带上的“三属性”分流逻辑

1.1 分拣系统的整体流程设计

先说机械布局。最常见也是最稳的方案是:料斗或振动盘出料,球体逐个落到一条水平传送带上,传送带把球依次带到三个检测工位。第一个工位测大小,第二个工位测颜色,第三个工位测材质。三个传感器把检测结果交给PLC,PLC根据组合结果决定球到达末端分流区时,哪一个推料气缸动作,把球推进哪个料槽。

这里有个关键取舍:是每个检测工位后面立刻分一次,还是检测完所有属性后在末端统一分流?我推荐后者。原因很简单,如果每检测一个属性就推一次,机械结构上需要多级传送带或中间料道,气缸数量翻倍,程序里还要处理“换线”、“排队”的麻烦。而“一次检测、末端分流”只需要一条主传送带和一组推料气缸,传感器集中安装,调试起来非常方便。

实际操作中,末端分流区一般设计成多路并列的料槽,每路对应一个推料气缸。球到了某个料槽入口,如果它的属性组合匹配这个料槽,气缸就伸出把它推进去,然后气缸缩回,等下一个球。如果匹配不上,球继续往前走到下一个料槽入口,直到找到归属或进入“未识别”回收箱。这个“边走边判断”的逻辑,正好是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大小检测光电大球遮光时为1
I0.4颜色检测-红色红色球为1
I0.5颜色检测-绿色绿色球为1
I0.6颜色检测-蓝色蓝色球为1
I0.7电感式接近开关金属球为1
I1.0电容式接近开关非金属球为1
I1.1推料气缸1原位磁簧开关
I1.2推料气缸2原位磁簧开关
I1.3推料气缸3原位磁簧开关
Q0.0传送带电机接触器启动传送带
Q0.1振动盘给料机控制出料
Q0.2推料气缸1电磁阀对应料槽1
Q0.3推料气缸2电磁阀对应料槽2
Q0.4推料气缸3电磁阀对应料槽3
Q0.5推料气缸4电磁阀对应料槽4
Q0.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站号填写2(S7-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把分拣结果直接发给机器人抓取,那就不止是个分拣系统了,已经是一个完整的智能产线雏形。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询