简介:这份资源面向电气工程及其自动化等专业学生与PLC初学者,围绕S7-1200可编程控制器与TIA Portal V13,提供八段LED编程与智能交通红绿灯两个实验的完整实践方案,帮助读者从软件操作、梯形图编程到HMI画面设计逐步上手。压缩包共1个docx文件,约1.62MB,以实验报告形式组织,涵盖实验目的、仪器设备、操作步骤、思考题与反思总结等模块。内容具体展开八段LED的变量表设置、定时器与MOVE指令应用、16进制段位码显示0至8的循环控制,以及触摸屏图形组合、按钮事件与变量关联;交通灯部分则涉及手自动切换、通行时序与HMI时间设定。已有451人学习,适合课程设计、实验预习与仿真验证时对照参考,也能为定时器编号冲突等常见问题提供排错思路。
1. 从一张 I/O 地图看 PLC 实验:八段 LED 与交通灯到底在练什么
很多人复习 PLC 实验时,第一反应是背梯形图指令,结果一上机就翻车:定时器编号冲突、HMI 变量关联错对象、手动自动切换忘了复位。问题不在指令记得少,而在于没先看清这两个实验共用的一张底层地图——输入采集、逻辑运算、输出驱动、人机交互。八段 LED 练的是「编码 + 时序 + 显示」,交通灯练的是「状态切换 + 互锁 + 参数可调」,两者都跑在 S7-1200 加 KTP700 这套硬件组合上,都用 TIA Portal 完成组态、编程与仿真。把这张地图先立起来,再去抠段码表、定时器、HMI 动画,复习才不会变成零散记忆。这份笔记按知识模块重新梳理,适合正在做课程设计、准备实验验收或期末复习的人对照查漏。
2. 硬件与工程骨架:S7-1200、KTP700 和 Portal 项目怎么搭
2.1 设备选型与网络组态
两个实验的硬件底座是同一套:CPU 1214C DC/DC/DC(订货号 6ES7 214-1AG40-0XB0)加 KTP700 触摸屏,通过 PROFINET 连接。复习时最容易含糊的是「DC/DC/DC」这三个字母分别指什么——电源、输入、输出均为直流 24V,这决定了实验箱上接线端子的接法,也决定了输出点不能直接驱动交流负载。组态顺序是先在项目视图里添加新设备,再添加 HMI,最后把 PLC 与 HMI 用 PROFINET 连起来。
IP 地址分配是验收时必查的一项,实验里给出的规划是 PLC 为 192.168.0.200、HMI 为 192.168.0.201,两者必须在同一网段且不冲突。梳理下来会发现,这一步出错的表现很典型:程序下载正常,但 HMI 上所有关联变量都显示异常或无法写入,因为通信根本没建立。
| 组态项 | PLC 侧 | HMI 侧 | 常见错误 |
|---|---|---|---|
| 设备型号 | CPU 1214C DC/DC/DC | KTP700 | 型号选错导致编译报错 |
| 通信协议 | PROFINET | PROFINET | 只连了网线未做设备组态 |
| IP 地址 | 192.168.0.200 | 192.168.0.201 | 同网段冲突或子网掩码不一致 |
| 变量访问 | 全局变量表 / DB 块 | 关联 PLC 变量 | 关联到同名但不同对象的变量 |
2.2 程序结构:OB、FC、DB 的分工
交通灯实验的程序骨架值得单独记:新建 DB 块命名为「交通灯_DB」存放运行变量,新建 FC 块命名为「交通灯」写梯形图逻辑,最后在 main 组织块里把 FC 直接拖进程序段 1 调用。这个「OB 调用 FC、FC 读写 DB」的结构是 S7-1200 编程的基本范式,八段 LED 实验虽然简单,但同样遵循「变量表定义 I/O、程序块写逻辑」的思路。
为什么要把变量放进 DB 而不是全用 M 区?DB 块支持结构化命名和掉电保持设置,变量多了以后可读性差距非常明显。复习时如果只记「新建 DB 块」这个动作,而不理解它是为了集中管理交通灯的计时参数和状态标志,考试画程序结构图就容易漏掉这一层。
提示:FC 块没有自己的存储区,所有需要保持或跨扫描周期使用的量都必须落在 DB 或 M 区,这是判断程序结构是否合理的硬标准。
3. 八段 LED 实验:段码编码、定时循环与 HMI 显示
3.1 段码表与 MOVE 指令的配合
八段 LED 的核心是一张编码表:a 到 g 七段加小数点 dp,每个数字对应一组亮灭组合,把这组组合写成一个十六进制字节,就是段位码。实验里的做法是把数字 0 到 8 的段位码通过 MOVE 指令送到数码管的输出字节,输出点按位驱动各段。理解这张表的关键是「位与段的映射关系」——哪一位对应 a 段、哪一位对应 dp,必须和实验箱接线一致,否则显示出来就是乱码。
# 段码映射示意(共阴接法,1 点亮,位序 dp g f e d c b a) # 数字 0:a b c d e f 亮,g 灭 -> 0011 1111 -> 0x3F # 数字 1:b c 亮 -> 0000 0110 -> 0x06 # 数字 2:a b d e g 亮 -> 0101 1011 -> 0x5B # 数字 3:a b c d g 亮 -> 0100 1111 -> 0x4F # 数字 6:a c d e f g 亮 -> 0111 1101 -> 0x7D上面这组值只是位序约定下的一种写法,实际实验要以指导书给的编码表为准,因为共阴共阳、位序高低会整体翻转。复习时不要死背十六进制数,而要会推:先写出该数字点亮哪几段,再按位序拼成二进制,最后转十六进制。思考题里问「不用十六进制段位码还有什么方法」,答案就是把 a 到 g 每个输出点当成独立常开触点,显示 1 就接通 b、c,显示 2 就接通 a、b、d、e、g,本质是用触点组合替代编码表,程序更长但逻辑更直白。
3.2 接通延时定时器与 1 秒自动跳转
让数字自动循环显示,靠的是接通延时定时器 TON:PT 设为 1s,计时到后定时器输出接通,触发数字加一或切换到下一个段码,同时复位定时器重新计时。实验步骤里写的是「1s 后自动接通,LED 显示 0」,然后按此时序让 0 到 8 每个数字间隔 1s 跳转。
这里有个血泪经验:多个程序段如果靠复制粘贴生成,定时器编号会重复,编译时每一段都引用同一个定时器,运行时表现为所有跳转同时发生或干脆不跳。正确做法是每段从右侧指令库重新拖取定时器并分配不同编号,或者用定时器多重背景放在 DB 里统一管理。复习时把「定时器编号唯一」当成一条铁律记,比记 TON 的引脚名更实用。
// 梯形图逻辑的文字化描述(非实际代码,用于复习时序) // 程序段1:启动按钮 I0.0 自锁,驱动运行标志 M0.0 // 程序段2:M0.0 接通时,TON 定时器 T1 开始计时,PT = T#1S // 程序段3:T1.Q 上升沿触发,计数器 C1 加 1,同时复位 T1 // 程序段4:C1 当前值经比较指令选择对应段码,MOVE 到输出字节 QB0 // 程序段5:停止按钮 I0.1 断开自锁,C1 与 T1 复位这段描述对应实验里「启动按钮与停止按钮串联实现控制」的要求:启动自锁、停止断开,是所有连续运行程序的标准起手式。参数上要盯住三处——TON 的 PT 决定跳转间隔,计数器的 PV 决定循环到几,MOVE 的源决定当前显示哪个数字。
3.3 HMI 八段形状与变量动画
触摸屏侧的八段 LED 不是现成控件,而是用矩形基本对象拼出来的:七个矩形按八段位置摆放,每个矩形关联一个 PLC 输出变量,变量为 1 时显示点亮颜色,为 0 时显示熄灭颜色,这就是实验里说的「动画设计、关联 PLC 变量、颜色变化动画」。再添加静态文本标注数字,添加启动停止按钮并编辑按钮的按下与释放事件。
复习时容易忽略的是「HMI 上的显示和 PLC 实际输出是两套东西」:HMI 只是读取变量并渲染颜色,它不参与段码运算。所以仿真时如果 HMI 显示正常而实验箱数码管不亮,问题在输出接线或段码位序;如果实验箱正常而 HMI 不亮,问题在变量关联或动画配置。把这两个故障域分开,排查效率会高很多。
4. 交通灯实验:状态机、手自动切换与参数化时间
4.1 自动运行的顺序功能与输出分配
交通灯自动模式的本质是一个四状态循环:南北绿+东西红 → 南北黄+东西红 → 南北红+东西绿 → 南北红+东西黄 → 回到起点。实验给出的输出分配是 Q0.0 南北红、Q0.1 南北黄、Q0.2 南北绿、Q0.3 东西红、Q0.5 东西绿,注意 Q0.4 在描述里没有出现,复习画 I/O 表时要按指导书原样保留,不要自行补齐。
启动逻辑有个前置条件:按下启动按钮 I0.0 后,还要看 I0.1 的电平——I0.1 为低电平时进入自动状态,为高电平时进入手动状态。自动状态启动时先初始化,把所有灯输出复位,再输出南北绿和东西红,这个「先复位再置位」的顺序不能颠倒,否则上一次运行的残留输出会让第一个状态显示错误。
| 状态 | 南北方向 | 东西方向 | 持续时间来源 |
|---|---|---|---|
| 1 | 绿灯 Q0.2 | 红灯 Q0.3 | HMI 设定通行时间 |
| 2 | 黄灯 Q0.1 | 红灯 Q0.3 | HMI 设定黄灯时间 |
| 3 | 红灯 Q0.0 | 绿灯 Q0.5 | HMI 设定通行时间 |
| 4 | 红灯 Q0.0 | 黄灯 Q0.1 | HMI 设定黄灯时间 |
状态切换靠定时器串联:当前状态定时到,复位本方向灯,置位下一状态灯。实验里强调「经过触摸屏设定的通行时间后切换」,说明定时器的 PT 不是常数,而是来自 HMI 写入的变量,这是本实验和八段 LED 实验最大的区别——时间参数在线可调。
4.2 手动模式与互锁复位
手动模式下,I0.2 为高电平表示南北通行,输出南北绿 Q0.2 和东西红 Q0.3;I0.3 为高电平表示东西通行,输出东西绿 Q0.5 和南北红 Q0.1。这里必须做互锁:南北通行和东西通行不能同时有效,否则会出现两个方向绿灯同时亮的荒谬状态,实际路口就是事故。
实验步骤明确写了「手自动切换时复位所有灯输出」,这条是易错重灾区。切换瞬间如果不复位,自动模式残留的绿灯会和手动模式新置位的绿灯叠加,或者黄灯卡在中间状态。梳理下来会发现,交通灯程序的健壮性几乎全押在「切换即复位」这一条上,写程序时应该把它放在模式判断的最前面,而不是散落在各状态里。
4.3 HMI 参数域与颜色动画
交通灯 HMI 比八段 LED 复杂在交互元素更多:指示灯、文字、按钮,还要加 IO 文本域设置绿灯时间和黄灯时间。文本域的配置要点是选对关联变量、设为输入输出模式、指定显示格式,这样操作员输入的数字才能写回 PLC 的 DB 变量并被定时器引用。
指示灯的颜色动画要关联对应 PLC 变量,并设计两种颜色分别对应亮和灭。实验反思里提到一个真实坑:设置外观变量时下拉表里有两个相似名称,选错后灯不按预期变色。避免方法是给 DB 变量起名时带方向前缀,比如「南北_绿」「东西_红」,从源头消除歧义,而不是靠记忆去分辨。
5. 易错点清单:这五个坑复习时最容易漏
5.1 易错点一:定时器编号重复
为什么漏:用复制粘贴快速生成多个程序段时,定时器实例被一起复制,编号不变,编译不报错但运行逻辑全乱。怎么补:每段定时器从指令库重新拖取并逐一改编号,或统一用 DB 多重背景,编译后检查交叉引用里每个定时器只被一个程序段驱动。
5.2 易错点二:HMI 变量关联到同名不同对象
为什么漏:PLC 变量表和 DB 里可能存在同名变量,下拉列表按名称排序时肉眼难辨。怎么补:变量命名加模块前缀,关联后到 HMI 变量的属性里核对绝对地址,而不是只看名字。
5.3 易错点三:手自动切换未复位输出
为什么漏:注意力集中在模式判断条件上,忘了切换动作本身需要清场。怎么补:把「切换沿触发 → 所有灯输出复位」写成独立程序段,放在模式判断之前,作为进入任何模式的前置动作。
5.4 易错点四:段码位序与接线不一致
为什么漏:编码表抄的是共阴还是共阳、位序从 a 还是从 dp 开始,指导书不同版本可能不同。怎么补:先只点亮一段验证位序,确认 a 段对应哪一位后再套整张表,不要一上来就全量显示。
5.5 易错点五:仿真通过就认为实机通过
为什么漏:PLCSIM 仿真不校验实际接线、输出驱动能力和触摸屏通信链路。怎么补:仿真只验证逻辑,实机验收前单独检查输出端子接线、PROFINET 连接状态和 HMI 在线变量是否刷新。
6. 复习落地:一张自查表加一套仿真验证顺序
复习到这一步,建议不要再从头翻指导书,而是拿一张自查表逐项打勾,再用固定顺序跑一遍仿真。自查表按「组态—变量—逻辑—HMI—仿真」五层组织,每层只问一个能判对错的问题:
| 层次 | 自查问题 | 判错信号 |
|---|---|---|
| 组态 | PLC 与 HMI 型号、IP 是否与规划一致 | 下载正常但 HMI 变量不刷新 |
| 变量 | I/O 表地址是否与指导书逐点对应 | 按钮按下无反应或灯亮错位 |
| 逻辑 | 定时器编号是否唯一、切换是否复位 | 跳转不同步、双绿同亮 |
| HMI | 动画变量是否关联到正确绝对地址 | 灯色与 PLC 输出不符 |
| 仿真 | 启动停止、手自动、参数修改是否都走通 | 单一场景通过、组合场景失败 |
仿真验证的顺序也有讲究,按「先单点后组合」推:先手动强制每个输出点,确认接线与地址;再跑八段 LED 的 0 到 8 循环,看间隔是否稳定 1s;然后跑交通灯自动四状态,改一次 HMI 通行时间看是否生效;最后切手动、切回自动,观察复位是否干净。这个顺序能把故障定位到具体层,而不是一上来就跑全流程然后对着现象猜。
-- 验收前用变量监控表核对的关键量(示意,按实际项目替换地址) -- 八段 LED:QB0 当前段码、T1.ET 已计时、C1.CV 当前数字 -- 交通灯:DB.南北绿、DB.南北黄、DB.南北红、DB.东西绿、DB.东西红 -- 检查原则:任一时刻同一方向最多一个灯为 1,两方向绿灯不得同时为 1 SELECT 南北绿, 南北黄, 南北红, 东西绿, 东西红 FROM 交通灯_DB WHERE (南北绿 = 1 AND 东西绿 = 1) OR (南北绿 + 南北黄 + 南北红 > 1);这条查询式的检查思路,本质是把「互锁」变成可验证的约束:结果集为空才说明状态合法。我第一次做交通灯验收时就是靠这个思路发现手动模式残留输出的——当时仿真看着一切正常,直到把两个方向绿灯同时为 1 的条件单独拎出来查,才暴露切换瞬间的复位缺失。从那以后我每次做状态机类实验,都强制先把「非法状态组合」列出来逐条验证,再去看正常流程。希望这份梳理能帮你在验收前把该堵的洞都堵上。
本文还有配套的精品资源,点击获取