拓冰建站拓冰建站
首页 / 资讯中心 / 正文

基于S7-200的注塑机PLC控制系统设计与实践解析

1. 注塑机控制到底在控什么说实话现在市面上聊S7-200的教程已经不太多了但我一直觉得这机器放在注塑机控制这个场景里依然是性价比极高的选择。你要明白一个现实很多中小型注塑厂里设备要么是老旧机型改造要么是预算有限的新购设备你让他们上一套S7-1500加伺服总线方案成本直接劝退。而S7-200 CPU226加上几个扩展模块几百块钱就能搞定整套控制逻辑耐造、稳定、资料全老师傅多半也摸过这就是它到现在还能打的原因。这篇内容适合谁看主要是这几类人刚入行做PLC编程、想找个真实项目练手的厂里正好有注塑机或周边辅机设备需要自己做维护改造的以及做非标自动化、偶尔要碰注塑机上下料和机械手控制的工程师。看完之后你至少能搞清楚一台注塑机从开模到顶出这整个循环里PLC每一步到底在干什么、怎么干、干了之后怎么知道干对了。先拆解一下注塑机的工艺循环。一台标准的卧式注塑机它的核心动作可以简化成这样一个流程合模、注射座前进、保压、冷却、预塑/计量、注射座后退、开模、顶出然后循环。这个流程看着不复杂但难点在于每个动作之间有严格的条件互锁和时序关系比如开模没到位绝对不能顶出、安全门没关绝对不能合模、料筒温度没到设定值绝对不能启动注射这些逻辑一旦出错轻则产品报废重则模具直接撞烂。注塑机控制的关键词其实就三个时序、条件、互锁。时序决定了动作执行的先后顺序条件决定了下一步能不能走互锁决定了出现异常时能不能立刻停下来保护设备和人身安全。S7-200这种老牌PLC跑这种逻辑完全够用梯形图本身也特别适合表达这种继电器式的逻辑关系天然就是干这个活的。2. 硬件组态与IO分配2.1 控制系统的硬件选型思路做注塑机控制第一步不是急着写程序而是先把硬件方案理清楚。我见过不少新手一上来就对着电脑撸梯形图结果到了现场发现输入点不够用、输出带不动负载整套系统根本跑不起来最后只能返工。这个坑踩一次就够了所以硬件选型这件事必须放在最前面。基于S7-200的注塑机控制系统我建议的配置是这样的CPU选CPU226自带40点IO24输入、16输出这样基础的点位就够用了而且CPU226支持两个通信口一个接触摸屏一个留出来接上位机或者后续扩展。如果设备规模不大、点位数在40点左右就能覆盖那CPU22414输入、10输出也可以但我会建议留点余量。注塑机的传感器和执行器类型比较杂。输入这边合模限位、开模限位、顶出限位、注射座进退限位基本都是机械式行程开关注射和保压阶段会有压力传感器信号料筒各段有热电偶测温。输出这边控制电磁阀驱动油路切换控制接触器驱动油泵电机和加热圈如果是伺服电机驱动的注射系统还要输出脉冲信号控制伺服驱动器。2.2 IO点表的设计是程序的骨架IO分配是整个控制系统的骨架分配得好不好直接决定程序好不好写、好不好调。我一般按照功能区域来分区分配地址而不是按随机顺序填这样后期查线、调试都舒服很多。下面是我在实际项目中用过的一张IO分配表你可以直接参考地址功能说明信号类型备注I0.0急停按钮常闭输入必须用常闭断线保护I0.1安全门左关闭到位常开输入两个安全门串联/分别检测I0.2安全门右关闭到位常开输入同上I0.3合模限位模紧到位常开输入确认合模完成I0.4开模限位开模到位常开输入确认开模完成I0.5顶出前进到位常开输入I0.6顶出后退到位常开输入I0.7注射座前进到位常开输入I1.0注射座后退到位常开输入I1.1注射压力上限压力开关常开输入超压报警I1.2料斗缺料检测常开输入缺料报警I1.3油泵电机过载常闭输入热继电器信号I1.4加热器过载/断线检测常闭输入可分组Q0.0油泵电机启动输出接触器控制Q0.1合模电磁阀输出YV1Q0.2开模电磁阀输出YV2Q0.3顶出电磁阀输出YV3Q0.4注射座前进电磁阀输出YV4Q0.5注射座后退电磁阀输出YV5Q0.6注射电磁阀输出YV6Q0.7料筒一段加热输出固态继电器/接触器Q1.0料筒二段加热输出同上Q1.1料筒三段加热输出同上Q1.2报警指示灯三色灯输出可单独分频闪/长亮这张表有几个地方需要特别解释。首先急停和油泵过载这两个点我用的是常闭信号也就是说正常情况下这个输入点一直是通的一旦断线或者被按下信号断开PLC马上能识别到故障状态。这是安全回路设计里的基本原则故障安全型设计宁可误报也不能漏报。第二个要注意的是安全门检测。注塑机的安全门是保护操作员的核心装置合模动作触发前必须确认两个安全门都关到位否则绝对不能合模。有些设备会加装安全继电器做硬逻辑互锁PLC这边再做一遍软件互锁双重保险。温度检测这块比较特殊S7-200的CPU本身不带热电偶直接采集通道需要配EM231热电偶模块或者用温度变送器转成4-20mA信号接到模拟量模块。这个后面单独展开讲。2.3 接线环节容易踩的坑接线这块我建议所有电磁阀线圈两端都并联一个RC吸收回路或者续流二极管因为电磁阀是感性负载断电瞬间会产生很高的反向感应电动势直接接在PLC输出端会缩短继电器触点寿命严重的话会击穿晶体管输出。PLC输出端接隔离二极管的做法本质上就是为了吸收这种反向冲击。还有一点PLC的输出公共端和负载电源的接线方式务必看清楚说明书。继电器输出型可以接交流也可以接直流但晶体管输出型只能接直流而且正负极不能接反。我见过有人把晶体管输出接成220V交流结果一整排输出点瞬间全烧了那个维修成本真不如一开始就好好看手册。3. 程序架构设计3.1 主程序、子程序和中断的分工S7-200的程序结构说简单也简单无非就是主程序加子程序加中断程序但实际项目里怎么组织才不乱这是有讲究的。我见过有人把注塑机控制的所有逻辑全写在主程序里一条扫描周期从头刷到尾几百行梯形图堆在一起调试的时候查一个输出点到底在哪段逻辑里控制的翻半天翻不到。推荐的做法是按照功能块拆成子程序主程序只做调度和条件总控。可以先按这个思路搭建OB1主程序里写循环调度的框架然后拆成各个功能子程序比如启动停止控制、手动模式控制、自动模式控制、温度控制、报警处理、机械手联动。每个子程序负责一个独立的控制功能内部逻辑相对独立主程序按模式切换去调用对应的子程序。子程序调用的好处有两个。一是结构清晰查问题的时候直奔对应的子程序方便得多。二是扫描效率高比如温度PID运算不需要每个扫描周期都跑可以定时执行。S7-200提供了定时中断功能把温度控制的PID运算放到定时中断里用固定时间间隔触发控制效果远比在普通扫描周期里执行要稳定得多。3.2 用状态位搭建自动运行时序注塑机自动循环的核心是时序控制。最简单的实现方式是步进梯形图指令SCRS7-200有专用的SCR指令把每一步动作放到独立的SCR段里每段有明确的转移条件和动作输出。对于注塑机这种典型的顺序控制场景SCR几乎是量身定做的工具。我习惯的做法是先用状态寄存器比如M0.0到M0.15定义每一个工步这样每一步对应一个M位。下面的梯形图逻辑描述的是每一步切换的核心思路// 步0待机等待启动条件 LD M0.0 A I0.1 // 安全门左关到位 A I0.2 // 安全门右关到位 A M2.0 // 启动按钮已按下取脉冲 S M0.1 // 进入合模步 R M0.0 // 步1合模 LD M0.1 A I0.4 // 开模限位已复位模具可以合 S Q0.1 // 合模电磁阀输出 A I0.3 // 合模到位 S M0.2 // 进入下一步注射座前进 R M0.1实际项目中我不会把所有步骤堆在几个截图里讲因为每个厂家的设备动作细节不一样步与步之间的转移条件要结合具体设备来写但思路是通用的一扇门打开另一扇门关上先判断转移条件是否满足满足就锁定下一步状态同时复位当前步状态。这样做最大的好处是任何时候你看一眼M位就知道设备现在走到哪一步了排查故障的效率能翻好几倍。而且状态位一旦锁定即使中间的输出信号抖动也不会导致误切换稳定性也有保障。3.3 手动/自动模式的切换处理注塑机的操作模式一般有手动、半自动、全自动三种。手动模式用于调试和模具安装每个动作靠按钮单独触发半自动模式是操作员按一下启动按钮机器走完一个完整的循环全自动模式是循环结束后自动开始下一个循环中间不需要人工干预。模式切换的处理有几个细节需要注意。第一从手动切到自动之前所有动作必须处于初始状态比如模具必须处于开模到位状态顶出杆必须处于后退到位状态否则不能启动自动循环。第二模式切换的过程中要防止输出信号跳变我一般会在切换指令前后加一个解锁延时确保输出稳定后再进入下一步。第三手动模式下每个动作都要有单独的互锁条件防止误操作导致设备损坏。4. 核心工艺功能实现4.1 料筒温度控制的PID调节注塑机料筒的温度控制直接决定塑料熔融质量温度高了塑料分解发黄温度低了塑化不均匀产品全是瑕疵。S7-200的温度控制最实用的方案是使用PID指令块加热电偶输入模块。如果你用的是EM231热电偶模块它直接把热电偶信号转换成数字量存入AIW寄存器然后通过PID指令运算输出控制量再通过数字量输出点控制固态继电器通断加热圈。PID指令块需要设置给定值、过程值、比例增益、积分时间、微分时间这几个参数。注塑机料筒温度控制一般用PI就够了微分项容易引入噪声干扰实际效果反而不好。PID参数整定我建议用经验法起步先将积分时间设到最大、微分关闭只留比例项从小到大调比例增益让温度开始震荡记下临界比例增益和震荡周期再根据齐格勒-尼科尔斯经验公式算出合适的PID参数。这个方法的起点靠谱比盲调快得多。不过温度控制有个更隐蔽的问题加热圈的响应滞后很大热电偶检测到的温度变化比实际加热动作晚了很久。所以温度到达设定值前需要提前减小输出否则温度会冲过头这就是所谓的超调。我一般会加一个输出限幅功能温度接近设定值前自动把PID输出限制在50%以内等温度稳定后再放开限幅。4.2 注射速度与压力的分段控制注塑机的注射阶段是整个成型过程中最关键的环节。好的注塑机控制系统注射速度不是恒定不变的而是根据产品结构分多段控制。比如薄壁区域要快速填充防止冷料厚壁区域要减速防止困气和烧焦最后补缩阶段要低压低速防止飞边。这个话题正好能看到S7-200的一个玩法如果你用的是伺服电机驱动的注射系统S7-200可以输出高速脉冲控制伺服驱动器通过改变脉冲频率实现注射速度的分段调节。脉冲输出指令PLS加脉宽调制指令在S7-200里都能用伺服速度曲线可以通过IO点切换对应的速度预设值来实现。如果是普通液压系统速度调节一般靠比例流量阀。PLC通过模拟量输出模块EM232输出0-10V电压信号给比例阀放大器电压大小对应阀门开度也就对应了注射速度。分段控制的核心就是在不同注射位置切换到不同的模拟量输出值。位置检测可以靠电子尺也可以靠接近开关和编码器组合。S7-200的高速计数器功能HDEF、HSC可以用来读编码器的脉冲数实时计算螺杆位置从而实现按位置触发的多段速度切换。这里有一个非常实用的技巧分段切换条件尽量使用当前值比较指令而不是等限位信号。因为限位开关的机械位置一旦磨损就要重新调而编码器的位置值只要设置一次就永远准确。4.3 伺服电机驱动与机械手联动注塑机旁边经常配一台取件机械手机械手负责开模之后把成品取出来放到输送带上。机械手的动作通常由独立控制器控制但需要和注塑机的主控PLC做信号交互。S7-200在这里扮演的角色主要是通过IO点与机械手控制器联机发送允许取件信号和接收取件完成信号本质上是一个握手协议。联动时序这样走注塑机开模到位之后PLC输出一个“允许取件”信号给机械手机械手收到信号后开始取件动作动作完成之后反馈一个“取件完成”信号回来PLC收到这个信号才允许进入顶出或者下一个循环。这里必须加超时保护如果PLC发出允许取件信号之后X秒内没收到完成信号马上进入报警状态防止机械手故障导致整机卡死。如果是PLC直接控制气缸机械手那就要用到S7-200控制气缸的逻辑。气缸控制的核心是双向电磁阀PLC输出两个点分别控制电磁阀的左右位气缸就伸出缩回。但是气缸运动速度控制是个难题普通电磁阀只有通断两种状态想调速就得用节流阀或者比例阀。实际项目中我用S7-200控制机械手的常用方式是一个动作用一个输出点到位检测用磁性开关磁性开关装在气缸缸体上检测活塞磁环位置。编程时要注意磁性开关在高速运动时可能产生抖动输入信号需要做滤波处理。S7-200输入点自带数字滤波设置一般把滤波时间调到0.2ms到6.4ms这个区间具体看运动速度太灵敏容易误触发太迟钝又容易漏信号。4.4 注塑机与变频器的配合应用注塑机液压系统的油泵电机如果直接用工频运行不仅耗电大而且油温容易升高。很多节能改造项目会给油泵电机加装变频器根据注塑机的实际动作需求实时调节电机转速这样能耗能降20%到40%。这也就是热词里为什么有ABB变频器与西门子PLC的原因——变频器和PLC配合是注塑机节能改造的经典方案。S7-200控制变频器的方式有三种开关量端子控制、模拟量给定控制、通信控制。开关量端子控制最简单通过PLC输出点控制变频器的启动停止和正反转频率靠变频器面板预设。模拟量给定控制稍微高级一些PLC通过模拟量输出模块给变频器一个0-10V或者4-20mA信号频率可以在线实时调节。通信控制是基于RS-485总线S7-200用USS协议和西门子变频器通信或者用Modbus RTU协议和第三方变频器通信。USS协议是西门子专用的变频器通信协议S7-200的库里有现成的USS指令可以调用用起来特别方便。只要几条指令就能实现对变频器启停、频率设定、频率读取和状态监控。用通信方式的好处是省了一大堆控制线而且能读到变频器的实时运行状态方便做故障诊断。注意RS-485总线的终端电阻要接好线不要太长通信速率建议设9600或19200更稳定。5. 触摸屏、上位机与通信组网5.1 威纶通触摸屏与S7-200的对接注塑机上配一块触摸屏做操作界面和人机交互已经非常普遍了。威纶通触摸屏在国产设备里占有率很高它和S7-200做通信走的是西门子的PPI协议。PPI是S7-200的专用串行通信协议基于RS-485物理层。在威纶通的组态软件EBPro里新建工程的时候选择S7-200的驱动设置好通信端口和站号就能直接读取和写入S7-200的变量地址了。这里有一个关键点触摸屏上显示的数据地址要和PLC程序里的变量地址一一对应。比如PLC程序里料筒温度存放在VD100触摸屏上就建一个数值显示元件地址设置成VD100数据类型选32位浮点数。地址写错是HMI调试最常见的错误我建议做一张变量映射表把PLC地址和触摸屏地址的对应关系写清楚减少沟通成本和时间浪费。5.2 西门子触摸屏的时间同步设置热词里面有个很具体的问题“西门子ktp1200触摸屏改完时间显示不信任plc”这个问题有实际工作经验的人应该都知道。KTP1200触摸屏改完系统时间之后过一段时间又跳回去了或者显示时间不对很多人第一反应是触摸屏的时钟芯片坏了其实不一定是。KTP1200这种精简系列触摸屏如果配置了和PLC做时间同步触摸屏会定期从PLC读取时间覆盖自己的系统时间。你改的是触摸屏的本地时间但PLC那边的时间没更新下次同步周期一到触摸屏时间又被PLC拉回去了看起来就像“不信任”你的修改。解决办法是要么在PLC程序里改时间让触摸屏跟随要么在触摸屏的HMI设置里把时间同步功能关闭然后纯靠触摸屏本地时钟走时。5.3 PLC与DCS系统的对接思路在一些大型注塑车间注塑机并不是孤立运行的它们要接入车间级的集中监控系统或者和DCS系统做数据交换。S7-200和DCS系统通信的方案常见的是通过Modbus RTU协议。S7-200的端口0可以用Modbus RTU从站功能库里有现成的指令DCS作为主站来读取注塑机的运行数据和状态信息。通信格式和三菱PLC类似也都是寄存器地址映射。比如DCS读注塑机的运行状态映射到保持寄存器40001DCS读温度实际值映射到40002等等。S7-200这边要做的事情是在程序里调用Modbus从站初始化指令配置好从站地址、波特率、校验方式然后把需要上报给DCS的数据整理到对应的保持寄存器里。5.4 PLC控制系统的网络冗余方案注塑机如果参与连续生产PLC控制系统宕机一次就可能造成整批产品报废所以有些关键设备会做冗余方案。但说实话S7-200这个级别的PLC做硬件冗余并不合适毕竟它的可靠性设计本身就不错PLC本体故障的概率很低。更实用的做法是做通信链路的冗余主通信链路用PPI备用链路用Modbus两条链路同时在线一条断了自动切到另一条。实际现场还见过这样做的把注塑机上两个PLC通信口分别接到两个触摸屏一个生产操作用一个设备监控用即使其中一块屏坏了另一块还能正常操作这在生产连续性要求高的场景里是性价比很高的方案。6. 常见问题与排查技巧实录6.1 输入信号误触发与抖动问题注塑机现场的电磁干扰是出了名的严重油泵电机启停、电火花、变频器谐波都会在控制线上感应出干扰信号。我遇到过最典型的问题安全门没有关但PLC显示安全门关闭到位这就是干扰导致输入点误触发。排查思路是这样的先在系统菜单里监控输入点的实时状态确认信号是不是真的有问题。然后检查输入信号线的屏蔽层接地情况屏蔽层单端接地不能双端接地。最后在PLC输入点并联电容或者在STEP 7-Micro/WIN软件里调整数字量滤波参数。S7-200每个输入点都可以单独设置滤波时间我一般对有干扰的输入点设置6.4ms滤波器效果立竿见影。6.2 输出点驱动能力不足PLC的输出点直接驱动大功率接触器和电磁阀经常会遇到带不动的问题。S7-200的输出点驱动能力有限继电器输出型一般能带2A的负载但接触器线圈的涌流可能达到额定电流的5到10倍直接接在PLC输出点上触点寿命会大幅缩短。正确做法是PLC输出信号先驱动中间继电器中间继电器的触点再驱动接触器和电磁阀。中间继电器起到了电气隔离和功率放大的作用保护PLC的输出点。另外输出点接感性负载的时候一定要并联RC吸收回路很多人会忽略这一步时间长了才知道后果。6.3 报错代码与通信故障排查速查S7-200的程序运行中可能出现各种各样的报错这里整理一个排查速查表故障现象可能原因排查方法PLC的SF灯亮系统故障程序逻辑错误、硬件故障、扩展模块丢失连接编程软件查看PLC信息通信连不上通信端口设置错误、站号冲突、线缆接线错误检查PPI参数、终端电阻、通信线A/B程序能下载但无法运行特殊存储器SM配置错误、程序指针越界检查SM0.1、SM0.0使用情况模拟量读数为乱跳传感器或变送器干扰检查屏蔽线接地、信号线远离动力线PID输出不稳定参数设置不当、反馈信号噪声调低比例增益、增加积分时间、对反馈做平滑滤波时间继电器TON计时不准扫描周期太长或中断冲突确保扫描周期在允许范围内区分定时中断和扫描周期排查的时候有个顺序问题先查硬件再查通信最后查程序。很多新手一上来就翻程序逻辑找了半天发现是接线松了浪费时间也浪费心情。硬件问题可以先通过PLC面板指示灯判断输入点有没有信号指示输出点有没有驱动到这些指示灯一亮一灭之间很多问题就清楚了。6.4 S7-200固件与程序上传的注意事项S7-200的固件版本有时候会影响一些指令功能的支持情况如果遇到莫名奇妙的程序行为可以查一下PLC固件版本。STEP 7-Micro/WIN软件里能直接查看CPU的固件版本信息网上可以找到对应版本的固件升级包用编程线缆就能更新操作不复杂。关于程序上传S7-200和很多PLC不一样的地方在于它默认允许上传程序但上传出来的程序可能不包含注释和符号表因为注释信息保存在编程软件项目文件里PLC存储卡里只有纯代码逻辑。如果你想从PLC反推完整的带注释程序那基本做不到这也提醒我们源文件一定要保管好分版本存每次改动都留一份备份不然过几个月自己都看不懂自己写的逻辑了。7. 注塑机PLC控制的项目经验总结做了这么多注塑机PLC项目有几个深刻的体会想分享出来。第一个体会是关于程序注释的写程序的时候一定要把注释写清楚特别是在每个子程序开头写清楚这个子程序干什么用、输入什么变量、输出什么变量、有什么互锁条件。我之前接手过一个别人的项目程序完全不写注释维护成本高得离谱后来痛定思痛自己写的每一行程序都习惯性配上注释哪怕是再简单的一句逻辑。第二个体会是调试阶段一定要求稳不求快。注塑机这种设备涉及高温、高压、高速运动调试过程中任何一步疏忽都可能造成安全事故。我调试合模动作的时候第一遍绝对不用自动模式而是在手动模式先把每一步动作单独走一遍确认限位信号、电磁阀动作、压力都正常然后再切换到自动模式跑空循环最后才放料实际生产。这套流程看着繁琐但能避免绝大多数现场事故。第三个体会是S7-200虽然老了但它在注塑机控制这个场景内的稳定性是真的过硬。我见过不少设备已经连续运行十几年没动过控制系统的PLC本体从来没换过最多就是外部继电器和接触器换了几轮。所以如果你问我现在还要不要学S7-200我的答案是如果你干维修、做改造、跑售后那S7-200这块内容一定绕不开存量市场摆在那里设备还在运转就永远有需求。学会了S7-200再往S7-1200、S7-1500走逻辑基础完全是相通的无非是新的软件平台和通信方式需要适应。反过来如果一上来就只学博途到了现场面对老设备反而无从下手这才尴尬。最后再给一个很实用的小技巧很多老师傅可能都不知道S7-200的程序下载完以后记得把CPU的运行开关拨到RUN状态然后断电重启一次让程序冷启动初始化一遍。这一步能清掉调试过程中残留的中间状态确保生产开始之后设备处于一个干净的初始状态。别小看这一步很多“莫名其妙的第一次启动故障”其实都是这个原因。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门