4. PLC硬件与编程基础
在数控机床中,PLC并不是一个独立运行的“黑盒子”,而是嵌入在CNC系统内部、与主轴驱动、进给伺服、刀库、冷却、润滑、排屑等子系统紧密耦合的逻辑控制核心。理解PLC的硬件组成、I/O分配方式、编程语言差异以及扫描周期对实时性的影响,是后续实现主轴与进给协同控制的前提。
一、PLC在数控机床中的硬件组成
数控机床PLC通常采用“CNC内置型”结构,其硬件可划分为四个层次:CPU与存储器模块、电源与总线背板、输入/输出接口模块以及通信接口。CPU负责执行用户程序、管理I/O刷新和通信任务;存储器分为系统程序区、用户程序区和数据区,其中数据区包含输入映像寄存器(I)、输出映像寄存器(Q)、内部辅助继电器(M)、定时器(T)、计数器(C)和数据寄存器(D)。
输入接口模块将机床侧的按钮、行程开关、接近开关、压力继电器等信号转换为CPU可识别的电平信号,典型输入电压为DC24V,采用光电隔离。输出接口模块则驱动接触器线圈、电磁阀、指示灯、继电器等执行元件,常见形式有继电器输出、晶体管输出和晶闸管输出。数控机床中,主轴正反转、冷却泵启停、刀库旋转等动作多由PLC输出点控制中间继电器,再由中间继电器驱动强电回路。
通信接口方面,PLC通过现场总线或专用高速链路与CNC的NCK(数控核心)和HMI(人机界面)交换数据。例如,FANUC系统使用I/O Link连接βi系列I/O模块,西门子840D则通过PROFIBUS或PROFINET连接ET200分布式I/O。这些通信链路决定了PLC能否及时获取主轴状态、进给使能、急停链等关键信号。
二、I/O分配:从物理点到逻辑地址
I/O分配是PLC硬件设计与编程之间的桥梁。它要回答两个问题:每个物理端子对应哪个逻辑地址,以及该信号是常开还是常闭、高电平有效还是低电平有效。在数控机床中,I/O分配通常以表格形式固化在电气原理图中,编程时直接引用。
以一个典型的主轴控制单元为例,假设采用某型CNC内置PLC,I/O分配如下(示例参数,仅用于教学说明):
| 信号名称 | 物理元件 | PLC地址 | 有效电平 | 说明 |
|---|---|---|---|---|
| 主轴正转指令 | 操作面板按钮SB1 | X10.0 | 高电平 | 按下时主轴正转 |
| 主轴反转指令 | 操作面板按钮SB2 | X10.1 | 高电平 | 按下时主轴反转 |
| 主轴停止指令 | 操作面板按钮SB3 | X10.2 | 高电平 | 按下时主轴停止 |
| 主轴零速检测 | 主轴编码器零速触点 | X11.0 | 高电平 | 转速低于阈值时接通 |
| 正转接触器 | KM1线圈 | Y10.0 | 高电平 | 驱动主轴正转 |
| 反转接触器 | KM2线圈 | Y10.1 | 高电平 | 驱动主轴反转 |
| 冷却泵 | KM3线圈 | Y10.2 | 高电平 | 冷却液开/关 |
分配时需注意:急停、超程、主轴过载等安全信号必须接入具有安全等级要求的输入点,且通常采用常闭触点串联,确保断线时进入安全状态。输出点驱动感性负载时,应并联续流二极管或RC吸收回路,防止反电动势损坏模块。
三、梯形图与结构化文本编程
梯形图(LAD)源于继电器逻辑,以触点、线圈、功能块为基本元素,直观表达“条件—动作”关系,适合处理联锁、互锁和顺序控制。例如,主轴正反转必须互锁,防止接触器同时吸合造成短路。用梯形图表达时,正转线圈前串入反转常闭触点,反转线圈前串入正转常闭触点,形成硬件互锁之外的软件互锁。
结构化文本(ST)类似Pascal或C语言,适合处理数学运算、循环、条件分支和复杂数据处理。在数控机床中,ST常用于主轴转速计算、刀具寿命统计、报警代码生成等场景。例如,根据主轴档位和模拟量输出计算目标转速:
IF SpindleGear = 1 THEN
SpindleSpeedSet := 500.0; // 低速档示例值
ELSIF SpindleGear = 2 THEN
SpindleSpeedSet := 1500.0; // 中速档示例值
ELSE
SpindleSpeedSet := 3000.0; // 高速档示例值
END_IF;
// 将转速设定值转换为模拟量输出(假设0~10V对应0~6000r/min)
AnalogOut := SpindleSpeedSet / 6000.0 * 27648.0;
实际编程中,LAD和ST往往混合使用:LAD负责安全联锁和I/O逻辑,ST负责参数计算和数据处理。两者共享同一套I/O映像和内部寄存器,调用顺序由程序结构决定。
四、扫描周期与实时性
PLC采用循环扫描机制,一个扫描周期包括输入采样、程序执行、输出刷新三个阶段。输入采样阶段读取所有输入点的状态并写入输入映像区;程序执行阶段按顺序逐条执行用户程序,读写映像区;输出刷新阶段将输出映像区的结果送到物理输出端子。
扫描周期T = 输入采样时间 + 程序执行时间 + 输出刷新时间 + 通信处理时间。对于中小型数控机床PLC,程序执行时间通常在1~10ms量级。这意味着:如果主轴零速信号在输入采样之后发生变化,PLC要等到下一个扫描周期才能响应,最大延迟为一个扫描周期。
实时性要求高的信号,如急停、超程、主轴过载,通常不经过普通PLC扫描,而是直接接入CNC的安全链或高速输入模块,由硬件或中断方式处理。对于主轴与进给协同控制,若要求“主轴达到设定转速后进给轴才能移动”,则需在PLC程序中用主轴零速或转速到达信号作为进给使能条件,并考虑扫描周期带来的响应延迟。在调试时,可通过PLC状态监控功能观察相关I/O点的通断时序,判断联锁逻辑是否满足实时性要求。
从图中可以看出,主轴启动指令、零速检测和进给使能条件分布在扫描周期的不同阶段。若零速信号在输入采样之后才接通,则本周期内程序执行阶段读到的仍是旧值,进给使能不会立即置位,必须等到下一周期。因此,在编写协同控制逻辑时,应尽量将关键条件放在同一扫描周期内处理,或利用中断程序提高响应速度。调试时可通过PLC的强制功能或状态表,观察X11.0与M100之间的时序关系,确认联锁逻辑是否满足机床动作要求。