☰
老旧注塑机改造实战:用S7-200 PLC实现顺序控制与PID温控
2026/10/20 9:20:55 网站建设 项目流程

先交代一下背景:这是我去年接手的一台老旧注塑机,控制柜里的旧控制器已经三天两头黑屏、丢动作,车间停一天就是真金白银。老板给的期限很紧,现场电工又只会看继电器,我没有贸然上一套全新的高端控制系统,而是花两天把整机动作、传感器、液压阀全部捋了一遍,最后方案定在了 S7-200 PLC 上。很多人听见 S7-200 就摇头,觉得它停产了、太老旧,但对这台注塑机来说,它恰恰是投资最低、上手最快、备件最好找的选择。

这篇文章不会只教你点几下软件向导,而是把我在现场用到的整套东西摊开讲:硬件模块怎么选、I/O 地址怎么排、注塑循环怎么变成梯形图里的状态机、料筒温度 PID 怎么调,以及最后调试阶段把我折腾得够呛的几个“硬核事故”。

1. 我为什么在注塑机改造里又选了 S7-200

1.1 设备现状倒逼出来的选型结论

这台设备是一台 250 吨的传统液压注塑机,液压系统相当成熟,注塑动作靠一组开关式电磁阀和两个比例阀(压力比例阀、流量比例阀)完成,并没有现代伺服电机或总线伺服驱动器。它的难点从来不在设备本体的高精度运动控制,而在于顺序动作的严苛时序、温度闭环的稳定性以及各段压力/流量的切换平顺度。

一开始我也考虑过更高级的方案:带运动控制的大型 PLC、专用注塑机控制器、甚至外购成套电控柜。但列完需求后发现,这台机器的核心控制任务就是三件事:数字量顺序控制、模拟量温度闭环、比例阀模拟量输出。这三件事,S7-200 都在能力范围内,而且有一个巨大的优势——现场电工都认识它。未来的维护不需要依赖某个供应商的技术封锁,随便找一个会梯形图的电工,给他一份地址表,他就能排查故障。

这是一个很现实的问题。很多设备坏就坏在“只有厂家能修”,厂家报价高、响应慢,车间只能干等。用 S7-200 改造,本质上是在把设备的“控制主权”拿回自己手里。

当时我做了个简单对比:

方案硬件成本开发周期维修门槛我的结论
大型 PLC + 伺服运动控制高长高过度设计
专用注塑机控制器中中高度依赖原厂备件和资料都被绑定
S7-200 PLC 方案低短低选定,最务实

1.2 S7-200 的底子到底够不够用

很多人一听“老产品”就默认它不行,但实际上 S7-200 在这个场景下的资源非常充裕。我选的是 CPU 226,这也是 S7-200 家族里点数最多、存储最大的型号之一。它自带 24 路数字量输入、16 路数字量输出,程序存储区 16KB,数据存储区 10KB,定时器 256 个,计数器 256 个。对注塑机这种规模的控制对象来说,余量很大。

我这台机器改造前的 I/O 统计是:数字量输入约 38 点,数字量输出约 30 点,模拟量输入 5 路(4 路热电偶 + 1 路位移传感器),模拟量输出 2 路(压力比例阀、流量比例阀)。CPU 226 本体不够用,挂扩展模块完全能撑住,而且扩展总线上还能再挂几个模块,以后想加模具抽芯、机械手信号都不怕。

还有一个关键指标是扫描周期。注塑机的动作不像数控机床那样微秒级响应,合模、注射、保压这些动作的切换周期通常在几十毫秒的尺度上,S7-200 执行一段中等规模的用户程序,扫描周期在几毫秒到十几毫秒之间,完全够用。注射过程的位置切换我单独用定时中断处理,这一点后面会细讲。总之,性能不是瓶颈,思路才是。

2. 先把注塑循环拆成 PLC 看得懂的“状态机”

2.1 注塑机十多个动作的真实时序

注塑机看着复杂,本质上就是一个周而复始的循环:合模、注射、保压、塑化、冷却、开模、顶出。但这每个大动作里还套着小动作,尤其是合模和开模,都不是一步到位的,必须分慢速、快速、慢速多个阶段,否则模具容易撞伤。

以这台设备的实际工艺为例,完整循环是这样的:

  1. 合模慢速:模具从完全打开位置开始低速闭合,防止速度过快损坏导柱。
  2. 合模快速:越过安全区段后切换到快速,提高生产效率。
  3. 低压合模:这是最关键的“模具保护段”,模面即将接触时用极低的压力合拢,如果模腔里有残留制品或异物,低压段会推不动,系统立即报警并开模。
  4. 高压锁模:确认模具贴死后,施加高压将模具锁死,抵抗注射时的巨大涨模力。
  5. 注射座前进:整个料筒前移,使射嘴顶住模具浇口套。
  6. 注射:螺杆在压力下前移,把熔融塑料推进模腔,这个过程按位置或时间分成几段,每段有不同的注射速度和压力。
  7. 保压:注射结束后继续保持一定压力,补充塑料冷却收缩造成的缺料,保压时间到了才解除。
  8. 计量/塑化:螺杆旋转,把料斗里的颗粒料往前输送并熔融,螺杆后退到设定位置停止,这一段通常和冷却时间重叠。
  9. 冷却:制品在模腔内继续冷却定型,同时等待塑化完成、剪切动作复位。
  10. 注射座后退:射嘴离开模具,有些工艺不需要后退,可以设置旁通。
  11. 开模慢速:模具缓慢打开,保护制品不被拉伤。
  12. 开模快速:中间段快速开模,提高效率。
  13. 开模慢速:接近开模终点时减速,避免机械冲击。
  14. 顶出:顶针前伸把制品顶出,顶退到位后回到待机状态,等待下一个循环。

这 14 个阶段串起来,就是一个典型的自动注塑周期。手动模式下,每一步都要能单独操作,方便装模、试模和维修。所以在程序设计时,我必须把“自动循环”和“手动单步”都做出来,而且两者要能随时切换。

2.2 I/O 点数核算与地址规划

把这些工艺动作落到 I/O 上,就能画出一张实际的地址表了。我当时在草稿纸上列的要点是这样的:

类型信号说明地址规划
数字量输入合模到位、开模到位、低压到位、顶退到位I0.0 ~ I0.3
数字量输入前安全门、后安全门I0.4、I0.5
数字量输入启动按钮、急停按钮I0.6、I0.7
数字量输入手动/半自动/自动模式选择I1.0、I1.1
数字量输入油泵启动、油温正常、油位正常I1.2 ~ I1.4
数字量输入手动操作按钮组(合模、开模、顶出、注射、射台进退等)I1.5 ~ I2.3
数字量输出合模电磁阀、快速合模阀、高压锁模阀、低压锁模阀Q0.0 ~ Q0.3
数字量输出开模慢速阀、开模快速阀、顶出阀、射台前进/后退阀Q0.4 ~ Q0.7
数字量输出螺杆马达阀、背压阀、油泵接触器、加热器接触器组Q1.0 ~ Q1.5
数字量输出运行指示灯、故障报警灯、蜂鸣器Q1.6 ~ Q1.7
模拟量输入料筒各段热电偶:加料段、塑化段、均化段、射嘴段AIW0、AIW2、AIW4、AIW6
模拟量输入注射行程位移传感器(0~10V)AIW8
模拟量输出压力比例阀(0~10V)AQW0
模拟量输出流量比例阀(0~10V)AQW2

这里要特别提一句:安全门信号在硬件接线时我直接串进了液压阀的电源回路,也就是说即使 PLC 程序失控,只要安全门打开,合模阀的电源会被硬件切断。这是老设备改造里绝对不能省的双保险,程序里再做一层软件互锁,两层防护同时起作用。

3. 控制柜里的硬件配置与接线避坑

3.1 CPU 与扩展模块的选型清单

根据上面的地址规划,我的硬件清单是这样的:

  • CPU 226(24 DI / 16 DO,继电器输出型)
  • EM223 数字量扩展模块(16 DI / 16 DO)
  • EM231 热电偶模块(4 通道,K 型)
  • EM231 模拟量输入模块(4 通道,0~10V)
  • EM232 模拟量输出模块(2 通道,0~10V)

选继电器输出的 CPU,而不是晶体管输出,主要考虑到注塑机现场负载都是电磁阀、接触器这类感性负载,继电器输出耐冲击、带载能力强,虽然寿命不如晶体管,但对这种中低速动作频率的设备来说,几年换一次模块的成本完全可以接受。

CPU 226 本体加三个扩展模块,挂在模块总线上一字排开,安装底板用标准导轨,柜内布局清爽,后面检修也方便。有一点要注意的是,CPU 226 有两个通信口,我留了一个给编程线,另一个准备接人机界面。注塑机参数多,总不能每次改个温度都开电脑下载程序,所以后来我在面板上装了一个文本触摸屏,通过 PPI 协议和 PLC 通信,参数都放在 PLC 的 V 存储区里,屏幕只负责读写。

3.2 模拟量模块的接法和量程设置

模拟量接线是这次改造里最容易出问题的地方。EM231 热电偶模块本身有冷端补偿电路,直接把 K 型热电偶的正负极接到端子上就行,但我犯过一个低级错误,后面调试事故里会细说。模块侧面有一排 DIP 开关,负责选择热电偶类型、温度单位、断线检测方向,这些必须和实际使用的热电偶严格对应。

位移传感器我选的是磁致伸缩式,输出 0~10V 模拟量,供电是 24V 直流,输出三线制:电源正、电源负、信号线。信号线进 EM231 模拟量输入模块,模块 DIP 开关设置为 0~10V 单极性量程。这里有个接线细节很多人容易忽略:模拟量输入的公共端 M 必须和传感器供电电源的负端可靠连接,否则信号线悬空,读到的数值就是漂的。

模拟量输出 EM232 驱动比例阀放大器,也是 0~10V 信号。比例阀放大器通常自带斜坡调整功能,我不建议把斜坡时间调得很长,否则注射段切换时阀门的响应会迟钝,导致实际压力和设定值对不上。阀的斜坡用出厂默认值,平滑性靠 PLC 程序里对输出值做软斜坡处理,这样修改工艺参数时不用去动放大器旋钮。

3.3 现场布线和抗干扰处理

注塑机车间的电磁环境并不干净:大功率液压泵、接触器频繁通断、变频器(如果有)、电热圈大电流切换,都会对模拟量信号产生干扰。我第一次调试时,一启动油泵,位移传感器读数就在满量程的 5% 到 8% 之间来回跳,把我气得半死。后来排查下来,问题出在布线路径上,模拟量电缆和动力线走了同一个线槽,间距只有十几公分。

整改方案是这三条,供你参考:

  1. 所有模拟量信号线必须单独走金属屏蔽槽,与动力线至少保持 20 厘米以上的距离,不可避免交叉时垂直交叉。
  2. 屏蔽层单端接地,在 PLC 柜内这一端接 PE 排,另一端悬空,避免形成地环路。
  3. 传感器供电使用独立的 24V 开关电源,不要和电磁阀线圈共用同一个电源,尤其不能让阀线圈的瞬间压降影响到传感器基准。

数字量输入信号虽然抗干扰能力强一些,但我还是把所有接近开关和限位开关的线都用了屏蔽双绞线,这钱不能省。信号线到端子排的接头全部压冷压端子,柜内线号管打好,方便后期查线。改完布线后,模拟量读数稳如老狗,再也没有飘过。

4. 梯形图核心逻辑:状态切换与联锁保护

4.1 用 M 寄存器搭状态机的写法

注塑机程序如果写成一大串互相独立的“工艺步”,那后面维护的人会疯掉。我采用的是状态机思路:每一个工艺阶段对应一个 PLC 内部标志位(M 寄存器),同一时刻只能有一个状态处于激活,任何时刻通过“状态位”的组合,就能从人机界面上看出机器现在走到哪一步。

S7-200 里有一种官方推荐的做法是 SCR(顺序控制继电器)指令,它的结构很像顺序功能图。但我在实际项目中更喜欢用 M 寄存器状态机,原因很实在:注塑机操作时需要频繁手动干预,比如半自动循环中途退料、自动模式下人工动一下顶针,SCR 的激活结构一旦被打断,容易出现状态丢失;而 M 寄存器状态机配合置位/复位指令,手动和自动可以轻松抢占状态控制权,逻辑更透明。

我的状态位规划很简单:M0.0 是待机,M0.1 合模慢速,M0.2 合模快速,M0.3 低压合模,M0.4 高压锁模,M0.5 射台前进,M0.6 注射,M0.7 保压,M1.0 计量/塑化,M1.1 冷却,M1.2 射台后退,M1.3 开模慢速,M1.4 开模快速,M1.5 开模慢速末段,M1.6 顶出。

状态切换的梯形图逻辑,核心就是“当前状态到位、前置条件满足、输出置位新状态、复位旧状态”。我在纸面上写的草稿大概是这种感觉:

LD M0.0 // 待机状态 A I0.6 // 启动按钮按下 AN I0.4 // 前安全门未关闭 AN I0.5 // 后安全门未关闭 AN M3.0 // 无故障掉电保持 S M0.1, 1 // 进入合模慢速 R M0.0, 1 // 退出待机

落地到梯形图,就是常开触点、常闭触点加置位/复位线圈的组合。整个程序被分割成一个个网络,每个网络对应一个状态的进入条件和退出条件。这样写最大的好处是,现场电工排查“机器不走下一步”的时候,只需要看哪个状态的进入条件不满足,很快就能定位是传感器坏了还是互锁没复位。

4.2 锁模低压保护与安全门互锁

合模阶段的安全是注塑机的头等大事,尤其是“低压合模保护”这一段。模具在完全闭合之前,如果模腔里残留了上一个制品、或者有异物掉进去,低压合模阶段模具应该是合不拢的,此时必须立即停止合模并报警,绝不能硬压下去,否则模具直接报废,那损失就是几万块钱起步。

我的做法是:低压合模状态激活后,启动一个定时器,比如 1 秒。如果在定时器计时结束前,低压到位信号没有触发,说明模具没有在预期时间内合拢,系统立即跳转到故障状态,输出“合模保护报警”,同时复位合模输出,让操作人员手动开模取出异物。定时器的时基要选 100ms 的,这样精度可控。程序片段类似这样:

LD M0.3 TON T37, +10 // 100ms 时基,预置值 10,即 1 秒 AN I0.2 // 低压到位信号没来 S M3.0, 1 // 置位锁模保护报警 R M0.3, 1 // 退出低压合模状态

安全门互锁分硬件和软件两层。硬件层我在前面已经说过,安全门限位直接串在合模阀的供电回路里,门一开,阀就没电。软件层则是安全门输入信号必须满足“前门关闭 AND 后门关闭”,自动循环才允许进入合模状态。任何时候安全门打开,当前合模动作立即停止,而且必须回到待机状态,防止门一关又自动启动造成人身伤害。

4.3 注射/保压的动作链与压力切换

注射和保压是两个最容易让程序“翻车”的地方。注射阶段螺杆前进的速度和压力是分段的,常见工艺会分成 1~3 段,比如第一段慢速引料、第二段快速充模、第三段慢速收尾。每段的切换按螺杆位置触发,而位置来自位移传感器的模拟量。

这里有一个精度问题:普通扫描周期下,PLC 一条模拟量读指令加上状态判断,前后可能延迟好几毫秒。对注射速度 100mm/s 以上的高速段来说,这几毫秒就对应零点几毫米到几毫米的位置误差,对要求不高的产品勉强能接受,但对精密制品就明显不够。所以我把注射段切换这部分放进了定时中断程序:每 5ms 中断一次,读取位移传感器的模拟量,和当前段的切换位置比较,到了就切换输出到下一段的速度/压力值。这样整个位置触发的分辨率能控制在 1mm 以内,实际制品重量波动小了很多。

注射完成后进入保压,保压和注射的区别在于螺杆几乎不再前进,只是维持一个设定压力,用来补偿塑料冷却收缩。保压输出的是一个固定的压力比例阀模拟量值,时间到就切断,进入计量阶段。这段逻辑不复杂,但参数一定要做成可调:保压压力、保压时间、注射各段的位置和速度,全部放到 V 存储区,在人机界面上能随时修改,而不是写在程序里每次改参数都得重新下载。这是设备改造的基本原则,现场不可能天天带着电脑跑。

5. PID 温控在 S7-200 上的实战调参

5.1 料筒温度控制的难点在哪

注塑机的料筒一般分 3~5 个加热区,我这台是 4 区:加料段、塑化段、均化段、射嘴段。温度控制的品质直接影响塑料的塑化质量。温度偏低,塑料没完全熔融,注射阻力大;温度偏高,塑料会分解碳化,制品出现黑纹,严重的还会堵住射嘴。

每个区都有独立的电热圈、热电偶和接触器,控制上各自独立。难点在于料筒是一个大热容对象,滞后很明显:加热器通电后温度不会立刻上升,断电后温度还会惯性继续上升一段。这就非常考验 PID 的整定,参数不合适的话,要么一直过冲,冲到设定值以上十几度,塑料直接烤糊;要么稳定过程极其缓慢,换料时等温度稳定就等半天。

S7-200 自带的 PID 指令能实现标准的 PID 算法,我用 PID 向导生成了控制功能块。向导要求指定回路表地址、过程变量范围、手动/自动切换、输出上下限。向导会把模拟量输入自动归一化成 0.0~1.0 的过程变量,这个看起来很省事,但你必须知道背后的计算关系:AIW 的原始值(0~32000)要转换成百分比;输出值 0~32000 最终通过模拟量模块变成 0~10V 去驱动固态继电器或接触器。

5.2 一类现场调参记录

温度 PID 的整定,我没有用自动整定功能,而是手动一步步试出来的,原因是料筒的滞后太大,自动整定在这种大惯性对象上容易进入极限振荡。我的调参记录大致是这样:

轮次增益(Kc)积分时间 Ti微分时间 Td实际现象
第一轮3.00.05 分钟0超调 8°C,来回振荡不停
第二轮1.50.20 分钟0不振荡了,但升温到设定值太慢
第三轮2.00.15 分钟0.02 分钟稳定在设定值 ±1°C 以内,满意

这里必须提醒你一个 S7-200 特有的坑:PID 向导里积分时间和微分时间的单位是“分钟”,不是秒。第一次我把 Ti 按经验填成了 0.1 秒,结果回路一直在振荡,我还以为是增益太大,折腾了一个多小时才意识到是单位填错了。如果你用的是其他品牌 PLC,填参数前一定要看手册确认单位。

调参顺序我建议从纯比例开始:先把 Ti 和 Td 设为零,从小到大调增益,让温度在设定值附近轻微振荡,记下这个增益和振荡周期,再用经验和公式估算 Ti、Td。对料筒这种对象,实际跑下来就是一组比较保守的参数比激进的参数更省心,宁可升温慢 2 分钟,也不要一天到晚超调报警。

5.3 热电偶断线保护与加热接触器切换

温度控制还有一个要命的情况:热电偶断线。一旦热电偶断路,PLC 读到的是一个满量程或异常的数值,PID 会认为温度太低,拼命输出加热,最后把整个料筒烧到几百上千度,塑料碳化,设备报废。

S7-200 的热电偶模块支持断线检测,向导里有相应的参数。我把断线检测设置为“异常值报警”,然后在梯形图里加了一段逻辑:任何一区热电偶断线或读数异常,立即切断该区加热输出,并提示报警,而不是傻傻继续加热。同时,加热器接触器前串了一个变压器过热保护继电器,双重保险。

另外,我还加了“等待温度到达”的逻辑:自动循环开始时,如果各段温度没有达到各自设定的下限温度,禁止进入注射状态。这个功能看着简单,却是注塑制品质量稳定的第一道闸门。温度没到就强行生产,轻则制品有冷料痕,重则螺杆过载损坏。

6. 调试中让我抓狂的几个硬核“事故”

6.1 模拟量飘了一路的干扰排查

前面提到过,第一次送电调试,油泵一启动,位移传感器信号就飘。我一开始怀疑是 EM231 模块坏了,换了模块还是飘;又怀疑是传感器坏了,把传感器拆下来放在桌上测,不飘,装上机器就飘。

后来我静下心做了一组对照试验:油泵不启动,信号稳定;油泵启动但把所有电磁阀线插头拔掉,信号稳定;油泵启动且电磁阀正常动作,信号乱跳。这一下就把怀疑对象指向了电磁阀线圈通断产生的干扰。用示波器去量传感器信号线,就能看到启动瞬间耦合进来一个很陡的毛刺。

最终解决是用三招:信号线换屏蔽双绞线并单独穿管、屏蔽层在柜端单点接地、传感器电源从 PLC 柜内单独拉一路 24V 直流出来,不走现场原有的电磁阀电源。处理后问题彻底消失。这里我要强调:排查干扰问题最好的工具就是“排除法”,每次只动一个变量,才能最快锁定真凶。

6.2 温度乱跳的真凶居然是个小开关

还有一次是调试到半夜,料筒温度显示完全混乱:四个区的读数有的偏低、有的跳满量程,甚至几十秒内有正负十几度的波动。我当时第一反应是热电偶接线松了,全部重新压了一遍,没好。检查模块地址分配,也没问题。

最后我拿万用表量热电偶毫伏值,和模块读数一对比,发现大部分读数跟实际毫伏值完全对不上。这时候才想起 EM231 热电偶模块侧面那排 DIP 开关:我采购时订的是 K 型热电偶,但模块 DIP 开关的默认出厂设置是 J 型。J 型和 K 型的毫伏特性曲线完全不同,模块按 J 型去换算 K 型热电偶的电压,读出来的温度当然是错的。

把 DIP 开关拨到 K 型对应的位置后,温度读数马上恢复正常。这件事让我长了个记性:热电偶模块安装后、通电前,第一件事就是用说明书核对 DIP 开关配置,而不是等读数出错再去猜。

6.3 掉电丢参数问题的最终处理

改造上线后一周,车间反馈:白天在人机界面上改好的参数,第二天早上开机全变了,部分参数回到出厂值,部分参数直接归零。而且越复杂的参数,丢得越彻底。

查了 S7-200 的保持机制才知道,V 存储区默认不全部掉电保持,必须在系统块的“保持范围”里手动配置。另外,CPU 内部的超级电容只能维持短暂掉电的数据保持,断电时间长了,即使配置了保持范围,数据一样会丢。手册里写得很明确,但很少有人真正注意到。

我当时的处理方案是双管齐下:第一,在系统块里给参数所在的 V 区配置了一个较大的保持范围,应对短时间断电;第二,把人机界面侧的“配方”功能用起来,把整套工艺参数存在人机界面的配方数据区,开机后由 PLC 发出读取命令,把配方参数重新写入 V 区对应的地址。这样一来,哪怕 PLC 内部数据因为长时间停机丢光了,人机界面还能一键导回来,再也不用每天早晨拿手电筒照着壁龛里的纸条重新输参数了。

这里也要吐槽一句:现场电工后来接手这种设备,最大的误区就是以为参数存进 PLC 就永远不会丢。做 S7-200 项目,掉电保持范围是第一步,外置配方或电池卡是第二步,这一步省不得。


项目结束之后,我做了一份《S7-200 注塑机控制维护手册》,里面包含完整的 I/O 地址表、状态转移图、PID 初始参数建议值、常见报警代码对照表,一起塑封在控制柜门内侧。这习惯帮我应付了后面好几次半夜抢修,半夜接到电话也能远程指导值班电工快速定位问题。目前这套系统已经稳定运行了很长时间,除了偶尔传感器老化需要更换,PLC 本身一次都没坏过。如果你也正准备拿 S7-200 做类似的设备改造,我唯一的建议是:先把工艺动作吃透,再去碰软件。程序写得再花哨,也救不了一个漏掉的限位信号。

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

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

立即咨询