> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# S7-1200 第一个程序：七步走到 500 ms 闪烁，下载按钮为什么老是灰的
- URL: https://www.hubwiz.com/blog/s7-1200-first-program-tia-portal-seven-steps/
- Published: 2026-11-14T15:26:38.000Z
- Updated: 2026-11-14T16:30:18.000Z
- Description: 第一次开博途，多数人卡在同一个地方：不是逻辑写错，是下载按钮灰色——因为没人告诉你 PG/PC 接口要选对。卡住的每一步都能问：把 AI 接到博途上，它读得到你的工程。
- Author: admin
- Tags: 西门子, S7-1200, 博途, TIA Portal, PLC 入门

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 的经典坑

1. **停止按钮：硬件常闭、软件读常开，才是失效安全。** 接 NC 用 XIC：按下时电路断开、输入变 FALSE、XIC 落下——这是正确的急停逻辑。接 NO 再用 XIO 就不失效安全。
2. **1214C DC/DC/DC 的输出是源型（PNP）。** 你接漏型负载会一点反应都没有——先查负载类型，别急着怀疑程序。
3. **保存 ≠ 编译。** 博途会频繁保存但不会自动编译；保存图标亮着不代表 CPU 里的程序更新了。改动之后必须编译 + 下载。
4. **默认断电保持程序。** 基本运行不需要存储卡；但要把程序带到另一台 CPU 而不带 PC，就需要 SIMATIC 存储卡。
5. **1211C 只有 6 路 DI、4 路 DQ。** 变量表里写到 `%I0.6` 以上，硬件组态直接报错。

## 十、我们的整理

### 10.1 中文现场多出来的三个坑

- **固件版本写在标签上，不在手册里。** 二手设备、翻新机尤其要看实物；工程里对不上就先在线读。
- **网段冲突比想象中常见。** 现场交换机里已经有一堆 `192.168.0.x` 时，别硬抢 `.1`；先扫一遍再用。
- **PLCSIM 授权没买，练习就只能上真机。** 团队培训想省钱，先确认装的是 Professional。

### 10.2 用 AI 学：把"卡住的那一步"直接问出来

初学者的瓶颈很少是"看不懂梯形图"，而是**卡在某一步、又不知道该搜什么**：下载按钮灰的、编译报一个没见过的错、不知道下一根线往哪接。这时候通用问答帮不上——它不知道你工程里到底有什么。

我们把 [**TiaLink**](https://tia.hubwiz.com/tia-link?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=s7-1200-first-program-tia-portal-seven-steps&utm%5Fcontent=learn-ai) 用在这个位置：它是汇智网的**博途 MCP 网关**，把 AI 客户端（Claude / ChatGPT / DeepSeek 等支持 MCP 的）接到你本机的 TIA Portal 上，能读块、变量和硬件组态，能写块、能触发编译，能驱动 PLCSIM Advanced 跑仿真。

用在这篇的流程里，具体是四件事：

| 你卡在哪     | 让它做什么                                            |
| -------- | ------------------------------------------------ |
| 编译报错看不懂  | 读工程上下文 + 编译信息，解释这条错是哪一层的问题（变量表 / 数据类型 / 实例 DB）   |
| 不知道下一步点哪 | 按你当前工程状态给下一步（而不是给通用教程的第 5 步）                     |
| 想要练习题    | 让它在你的工程里生成变体：把 500 ms 改成 2 s、加急停、加正反转互锁，然后重新编译验证 |
| 想看另一种写法  | 把同一段梯形图生成 SCL 版本，对照着读                            |

**三个必须知道的边界**（写在前面，省得踩）：

1. 它**不是网页工具**：需要本机装好博途、工程已打开——所以别拿它当"没装软件时的替代品"；
2. **AI 写的逻辑必须人工复核**：写操作在工具侧有保护和告警，但"这段逻辑对不对"仍然要你在仿真或实机里验；
3. **别在生产工程上练手**：复制一份工程当沙盒，练完删掉。

### 10.3 第一个程序跑通之后，顺手做三件事

1. 把这段逻辑包成 **FB（功能块）**，参数化 Start/Stop/输出——这样第二台设备就是复制，不是重写；
2. 建一个**全局 DB** 放共用数据，避免到处写绝对地址；
3. 让 AI 把这段逻辑生成一版 SCL，和梯形图并排看——**同一段逻辑的两种写法看一遍，比读十页手册快**。

手上还没有工程文件、只想先看懂别人给的图？[/lad-viewer](https://tia.hubwiz.com/lad-viewer?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=s7-1200-first-program-tia-portal-seven-steps&utm%5Fcontent=viewer) 可以在浏览器里直接打开梯形图，不用装博途。

## 十一、想用 AI 陪练，从这里开始

如果你已经有博途（V16 以上都行），最省事的入门路径是三步：

1. **先画通**：在浏览器里用 [plcsim.bimant.com](https://plcsim.bimant.com/?ref=hubwiz.com) 把启保停和定时闪烁画一遍，确认逻辑通了；
2. **再进工程**：用 [TiaLink](https://tia.hubwiz.com/tia-link?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=s7-1200-first-program-tia-portal-seven-steps&utm%5Fcontent=cta) 让 AI 帮你把这段逻辑放进博途工程、编译、用 PLCSIM Advanced 跑起来；
3. **然后问**：把编译报错、看不懂的段、想加的互锁，直接丢给它——**贴着你的工程回答，比搜教程快**。

**它的边界也写清**：TiaLink 是"读工程、改工程、验工程"的网关，不能替代博途本身，也不能替代实机验证；F 安全、运动控制、通讯联调这些仍然要 PLCSIM Advanced / 真机配套。整套工具的分工见 [/tia-forge](https://tia.hubwiz.com/tia-forge?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=s7-1200-first-program-tia-portal-seven-steps&utm%5Fcontent=forge)。

## 十二、三步动作

1. **今天**：按上面的顺序走一遍，只求点亮那个灯（用 PLCSIM 也行）；卡住时把报错原文丢给 AI。
2. **这周**：把四段逻辑改成 FB，参数换成一个新变量，验证复用。
3. **下次接手旧工程**：先读固件、读 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](https://www.plcprogrammingblog.com/blog/siemens-s7-1200-first-program-tia-portal?ref=hubwiz.com)
- 硬件与固件信息以西门子当前文档与设备标签为准

**同主题阅读**

- [Claude Code 接博途：从空工程到跑通仿真的全链路](https://www.hubwiz.com/blog/claude-code-tia-portal-mcp/)
- [博途 AI 助手：让 AI 直接操作 TIA Portal（TiaLink）](https://www.hubwiz.com/blog/tialink-give-your-ai-agent-hands-to-operate-tia-portal/)
- [梯形图转 SCL 迁移实战指南：能自动转什么、哪些必须重构、怎么验证](https://www.hubwiz.com/blog/lad-to-scl-migration-guide-tia-portal/)
- [PLC 编程软件怎么选：8 个平台里只有 2 个能免费用](https://www.hubwiz.com/blog/plc-programming-software-how-to-choose-2026/)
- [12 个最受欢迎的 PLC AI 工具：能写代码的多，能进工程的少](https://www.hubwiz.com/blog/best-plc-ai-tools-four-layers/)

支柱：[AI × 工业 / PLC](https://www.hubwiz.com/blog/ai-industrial-stack/)。