当前位置: 首页 > 面试指南 > 编程序实战 备案号:蜀ICP备2026017620号-5

PLC面试编程序|电气自动化工程师必备实战指南

从零基础到高薪offer——覆盖西门子S7-1200/1500、三菱FX/Q系列、欧姆龙CP1E等主流机型的编程技巧、面试题解析与真实项目复盘

一、PLC面试编程序核心要点

企业最关注的5大能力维度解析

1.1 编程规范性:工业控制的“第一印象”

在工业控制系统中,PLC编程序的规范性直接关系到设备运行的稳定性与后期维护效率。招聘方通常通过以下维度考察规范性:

  • 变量命名是否符合行业惯例(如:Motor_Start而非M1)
  • 注释是否完整(功能说明、关键逻辑说明、作者/日期)
  • 程序结构是否模块化(子程序调用、功能块封装)
  • 线圈/触点是否避免重复使用(防止“双线圈”错误)
⚠️ 真实案例:某产线因工程师在不同程序块中重复使用Q0.0输出线圈,导致设备启动时电机正反转冲突,造成机械臂卡死。规范命名(如CW_Rotate、CCW_Rotate)可避免此类风险。

1.2 逻辑严密性:避免“纸上谈兵”陷阱

面试中常见错误:仅实现基本功能,却忽略边界条件与异常处理。例如:

场景 基础实现 生产级实现
急停按钮逻辑 Q0.0 := NOT I0.0 Q0.0 := NOT (I0.0 OR I0.1 OR I0.2)
(三重冗余急停输入)
电机启停 简单自锁电路 加延时互锁、过载保护、故障复位确认

建议在面试中主动说明:

  • 故障安全机制(如:断电保持状态、故障自诊断)
  • 人机交互逻辑(HMI报警联动、操作权限分级)
  • 扩展性设计(预留I/O点、模块化结构)

1.3 效率优化:从“能用”到“好用”

以S7-1200为例,优化技巧包括:

  • 避免嵌套过深的IF-ELSE结构,改用SELECT或查表法
  • 用TON替代循环计时(节省扫描周期)
  • 将频繁调用的逻辑封装为FC或SFC
  • 使用Bitwise Operations(位运算)替代字符串处理
// 优化前:10个条件判断
IF I0.0 THEN Q0.0 := TRUE;
ELSIF I0.1 THEN Q0.1 := TRUE;
...
END_IF;
// 优化后:用字节位映射
// 假设I0.0~I0.7映射到输入字节IB0
QW0 := SHL(BIN_TO_BCD(IB0), 8);
💡 面试加分项:提及“扫描周期测试”——用TCK_CYC指令监控程序执行时间,确保低于200ms(安全关键系统需低于50ms)。

西门子PLC面试高频考点(S7-1200/1500)

  • 硬件组态:如何配置ET200SP分布式I/O?需设置模块地址、诊断中断OB
  • 数据块使用:创建背景数据块(Instance DB)时,需注意“共享性”与“实例性”区别
  • 通信协议:
    • S7协议:用于PLC间通信(S7-1200作为服务器时,需配置PUT/GET指令)
    • Modbus TCP:主站需设置MB_CLIENT参数(如MODE=1)
    • Profinet:IO设备地址分配错误会导致“绿色LED常亮”故障
📌 真实考题:某产线HMI显示“通信超时”,排查发现Profinet交换机端口未启用LLDP协议,导致PLC无法识别设备拓扑。解决方案:在TIA Portal中启用“拓扑发现”功能。

三菱PLC面试高频考点(FX5U/Q系列)

  • 指令差异:FX5U支持MR(移动右)指令,用于循环移位
  • 软元件分配:特殊继电器M8000(运行监控)、M8002(初始脉冲)
  • 定位控制:使用DRVI指令时需设置:
    • 脉冲输出端口(Y0/Y1)
    • 脉冲数(如10000)
    • 速度(如1000Hz)
    • 加减速时间(如100ms)
// 三菱定位控制示例(FX5U)
DRVI D100 Y0 Y1;  // D100=脉冲数,Y0=脉冲输出,Y1=方向输出
MOV K1000 D101;   // 设置速度1000Hz
MOV K100 D102;    // 加减速时间100ms
SET M0;           // 启动定位

欧姆龙PLC面试高频考点(CP1E/N20系列)

  • 指令格式:采用“助记符+操作数”结构(如LD 0.00、AND 100.00)
  • 定时器/计数器:TMR 00 100(定时器00,设定值100×0.1s)
  • 高速计数:使用HSC指令时需配置:
    • 计数模式(增计数/增减计数)
    • 预设值(如9999)
    • 复位源(如CIO 200.00)
⚠️ 易错点:欧姆龙PLC默认使用BCD编码,直接写入K100会被识别为“100”而非“64”(十进制)。需用D100(二进制)或加'前缀(如'100)。

二、PLC编程序实战:从入门到精通

真实项目逻辑拆解与调试技巧

2.1 传送带控制系统(含故障自恢复)

需求:三段传送带联动控制,要求:

  • 启动顺序:第三段 → 第二段 → 第一段(避免堆料)
  • 停止顺序:第一段 → 第二段 → 第三段(清空物料)
  • 故障时:立即停机,HMI显示故障位置,故障排除后需手动复位
// 西门子S7-1200 逻辑(TIA Portal V17)
// 启动逻辑
IF I0.0 AND NOT M0.0 THEN  // 启动按钮 + 未启动状态
    M0.0 := TRUE;           // 标记启动中
    T3 := TON(PT:=T#2S);    // 延时2秒启动第三段
    IF T3.Q THEN
        Q0.2 := TRUE;       // 启动第三段电机
        T4 := TON(PT:=T#2S);
        IF T4.Q THEN
            Q0.1 := TRUE;   // 启动第二段
            T5 := TON(PT:=T#2S);
            IF T5.Q THEN
                Q0.0 := TRUE; // 启动第一段
            END_IF;
        END_IF;
    END_IF;
END_IF;
// 故障检测
IF Q0.0 AND I0.3 THEN  // 第一段电机过载
    Q0.0 := FALSE;      // 立即停机
    Q0.1 := FALSE;
    Q0.2 := FALSE;
    M0.1 := TRUE;       // 标记故障
    MW20 := 101;        // 故障代码:第一段过载
END_IF;
// 故障复位
IF I0.1 AND M0.1 THEN  // 复位按钮 + 故障状态
    M0.1 := FALSE;
    MW20 := 0;          // 清除故障代码
    M0.0 := FALSE;      // 允许重新启动
🔍 调试技巧:用MONITOR表实时观察MW20值,结合SCADA系统生成故障日志(时间+代码+操作员)。

2.2 温控系统(PID闭环控制)

案例:烘箱温度控制(设定200℃,偏差±2℃)

  • 传感器:PT100热电阻(0~500℃对应0~10V)
  • 执行器:固态继电器(SSR)控制加热丝
  • 控制器:S7-1200内置PID指令
参数 设定值 说明
PV(过程值) AIW0 温度传感器输入
SP_INT(设定值) KW100 目标温度200℃(需转换为0~27648对应0~10V)
MAN(手动模式) I0.2 HMI切换自动/手动
OUT(输出) AQW0 0~10V控制SSR
⚙️ PID整定经验:先设P=10, I=0.5s, D=0,观察响应;若超调大则减小P值,若响应慢则增大I值。推荐使用PID_TUNE功能块自动整定。

2.3 多轴同步控制(机械臂协同)

需求:两台FX5U通过CC-Link IE实现同步定位

  • 主站:FX5U-60MT(控制X轴)
  • 从站:FX5U-40MT(控制Y轴)
  • 同步方式:时间戳同步(每10ms广播一次坐标)
// 主站程序(FX5U)
// 发送坐标数据
MOV D100 D200;   // X轴当前位置
MOV D101 D201;   // Y轴目标位置(同步用)
MOV D200 M8000;  // 通过CC-Link发送
// 从站接收后执行定位
// 从站程序
// 接收主站数据
RECV K1 D300;    // D300=X轴位置, D301=Y轴目标
// 执行两轴联动
DRVI D301 Y0 Y1; // Y轴定位
// X轴跟随
IF ABS(D300 - D302) > 5 THEN  // 位置偏差>5
    DRVI D300 Y2 Y3;           // X轴定位
END_IF
📌 同步精度保障:使用SYNC指令确保两轴启动时刻一致(误差<1ms),避免机械臂抖动。

三、主流PLC品牌对比与选型指南

2025年工程师最常搜索的6大品牌横向分析

3.1 市场占有率与适用场景

品牌 代表机型 适用场景 面试高频程度
西门子 S7-1200 / S7-1500 中大型产线、过程控制 ★★★★★
三菱 FX5U / Q系列 中小型设备、包装机械 ★★★★☆
欧姆龙 CP1E / CJ2M 食品医药、洁净环境 ★★★☆☆
台达 DVP系列 低成本设备、教育实训 ★★★☆☆
汇川 IS620P 国产替代、电梯控制 ★★★☆☆
罗克韦尔 ControlLogix 北美市场、复杂系统 ★★☆☆☆

3.2 编程软件生态对比

  • 西门子TIA Portal:
    • 优点:一体化开发、诊断功能强大
    • 缺点:占用资源高(建议16GB内存)
  • 三菱GX Works3:
    • 优点:支持多语言(梯形图/FBD/ST/SFC)
    • 缺点:旧机型兼容性差(FX3U需用GX Works2)
  • 欧姆龙Sysmac Studio:
    • 优点:HMI/PLC/驱动统一配置
    • 缺点:学习曲线陡峭
💡 软技能建议:掌握至少2种品牌PLC,面试时可强调“快速迁移能力”——例如从FX5U转S7-1200,只需1周熟悉指令差异。

3.3 I/O扩展能力对比

品牌/机型 最大I/O点数 扩展模块类型 通信接口
S7-1212C 14DI/10DO 信号板(SB)+模块(BM) 2×PROFINET, 1×RS485
FX5U-60MT 60I/O 单元扩展(最多16台) 1×以太网, 2×RS485
CP1E-N20DR-A 20I/O 扩展单元(最多10台) 1×RS232C, 1×RS485

四、PLC故障诊断:从现象到根因

工程师最常遇到的10大故障及解决方案

4.1 常见故障代码速查表

故障现象 可能原因 诊断方法 解决方案
PLC红灯闪烁 硬件故障/EEPROM错误 查看LED状态码 断电重启;更换电源模块
程序执行中断 扫描周期超时 用TCK_CYC监控 优化程序结构;禁用冗余逻辑
通信中断 IP地址冲突 Ping测试+交换机日志 重新分配IP;启用DHCP
输出无响应 负载短路 用万用表测输出端电压 更换保险丝;检查接线
数据丢失 电池电量不足 读取M8005(电池低) 更换锂电池;下载备份程序

4.2 故障诊断流程图

1. 收集信息

询问操作员:故障发生时间、操作动作、报警代码

2. 初步判断

区分电气故障(如短路)与程序故障(如逻辑死锁)

3. 工具检测

用万用表测I/O模块电压;用编程软件强制输出测试

4. 验证假设

替换法:更换模块;隔离法:断开可疑负载

5. 根因修复

更新固件;修改程序;更换损坏元件

4.3 真实案例复盘:包装机停机事故

现象:灌装线每2小时自动停机,重启后正常运行30分钟再次停机

排查过程:

  1. 检查报警记录:无故障代码 → 排除硬件问题
  2. 监控扫描周期:从15ms升至280ms → 定位程序瓶颈
  3. 逐步注释:发现FOR循环中调用MOV指令1000次/周期
  4. 优化方案:将循环次数降至100次,增加MOV条件判断
📌 经验总结:生产环境必须部署“扫描周期监控”功能,建议设置阈值(如200ms),超限时触发HMI预警。

五、PLC编程序项目案例库

真实产线项目全流程解析(需求→设计→调试→交付)

5.1 自动化立体仓库(AS/RS)

客户:某电商物流中心
需求:4层货架,支持200托盘/小时出入库

  • 系统架构:
    • PLC:S7-1511-1PN(主控)
    • 变频器:G120C驱动堆垛机
    • HMI:KTP700 Basic
  • 核心逻辑:
    • 路径规划:基于二维数组存储托盘位置
    • 防撞设计:激光扫描仪+软件限位双重保护
    • 同步控制:堆垛机与输送线速度匹配(误差<0.5%)
  • 交付成果:
    • 系统可用性:99.8%
    • 平均故障修复时间(MTTR):<25分钟

5.2 CNC机床改造项目

改造前:老式继电器控制,故障率高
改造后:FX5U + 伺服驱动器 + 触摸屏

  • 关键改进:
    • 自动对刀:用近接开关检测刀具长度
    • 程序保护:HMI权限分级(操作员/工程师/管理员)
    • 数据追溯:记录每件产品的加工参数
  • 经济效益:
    • 设备停机时间减少70%
    • 良品率从89%提升至97%

5.3 智能水处理系统

特色功能:

  • 水质实时监测:pH/浊度/余氯三参数联动
  • 自动加药:根据水质数据计算药剂投加量
  • 远程运维:4G模块上传数据至云平台
🌊 案例亮点:采用模糊PID算法处理非线性对象(pH调节),比传统PID响应速度提升30%。

六、PLC编程序学习资源推荐

从入门到精通的必备工具与资料

6.1 免费学习平台

平台 推荐课程 特色
B站 《西门子S7-1200从入门到精通》 免费视频教程,含真实项目演示
PLCdev Free PLC Programming Tutorials 英文资料,指令详解+案例代码
三菱电机官网 FX5U编程手册 官方文档,含通信协议详解

6.2 必备工具软件

  • TIA Portal V18:西门子全集成自动化开发平台
  • GX Works3:三菱新一代编程软件(支持FX5U)
  • WinCC Runtime Advanced:HMI组态工具
  • Wireshark:网络协议分析(排查通信故障)
📥 下载建议:优先从官网获取正版软件,避免使用破解版本导致功能缺失(如西门子V18需激活才能使用S7-1500功能)。

6.3 推荐书籍

书名 作者 特点
《S7-1200 PLC编程与应用》 刘国林 案例驱动,适合零基础读者
《三菱FX系列PLC从入门到精通》 柴瑞娟 含通信与运动控制专项
《工业自动化系统集成原理》 王建 深入讲解系统级设计思想

七、PLC面试编程序高频问答(FAQ)

网友最关心的15个问题深度解答

Q1:零基础如何快速入门PLC编程?

A:按此路径学习:

  1. 学习电气基础(继电器电路、安全规范)
  2. 选择1种PLC品牌(推荐西门子S7-1200)
  3. 安装免费版编程软件(TIA Portal V17 Community)
  4. 完成5个基础实验(启停电路、定时器、计数器)
  5. 仿真调试:用S7-PLCSIM模拟输入输出
📌 30天计划:第1周学基础语法,第2周练通信,第3周做简单项目,第4周模拟面试。

Q2:PLC和单片机有什么区别?

A:核心差异如下:

维度 PLC 单片机
开发难度 低(图形化编程) 高(需C语言/汇编)
抗干扰性 强(工业级设计) 弱(需额外设计电路)
扩展能力 模块化,即插即用 需自行设计PCB
应用场景 产线控制 嵌入式设备

Q3:面试时如何展示PLC项目经验?

A:用STAR法则描述:

  • S(Situation):某食品厂包装线故障率高
  • T(Task):负责PLC程序优化与HMI改造
  • A(Action):重构逻辑结构;增加故障自诊断
  • R(Result):MTTR从45分钟降至8分钟
💡 真实建议:携带U盘备份项目代码(含注释),面试时展示调试过程。

Q4:PLC编程语言有哪些?怎么选?

A:IEC 61131-3标准定义5种语言:

语言 适用场景 面试建议
梯形图(LAD) 传统逻辑控制 最常用,必须掌握
功能块图(FBD) 复杂算法(如PID) 中高级岗位需熟悉
结构化文本(ST) 数据处理/数学运算 展示高级技能
指令表(IL) 内存受限场景 较少使用
顺序功能图(SFC) 状态机控制 机械臂/流水线必备

Q5:PLC工程师未来会被AI取代吗?

A:不会,但需转型:

  • 基础编程(如启停电路)可自动化
  • 复杂系统集成(跨品牌通信)仍需人工
  • AI辅助方向:预测性维护、故障诊断推荐
🚀 未来技能树:PLC + 工业物联网(IIoT)+ 数据分析(Python基础)
斌知网
蜀ICP备2026017620号-5