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
(自锁)
工作原理#
- 按下启动按钮 I0.0 → Q0.0 得电 → 电机运转
- Q0.0 的常开触点闭合 → 形成自锁 → 松开按钮后电机继续转
- 按下停止按钮 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 提供支持。
评论加载中...