做这类老设备电气改造,最怕的不是技术难度,而是“看起来能转,一上量就出问题”。前阵子帮一家机械加工厂重新打造轴承清洗机的控制系统,设备不大,工艺也不复杂,但牵扯到喷淋、漂洗、吹干、加热、报警、触摸屏交互一套流程,加上现场水汽大、油污重、电磁干扰多,真正落地时踩了不少坑。最后定下来的方案是西门子S7-200 PLC加昆仑通态MCGS组态触摸屏,这套组合在很多中小工厂的存量设备里非常常见,如果你是刚入行的电气工程师、设备维修电工,或者手里正好有同类清洗机想改造,这篇内容应该能帮你少走不少弯路。
我把整个项目从需求拆解、硬件选型、I/O分配、PLC程序框架、MCGS画面设计,到现场调试和问题排查完整梳理了一遍,尽量把“为什么这么做”也讲清楚,而不是只给结论。文章里会用到具体的寄存器规划、PPI通信参数、顺序控制指令思路,也会把我在现场遇到过的一些奇奇怪怪的现象和排查过程写出来,方便你对照参考。
1. 项目背景与方案选型
1.1 轴承清洗机到底要控什么
轴承清洗机在机械加工行业里属于典型的“小而关键”设备。轴承在磨削、超精、装配前后都要经过清洗,把表面的铁屑、研磨膏、油污等杂质去掉,否则直接影响装配精度和寿命。这台设备的流程说起来很简单:上料之后进入清洗室,高压喷淋清洗液冲掉大颗粒脏物,再进行漂洗去掉残留清洗液,然后用压缩空气吹干,下料。但真正拆开看,每一个环节都有控制要求。
清洗环节要控制清洗泵启停、清洗时间、喷淋压力;漂洗环节要控制漂洗泵启停、漂洗时间;吹干环节要控制电磁阀通断、吹干时间。如果设备带加热功能,还要采集清洗液温度,控制加热器动作,防止温度过高损伤工件。再加上液位检测、门开关、过载保护、急停联锁这些安全信号,整个系统的数字量输入输出点并不少。
这个项目里原设备的问题是:控制线乱、继电器互锁逻辑复杂、参数调整靠手拧时间继电器,经常出现清洗时间漂移,而且没有任何状态显示,出了故障只能拿万用表一根根查线。用户的核心诉求很简单:把设备变稳定,操作要直观,参数要能随时改,故障要能看到提示。
1.2 为什么选S7-200 + MCGS,而不是上新平台
现在西门子官方已经停产老款S7-200,主流替代是S7-200 SMART,那为什么还要用S7-200?原因很现实:一是客户车间里多台设备都在用S7-200,售后和备件体系已经成熟,维修电工对这个平台非常熟;二是这次项目本身是改造,原有电气柜里的CPU226还可以继续服役,省下硬件成本;三是S7-200配合MCGS触摸屏走PPI通信,在中小型设备里方案极其成熟,资料多、会做的人也多。
选MCGS而不是西门子原装触摸屏,一方面是价格优势明显,另一方面是MCGS嵌入版组态软件上手快,画面、报警、数据记录这些功能对于清洗机这类设备已经足够用。很多老工程师可能都有同感:S7-200加MCGS这个东西虽然不新,但它稳定、简单、好维护,在几百个中小工厂里依然是干活的主力组合。
我给自己定的选型原则是:不追新,只追稳。设备控制系统不是越花哨越好,而是出了问题能在最短时间内排查修复。S7-200和MCGS这套组合,维修门槛低,电工师傅拆开柜子看得懂梯形图,触摸屏页面逻辑清晰,配件也好找,实际用起来反而比一些“高端方案”省心得多。
2. 系统硬件与I/O规划
2.1 电气柜布局与元器件选择
S7-200的CPU226自带24个数字量输入和16个数字量输出,对这台清洗机来说点数是够的,但我还是额外加了一块模拟量扩展模块,用来采集清洗液温度和喷淋压力。这里有个经验:清洗机这种设备,后续很可能加传感器、加报警点,CPU的裕量不能卡得太死,否则改一处就要换硬件,非常被动。
电气柜里除了PLC和触摸屏,主要元器件包括:控制变压器或开关电源给PLC和传感器供电;清洗泵、漂洗泵、主传动电机的接触器;加热器接触器;中间继电器;热继电器;熔断器或断路器;急停按钮和选择开关。特别注意清洗机的工作环境是水汽和油雾弥漫的,电气柜的防护等级至少要IP54,柜体底部要开排水孔,PLC和其他电气件尽量放在柜内上半部分,远离可能的进水点。
这里强烈建议对PLC的24V电源单独配置一个开关电源,不要和接触器线圈、电磁阀共用电源。清洗泵启动瞬间的电流冲击会拉低母线电压,如果PLC和输出负载共用电源,轻则I/O误动作,重则PLC直接重新启动。我在这个项目里把24V供电分成两路:一路给PLC和触摸屏,另一路给传感器和中间继电器,两路之间只共地不共电,调试阶段就再没出现过年·泵一启动PLC复位的怪问题。
2.2 I/O点分配表与变量规划
控制系统的灵魂其实是I/O分配和寄存器规划。改过设备的人都知道,I/O分配得好,程序写起来顺手,现场接线和排查也快。我习惯在动手写程序前,先把输入输出点和触摸屏要用的V区地址全部列成表格,再给客户确认一遍,避免后期改线改程序。
数字量输入规划如下:
| 地址 | 功能说明 | 信号类型 |
|---|---|---|
| I0.0 | 自动启动按钮 | 常开 |
| I0.1 | 停止按钮 | 常开 |
| I0.2 | 手动/自动选择开关 | 1为自动 |
| I0.3 | 加热器过载/超温信号 | 常闭转常开 |
| I0.4 | 清洗液液位低 | 常开 |
| I0.5 | 上料位光电检测 | 常开 |
| I0.6 | 压缩空气压力低 | 常开 |
| I0.7 | 防护门到位开关 | 常开 |
数字量输出规划:
| 地址 | 功能说明 | 负载类型 |
|---|---|---|
| Q0.0 | 清洗泵接触器 | 交流接触器 |
| Q0.1 | 漂洗泵接触器 | 交流接触器 |
| Q0.2 | 主传动电机接触器 | 交流接触器 |
| Q0.3 | 吹干电磁阀 | 中间继电器 |
| Q0.4 | 加热器接触器 | 交流接触器 |
| Q0.5 | 三色灯红色(故障) | 灯 |
| Q0.6 | 三色灯绿色(运行) | 灯 |
| Q0.7 | 蜂鸣器 | 蜂鸣器 |
V区寄存器规划是配合触摸屏使用的关键。触摸屏和PLC之间通过PPI通信,所有需要在画面上显示和修改的参数,我都放在V区。这个项目里用到的地址如下:VB100存当前工序号,VW102存清洗时间设定值,VW104存漂洗时间设定值,VW106存吹干时间设定值,VW108存清洗温度设定值,VW110存实时温度值。另外用M区做触摸屏上的启停和复位命令,这些地址在组态画面里要一一对应。
这样规划的好处是,PLC程序只需要处理V区和M区数据,触摸屏也只读写V区和M区,程序结构清晰,后续修改参数不用动线,更不用改PLC程序。
2.3 关键信号处理思路
有几个信号处理上的细节值得说一说。急停按钮务必采用硬接线回路,串在接触器控制回路里,不要只靠PLC程序处理。因为PLC程序就算再可靠,万一CPU跑飞或者通信中断,硬回路依然能直接切断动力电源,这是设备安全的最后一道防线。我这个项目里急停回路切断的是所有接触器线圈的公共电源,PLC只负责检测急停状态做报警显示。
热继电器信号也建议既接硬回路又进PLC。硬回路保证过载时接触器能直接断开,PLC输入点则用于记录故障并显示在触摸屏上。有些人为了省事,只靠PLC软件判断过载,一旦接触器卡死或触点粘连,就会出大问题,这种省法不值得。
传感器信号要分清常开常闭。液位低、压力低这类安全信号,我一般按“正常时有效”来设计,也就是正常状态下信号常闭,异常时断开或变常开,再配合程序里的取反处理。这样万一传感器线断了或者没接好,设备也会报故障停机,而不是带病运行,这个思路叫“fail-safe”,在清洗机这种环境恶劣的设备上特别重要。
3. PLC程序设计与实现
3.1 程序总体框架
S7-200的程序编写用的是STEP 7-Micro/WIN,整体结构我分成四大块:初始化程序、手动控制程序、自动流程程序、报警与辅助处理程序。每一块用网络(Network)隔开,注释写清楚,不要嫌麻烦。设备维修改造项目里,程序可读性直接影响后期维护成本,我见过太多无注释、全用内部继电器堆出来的程序,出了故障根本没法快速定位。
初始化程序处理上电后的状态。SM0.1(首次扫描标志)一接通,就把输出全部复位,把当前工序号清零,同时把默认参数写入V区地址。这里有个细节:触摸屏组态的上电初始值未必可靠,最好在PLC里做初始参数赋值,否则客户上电后发现清洗时间变成0,设备完全不动作,就会觉得程序有毛病。
手动控制程序用于调试和维修时的单机操作。I0.2打到手动状态后,触摸屏上的手动按钮通过M区指令控制各个输出。手动模式下的逻辑要做到互锁,比如自动流程运行中,手动按钮一律无效,防止操作人员在自动运行时误触发。现场调试时经常有人开着自动流程直接按手动按钮,程序不做保护的话,轻则工序乱套,重则清洗泵和吹干阀同时打开,把水喷得到处都是。
自动流程是整个程序的核心,也是控制逻辑最复杂的部分。我用S7-200的顺序控制指令SCR来实现步进流程,每一步对应一个工序,条件满足后切换到下一步。比起用一堆中间继电器加定时器搭出来的梯形图,SCR结构清晰,改工序顺序时不容易出错,触摸屏上也能直接显示当前是第几步。
3.2 自动流程顺序控制逻辑
先定义工序步号:S0.0是待机步,S0.1是上料步,S0.2是清洗步,S0.3是漂洗步,S0.4是吹干步,S0.5是下料结束步。自动启动条件满足后,从待机步进入上料步,光电传感器检测到工件后进入清洗步。
SC R指令的用法大致是这样:每个步用一个S位,进入某个步时置位该位,同时复位前一步;步内逻辑根据自身的S位为1来执行输出和定时;步转移条件满足后,置位下一步并复位当前步。举个例子,清洗步的核心逻辑如下:
// 清洗步:启动清洗泵,执行清洗定时 LD S0.2 AN T38 = Q0.0 // 清洗泵接触器输出 MOVW VW102, AC0 // 读取清洗时间设定值(秒) *I +10, AC0 // 转换为0.1秒定时单位 TON T38, AC0 // 清洗定时器 // 清洗完成,切换到漂洗步 LD T38 S S0.3, 1 R S0.2, 1这里注意定时器的时基选择。S7-200的TON指令时基分为1ms、10ms、100ms,我统一用100ms定时器。因为现场参数设定值以秒为单位,程序里把秒数乘以10转成0.1秒单位送给定时器PT值,定时精度对清洗工艺来说完全足够,而且100ms定时器不会像1ms定时器那样受扫描周期影响导致计时波动。
漂洗步和吹干步的逻辑结构完全一样,分别调用VW104和VW106做定时,只是输出点不同。漂洗步启动Q0.1,吹干步启动Q0.3,并在吹干开始前先关闭清洗泵和漂洗泵,保证管路里没有残水。我在这一步还加了联锁:吹干电磁阀开启期间,如果压缩空气压力低信号触发,立即中止吹干,跳到报警步,防止工件吹不干还白费气。
工序完成后的处理也很关键。吹干步结束后回到待机步S0.0,并把当前工序号设成0,表示一个自动循环结束。如果客户需要连续加工,可以在触摸屏上选择“连续循环模式”,这时程序会在下料判断后直接重新置位上料步,不需要人工再次按启动。这个功能客户通常很喜欢,因为批量加工时能省不少操作时间。
3.3 启停逻辑与运行状态输出
启停逻辑不是简单一个按钮的事。自动启动信号来自两个地方:柜门上的物理启动按钮I0.0,以及触摸屏上的虚拟启动按钮M0.0。这两个信号并联作为启动条件。停止信号同理,I0.1和M0.1并联。但停止后要求设备停在当前步还是回到待机步,这个需要和客户确认清楚。
这个项目中客户要求停止按钮按下后,当前工序立即中止,设备回到待机状态,但不清除已完成的数据。因此停止逻辑是把所有S步复位,只保留S0.0待机步,同时关闭所有输出。这里有个容易踩的坑:如果程序里只复位S步而不强制输出复位,步内直接被复位的输出会保持当前状态,比如清洗泵可能一直转。正确做法是先复位所有输出,再复位步标志,顺序一定要写对。
运行状态输出我给得很细。设备自动运行时点亮三色灯绿色,故障时亮红色并鸣蜂鸣器,报警复位后蜂鸣器停止。触摸屏上还能看到当前工序号,配合一个进度条显示清洗、漂洗、吹干的实时进度,客户现场反馈这个功能特别好用,至少不用再扒着设备听声音猜工序了。
3.4 温度采集与加热控制
清洗液温度控制对某些精密轴承的清洗质量很重要。温度传感器选用PT100配温度变送器输出4-20mA,接到模拟量模块的AIW0。S7-200模拟量输入通道的原始值是0到27648的数字量,对应4-20mA,需要按线性关系换算成实际温度。
换算公式不复杂:温度值(单位0.1℃)= AIW0 × 量程上限 ÷ 27648。量程0到100℃,用整数运算要防止溢出,先乘后除的话AIW0最大值27648乘10000等于2.7亿,明显超出16位整数范围,所以必须用双整数运算。我在程序里先把AIW0转成双整数,再乘以10000,最后除以27648,结果存到VW110。
温度显示瞬间跳得厉害是清洗机现场常见的现象。因为加热器启停、泵运行时电流变化大,模拟量信号容易叠加干扰。我在程序里做了滑动平均滤波:每500毫秒采一次样,缓存最近5次的值取平均,再送给VW110。实测滤波后温度波动明显减小,触摸屏读数也比较稳。如果现场干扰还是大,还可以考虑在模拟量输入端子并一个RC滤波器,或者把信号线换成屏蔽双绞线并做好单端接地。
加热器控制我采用的是带死区的位式控制,不用PID。理由很简单:清洗液温度对象惯性大,PID调参麻烦,而且客户对温度精度要求不高,±2℃完全可接受。程序逻辑如下:实际温度低于设定值减0.5℃时,接通加热器;实际温度高于设定值加1℃时,断开加热器。这个死区逻辑用比较指令就能实现,稳定性和温度波动都让人满意。
3.5 报警与联锁逻辑
报警处理是最能体现一个控制系统是否成熟的部分。清洗机现场的报警源包括:清洗液液位低、压缩空气压力低、加热器超温或过载、防护门未关到位、泵过载等。每一个报警源我都单独分配一个M区报警位,PLC检测到对应输入信号异常后,置位报警位并跳转到故障等待步。
报警触发后的处理顺序很重要:停止当前工序、关闭所有执行设备输出、点亮红色故障灯、启动蜂鸣器、把报警代码写入V区、在触摸屏上显示具体报警信息和确认按钮。我写程序时把“关闭所有执行设备”放在最前面,而不是等步转移完成再做,这样可以确保现场第一时间进入安全状态。
触摸屏上的报警复位按钮M0.2,用于故障确认。但要注意某些报警即使确认后也不能自动恢复运行,必须等故障源真正消失。比如液位低报警,如果操作工只是按了复位,液位没补上,设备一启动就会再次报警。程序里我用报警源信号加复位按钮串联方式,只有复位按钮按下且报警源已经正常,才退出故障等待步。
4. MCGS组态画面开发
4.1 画面结构与操作层级
MCGS嵌入版组态软件开发触摸屏画面,第一步不是画图,而是把画面结构理清楚。触摸屏只有7寸,信息不能堆在一个页面上,我按操作习惯分成六个页面:主画面、自动运行画面、手动操作画面、参数设置画面、报警记录画面、系统信息画面。
主画面显示设备名称、当前运行模式、当前工序、生产计数,以及最关键的启动、停止、复位三个大按钮。自动运行画面显示清洗时间进度、漂洗时间进度、吹干时间进度,还有一些模拟量数据,比如实时温度和喷淋压力。手动操作画面只有在手动模式下才可操作,按钮按工艺分块排列,清洗泵、漂洗泵、主传动、吹干阀各一行,每个按钮配红色运行指示灯。参数设置画面用于修改清洗时间、漂洗时间、吹干时间、温度设定值,修改后立即写入PLC的V区。
页面间通过“页面切换”按钮串联起来,每个页面右上角固定放“主页”和“上一页”导航按钮。实际操作中,设备操作工年龄普遍偏大,画面上的文字按钮要够大、够清晰,字号不低于24像素,按钮间隔要够,免得戴手套误触。
4.2 PPI通信参数与地址映射
MCGS和S7-200之间的通信走的是PPI协议。在MCGS的设备窗口里添加“通用串口父设备”和“西门子S7-200(PPI)”子设备后,需要设置一串关键参数:串口序号COM1、波特率9600、数据位8、停止位1、校验方式偶校验、PLC站号2。9.6k的波特率虽然不高,但对于清洗机这种数据量不大的设备完全够用,而且通信距离和抗干扰能力更好。
地址映射是这个环节最容易出问题的地方。MCGS访问S7-200的V区相对直观,比如设备通道里寄存器类型选V,地址填102,就对应PLC里的VW102,可以直接连到画面上的数值显示和输入控件上。访问M区时,M0.0对应地址0,M0.1对应地址1,依次类推。访问输入输出区(I/Q)时要注意,某些驱动版本存在地址偏移,触摸屏读到的I/O状态和PLC实际IO点会对不上,这是老生常谈的问题。
我的处理办法很务实:不在MCGS里直接读写I区和Q区,而是在PLC程序里把需要显示的输入状态映射到V区或M区,把输出状态也用M区镜像一份,触摸屏只和V区、M区打交道。这样既绕开了地址偏移的坑,又减少了通信报文数量,画面刷新更流畅,一举两得。
4.3 数据对象与脚本联动
MCGS里的每个画面元件都要绑定数据对象。比如数值显示控件绑定“清洗温度”,这个数据对象再连接到设备的物理通道AIW0换算后的VW110。在MCGS里建立数据对象时要注意数据类型,VW102这类16位整数对应“数值型”,M0.0这种开关量对应“开关型”,类型不对的话画面显示会是乱码或始终为0。
按钮联动用MCGS的脚本功能。比如自动运行画面上的“启动”按钮,按下时给M0.0置1,松开时给M0.0清零。PLC把M0.0的上升沿当成启动命令。这里有个经验:按钮动作要用“按下”和“弹起”两个事件脚本,不能只用“按下”事件,否则PLC扫描周期稍慢就可能采不到脉冲。
参数设定画面里的数值输入控件,绑定到VW102、VW104、VW106、VW108。客户在触摸屏上改数值后,PLC程序在进入对应工序时重新读取设定值,这样确保改动即时生效。我在PLC程序注释里明确写了一句“参数在工序开始时刷新”,这是和客户反复确认过的行为逻辑,避免出现“改了参数但没起作用”的误会。
4.4 报警与历史数据
MCGS的报警显示功能可以复用PLC报警位。我在PLC里置位的M10.0到M10.4分别对应液位低、压力低、加热器超温、泵过载、门未关。组态里建立报警显示元件,将这些变量关联进去,报警发生时画面会自动弹出报警列表,显示触发时间、解除时间、报警内容。
历史数据对工艺追溯很有价值。MCGS里可以用“数据存盘”功能把关键参数周期记录到触摸屏的U盘或存储空间里,包括清洗温度、喷淋压力、报警记录、每个工件清洗次数。现场如果要追溯质量问题时,直接导出历史曲线,比翻手工记录本靠谱得多。我建议客户启用了温度历史曲线,后期他们做质量分析时省了大力气。
报警记录里还有一个小技巧:报警确认按钮要单独做成一个明显的大按钮,按下时给M0.2发一个脉冲,PLC收到后复位所有报警位和蜂鸣器。但报警源如果依然存在,报警会再次触发,这个逻辑需要在程序里和组态说明里都讲清楚,否则现场会抱怨“报警消不掉”。
5. 现场调试流程与关键点控制
5.1 调试前的电气检查
设备调试最忌直接上电就跑程序。我每次都是先做完整检查,再分步送电。首先检查所有接线是否与原理图一致,用万用表导通档逐根核对;然后检查电源回路,确认220V控制电源和24V开关电源无短路;最后把所有接触器下口负载断开,先把柜内空载送电,确认PLC和触摸屏正常启动。
这里特别提醒一下PLC的AC220V供电端和24V输出端的接线,很多人想当然认为PLC是24V供电,拿开关电源的输出接PLC端子接反,或者把220V直接怼到24V端子上,导致PLC电源板烧毁。S7-200 CPU226的供电方式要在铭牌上看清楚,有的是AC220V直接供电,有的是DC24V供电,接反了就不是烧几个元件的事了。
我还会在送电前把CPU上的RUN/STOP开关打到STOP位置,防止程序误动作导致接触器吸合。等检查完I/O接线和外部负载后再切换到RUN。对改造项目来说,这一步是保命操作,能避免很多意想不到的误动作。
5.2 分步调试顺序
我调试这种设备时严格遵守从静态到动态、从单机到联动的顺序。第一步是PLC与编程计算机通信,用Micro/WIN测试链路。第二步是核对I/O映射,用强制功能逐个把Q0.0到Q0.7置位,观察接触器和指示灯动作是否正确;再逐个短接输入点,确认I0.0到I0.7在软件监控里能正常翻转。这步如果偷懒跳过去,后面自动流程运行时一个输入点定义错误,排查起来会非常痛苦。
第三步是手动模式调试。把选择开关打到手动,在触摸屏上依次点动手动按钮,看各泵、各电磁阀能不能正确响应。如果某台泵在触摸屏上无法启动,优先检查PLC对应M区映射是否执行,再看输出继电器和接触器线圈回路。
第四步是空载自动流程调试,把清洗泵和漂洗泵的出口阀门关小,或者干脆脱开负载,运行一次完整的自动流程,观察每一步的切换时间、定时器数值、运行状态灯变化。这一步主要是验证程序时序逻辑是否正确,从清洗到漂洗再到吹干的切换顺序有没有问题。
第五步才是带载试运行。加入清洗液和实际轴承工件,运行连续多个循环,观察温度、液位、压力等实际参数是否和预期一致,同时留意泵启动时电压跌落是否影响PLC和触摸屏。
5.3 现场抗干扰与接地处理
清洗机现场的电磁干扰主要来自接触器吸合和电机启停。PLC系统要稳定运行,接地和布线必须讲究。PLC的24V电源负极要和柜体接地母排可靠连接,模拟量信号线用屏蔽双绞线,屏蔽层在PLC侧单端接地,不要在传感器侧也接地,否则会形成地环路引入更大的干扰。
动力线和控制线在柜内走线时要保持距离,不要扎在同一个线槽里,尤其是变频器输出线这种强干扰源,至少要隔开20厘米以上。如果柜内空间有限,动力线必须穿金属管或者加磁环。我在这个项目里还做了个细节处理:接触器线圈两端并联RC阻容吸收器,电磁阀线圈两端并联续流二极管,大幅降低了断开瞬间的浪涌干扰。
调试时我发现温度信号偶尔跳动,排查后确认干扰来自加热器接触器吸合瞬间。后来我不仅在程序里加了滑动平均滤波,还把温度变送器的供电改成了隔离型开关电源,同时把信号线屏蔽层在模拟量模块侧接地,问题彻底消失。这类问题是现场最容易遇到的,也是最难定位的,通常要把布线、接地、滤波三方面都处理好才能根治。
6. 常见问题排查与经验总结
6.1 高频问题对照表
把现场调试和客户使用过程中最常遇到的问题整理成一张表,方便对照排查。
| 现象 | 可能原因 | 处理办法 |
|---|---|---|
| 触摸屏提示“通信超时” | 串口参数不一致、PLC站号错误、通信线接反、干扰 | 先用编程线确认PLC通信正常,再检查屏的波特率和站号,通信线必须用屏蔽双绞线,A/B端子不能反 |
| 画面能显示数据但按钮没反应 | 变量权限设为只读、驱动通道只连了读方向 | 在设备窗口检查通道的读写属性,按钮绑定的开关型变量要允许写操作 |
| 自动流程中途无故障停止 | 门开关瞬断、光电传感器抖动、定时器被干扰复位 | 检查对应输入点的状态历史,给输入信号加软件滤波延时,必要时换质量更好的传感器 |
| 温度显示跳动大 | 信号线干扰、变送器电源不稳、模拟量模块未接地 | 更换隔离电源供电,信号线屏蔽层单端接地,程序增加滑动平均滤波 |
| 泵一启动PLC复位或触摸屏熄灭 | 控制电源跌落、开关电源容量不足、动力线和控制线靠太近 | 增加稳压电源容量,PLC供电独立于输出回路,动力线与控制线分槽走线 |
| 手动/自动切换后按钮错乱 | 模式切换时输出未复位、程序互锁不完整 | 在切换逻辑里统一复位手动指令区,自动运行时屏蔽所有手动按钮命令 |
| 触摸屏修改参数后工艺没变化 | PLC未重新读取参数、地址对应错误 | 确认PLC程序在工序开始时重新读取V区参数,核对组态变量地址和PLC寄存器是否一致 |
6.2 排查问题的方法论
很多电气问题看似神秘,其实排查路径是固定的。我习惯先看指示灯再看数据。比如设备停在那里不动作,先看触摸屏有没有报警,再看三色灯什么颜色,最后看PLC输入输出状态。通过这些表象信息基本能定位到是传感器信号没来、输出点没驱动、还是执行机构没动作。
用Micro/WIN的在线监控功能时,要同时看程序状态和实时数据。比如某个时间继电器一直没到,就检查它的使能条件和设定值是否正常;某个输出点该亮不亮,就顺着逻辑往前推,是输入条件没满足还是后面被别的逻辑复位了。这个“顺着梯级往前找”的排查方法,解决了我现场遇到的大部分疑难杂症。
另一个经验是:不要一上来就怀疑PLC坏了。PLC的故障率在工业现场所有元器件里其实是偏低的,比传感器、接触器、电源都要可靠。遇到莫名其妙的问题,先检查24V电源是否纹波大,再检查输入输出接线有没有松动,最后检查接地和布线,通常都能找到真凶。
6.3 关于这套方案的一些个人体会
做老设备电气改造,技术方案本身往往不是最大难点,难点在于把用户实实在在的痛点搞清楚。我在这个项目上花了不少时间跟车间师傅聊天,问他们平时最烦什么:有人烦参数调整麻烦,有人烦故障时不知道哪里坏了,还有人烦泵和电磁阀误动作喷一身水。这些需求最后都变成了程序里的功能模块和触摸屏上的页面,才是真正的项目价值。
S7-200加MCGS这套组合虽然听起来不够“新潮”,但它解决的是真实生产环境里的真实问题。设备要稳定、要耐用、要好维护,这几个关键词在任何时候都不会过时。如果你接下来要做类似的控制系统改造,建议把I/O规划、V区变量表、工艺流程确认这三步做扎实,程序反而好写。等你上手做过两三个项目,就会明白,一份清晰的I/O表比一百行花哨代码都有用。