Beremiz PLC 射出动作编程指南
一、射出动作流程总览
射出动作是注塑机将熔融塑料注入模具型腔的关键环节,其流程包含多个阶段,各阶段相互关联且需精准控制。整体流程可概括为:在满足一系列前提条件后,开启射出进程,历经多段射出动作,随后进入保压阶段,最终完成射出动作并复位,为下一周期做准备。具体阶段如下:
前提条件检查阶段:需确认安全门已关闭、合模动作完成、料筒温度达到设定值等条件,只有当这些条件全部满足时,才能启动射出动作。这一步骤旨在确保设备运行环境安全且工艺条件适宜,防止在异常情况下启动射出,避免设备损坏或产品质量问题。
射出阶段:此阶段通常分为多段(如 5 段),每段射出在压力、速度及位置控制上存在差异。例如,初始阶段可能需要较高速度以快速填充模具型腔大部分空间,随着型腔逐渐填满,后续阶段则侧重于精准控制压力与位置,确保塑料均匀分布且避免过度填充。在 Beremiz 编程中,不同阶段的切换可通过电子尺反馈的位置信息或行程开关触发信号来实现。
保压阶段:射出完成后进入保压阶段,一般也分为多段(如 3 段)。保压的目的是在塑料冷却收缩过程中,持续提供一定压力,补偿体积收缩,减少产品内部缩痕、气泡等缺陷,提升产品质量。保压阶段各段的切换依据设定的保压时间进行,通过定时器控制。
完成与复位阶段:当保压阶段结束,射出动作完成。此时系统需复位相关输出信号与变量,关闭射出及保压阀门,将设备状态恢复至初始空闲状态,等待下一次射出指令。同时,可触发后续流程,如储料动作等。
(一)流程图绘制(Mermaid 格式)
graph TD; A[开始] --> B{安全门是否关闭}; B -->|是| C{合模是否完成}; B -->|否| E[报警并等待]; C -->|是| D{料筒温度是否达标}; C -->|否| E; D -->|是| F[启动射出动作,进入射一段]; D -->|否| E; F --> G{射一阶段是否完成}; G -->|是| H[进入射二阶段]; G -->|否| E; H --> I{射二阶段是否完成}; I -->|是| J[进入射三阶段]; I -->|否| E; J --> K{射三阶段是否完成}; K -->|是| L[进入射四阶段]; K -->|否| E; L --> M{射四阶段是否完成}; M -->|是| N[进入射五阶段]; M -->|否| E; N --> O{射五阶段是否完成}; O -->|是| P[进入保压一阶段]; O -->|否| E; P --> Q{保压一时间到?}; Q -->|是| R[进入保压二阶段]; Q -->|否| E; R --> S{保压二时间到?}; S -->|是| T[进入保压三阶段]; S -->|否| E; T --> U{保压三时间到?}; U -->|是| V[射出完成,复位并触发储料]; U -->|否| E; V --> A;
二、硬件连接与 I/O 信号定义
(一)硬件连接
- 输入设备连接:
安全门开关:连接至 Beremiz PLC 的数字量输入端口,用于检测安全门状态。例如,若安全门关闭,对应输入端口信号为高电平(或低电平,依据硬件接线与 PLC 配置)。
合模完成传感器:同样接入数字量输入端口,当合模动作完成,传感器输出信号触发 PLC 对应输入端口。
料筒温度传感器:通过模拟量输入模块连接至 PLC。温度传感器输出的模拟信号(如 4 - 20mA 电流信号或 0 - 10V 电压信号)经模拟量输入模块转换为数字值,供 PLC 读取并判断料筒温度。
行程开关(若采用行程开关切换射出阶段):分别连接至不同数字量输入端口,每个行程开关对应一个射出阶段的切换点。当螺杆运动至相应位置触发行程开关,PLC 获取到对应的输入信号,进行射出阶段切换。
电子尺(若采用电子尺反馈位置):连接至模拟量输入模块,电子尺实时测量螺杆位置,并输出与位置对应的模拟信号,经模拟量模块转换后,PLC 可精确获取螺杆当前位置信息。
- 输出设备连接:
射出电磁阀:连接至 PLC 数字量输出端口,控制射出动作的启动与停止。当 PLC 输出高电平(或低电平)信号,电磁阀得电,驱动液压系统推动螺杆进行射出动作。
保压电磁阀:同样连接至数字量输出端口,在保压阶段,PLC 控制保压电磁阀得电,维持模具内压力。
报警指示灯与蜂鸣器:连接至数字量输出端口,当系统出现异常(如安全门未关闭、射出超时等),PLC 输出信号使报警指示灯亮起、蜂鸣器发声,提示操作人员。
(二)I/O 信号定义(以 Beremiz 变量表示)
信号类型 | 信号名称 | Beremiz 变量 | 功能描述 |
---|---|---|---|
输入信号 | 安全门状态 | I_Safety_Door | % IX0.0,高电平表示安全门关闭 |
输入信号 | 合模完成信号 | I_Clamp_Complete | % IX0.1,高电平表示合模完成 |
输入信号 | 料筒温度信号 | AI_Temperature | % IW0,模拟量输入,对应料筒温度值 |
输入信号 | 射一行程开关信号 | I_Inj1_Switch | % IX1.0,高电平表示射一阶段完成(行程开关模式) |
输入信号 | 射二行程开关信号 | I_Inj2_Switch | % IX1.1,高电平表示射二阶段完成(行程开关模式) |
输入信号 | 射三行程开关信号 | I_Inj3_Switch | % IX1.2,高电平表示射三阶段完成(行程开关模式) |
输入信号 | 射四行程开关信号 | I_Inj4_Switch | % IX1.3,高电平表示射四阶段完成(行程开关模式) |
输入信号 | 射五行程开关信号 | I_Inj5_Switch | % IX1.4,高电平表示射五阶段完成(行程开关模式) |
输入信号 | 电子尺位置信号 | AI_Position | % IW2,模拟量输入,对应螺杆位置值(电子尺模式) |
输出信号 | 射出电磁阀控制 | Q_Injection_Solenoid | % QX0.0,高电平驱动射出电磁阀 |
输出信号 | 保压电磁阀控制 | Q_Hold_Solenoid | % QX0.1,高电平驱动保压电磁阀 |
输出信号 | 报警指示灯控制 | Q_Alarm_LED | % QX0.2,高电平点亮报警指示灯 |
输出信号 | 报警蜂鸣器控制 | Q_Alarm_Buzzer | % QX0.3,高电平启动报警蜂鸣器 |
三、变量定义与数据类型
(一)状态枚举类型定义
在 Beremiz 中,为清晰表示射出动作各阶段状态,定义枚举类型。
TYPE Injection\_State :
(
  Initial\_State, // 初始空闲状态
  Ready\_State, // 准备就绪状态(前提条件满足)
  Inject1\_State, // 射一阶段
  Inject2\_State, // 射二阶段
  Inject3\_State, // 射三阶段
  Inject4\_State, // 射四阶段
  Inject5\_State, // 射五阶段
  Hold1\_State, // 保压一阶段
  Hold2\_State, // 保压二阶段
  Hold3\_State, // 保压三阶段
  Complete\_State, // 射出完成状态
  Alarm\_State // 报警状态
);
END\_TYPE
(二)全局变量声明
- 状态变量:用于记录当前射出动作所处状态。
VAR\_GLOBAL
  Current\_Injection\_State: Injection\_State := Initial\_State;
END\_VAR
- 模拟量转换后变量:存储经模拟量模块转换后的温度与位置实际值。
VAR\_GLOBAL
  Actual\_Temperature: REAL := 0.0; // 料筒实际温度
  Actual\_Position: REAL := 0.0; // 螺杆实际位置(电子尺模式)
END\_VAR
- 射出参数变量:包含各阶段压力、速度、时间、位置等参数,可根据工艺需求通过人机界面(HMI)或程序内部调整。
VAR\_GLOBAL
  // 射出压力参数(bar)
  Inj1\_Pressure: REAL := 80.0;
  Inj2\_Pressure: REAL := 70.0;
  Inj3\_Pressure: REAL := 60.0;
  Inj4\_Pressure: REAL := 50.0;
  Inj5\_Pressure: REAL := 40.0;
  Hold1\_Pressure: REAL := 50.0;
  Hold2\_Pressure: REAL := 40.0;
  Hold3\_Pressure: REAL := 30.0;
  // 射出速度参数(%)
  Inj1\_Speed: REAL := 70.0;
  Inj2\_Speed: REAL := 60.0;
  Inj3\_Speed: REAL := 50.0;
  Inj4\_Speed: REAL := 40.0;
  Inj5\_Speed: REAL := 30.0;
  // 时间参数(s)
  Hold1\_Time: REAL := 1.0;
  Hold2\_Time: REAL := 1.0;
  Hold3\_Time: REAL := 1.0;
  // 位置参数(mm,电子尺模式)
  Inj1\_Position: REAL := 100.0;
  Inj2\_Position: REAL := 150.0;
  Inj3\_Position: REAL := 200.0;
  Inj4\_Position: REAL := 230.0;
  Inj5\_Position: REAL := 250.0;
END\_VAR
- 定时器变量:用于控制保压时间及射出总时长等。
VAR\_GLOBAL
  T\_Hold1: TON; // 保压一定时器
  T\_Hold2: TON; // 保压二定时器
  T\_Hold3: TON; // 保压三定时器
  T\_Total: TON; // 射出总时长定时器
END\_VAR
- 辅助标志变量:用于记录特定状态或事件,辅助逻辑判断。
VAR\_GLOBAL
  Injection\_Started: BOOL := FALSE; // 射出动作是否已启动标志
  Alarm\_Flag: BOOL := FALSE; // 报警标志
END\_VAR
四、编程实现步骤
(一)初始化部分
在程序开始执行时,需对相关变量与设备进行初始化。
- 变量初始化:将状态变量设置为初始状态,定时器复位,辅助标志变量清零等。
// 状态变量初始化
Current\_Injection\_State := Initial\_State;
// 定时器初始化
T\_Hold1(PT := Hold1\_Time, IN := FALSE);
T\_Hold2(PT := Hold2\_Time, IN := FALSE);
T\_Hold3(PT := Hold3\_Time, IN := FALSE);
T\_Total(PT := 10.0, IN := FALSE); // 假设射出总时长初始设为10s
// 辅助标志变量初始化
Injection\_Started := FALSE;
Alarm\_Flag := FALSE;
- 设备初始化:关闭射出与保压电磁阀,确保设备初始处于安全静止状态。
Q\_Injection\_Solenoid := FALSE;
Q\_Hold\_Solenoid := FALSE;
(二)前提条件判断逻辑
在每一扫描周期,程序需持续监测安全门状态、合模完成信号及料筒温度是否达标,只有当所有前提条件满足时,才将状态切换至准备就绪状态。
IF I\_Safety\_Door AND I\_Clamp\_Complete AND (Actual\_Temperature >= Set\_Temperature - 5.0) AND (Actual\_Temperature <= Set\_Temperature + 5.0) THEN
  // 假设允许温度波动范围为±5℃
  Current\_Injection\_State := Ready\_State;
ELSE
  Current\_Injection\_State := Initial\_State;
END\_IF
(三)射出阶段编程逻辑
- 行程开关模式射出阶段切换:若采用行程开关切换射出阶段,当 PLC 检测到对应行程开关信号为高电平时,切换至下一射出阶段,并根据不同阶段设置相应的射出压力与速度。
CASE Current\_Injection\_State OF
  Inject1\_State:
  Q\_Injection\_Solenoid := TRUE;
  AO\_Pressure := Inj1\_Pressure;
  AO\_Speed := Inj1\_Speed;
  IF I\_Inj1\_Switch THEN
  Current\_Injection\_State := Inject2\_State;
  END\_IF
  Inject2\_State:
  AO\_Pressure := Inj2\_Pressure;
  AO\_Speed := Inj2\_Speed;
  IF I\_Inj2\_Switch THEN
  Current\_Injection\_State := Inject3\_State;
  END\_IF
  // 射三至射五阶段逻辑类似,依次类推
END\_CASE
- 电子尺模式射出阶段切换:在电子尺模式下,PLC 根据电子尺反馈的实际位置值与预设阶段位置值比较,当实际位置达到或超过预设值时,切换射出阶段。
CASE Current\_Injection\_State OF
  Inject1\_State:
  Q\_Injection\_Solenoid := TRUE;
  AO\_Pressure := Inj1\_Pressure;
  AO\_Speed := Inj1\_Speed;
  IF Actual\_Position >= Inj1\_Position THEN
  Current\_Injection\_State := Inject2\_State;
  END\_IF
  Inject2\_State:
  AO\_Pressure := Inj2\_Pressure;
  AO\_Speed := Inj2\_Speed;
  IF Actual\_Position >= Inj2\_Position THEN
  Current\_Injection\_State := Inject3\_State;
  END\_IF
  // 射三至射五阶段逻辑类似,依次类推
END\_CASE
(四)保压阶段编程逻辑
当射出五阶段完成后,进入保压阶段。在保压阶段,PLC 根据不同保压阶段的时间设置,启动相应定时器。当定时器计时时间到达,切换至下一保压阶段,同时控制保压压力输出。
CASE Current\_Injection\_State OF
  Hold1\_State:
  Q\_Hold\_Solenoid := TRUE;
  AO\_Pressure := Hold1\_Pressure;
  T\_Hold1(IN := TRUE);
  IF T\_Hold1.Q THEN
  Current\_Injection\_State := Hold2\_State;
  T\_Hold1(IN := FALSE);
  END\_IF
  Hold2\_State:
  AO\_Pressure := Hold2\_Pressure;
  T\_Hold2(IN := TRUE);
  IF T\_Hold2.Q THEN
  Current\_Injection\_State := Hold3\_State;
  T\_Hold2(IN := FALSE);
  END\_IF
  Hold3\_State:
  AO\_Pressure := Hold3\_Pressure;
  T\_Hold3(IN := TRUE);
  IF T\_Hold3.Q THEN
  Current\_Injection\_State := Complete\_State;
  T\_Hold3(IN := FALSE);
  END\_IF
END\_CASE
(五)完成与复位逻辑
当保压三阶段完成,射出动作结束。此时,PLC 将设备状态复位至初始状态,关闭射出与保压电磁阀,清除相关标志,并可触发后续储料等动作。
IF Current\_Injection\_State = Complete\_State THEN
  Q\_Injection\_Solenoid := FALSE;
  Q\_Hold\_Solenoid := FALSE;
  Injection\_Started := FALSE;
  // 此处可添加触发储料动作逻辑,如置位储料启动标志
END\_IF
(六)故障检测与处理逻辑
- 超时故障检测:在射出阶段,若射出总时长定时器 T_Total 计时超过预设时间,判定为射出超时故障,切换至报警状态,触发报警输出。
IF Current\_Injection\_State >= Inject1\_State AND Current\_Injection\_State <= Inject5\_State THEN
  T\_Total(IN := TRUE);
  IF T\_Total.ET > Total\_Injection\_Time THEN
  Current\_Injection\_State := Alarm\_State;
  Alarm\_Flag := TRUE;
  Q\_Alarm\_LED := TRUE;
  Q\_Alarm\_Buzzer := TRUE;
  END\_IF
END\_IF
- 温度异常检测:若料筒实际温度超出合理范围(如超出设定温度 ±10℃),判定为温度异常故障,同样切换至报警状态并报警。
IF (Actual\_Temperature < Set\_Temperature -\</doubaocanvas>