返回首页
·9 分钟阅读·2,420

PLC 学习路线规划 — 从零基础到独立编程

目录

什么是 PLC#

PLC(Programmable Logic Controller,可编程逻辑控制器)是工业自动化的核心设备。简单来说,它就是一个专门为工厂设计的专用电脑

  • 输入端接收传感器信号(按钮、温度、压力)
  • 程序处理逻辑判断
  • 输出端控制执行器(电机、阀门、指示灯)

PLC 的特点:稳定、抗干扰、24/7 运行、编程相对简单

学习路线总览#

第一阶段:电气基础(2-4 周)
    ↓
第二阶段:PLC 基础编程(4-6 周)
    ↓
第三阶段:进阶功能(4-6 周)
    ↓
第四阶段:通信与 HMI(4 周)
    ↓
第五阶段:项目实战(4-8 周)

第一阶段:电气基础(2-4 周)#

在碰 PLC 之前,你需要先懂基本电气知识:

必学内容#

  • 电路基础:电压、电流、电阻、欧姆定律
  • 直流/交流电:DC 24V(PLC 常用)vs AC 220V(动力电)
  • 继电器原理:线圈通电 → 触点闭合 → 控制回路
  • 传感器类型
    • 开关量:按钮、限位开关、光电开关
    • 模拟量:温度传感器、压力变送器(4-20mA / 0-10V)
  • 电气图纸阅读:能看懂原理图和接线图

推荐资源#

  • B 站搜索「电工基础」「电气入门」
  • 买一本《电气控制与 PLC 应用技术》
  • 如果有条件,去实验室摸一摸真实的继电器控制柜

第二阶段:PLC 基础编程(4-6 周)#

选择一个品牌入门#

| 品牌 | 市场份额 | 软件 | 推荐度 | |------|----------|------|--------| | 西门子 | 欧洲/中国主流 | TIA Portal | ★★★ 最推荐 | | 三菱 | 日系主流 | GX Works | ★★ | | 欧姆龙 | 日系 | CX-Programmer | ★★ | | AB (罗克韦尔) | 美系主流 | Studio 5000 | ★ |

建议从西门子 S7-1200 开始:国内用得最多,资料最全,TIA Portal 功能强大

必学编程语言#

1. 梯形图(LAD)— 最重要

梯形图是 PLC 最常用的编程语言,长得像电路图:

|--[ ]--[/]--( )--|
  I0.0  I0.1   Q0.0

含义:当 I0.0 接通 且 I0.1 未接通时,Q0.0 输出

基本元素:

  • 常开触点 [ ]:对应输入信号
  • 常闭触点 [/ ]:对应输入信号取反
  • 线圈 ( ):对应输出
  • 定时器 TON:延时接通
  • 计数器 CTU:计数

2. 功能块图(FBD)— 推荐学

用逻辑框图表示,适合复杂逻辑:

AND 门:两个输入都为 1 时输出 1
OR 门:任一输入为 1 时输出 1
NOT 门:输入取反

第三阶段:进阶功能(4-6 周)#

定时器和计数器#

  • TON(接通延时):信号接通后等 N 秒再动作
  • TOF(断开延时):信号断开后等 N 秒再复位
  • CTU(加计数):计到设定值触发
  • CTD(减计数):从设定值往下减

数据处理#

  • 数据类型:BOOL、INT、DINT、REAL
  • 比较指令:大于、小于、等于
  • 数学运算:加减乘除、移位
  • 数据转换:INT ↔ REAL、BCD ↔ INT

模拟量处理#

  • 输入:4-20mA 信号 → PLC 内部数值(0-27648)
  • 标定:把原始数值转换为实际物理量(如 0-100°C)
  • PID 控制:温度、压力、流量的闭环控制

PID 是工业控制最重要的算法,一定要学

结构化编程#

  • FC(功能):无状态的子程序
  • FB(功能块):有状态的子程序(带背景数据块)
  • DB(数据块):存储全局变量

第四阶段:通信与 HMI(4 周)#

通信协议#

| 协议 | 用途 | 特点 | |------|------|------| | Modbus RTU | PLC ↔ 变频器/仪表 | 串口,最常用 | | Profinet | 西门子 PLC ↔ PLC | 以太网,高速 | | OPC UA | PLC ↔ 上位机/SCADA | 标准化,跨平台 | | MQTT | PLC ↔ 云平台 | IoT 场景 |

先学 Modbus RTU,这是工业现场最常用的协议

HMI(触摸屏)#

  • 西门子 KTP 系列:配合 TIA Portal 组态
  • 威纶通:性价比高,国内用得多
  • 学会设计:主画面、参数设置、报警显示、趋势曲线

第五阶段:项目实战(6 个完整例题)#

以下每个项目都包含 I/O 分配表梯形图逻辑调试要点,可以直接在 S7-PLCSIM 仿真或真实硬件上实现。


项目一:启保停电路(入门级)#

这是 PLC 最基础的程序,所有后续项目都建立在这个基础上。

I/O 分配#

| 地址 | 信号 | 说明 | |------|------|------| | I0.0 | SB1 | 启动按钮(常开) | | I0.1 | SB2 | 停止按钮(常闭) | | Q0.0 | KM1 | 电机接触器 |

梯形图逻辑#

Network 1:启保停电路
|--[ ]----+--[/]----( )--|
  I0.0    |  I0.1   Q0.0
  (启动)  |  (停止)  (电机)
          |
|--[ ]----+
  Q0.0
  (自锁)

工作原理#

  1. 按下启动按钮 I0.0 → Q0.0 得电 → 电机运转
  2. Q0.0 的常开触点闭合 → 形成自锁 → 松开按钮后电机继续转
  3. 按下停止按钮 I0.1 → 回路断开 → Q0.0 失电 → 电机停转

调试要点#

  • 停止按钮在外部接线时接常闭(NC),这样断线时自动停机(安全)
  • 程序里用常闭触点 [/ ] 是因为外部已经取反了
  • 先在仿真里跑通,再接真实硬件

项目二:星三角启动(工业经典)#

大功率电机(>3kW)不能直接启动,需要星三角降压启动。

I/O 分配#

| 地址 | 信号 | 说明 | |------|------|------| | I0.0 | SB1 | 启动按钮 | | I0.1 | SB2 | 停止按钮 | | Q0.0 | KM1 | 主接触器 | | Q0.1 | KM2 | 星形接触器 | | Q0.2 | KM3 | 三角形接触器 |

时序要求#

启动:
  按下启动 → KM1+KM2 吸合(星形运行)
  → 延时 6 秒 → KM2 断开、KM3 吸合(切换到三角形)
  → 正常运行

停止:
  按下停止 → 全部断开

梯形图逻辑#

Network 1:主接触器(启保停)
|--[ ]----+--[/]----( )--|
  I0.0    |  I0.1   Q0.0
          |
|--[ ]----+
  Q0.0

Network 2:星形接触器(启动后立即吸合,延时后断开)
|--[ ]--[/]----------( )--|
  Q0.0  T1.Q         Q0.1
 (主接触器) (定时器到) (星形)

Network 3:三角形接触器(延时后吸合)
|--[ ]--[ ]----------( )--|
  Q0.0  T1.Q         Q0.2
 (主接触器)(定时器到)(三角形)

Network 4:启动定时器
|--[ ]--------------(TON)--
  Q0.0               T1
 (主接触器)       PT:=6s

调试要点#

  • KM2(星形)和 KM3(三角形)绝对不能同时吸合,会短路!
  • 程序里做了互锁:Q0.1 和 Q0.2 互相用对方的常闭触点串联
  • 延时时间根据电机功率调整,一般 5-10 秒

项目三:交通灯控制(顺序控制入门)#

经典的顺序控制项目,练习定时器串联和状态切换。

I/O 分配#

| 地址 | 信号 | 说明 | |------|------|------| | I0.0 | SW1 | 启动开关 | | Q0.0 | HL1 | 南北红灯 | | Q0.1 | HL2 | 南北绿灯 | | Q0.2 | HL3 | 南北黄灯 | | Q0.3 | HL4 | 东西红灯 | | Q0.4 | HL5 | 东西绿灯 | | Q0.5 | HL6 | 东西黄灯 |

时序设计#

状态 1(25s):南北绿灯亮,东西红灯亮
状态 2(3s) :南北黄灯亮,东西红灯亮
状态 3(25s):东西绿灯亮,南北红灯亮
状态 4(3s) :东西黄灯亮,南北红灯亮
→ 循环回到状态 1

梯形图逻辑(简化版)#

Network 1:状态计数器(每完成一个状态,计数+1)
|--[ ]--[CTU]--
  I0.0   C1
         PV:=4

Network 2:状态 1 — 南北绿 + 东西红(C1=1)
|--[ ]--[ ]----( )--|    |--[ ]--[ ]----( )--|
  I0.0  C1=1   Q0.1|    |  I0.0  C1=1   Q0.3|
  (开关)(状态1)(绿灯)|    |  (开关)(状态1)(红灯)|

Network 3:状态 2 — 南北黄 + 东西红(C1=2)
|--[ ]--[ ]----( )--|    |--[ ]--[ ]----( )--|
  I0.0  C1=2   Q0.2|    |  I0.0  C1=2   Q0.3|

Network 4:状态 3 — 东西绿 + 南北红(C1=3)
|--[ ]--[ ]----( )--|    |--[ ]--[ ]----( )--|
  I0.0  C1=3   Q0.4|    |  I0.0  C1=3   Q0.0|

Network 5:状态 4 — 东西黄 + 南北红(C1=4)
|--[ ]--[ ]----( )--|    |--[ ]--[ ]----( )--|
  I0.0  C1=4   Q0.5|    |  I0.0  C1=4   Q0.0|

Network 6:定时器(每个状态持续指定时间后切换)
|--[TON]--
  T1
  PT:=25s (状态1和3)
  / PT:=3s (状态2和4)

调试要点#

  • 用**步进顺序控制(SFC)**思路:每个状态是一个"步"
  • 实际工程中会用状态字(MW)来管理当前步骤
  • 黄灯闪烁可以用 1Hz 的时钟脉冲实现

项目四:自动送料传送带(传感器应用)#

模拟工厂产线上的自动送料系统,练习传感器和顺序控制。

I/O 分配#

| 地址 | 信号 | 说明 | |------|------|------| | I0.0 | SB1 | 启动按钮 | | I0.1 | SB2 | 停止按钮 | | I0.2 | SQ1 | 入料口光电传感器 | | I0.3 | SQ2 | 出料口光电传感器 | | I0.4 | FR | 电机热继电器(常闭) | | Q0.0 | M1 | 传送带电机 | | Q0.1 | YV1 | 入料气缸电磁阀 | | Q0.2 | HL1 | 运行指示灯 | | Q0.3 | HL2 | 故障报警灯 |

工作流程#

启动 → 传送带运转 → 入料口检测到物料 → 气缸推出推料
→ 物料到达出料口 → 传送带暂停 2 秒(等待取料)
→ 继续运转 → 循环

异常:
- 热继电器动作 → 停机 + 报警灯
- 物料在传送带超过 30 秒未到达 → 报警

梯形图逻辑#

Network 1:传送带启保停(带热继电器保护)
|--[ ]----+--[/]--[/]----( )--|
  I0.0    |  I0.1  I0.4   Q0.0
  (启动)  |  (停止)(热保)  (电机)
          |
|--[ ]----+
  Q0.0
  (自锁)

Network 2:入料气缸(入料口检测到物料后推出,2秒后缩回)
|--[ ]--[TON]---------( )--|
  I0.2   T1            Q0.1
 (传感器) PT:=2s       (气缸)

Network 3:出料口暂停(检测到物料后暂停 2 秒)
|--[ ]--[ ]--[/]-------(R)--
  Q0.0  I0.3 T2         Q0.0
 (运行)(出料)(定时器)   (复位电机)

|--[ ]----------------[TON]--
  I0.3                 T2
 (出料传感器)          PT:=2s

Network 4:运行指示灯
|--[ ]----------------( )--
  Q0.0                 Q0.2
 (电机运行)           (运行灯)

Network 5:故障报警(热继电器动作时报警)
|--[/]----------------( )--
  I0.4                 Q0.3
 (热继电器)           (报警灯)

调试要点#

  • 热继电器(I0.4)外部接常闭,所以程序里用常闭触点——正常时为 1,过载时为 0
  • 气缸电磁阀一般需要加节流阀调节速度
  • 出料口暂停可以用定时器或直接用传感器信号控制

项目五:恒压供水系统(PID 控制)#

工业中最常见的 PID 应用场景,练习模拟量和闭环控制。

I/O 分配#

| 地址 | 信号 | 类型 | 说明 | |------|------|------|------| | I0.0 | SB1 | 开关量 | 启动按钮 | | I0.1 | SB2 | 开关量 | 停止按钮 | | IW64 | PT1 | 模拟量 | 压力传感器(4-20mA) | | Q0.0 | KM1 | 开关量 | 变频器运行信号 | | QW80 | AO1 | 模拟量 | 变频器频率给定(4-20mA) |

控制原理#

设定压力(如 0.4MPa)
    ↓
PID 控制器 ← 实际压力(压力传感器反馈)
    ↓
输出频率 → 变频器 → 水泵电机
    ↓
管网压力变化 → 压力传感器 → 反馈回 PID

模拟量标定#

压力传感器量程:0-1.0 MPa
输出信号:4-20mA
PLC 内部值:0-27648

标定公式:
实际压力 = (PLC原始值 - 0) × 1.0 / 27648

变频器频率给定:
PLC输出值 = 目标频率 × 27648 / 50Hz

梯形图逻辑(SCL 语言更适合 PID)#

// 模拟量标定
#Pressure_RAW := IW64;  // 读取原始值
#Pressure_REAL := INT_TO_REAL(#Pressure_RAW) / 27648.0 * 1.0;
// 结果:0.0 ~ 1.0 MPa

// PID 控制器(使用 TIA Portal 内置 PID_Compact)
"PID_Compact_1"(
    Setpoint := 0.4,           // 设定压力 0.4MPa
    Input := #Pressure_REAL,   // 实际压力
    Output => #Output_REAL     // 输出 0.0 ~ 1.0
);

// 输出标定 → 变频器
#Freq_output := REAL_TO_INT(#Output_REAL * 27648.0);
QW80 := #Freq_output;

PID 调参口诀#

先比例(P):从小到大,直到系统有响应但不振荡
再积分(I):消除稳态误差,从小到大
后微分(D):减少超调,一般设为积分时间的 1/4

经验值(供水系统):
P = 2.0 ~ 5.0
I = 5s ~ 15s
D = 1s ~ 3s

调试要点#

  • 先用手动模式验证模拟量读取是否正确
  • PID 参数需要现场整定,不同管道系统参数不同
  • 加上下限幅:输出不能超过变频器最大频率

项目六:多工位旋转钻床(综合项目)#

综合项目:顺序控制 + 定时器 + 计数器 + 传感器 + 报警。

I/O 分配#

| 地址 | 信号 | 说明 | |------|------|------| | I0.0 | SB1 | 启动按钮 | | I0.1 | SB2 | 停止按钮 | | I0.2 | SQ1 | 工位 1 到位传感器 | | I0.3 | SQ2 | 工位 2 到位传感器 | | I0.4 | SQ3 | 工位 3 到位传感器 | | I0.5 | SQ4 | 钻头下限位 | | I0.6 | SQ5 | 钻头上限位 | | I0.7 | FR | 热继电器 | | Q0.0 | M1 | 转盘电机 | | Q0.1 | YV1 | 钻头下降电磁阀 | | Q0.2 | YV2 | 钻头上升电磁阀 | | Q0.3 | M2 | 钻头旋转电机 | | Q0.4 | HL1 | 运行灯 | | Q0.5 | HL2 | 故障灯 | | Q0.6 | HL3 | 计数完成灯 |

工作流程#

启动 → 转盘旋转 → 工位 1 到位 → 停止旋转
→ 钻头下降 + 旋转 → 到达下限位 → 钻头上升 → 到达上限位
→ 转盘继续旋转 → 工位 2 到位 → 重复钻孔
→ 工位 3 到位 → 重复钻孔
→ 计数 +1 → 判断是否完成指定数量
→ 完成 → 停机 + 完成灯亮
→ 未完成 → 继续循环

梯形图逻辑(核心部分)#

Network 1:系统启保停
|--[ ]----+--[/]--[/]----( )--|
  I0.0    |  I0.1  I0.7   M0.0
  (启动)  |  (停止)(热保)  (系统运行)
          |
|--[ ]----+
  M0.0

Network 2:转盘旋转(系统运行 + 钻头在上限位 + 未到位时旋转)
|--[ ]--[/]--[ ]----( )--|
  M0.0 I0.2  I0.6   Q0.0
 (运行)(未到位)(上限位)(转盘)

Network 3:工位到位 → 停止转盘,启动钻孔
|--[ ]--[ ]--[/]----(S)--
  M0.0 I0.2  I0.5    M0.1
 (运行)(到位)(下限位)(钻孔中)

Network 4:钻孔中 → 钻头下降 + 旋转
|--[ ]----------------( )--|
  M0.1                  Q0.1
 (钻孔中)              (下降阀)

|--[ ]----------------( )--|
  M0.1                  Q0.3
 (钻孔中)              (钻头电机)

Network 5:到达下限位 → 钻头上升
|--[ ]--[ ]----(R)----(S)--
  M0.1 I0.5    M0.1    M0.2
 (钻孔)(下限位)(停止钻孔)(上升中)

Network 6:上升中 → 上升阀
|--[ ]----------------( )--|
  M0.2                  Q0.2
 (上升中)              (上升阀)

Network 7:到达上限位 → 完成一次钻孔,计数
|--[ ]--[ ]----(R)----(CU)--
  M0.2 I0.6    M0.2    C1
 (上升)(上限位)(停止上升)(计数)
                      PV:=100

Network 8:完成计数 → 停机 + 完成灯
|--[ ]----------------( )--|
  C1.Q                  Q0.6
 (计数到)              (完成灯)

Network 9:运行指示灯
|--[ ]--[ ]--[/]-------( )--|
  M0.0  Q0.0 C1.Q      Q0.4
 (系统)(转盘)(未完成)  (运行灯)

Network 10:故障报警
|--[/]-----------------( )--|
  I0.7                   Q0.5
 (热继电器)             (故障灯)

调试要点#

  • 先分步调试:单独测试转盘旋转、单独测试钻孔动作
  • 安全互锁:钻头下降时转盘不能旋转,转盘旋转时钻头不能下降
  • 到位传感器:使用接近开关或光电开关,安装位置要精确
  • 计数器复位:完成后需要手动或自动复位计数器才能重新开始

学以致用#

仿真练习#

  • S7-PLCSIM:西门子官方仿真,不用买硬件就能跑程序
  • S7-PLCSIM Advanced:支持更多高级功能

真实硬件#

  • 淘宝买 S7-1200 CPU 1214C + 电源 + 导轨,几百块就能搭实验台
  • 配合按钮盒、指示灯、小型电机,可以跑通大部分项目

进阶方向#

  • 接私活:猪八戒、一品威客,接小项目练手
  • 考证书:电工证、西门子认证工程师
  • 学 SCADA:WinCC、组态王,做上位机监控系统

学习资源推荐#

视频#

  • B 站:技成培训、工控帮、PLC 技术应用
  • YouTube:RealPars(英文,动画讲解很清晰)

书籍#

  • 《西门子 S7-1200 PLC 编程及应用》
  • 《PLC 控制程序精编 108 例》
  • 《工业自动化通信技术》

社区#

  • 工控网(gkong.com)
  • 西门子技术论坛
  • 知乎「PLC」话题

PLC 学习是一个「理论 + 实践」缺一不可的过程。光看书不动手永远学不会,建议尽早接触真实硬件或仿真软件。从最简单的启保停电路开始,一步步走向复杂的项目。工业自动化的需求一直在增长,掌握 PLC 技能是一条非常靠谱的职业路线。

评论

欢迎留下你的想法、问题或补充,评论通过 GitHub Discussions 提供支持。