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地址有效电平说明
主轴正转指令操作面板按钮SB1X10.0高电平按下时主轴正转
主轴反转指令操作面板按钮SB2X10.1高电平按下时主轴反转
主轴停止指令操作面板按钮SB3X10.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扫描周期与主轴—进给协同信号流 输入采样 读取X10.0~X11.0 写入输入映像区 主轴指令/零速信号 程序执行 LAD互锁 + ST计算 正转/反转互锁判断 转速设定→模拟量输出 输出刷新 Y10.0/Y10.1/Y10.2 驱动接触器/冷却泵 更新物理输出端子 循环扫描(周期T) 主轴—进给协同控制关键信号链(示例) 主轴启动指令 X10.0=1 主轴零速检测 X11.0=1 进给使能条件 M100=1 进给轴移动 Y20.0=1 最大响应延迟 ≈ 1个扫描周期(示例:2~5ms) 安全信号(急停/超程)不经过普通扫描,直接接入安全链 输入阶段 程序执行 输出刷新 协同条件

从图中可以看出,主轴启动指令、零速检测和进给使能条件分布在扫描周期的不同阶段。若零速信号在输入采样之后才接通,则本周期内程序执行阶段读到的仍是旧值,进给使能不会立即置位,必须等到下一周期。因此,在编写协同控制逻辑时,应尽量将关键条件放在同一扫描周期内处理,或利用中断程序提高响应速度。调试时可通过PLC的强制功能或状态表,观察X11.0与M100之间的时序关系,确认联锁逻辑是否满足机床动作要求。

实践提示:在数控机床PLC调试中,建议先完成I/O分配表核对,再逐点强制输入/输出,确认物理接线与逻辑地址一致;随后用状态监控观察扫描周期内关键信号的时序,最后再联调主轴与进给协同动作。对于安全相关信号,必须独立验证其硬件链路和软件联锁的双重有效性。