S7-1200 第一个程序:七步走到 500 ms 闪烁,下载按钮为什么老是灰的

第一次开博途,多数人卡在同一个地方:不是逻辑写错,是下载按钮灰色——因为没人告诉你 PG/PC 接口要选对。卡住的每一步都能问:把 AI 接到博途上,它读得到你的工程。

分享
S7-1200 第一个程序:七步走到 500 ms 闪烁,下载按钮为什么老是灰的

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 用在这个位置:它是汇智网的博途 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 可以在浏览器里直接打开梯形图,不用装博途。

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

如果你已经有博途(V16 以上都行),最省事的入门路径是三步:

  1. 先画通:在浏览器里用 plcsim.bimant.com 把启保停和定时闪烁画一遍,确认逻辑通了;
  2. 再进工程:用 TiaLink 让 AI 帮你把这段逻辑放进博途工程、编译、用 PLCSIM Advanced 跑起来;
  3. 然后问:把编译报错、看不懂的段、想加的互锁,直接丢给它——贴着你的工程回答,比搜教程快。

它的边界也写清:TiaLink 是"读工程、改工程、验工程"的网关,不能替代博途本身,也不能替代实机验证;F 安全、运动控制、通讯联调这些仍然要 PLCSIM Advanced / 真机配套。整套工具的分工见 /tia-forge。

十二、三步动作

  1. 今天:按上面的顺序走一遍,只求点亮那个灯(用 PLCSIM 也行);卡住时把报错原文丢给 AI。
  2. 这周:把四段逻辑改成 FB,参数换成一个新变量,验证复用。
  3. 下次接手旧工程:先读固件、读 IP、读变量表,再读逻辑——顺序反了就会一直在猜。

本文由 Software 2.0 编译整理,转载请注明出处。

Sources

同主题阅读

支柱:AI × 工业 / PLC。