S7-1200 第一个程序:七步走到 500 ms 闪烁,下载按钮为什么老是灰的
第一次开博途,多数人卡在同一个地方:不是逻辑写错,是下载按钮灰色——因为没人告诉你 PG/PC 接口要选对。卡住的每一步都能问:把 AI 接到博途上,它读得到你的工程。
S7-1200 大概是西门子这边最常见的入门机型,而博途是唯一能给它编程的工具。第一次打开,窗口和向导多得能把"让一个输出闪一下"变成一周的活。
其实不难,难的是顺序:顺序错了,你会花一个小时盯着那个灰色的下载按钮想为什么。
这篇是 PLCProgrammingBlog 2026-07-09 那篇 step-by-step 的完整编译(示例用 CPU 1214C DC/DC/DC、TIA Portal V18,步骤同样适用于 1211C / 1212C / 1215C 以及 V16 / V17),最后两节是我们的整理。
一、开始前要准备什么
- S7-1200 CPU(1211C / 1212C / 1214C / 1215C 都能做这个练习)
- 24 VDC 电源,至少 2 A
- 标准网线(直通或交叉都行,CPU 自动识别)
- 装了 TIA Portal V16 或更新、且有授权的 PC(STEP 7 Basic 或 Professional)
- 可选:一个 24 V 指示灯,能看见输出真的在动
没有硬件也能全程跑完:博途自带的 PLCSIM 仿真器就行。但注意——PLCSIM 随 Professional 授权走,只有 Basic 的话必须上真机。
二、第 1 步:新建工程并添加设备
打开博途 → Portal 视图 → Create new project,起个能找得到名字(示例叫 S7_1200_First_Program),选好路径,创建。然后点左下角 Open the project view 进入完整 IDE。
在左侧项目树右键 Add new device → Controller → 展开 SIMATIC S7-1200 → 按你的型号选。1214C DC/DC/DC 的路径是 CPU 1214C DC/DC/DC > 6ES7 214-1AG40-0XB0 > V4.5。
固件版本要跟实物标签上一模一样。 工程写 V4.5、CPU 实际 V4.2,下载就会报兼容性错误——这是第一天最常见的坑。不确定的话,先在线连上去读一次固件。
三、第 2 步:在设备视图里组态
加完 CPU 会自动进 Device view(硬件组态)。点 CPU 图形选中它,看下方属性面板:
Properties → PROFINET interface → Ethernet addresses,设一个跟你 PC 同网段的静态 IP。实验室常见配置:CPU 192.168.0.1、PC 192.168.0.10、掩码 255.255.255.0。默认路由器留空,除非你要跨子网走交换机。
单纯一个 CPU 的话,硬件组态到这就够了(信号板、SM 模块、CP 卡才需要继续在右侧目录里加)。Ctrl+S 保存。
先设 IP 再写逻辑——这个顺序能省掉后面一半的麻烦。
四、第 3 步:建变量表(PLC tags)
西门子把 I/O 的符号名放在 PLC tags 里。你可以直接用 %I0.0、%Q0.0 这种绝对地址写逻辑,但写到第 20 段你会后悔。两分钟的变量表值得建。
项目树 → PLC 文件夹 → PLC tags → Default tag table,加三行:
| Name | 数据类型 | 地址 | 注释 |
|---|---|---|---|
Start_PB |
Bool | %I0.0 |
启动按钮(点动) |
Stop_PB |
Bool | %I0.1 |
停止按钮(常闭) |
Lamp_Out |
Bool | %Q0.0 |
指示灯输出 |
这组地址对得上 1214C 本体的 I/O:14 路数字输入、10 路数字输出,DC/DC/DC 表示 I/O 是 24 VDC 晶体管型而不是继电器型——这点影响接线,不影响程序。
五、第 4 步:在 OB1 里写第一段梯形图
S7-1200 的程序都从 OB1(主循环扫描块) 跑起。项目树 → Program blocks → Main [OB1],打开就是梯形图编辑器。
示例不是普通的起保停,而是加了定时器自动闪烁——比一个干巴巴的线圈有意思,也顺便让你踩一遍 TON 在博途里的特性。四段:
| 段 | 逻辑 | 作用 |
|---|---|---|
| 0 | Start_PB 或(已锁存的)Pulse_Latch → 非 Stop_PB → 置位 Pulse_Latch(OTL) |
启动并自锁 |
| 1 | Stop_PB → 复位 Pulse_Latch(OTU) |
停止 |
| 2 | Pulse_Latch 且 非 Pulse_Timer.Q → Lamp_Out(OTE) |
亮 |
| 3 | Pulse_Latch → TON Pulse_Timer,PT = T#500ms |
500 ms 到点后断开第 2 段,一个扫描周期后定时器复位,循环 |
博途特有的地方:每个定时器/计数器指令都要一个背景数据块(instance DB)。 你把 TON 拖进编辑器时,它会弹窗让你给 DB 起名(比如 Pulse_Timer_DB),接受默认即可——DB 是自动建的,你不用手写。这一点和 Studio 5000 不同(那边定时器数据放在 tag 里)。
六、第 5 步:编译
点工具栏的编译按钮或 Ctrl+B。下方 Info 面板会输出结果,目标是零错误、最好零警告。
第一次编译常见的三类错:
- Tag not found:段里敲的名字跟变量表对不上(注意大小写);
- Data type mismatch:把 DINT 拖到了 Bool 触点上;
- Instance DB conflict:两个不同的功能块用了同一个 DB 号——让博途自动分配。
七、第 6 步:设好 PG/PC 接口,再下载
这是大多数教程跳过、也是最多人卡住的一步。
下载之前必须先告诉博途"用你 PC 上哪块网卡"。点 Online → Download to device,弹窗里 PG/PC interface 选那块物理连着 CPU 的网卡;有多块时,选和 CPU 同网段的那块。然后 Start search——博途会在该接口上广播,正常情况下能搜到你的 S7-1200。选中、点 Load。
下载前会跑一次检查,如果工程里的硬件组态跟在线不一致(固件版本不同、缺信号模块),它会警告。一致就点 Load:先下硬件组态,再下程序块。
第一次下载几乎一定会问"是否停止 CPU",选是;下完问"是否启动 CPU",选是。CPU 进 RUN,程序立刻开始跑。
八、第 7 步:在线监视
点 Go online(橙色地球),项目树出现橙色标记表示已同步。打开 OB1,点工具栏的监视开(眼镜图标):为真的触点变绿,所有变量显示当前值。
按下接在 %I0.0 上的按钮:Start_PB 变绿 → Pulse_Latch 锁存 → Lamp_Out 每 500 ms 翻转一次;定时器块里的 Pulse_Timer.ET 会一路往上数。按停止,全部复位。
用 PLCSIM 的话,从工具栏打开 SIM 表,把 Start_PB、Stop_PB 加进去,用勾选框切换——不需要任何硬件。
九、五个 S7-1200 的经典坑
- 停止按钮:硬件常闭、软件读常开,才是失效安全。 接 NC 用 XIC:按下时电路断开、输入变 FALSE、XIC 落下——这是正确的急停逻辑。接 NO 再用 XIO 就不失效安全。
- 1214C DC/DC/DC 的输出是源型(PNP)。 你接漏型负载会一点反应都没有——先查负载类型,别急着怀疑程序。
- 保存 ≠ 编译。 博途会频繁保存但不会自动编译;保存图标亮着不代表 CPU 里的程序更新了。改动之后必须编译 + 下载。
- 默认断电保持程序。 基本运行不需要存储卡;但要把程序带到另一台 CPU 而不带 PC,就需要 SIMATIC 存储卡。
- 1211C 只有 6 路 DI、4 路 DQ。 变量表里写到
%I0.6以上,硬件组态直接报错。
十、我们的整理
10.1 中文现场多出来的三个坑
- 固件版本写在标签上,不在手册里。 二手设备、翻新机尤其要看实物;工程里对不上就先在线读。
- 网段冲突比想象中常见。 现场交换机里已经有一堆
192.168.0.x时,别硬抢.1;先扫一遍再用。 - PLCSIM 授权没买,练习就只能上真机。 团队培训想省钱,先确认装的是 Professional。
10.2 用 AI 学:把"卡住的那一步"直接问出来
初学者的瓶颈很少是"看不懂梯形图",而是卡在某一步、又不知道该搜什么:下载按钮灰的、编译报一个没见过的错、不知道下一根线往哪接。这时候通用问答帮不上——它不知道你工程里到底有什么。
我们把 TiaLink 用在这个位置:它是汇智网的博途 MCP 网关,把 AI 客户端(Claude / ChatGPT / DeepSeek 等支持 MCP 的)接到你本机的 TIA Portal 上,能读块、变量和硬件组态,能写块、能触发编译,能驱动 PLCSIM Advanced 跑仿真。
用在这篇的流程里,具体是四件事:
| 你卡在哪 | 让它做什么 |
|---|---|
| 编译报错看不懂 | 读工程上下文 + 编译信息,解释这条错是哪一层的问题(变量表 / 数据类型 / 实例 DB) |
| 不知道下一步点哪 | 按你当前工程状态给下一步(而不是给通用教程的第 5 步) |
| 想要练习题 | 让它在你的工程里生成变体:把 500 ms 改成 2 s、加急停、加正反转互锁,然后重新编译验证 |
| 想看另一种写法 | 把同一段梯形图生成 SCL 版本,对照着读 |
三个必须知道的边界(写在前面,省得踩):
- 它不是网页工具:需要本机装好博途、工程已打开——所以别拿它当"没装软件时的替代品";
- AI 写的逻辑必须人工复核:写操作在工具侧有保护和告警,但"这段逻辑对不对"仍然要你在仿真或实机里验;
- 别在生产工程上练手:复制一份工程当沙盒,练完删掉。
10.3 第一个程序跑通之后,顺手做三件事
- 把这段逻辑包成 FB(功能块),参数化 Start/Stop/输出——这样第二台设备就是复制,不是重写;
- 建一个全局 DB 放共用数据,避免到处写绝对地址;
- 让 AI 把这段逻辑生成一版 SCL,和梯形图并排看——同一段逻辑的两种写法看一遍,比读十页手册快。
手上还没有工程文件、只想先看懂别人给的图?/lad-viewer 可以在浏览器里直接打开梯形图,不用装博途。
十一、想用 AI 陪练,从这里开始
如果你已经有博途(V16 以上都行),最省事的入门路径是三步:
- 先画通:在浏览器里用 plcsim.bimant.com 把启保停和定时闪烁画一遍,确认逻辑通了;
- 再进工程:用 TiaLink 让 AI 帮你把这段逻辑放进博途工程、编译、用 PLCSIM Advanced 跑起来;
- 然后问:把编译报错、看不懂的段、想加的互锁,直接丢给它——贴着你的工程回答,比搜教程快。
它的边界也写清:TiaLink 是"读工程、改工程、验工程"的网关,不能替代博途本身,也不能替代实机验证;F 安全、运动控制、通讯联调这些仍然要 PLCSIM Advanced / 真机配套。整套工具的分工见 /tia-forge。
十二、三步动作
- 今天:按上面的顺序走一遍,只求点亮那个灯(用 PLCSIM 也行);卡住时把报错原文丢给 AI。
- 这周:把四段逻辑改成 FB,参数换成一个新变量,验证复用。
- 下次接手旧工程:先读固件、读 IP、读变量表,再读逻辑——顺序反了就会一直在猜。
本文由 Software 2.0 编译整理,转载请注明出处。
Sources
- 原文:Abdallah Agmar《S7-1200 First Program in TIA Portal: Step by Step》,PLCProgrammingBlog,2026-07-09 https://www.plcprogrammingblog.com/blog/siemens-s7-1200-first-program-tia-portal
- 硬件与固件信息以西门子当前文档与设备标签为准
同主题阅读
- Claude Code 接博途:从空工程到跑通仿真的全链路
- 博途 AI 助手:让 AI 直接操作 TIA Portal(TiaLink)
- 梯形图转 SCL 迁移实战指南:能自动转什么、哪些必须重构、怎么验证
- PLC 编程软件怎么选:8 个平台里只有 2 个能免费用
- 12 个最受欢迎的 PLC AI 工具:能写代码的多,能进工程的少
支柱:AI × 工业 / PLC。