简介这份文档面向电气工程及其自动化等专业学生与PLC初学者围绕S7-1200可编程控制器与TIA Portal V13提供八段LED编程与智能交通红绿灯两个实验的完整实践方案帮助读者从软件操作、梯形图编程到HMI画面设计逐步上手。压缩包共1个docx文件约1.62MB内容按实验目的、仪器设备、实验步骤、思考题与反思总结组织并附有变量表、程序段说明与HMI设计要点。文档详细记录了八段LED数字0-8循环显示、定时器与MOVE指令应用、触摸屏按钮与动画关联以及交通灯自动/手动切换、通行时间设定和PROFINET连接配置等关键环节还包含定时器编号冲突等排错经验。已有451人学习适合课程设计、实验报告撰写与仿真验证时对照参考。1. 从两个实验箱项目说起这套 S7-1200 源码到底能跑出什么很多人第一次接触 S7-1200 和 TIA Portal都是从实验箱上那排八段数码管开始的。按下启动按钮数码管从 0 跳到 8间隔一秒再按停止循环终止。看起来简单但真把项目文件拿到手打开 TIA Portal V13 那一刻变量表、DB 块、FC 块、HMI 画面、连接配置全堆在项目树里新手很容易愣住。这套资源就是围绕两个典型实验展开的完整工程八段 LED 循环显示与 HMI 联动以及智能交通灯的手自动切换控制。它适合电气工程及其自动化方向的学生做课程设计复现也适合刚上手 S7-1200 的开发者拿来拆结构、改逻辑、练 HMI 组态。你拿到的不只是两份实验报告而是一套能在 TIA Portal 里打开、编译、仿真跑通的项目骨架。2. 项目结构与技术栈TIA Portal V13 里到底放了什么2.1 硬件组态与网络连接这套工程的核心硬件是 CPU1214DC/DC/DC订货号 6ES7 214-1AG40-0XB0配 KTP700 触摸屏。两个设备通过 PROFINET 连接PLC 的 IP 设为 192.168.0.200HMI 设为 192.168.0.201。这个地址段是实验箱环境里常见的私有网段改的时候注意别和实验室路由器冲突。在 TIA Portal 里硬件组态不是可选项。你添加设备时选的 CPU 型号决定了后面可用的指令集和 I/O 地址范围KTP700 的型号决定了 HMI 画面支持的元素和动画能力。常见做法是先在“设备和网络”视图里把 PLC 和 HMI 拖进来再用 PROFINET 连线软件会自动分配连接关系。如果这一步跳过了后面 HMI 变量关联 PLC 变量时会找不到连接编译直接报错。提示IP 地址改完后记得在“在线访问”里确认网卡选对了否则下载时会出现“无法建立连接”的提示很多人卡在这里以为是程序问题。2.2 项目树里的模块划分打开项目树能看到几个关键节点PLC 变量表、程序块Main、FC1 交通灯、DB 块交通灯_DB、HMI 画面、连接。八段 LED 实验的程序相对扁平主要靠 Main 里的梯形图段加定时器实现交通灯实验则把逻辑收进了 FC1DB 块负责存变量Main 只做调用。这种划分方式在课程设计里很常见好处是逻辑和界面分离。FC1 里写控制逻辑DB 块里放通行时间、黄灯时间这类可调参数HMI 只负责读写 DB 里的值。你二次开发时如果要加一个“夜间模式”只需要在 FC1 里加分支DB 里加一个布尔变量HMI 上加一个开关不用动 Main 的结构。模块类型作用Main (OB1)组织块循环调用 FC1串联整体流程交通灯 (FC1)函数手自动切换、灯色输出逻辑交通灯_DB数据块存通行时间、黄灯时间、状态标志PLC 变量表变量I/O 地址映射与符号名HMI 画面组态指示灯、按钮、IO 域、动画2.3 八段 LED 的编码思路八段 LED 实验的核心不是梯形图有多复杂而是段码表怎么建。实验里用的是 16 进制段位码把 a 到 g 七个段有的模块带小数点 dp的通断组合编成一个字节用 MOVE 指令送到输出字节。比如显示 0段码是 0x3F显示 1是 0x06。这个表在实验指导书里给了但真正写程序时容易翻车的地方是输出字节的位顺序和硬件接线是否一致。我一般会先在变量表里把 Q0.0 到 Q0.7 对应到 a 到 dp然后在 DB 里建一个字节数组存段码用索引取值。这样改数字顺序或者换显示内容时只改数组不用动梯形图。实验里用的是定时器加计数器的方式每 1 秒计数器加一用计数器的值做索引去取段码MOVE 到输出字节。# 段码表参考共阴数码管abit0 ... dpbit7 0: 0x3F 1: 0x06 2: 0x5B 3: 0x4F 4: 0x66 5: 0x6D 6: 0x7D 7: 0x07 8: 0x7F 9: 0x6F上面这组值是共阴数码管的常见编码如果你的实验箱是共阳接法需要按位取反。这一步没有统一答案得看硬件手册或者拿万用表量一下段脚电平。实验报告里没写共阴共阳但这是复现时第一个要确认的点。2.4 交通灯 FC1 的逻辑骨架交通灯实验比八段 LED 多了一层状态切换。FC1 里按顺序功能图展开程序段大致分五块启动复位、停止指令、自动南北通行、手动南北通行、按钮处理。自动模式下启动时先复位所有灯输出然后南北绿灯Q0.2和东西红灯Q0.3同时输出计时到通行时间后切南北黄灯Q0.1再计时到黄灯时间后切南北红灯Q0.0和东西绿灯Q0.5循环往复。手动模式靠 I0.1 的电平区分。I0.1 为高时进手动I0.2 高则南北通行I0.3 高则东西通行切换时复位所有灯。这个逻辑在梯形图里用常开常闭触点串联并联就能搭出来但要注意手自动切换的瞬间必须有一个复位动作否则会出现两个方向绿灯同时亮的尴尬状态。-- 交通灯 I/O 分配来自实验变量表 I0.0 启动按钮 I0.1 手/自动切换 I0.2 手动南北通行 I0.3 手动东西通行 Q0.0 南北红灯 Q0.1 南北黄灯 Q0.2 南北绿灯 Q0.3 东西红灯 Q0.5 东西绿灯Q0.4 在实验里没有用到可能是东西黄灯预留或者硬件上被占用。你复现时如果发现 Q0.4 有输出但画面上没反应先查变量表里有没有给它分配符号名。3. 从零跑通TIA Portal V13 建项目到仿真出画面3.1 创建项目与添加设备打开 TIA Portal V13点“创建新项目”选好路径和项目名。进入项目视图后点“添加新设备”在控制器里找 CPU1214DC/DC/DC订货号对到 6ES7 214-1AG40-0XB0。添加完 PLC 再加 HMI选 KTP700然后在“设备和网络”视图里用 PROFINET 把两个设备连起来。这一步的常见坑是设备型号选错。CPU1214 有好几个变体DC/DC/DC 和 AC/DC/RLY 的 I/O 类型不同选错了后面输出点行为对不上。KTP700 也有 Basic 和 Comfort 的区别实验里用的是基础款画面元素少一些但够用。3.2 设置 IP 与编译下载在 PLC 的设备视图里双击 PROFINET 接口设 IP 为 192.168.0.200子网掩码 255.255.255.0。HMI 同理设 192.168.0.201。设完后点“编译”整个项目看下方信息窗口有没有报错。常见报错是“未分配连接”回到网络视图确认 PROFINET 线连上了。下载时选“下载到设备”接口类型选 PN/IE网卡选你电脑上连实验箱的那块。如果搜不到设备先检查电脑 IP 是不是和 PLC 在同一网段很多人电脑还是自动获取结果搜半天没反应。# 电脑端网卡临时设同网段Windows 命令行示例需管理员权限 netsh interface ip set address 以太网 static 192.168.0.100 255.255.255.0上面命令把电脑有线网卡设成 192.168.0.100和 PLC、HMI 同段。跑完实验记得改回自动获取不然下次上网又得排查。3.3 八段 LED 程序段搭建在 Main 里新建程序段先做启动停止。启动按钮 I0.0 常开触点串联停止按钮 I0.1 常闭触点输出到一个中间标志位 M0.0。M0.0 再驱动一个接通延时定时器 TONPT 设 1s。定时器输出 Q 接到计数器 CTU 的 CU 端计数器 PV 设 9显示 0 到 8 共九个状态。计数器的当前值 CV 用来做段码索引。MOVE 指令那块把段码表放在 DB 里用 CV 做数组下标取出的字节送到 QB0。这里要注意 CV 的数据类型CTU 的 CV 是整数做数组索引时可能需要转换具体看 TIA Portal 版本对隐式转换的支持。V13 里有时候需要显式用 CONV 指令转一下。-- 程序段逻辑示意梯形图转文字描述 段1: I0.0 --| |-- I0.1 --|/|--( M0.0 ) 段2: M0.0 --| |--[ TON, PT1s ]--( T1.Q ) 段3: T1.Q --| |--[ CTU, PV9 ]--( C1 ) 段4: C1.CV --[ MOVE 段码表[C1.CV] - QB0 ]段码表用 DB 里的 Array[0..9] of Byte初始化时把 0x3F、0x06 这些值填进去。如果你不想用数组也可以在梯形图里用比较指令逐段判断但那样程序段会很长改起来也麻烦。3.4 HMI 画面组态与变量关联八段 LED 的 HMI 画面是用矩形拼出来的。在 KTP700 画面里从右侧工具箱拖七个矩形摆成“日”字形分别代表 a 到 g 段。每个矩形的“动画”属性里关联 PLC 变量选 QB0 的对应位颜色动画设成 0 时灰色、1 时亮色。这样 PLC 输出变化时画面上对应的段就会亮灭。交通灯画面更直观三个圆形代表红黄绿关联 Q0.0 到 Q0.5。通行时间和黄灯时间用 IO 域关联 DB 里的时间变量模式选输入输出格式选十进制。按钮关联 I0.0 到 I0.3事件里选“按下时置位”或“释放时复位”看你的逻辑需要。注意HMI 变量关联时变量列表里可能出现两个名字很像的变量一个是 PLC 变量表里的符号名一个是 DB 里的绝对地址。选错了编译不报错但仿真时画面不动。实验报告里提到过这个坑我一般会先把变量名统一加前缀比如HMI_开头减少误选。3.5 仿真验证的完整流程TIA Portal V13 自带 PLCSIM可以仿真 PLC 程序但 HMI 仿真需要额外启动 WinCC Runtime 的仿真模式。步骤是先点 PLC 的“开始仿真”下载程序到虚拟 PLC再点 HMI 的“开始仿真”启动画面运行。两边都起来后在 HMI 画面上按启动按钮观察八段 LED 是否按秒跳变交通灯是否按设定时间切换。仿真时如果 HMI 画面上的按钮按了没反应先看 PLCSIM 是不是在 RUN 状态再看 HMI 连接是不是指向了虚拟 PLC 的地址。有时候 PLCSIM 的 IP 和实际组态的 IP 不一致需要在 PLCSIM 里手动改一下。4. 避坑与排查复现这套工程时最容易翻车的五件事4.1 定时器编号冲突导致逻辑全乱现象八段 LED 循环速度不对或者交通灯切换时间明显偏离设定值。原因复制粘贴程序段时多个定时器用了同一个编号TIA Portal 编译不报错但运行时后一个定时器覆盖前一个的背景数据。解决删掉所有定时器从右侧指令库重新拖入每个定时器自动分配不同编号或者手动在背景 DB 里确认编号唯一。实验报告里作者也踩过这个坑说明这不是个例。4.2 段码共阴共阳搞反显示乱码现象数码管显示的数字和预期对不上比如显示 0 却亮了两段。原因段码表按共阴编码硬件是共阳接法或者反过来。解决拿万用表量段脚确认公共端接法共阳时把段码按位取反再送输出。也可以先在 HMI 上手动给 QB0 赋值 0x3F看硬件亮哪几段反推编码。4.3 HMI 变量关联到错误对象现象画面上按钮能按但 PLC 程序没反应或者指示灯不随输出变化。原因HMI 变量关联时选了一个同名但不同连接的对象比如关联到了 DB 里的副本而不是 PLC 变量表里的 I/O。解决在 HMI 变量表里逐个检查“连接”列确认指向 PLC 的 PROFINET 连接地址列和 PLC 变量表一致。改完后重新编译下载 HMI。4.4 手自动切换时灯状态残留现象从自动切手动或者手动切自动某个方向的绿灯还亮着。原因切换逻辑里只复位了部分输出没有把所有灯的输出统一复位。解决在 I0.1 的上升沿和下降沿各加一个复位程序段把 Q0.0 到 Q0.5 全部置 0再进各自模式。这个复位动作要放在模式判断之前。4.5 仿真下载时提示“连接伙伴未响应”现象点下载搜不到 PLC或者搜到了但下载失败。原因电脑网卡 IP 不在 192.168.0.x 段或者防火墙拦了 TIA Portal 的通信端口。解决先把电脑网卡设成同段静态 IP再关掉防火墙试一次。如果用的是 PLCSIM确认 PLCSIM 的虚拟网卡没有被禁用。5. 二次开发把两个实验改成一个可扩展的小系统这套工程的骨架其实可以往上叠东西。八段 LED 实验里那个段码表加计数器的结构稍微改一下就能做多位数码管显示。实验报告课后作业要求用三个八段 LED 显示学号后三位思路是每个数码管对应一个 FC各自维护自己的段码索引和输出字节Main 里并行调用。你如果要做四位甚至六位把 FC 做成带参数的函数块输入管脚传段码表和输出地址复用性会好很多。交通灯那边FC1 里的时间参数现在是从 DB 读的HMI 上可以改。二次开发时我建议把“通行时间”和“黄灯时间”做成数组按方向索引这样加一个方向或者改配时方案时不用动逻辑。另外手自动切换的复位逻辑可以抽成一个独立的 FC输入是模式切换信号输出是复位脉冲Main 里调用一次就行避免在每个模式分支里重复写复位。验证改造是否成功我一般用两步先在 PLCSIM 里跑一遍完整时序用强制表把关键变量拉出来看波形再在 HMI 上把参数改到边界值比如通行时间设 1 秒、黄灯时间设 0.5 秒看切换有没有卡死或者灯态重叠。边界值能过正常值基本没问题。有个习惯我保持了挺久每次改完 FC 或者 DB先把整个项目编译一遍看信息窗口有没有警告再下载仿真。早期我图省事直接下载结果有一次 DB 里加了变量但 HMI 没重新编译画面上那个 IO 域显示空白排查了半小时才发现是编译顺序问题。从那以后我每次改完都强制走一遍“全部编译→下载 PLC→下载 HMI→仿真验证”的流程虽然多花两分钟但省下来的排查时间远不止这点。希望这套拆解能帮你把实验箱上的项目顺利跑起来也能顺着骨架改出自己想要的控制逻辑。本文还有配套的精品资源点击获取