3. PLC基础与选型
在LinuxCNC与PLC集成开发中,PLC(可编程逻辑控制器)承担着机床外围逻辑控制、安全联锁、I/O扩展和辅助轴控制等关键任务。理解PLC的工作原理、掌握主流品牌的技术特点、具备科学的选型能力,是构建稳定、可靠、可维护的数控系统的基础。本章将从PLC的扫描机制出发,深入剖析其内部运行逻辑,对比西门子、三菱、欧姆龙三大品牌的核心差异,并给出面向LinuxCNC集成场景的选型决策框架。
3.1 PLC核心工作原理:扫描周期与I/O映像
PLC的本质是一台专用于工业控制的实时计算机。与普通PC不同,PLC采用"循环扫描"的工作模式,这种模式保证了控制逻辑的确定性和实时性。理解扫描周期是进行PLC编程和系统集成的前提,尤其是在LinuxCNC这种需要高实时性的数控系统中,PLC的扫描时间直接影响联锁响应的快慢。
3.1.1 扫描周期的四个阶段
PLC上电后,CPU不断重复执行以下四个阶段,形成一个完整的扫描周期:
- 读输入阶段(Input Scan):CPU读取所有输入端子(数字量输入、模拟量输入、高速计数器等)的状态,并将其存入输入映像寄存器(I区)。此时输入信号被"冻结",后续程序执行阶段即使外部信号变化,也不会影响本次扫描的输入值。
- 执行程序阶段(Program Execution):CPU从第一条指令开始,逐条执行用户程序(梯形图、ST、FBD等),根据输入映像寄存器和当前输出映像寄存器的值进行逻辑运算,运算结果写入输出映像寄存器(Q区),而非直接驱动物理输出。
- 写输出阶段(Output Update):CPU将输出映像寄存器的值一次性传送到输出锁存器,驱动物理输出端子。这一阶段保证了所有输出在同一时刻更新,避免因程序执行顺序导致的输出不一致。
- 系统服务阶段(Housekeeping):执行通信任务(如Modbus TCP请求处理)、自诊断(检查CPU温度、电池电压、I/O模块状态)、以及系统时间更新等。
3.1.2 扫描周期的影响因素与估算
扫描周期主要由以下因素决定:
- 程序指令数量与复杂度:基本逻辑指令(LD、AND、OUT)执行时间极短(纳秒级),而数学运算、浮点运算、字符串处理则耗时数十倍。
- I/O点数:每增加一个I/O点,读输入和写输出阶段增加约0.1-0.5μs。
- 通信任务:以太网通信、Modbus轮询等任务会占用扫描周期的一部分时间。
- 特殊功能指令:PID运算、定位控制、高速计数器处理等会显著增加扫描时间。
实际工程中,可以通过PLC编程软件(如TIA博途、GX Works3、Sysmac Studio)的诊断功能直接读取当前扫描周期。对于LinuxCNC集成,建议PLC扫描周期控制在5ms以内,以保证急停、限位等安全信号的响应速度。
| PLC型号 | 典型扫描周期(1K指令) | 最大I/O点数 | 通信接口 | 运动控制能力 |
|---|---|---|---|---|
| 西门子 S7-1200 | 约0.5ms | 扩展后可达数百点 | Profinet, Modbus TCP, RS485 | 4轴脉冲/模拟量 |
| 西门子 S7-1500 | 约0.1ms | 数千点 | Profinet IRT, Modbus TCP | 支持运动控制(通过TM模块) |
| 三菱 FX5U | 约0.034ms | 256点(本地) | 以太网, RS485, CC-Link IE | 4轴200kHz脉冲 |
| 三菱 L系列 | 约0.02ms | 数千点 | 以太网, CC-Link, Modbus | 支持SSCNET III运动总线 |
| 欧姆龙 NJ501 | 约0.05ms | 数千点 | EtherCAT, EtherNet/IP | 内置EtherCAT主站,最多64轴 |
3.2 主流PLC品牌技术特征与选型对比
在LinuxCNC集成项目中,PLC品牌的选择往往取决于现有设备兼容性、工程师熟悉度、通信协议支持以及成本预算。以下从工程应用角度对三大品牌进行深度对比。
3.2.1 西门子(Siemens)—— 工程生态最完整
西门子PLC在大型机床、汽车生产线和高端装备中占据主导地位。其S7-1200/1500系列采用TIA博途(Totally Integrated Automation Portal)作为统一工程平台,支持梯形图、ST、SCL、FBD等多种编程语言。对于LinuxCNC集成,西门子的核心优势在于:
- Profinet IRT(等时实时):支持精确的同步通信,可与LinuxCNC通过Profinet从站方式连接,实现亚毫秒级的数据交换。
- 安全集成(Safety Integrated):S7-1500F系列支持安全PLC编程,急停、安全门等回路可通过软件编程实现,减少硬接线。
- 强大的诊断能力:系统自动生成报警文本,便于远程维护。
但西门子的缺点是授权费用较高,TIA博途软件对硬件要求高,且与LinuxCNC的Modbus TCP通信需要额外配置。
3.2.2 三菱(Mitsubishi)—— 性价比与定位指令优势
三菱PLC在中小型机床、包装机械和电子制造设备中应用广泛。FX5U系列是当前主流,其特点包括:
- 定位指令丰富:内置DRVI、DRVA等定位指令,配合高速脉冲输出,可直接控制步进/伺服驱动器,适合简单的轴控场景。
- GX Works3编程环境:支持结构化编程,工程管理清晰。
- Modbus TCP/RTU原生支持:与LinuxCNC的Modbus通信配置简单,无需额外协议转换模块。
三菱的局限在于大型系统的扩展能力不如西门子,且运动控制总线(SSCNET III)为封闭协议,与LinuxCNC集成时通常只能通过脉冲或Modbus方式。
3.2.3 欧姆龙(Omron)—— 运动控制一体化
欧姆龙NJ/NX系列将PLC和运动控制器合二为一,内置EtherCAT主站,可直接连接伺服驱动器。对于需要多轴同步运动的LinuxCNC系统,欧姆龙提供了独特的价值:
- EtherCAT原生支持:LinuxCNC本身支持EtherCAT主站(通过IgH或SOEM),因此欧姆龙PLC可以作为EtherCAT从站,实现与LinuxCNC的高速数据交换。
- Sysmac Studio:统一配置PLC、运动轴、视觉和I/O,工程效率高。
- 同步精度高:分布式时钟(DC)同步精度可达纳秒级,适合电子凸轮、飞剪等应用。
欧姆龙的缺点是入门门槛较高,且其EtherCAT从站功能需要特定固件支持,与LinuxCNC的兼容性需要提前验证。
3.3 PLC选型要点:从需求到决策的完整流程
PLC选型不是简单的参数对比,而是基于系统需求、环境约束、成本预算和长期维护的综合决策。以下给出一个适用于LinuxCNC集成场景的选型流程。
3.3.1 第一步:明确I/O点数与类型
统计所有需要接入PLC的输入输出信号,包括:
- 数字量输入(DI):急停按钮、限位开关、门锁开关、模式选择开关、传感器信号等。
- 数字量输出(DO):接触器、继电器、指示灯、电磁阀、风扇等。
- 模拟量输入(AI):温度传感器、压力传感器、液位计等(4-20mA或0-10V)。
- 模拟量输出(AO):比例阀、变频器给定信号等。
- 高速计数/编码器输入:主轴转速监测、手轮脉冲等。
建议在初步统计基础上预留15%-20%的余量,以应对后期功能扩展。例如,当前需要32个DI和24个DO,建议选择至少支持40个DI和30个DO的PLC或扩展模块组合。
3.3.2 第二步:确定通信协议与集成方式
LinuxCNC与PLC的通信方式决定了数据交换的实时性和便捷性。常见方案如下:
| 通信方式 | 实时性 | LinuxCNC侧支持 | 适用场景 |
|---|---|---|---|
| Modbus TCP | 中等(5-20ms) | HAL组件:modbus | 通用逻辑控制、状态监控 |
| Modbus RTU (RS485) | 较低(20-50ms) | HAL组件:modbus | 简单系统、距离较近 |
| EtherCAT(PLC作为从站) | 高(<1ms) | IgH主站 / SOEM | 运动控制同步、高速联锁 |
| Profinet(PLC作为从站) | 高(<1ms) | 需要专用主站卡 | 西门子PLC深度集成 |
| 数字I/O直连(GPIO) | 极高(μs级) | LinuxCNC并行端口/扩展卡 | 急停、限位等安全信号 |
3.3.3 第三步:评估环境与可靠性要求
PLC的工作环境直接影响其寿命和可靠性。选型时需考虑:
- 工作温度:标准PLC为0-55℃,宽温型可达-20℃至70℃。如果机床安装在无空调车间,应选择宽温型号。
- 防护等级:控制柜内安装通常IP20即可,若PLC需安装在粉尘或油雾环境中,应选择IP65以上的面板式PLC。
- EMC抗干扰:机床环境中变频器、伺服驱动器是强干扰源。选择具有高EMC抗扰度(符合IEC 61131-2标准)的PLC,并在安装时注意接地和屏蔽。
- 供电质量:如果车间电网波动大,应选择宽电压输入(AC 85-264V)的PLC电源模块,或增加UPS。
3.3.4 第四步:成本与维护策略
成本不仅包括PLC硬件采购费用,还包括:
- 编程软件授权费:西门子TIA博途需要购买授权(约数千元),三菱GX Works3提供免费基础版,欧姆龙Sysmac Studio有试用版。
- 备件库存:建议选择市场保有量大的型号,便于后期采购备件。
- 工程师培训成本:如果团队不熟悉某品牌,需要额外投入学习时间。
3.4 实战案例:某数控铣床的PLC选型与集成
以下通过一个实际项目案例,展示PLC选型与LinuxCNC集成的完整决策过程。
3.4.1 项目背景与需求
某机械加工企业需要改造一台旧数控铣床,原控制系统已停产。改造方案采用LinuxCNC作为核心控制器,需要新增PLC负责外围逻辑。具体需求如下:
- I/O需求:DI 24点(急停、限位、门锁、模式选择、刀具到位等),DO 16点(接触器、电磁阀、指示灯),AI 4点(主轴温度、液压压力、气压、冷却液液位),AO 2点(主轴变频器给定、比例阀控制)。
- 通信需求:与LinuxCNC通过Modbus TCP交换数据,数据量约50个寄存器。
- 运动控制:主轴由变频器驱动(模拟量给定),进给轴由LinuxCNC通过脉冲方向控制伺服驱动器,PLC不参与轴控。
- 环境条件:车间温度0-40℃,有少量粉尘,控制柜内安装。
- 预算:PLC部分总预算不超过8000元。
3.4.2 选型分析与决策
根据需求,我们对比了三个方案:
| 方案 | 型号配置 | 估算成本 | 优势 | 劣势 |
|---|---|---|---|---|
| 方案A:西门子 | S7-1200 CPU 1214C + SM1231 AI模块 + SM1232 AO模块 | 约9500元 | 品牌认可度高,Profinet扩展性好 | 超预算,TIA博途授权费另计 |
| 方案B:三菱 | FX5U-32MT/ES + FX5-4AD + FX5-4DA | 约6800元 | 性价比高,Modbus TCP原生支持,编程简单 | 扩展能力有限,但满足当前需求 |
| 方案C:欧姆龙 | NJ501-1300 + NX-ID/OD模块 | 约12000元 | EtherCAT集成能力强 | 严重超预算,且本案例不需要EtherCAT |
决策结果:选择方案B(三菱FX5U-32MT/ES)。理由如下:
- 成本在预算范围内,且GX Works3基础版免费,降低软件成本。
- FX5U内置以太网口,支持Modbus TCP服务器模式,LinuxCNC侧通过HAL的modbus组件即可实现通信,无需额外网关。
- 32点I/O(16DI/16DO)加上扩展模块后满足需求,且留有少量余量。
- 三菱PLC在机床行业应用广泛,工程师熟悉度高,后期维护方便。
3.4.3 集成实施要点
在LinuxCNC侧,通过HAL配置文件实现Modbus通信:
# /etc/linuxcnc/hal/plc_modbus.hal
loadrt modbus
# 创建modbus主站实例,连接PLC的IP地址
loadrt modbus name=plc_modbus
# 配置从站地址、寄存器映射
setp plc_modbus.ip_address "192.168.1.20"
setp plc_modbus.tcp_port 502
setp plc_modbus.slave_id 1
# 映射PLC保持寄存器(40001-40050)到HAL引脚
addf plc_modbus.read servo-thread
addf plc_modbus.write servo-thread
# 连接信号:急停状态、模式选择等
net estop-plc plc_modbus.holding-register-0
net mode-auto plc_modbus.holding-register-1
net coolant-on plc_modbus.holding-register-10
PLC侧使用GX Works3编写梯形图程序,将急停、限位等输入状态写入保持寄存器,同时读取LinuxCNC下发的控制命令(如冷却开/关、主轴正转/反转)。
3.4.4 结果与复盘
系统改造完成后,PLC扫描周期实测约1.2ms,Modbus TCP通信周期约10ms,完全满足外围逻辑控制需求。急停信号通过硬接线直接连接伺服驱动器使能端,响应时间小于1ms,通过PLC通信的软急停作为第二层保护。
3.5 常见误区与总结
在PLC选型与集成过程中,工程师常犯以下错误:
- 误区一:PLC点数越多越好。实际上,点数过多会导致成本上升、柜内空间浪费,且闲置I/O点反而可能引入干扰。
- 误区二:忽视通信实时性。Modbus TCP虽然方便,但实时性有限。如果PLC需要参与安全联锁,必须评估通信延迟。
- 误区三:忽略编程软件兼容性。某些PLC的编程软件仅支持Windows,且对虚拟机支持不佳。如果开发环境是Linux,需提前确认是否有替代方案(如OpenPLC或第三方工具)。
- 误区四:不重视接地与布线。PLC的I/O线缆与动力线缆未分开敷设,导致电磁干扰引起误动作。