做毕设被PLC卡住的人,十有八九都倒在同一个地方:代码写好了,逻辑也通了,但一说到“实物”,要么是硬件预算不够,要么是实验室设备排不上队,最后只能对着仿真界面干瞪眼。如果你拿到的是“西门子S7-1200基于PLC的智能家居控制系统”这个题目,又恰好想在电脑上把整套系统跑出接近实物的效果,那这篇内容就是给你写的。
我会直接把做这个项目时最值得参考的思路、I/O分配、博途仿真配置、核心程序逻辑、HMI联动,以及学生在实操中最容易踩的坑全部拆开讲。内容不是教材式复刻,而是按“我亲手做一个成品”的逻辑走一遍,尽量让你在交毕设之前心里有底。
1. 项目整体设计与方案选型
1.1 为什么选S7-1200做智能家居控制
智能家居控制系统能选的PLC其实不少,老一点的实验室喜欢用S7-200 SMART,预算敏感的自学党会考虑三菱FX系列,但放到毕设场景里,S7-1200是最稳的选择。原因不是参数好看,而是它踩中了三个关键点:一是TIA Portal(博途)集成度高,从PLC程序到HMI画面全部在一个工程里搞定,不用像老项目那样PLC一个软件、触摸屏另一个软件,来回倒腾;二是S7-1200本体自带以太网口,Download和在线监控都方便,仿真体验比串口方案舒服太多;三是它支持PLCSIM软件仿真,这意味着哪怕你手头没有一块真实CPU,也能把整个控制逻辑、定时器、计数器、模拟量比较跑出真实效果。
说白了,S7-1200的优势不在“最强”,而在“最合适”。智能家居控制系统的核心是开关量逻辑+简单模拟量处理,例如温度采集、烟雾浓度判断,这些S7-1200的标准CPU都能覆盖。CPU型号建议选1214C DC/DC/DC,自带14DI/10DO,对大部分智能家居场景足够用;如果点位不够,再加一个SM1231模拟量模块,或者直接用1212C把点位收一收。做毕设不是做工程,没必要追求过大配置,I/O点数预留10%~20%就行了。
1.2 仿真是实物仿真的逻辑是什么
这个项目标题里提到“仿真是实物仿真”,很多人第一次听到会懵。其实这里的实物仿真,指的是通过仿真软件把你写的PLC程序和一个“虚拟的实物环境”连接起来,让人感觉PLC在控制真实设备。最典型的做法就是TIA Portal里的PLCSIM,配合WinCC或HMI面板仿真,在电脑上模拟出:你按下真实的启动按钮(电脑里模拟按钮)、PLC程序响应、输出点置位、画面上的灯亮或电机图标转动。
这个思路对毕设特别友好,因为你可以把完整的“输入→控制→输出→反馈”闭环在电脑上复现。比如你写一个“人体感应+光敏传感器控制楼道灯”的程序,在仿真环境里你不需要真实的光敏电阻,而是通过HMI画面里的开关元件来模拟光敏信号的变化。你拨动开关,输入点变化,PLC程序扫描后改变输出状态,HMI上的灯泡图标跟着亮起或熄灭。整个过程跟实物连线几乎一致,只是信号来源从物理引脚变成了仿真变量。
所以你在做的时候,脑子里要把“仿真”理解成一个虚拟的I/O层,而不是一个演示动画。这也是毕设答辩时老师最爱问的点:你这个仿真和实物控制之间的映射关系是什么?如果能答上来“仿真环境的输入变量对应PLC的I0.0、I0.1,输出变量对应Q0.0、Q0.1”,基本就稳了。
1.3 系统整体架构与控制需求拆解
先给一个典型的智能家居控制架构,后续所有编程都围绕这套架构展开:
- 输入层:人体感应传感器、光敏传感器、烟雾浓度传感器、温度传感器、红外遥控/按钮开关
- 控制层:S7-1200 CPU,执行扫描、逻辑运算、定时、计数、模拟量比较
- 输出层:照明灯、窗帘电机、排风扇、蜂鸣器报警、加热器
- 人机交互层:触摸屏/电脑HMI画面,用于显示状态、设置参数、手动控制
控制需求可以拆成5个核心功能:灯光照明控制(按时间/光线/人体感应自动开关)、窗帘自动控制(光线强关帘、光线弱开帘,也可手动)、烟雾报警联动(烟雾浓度超限时报警并开启排风扇)、温度检测与加热控制(过低启动加热,过高停止)、手动/自动切换与HMI监控。
这5个功能看起来简单,但放到PLC程序里,你需要用到的知识点覆盖了:位逻辑、定时器(TON、TONR)、计数器、比较指令、模拟量标定、上升沿下降沿、以及多个输出互锁。做的时候不要想着一步到位,先把每个功能模块独立调试通过,再合并到主程序里联调。
2. 核心硬件选型与I/O分配
2.1 PLC本体、传感器与执行器的选型搭配
如果你只是仿真,硬件选型可以简化一部分,但为了让“仿真看起来像实物”,你需要在图纸和说明文档里写清楚每个传感器/执行器对应什么信号类型。这会直接影响I/O分配表和程序编写。
传感器这块,最简单可靠的是数字量型:
- 人体感应:HC-SR501或者工业级的人体红外传感器,输出0/1信号,接到PLC数字量输入。
- 光敏传感器:很多毕设直接用光敏电阻模块,带电位器调节阈值,输出数字量0/1,这样一来就不需要模拟量通道了,省事不少。如果你的题目要求“光强度连续可调”,就得上4-20mA或0-10V输出类型的变送器,那才需要模拟量输入模块。
- 烟雾浓度传感器:MQ-2烟雾传感器,可以输出数字量阈值,也可以输出模拟量电压。毕设建议先用数字量模式,程序中把“是否有烟雾”当成一个BOOL量处理;如果想做得更有深度,就把模拟量输出接入SM1231模拟量输入模块,然后在程序里用比较指令设置报警阈值,这样在答辩时有更多可讲的内容。
- 温度传感器:PT100热电阻或者DS18B20变送器。如果是仿真,不需要实际接线,但程序里要定义好对应的模拟量通道或者通过HMI输入一个模拟温度值。
输出端比较简单:灯用中间继电器或者PLC晶体管输出直接驱动24V指示灯;窗帘电机用两个中间继电器实现正反转;排风扇和蜂鸣器也是标准DO输出。如果PLC是继电器输出型,直接接AC220V负载也行,但仿真环境中你只需要在HMI上体现这些设备的运行状态,不需要真的接负载。
2.2 I/O分配表:先花半小时画清楚,能省后面三天
我见过太多学生上来就写程序,写到一半才发现输入端不够用了,或者输出点重复占用了。所以做任何PLC项目,第一步永远是I/O分配表。
以下是我做这个项目时用过的分配表,供参考:
| 信号类型 | 地址 | 说明 |
|---|---|---|
| 数字量输入 | I0.0 | 人体感应传感器(灯控) |
| 数字量输入 | I0.1 | 光敏开关(灯控,1=白天/0=夜晚) |
| 数字量输入 | I0.2 | 烟雾报警传感器 |
| 数字量输入 | I0.3 | 窗帘手动开按钮 |
| 数字量输入 | I0.4 | 窗帘手动关按钮 |
| 数字量输入 | I0.5 | 自动/手动模式切换开关 |
| 数字量输入 | I0.6 | 温度传感器超限报警模拟输入(备选) |
| 数字量输出 | Q0.0 | 客厅照明灯 |
| 数字量输出 | Q0.1 | 卧室照明灯 |
| 数字量输出 | Q0.2 | 窗帘电机正转(开帘) |
| 数字量输出 | Q0.3 | 窗帘电机反转(关帘) |
| 数字量输出 | Q0.4 | 排风扇 |
| 数字量输出 | Q0.5 | 蜂鸣器报警 |
| 数字量输出 | Q0.6 | 加热器(可选) |
| 模拟量输入 | AI0(扩展模块) | 烟雾浓度模拟量(0-10V) |
实际项目里,我建议把“自动/手动切换”和“窗帘手自动开关”做成优先级的核心输入。因为智能家居最怕的就是自动逻辑和手动操作打架,例如晚上自动开着灯,你想手动关掉,结果3秒后程序又把人感信号触发了一次,灯又亮了。这种问题完全可以通过程序里的互锁和保持逻辑来解决。
2.3 传感器信号类型与PLC接线的仿真对应关系
既然项目是仿真,接线图这部分你直接画在毕设文档里就行,但在程序仿真时要注意信号类型的对应关系。PLC的输入输出点只有两种状态:0和1,但传感器输出可能是NPN型(输出低电平有效)或PNP型(输出高电平有效),接线方式完全不同。S7-1200 DC/DC/DC型CPU的源型输入接法,大多数传感器用的是PNP输出,也就是“信号线直接接输入点,公共端接负极”的方式。
在仿真环境中,这个物理差异会被忽略,但你必须在文档里声明传感器型号和接线方式。否则答辩时老师随便问一个“你这个传感器是NPN还是PNP,为什么”,你就容易卡壳。还有一点要注意:PLC输入端的公共端(M)必须和传感器电源共地,否则信号参考电位不一致,显示输入信号为1,可实际就是触发不了。仿真时虽然不考虑这个,但在实物接线时这是高频故障点。
3. 博途环境搭建与PLCSIM仿真配置
3.1 软件版本选择与安装注意
用S7-1200,必然绕不开TIA Portal。目前常见版本有V15.1、V16、V17、V18甚至V19。做毕设不建议追求最新版本,因为最新版对电脑配置要求高,而且步骤繁琐。V15.1或者V16在稳定性、教程数量上最平衡,绝大多数实验室和网上的参考程序都能兼容。
安装时不要默认装到C盘,博途全家桶安装完轻轻松松20GB以上,加上PLCSIM和WinCC Runtime,30GB很正常。安装路径改成D盘后,在安装过程中仍需注意有些组件会强制写C盘,所以尽量预留C盘40GB以上空间。另外,安装时必须关闭杀毒软件,否则很多授权文件会被拦截,装到一半报错也是常见情况。
如果你用的是Win10或者Win11,建议以管理员身份运行安装程序。装好之后先不要急着建项目,打开软件设置里检查一下“支持的语言”是否包含中文界面,博途默认中文环境需要勾选安装中文语言包。
3.2 创建项目与添加设备的具体步骤
打开TIA Portal后,按以下步骤走:
- 单击“创建新项目”,项目名建议用英文或拼音,比如“SmartHome_1200”,避免中文路径导致仿真异常。
- 在左侧“项目树”中右键“添加新设备”,选择“控制器 → SIMATIC S7-1200 → CPU → CPU 1214C DC/DC/DC”,选择具体订货号。如果你手头有真实PLC,订货号必须和硬件一致;纯仿真则选一个常见型号即可。
- 添加HMI或PC系统:如果你要用HMI仿真,在“添加新设备”里选择“HMI → SIMATIC精简系列面板”,例如KTP400 Basic PN。如果只想在电脑上显示监控画面,可以添加“PC系统 → WinCC Runtime”,这样就能在电脑上模拟触摸屏效果。
- 在设备组态中,对CPU属性做基础设置:以太网地址默认192.168.0.1,子网掩码255.255.255.0,不要动它;如果你要和HMI做HMI连接,需要在网络视图里把PLC和HMI组到同一个子网里。
完成之后,项目里就有一个PLC设备和一个HMI设备,接下来就是组态I/O变量。
3.3 PLCSIM仿真启动流程与下载程序
写程序之前,先确认PLCSIM已经正确安装。程序写完编译无误后,点击“仿真”图标,第一次会提示“启动仿真”,选“确定”。PLCSIM会弹出一个虚拟的CPU界面,里面有运行/停止开关、状态指示灯、存储器视图等,就像虚拟出了一个真实的S7-1200面板。
然后点击“下载”按钮,目标设备选“PLCSIM”,如果没有自动识别就手动刷新。下载时如果报“在线检查不一致”,直接点“全部覆盖”。下载完成后,把PLCSIM里CPU的运行状态切到RUN,这时程序开始扫描执行。需要注意:PLCSIM仿真模式下,程序里的输入点I0.0这些不会因为你没接硬件就固定为0,它和真实PLC一样,可以在PLCSIM界面里手动修改输入点的状态。具体做法是打开PLCSIM的“变量表”或“输入”标签,强制某个I点值为1,就相当于给PLC一个物理信号。
HMI仿真也可以同时启动。在项目树中右键HMI设备选择“仿真”,HMI的模拟画面会弹出。在HMI仿真里点击按钮,其实就是在操作一个虚拟触摸屏,画面上的变量和PLC内存地址绑定,PLC扫描后更新输出,画面状态跟着变。这个“PLC程序在线运行 + HMI画面实时反馈”的组合,就是毕设答辩时最有说服力的演示方式。
3.4 博途HMI按钮仿真无反应的排查
你在网络上经常能看到“博途HMI仿真按钮无反应”这类问题。主要原因有三个:
第一个,HMI变量没有连接到PLC地址。很多人新建HMI画面后,直接在按钮属性里关联了“位”变量,但那个变量的地址不是PLC的Q点或M点,而是HMI内部变量,所以按钮怎么点,PLC都无动于衷。解决方法是:双击“HMI变量表”,新建变量时选择“PLC变量”作为连接对象,并指定绝对地址。
第二个,PLC程序未处于运行状态。HMI仿真打开时,PLC必须保持在RUN状态,如果CPU停止,即使按钮置位了变量,程序也不扫描,画面状态自然不变。所以在仿真之前养成好习惯:先启动PLCSIM,下载程序并切到RUN,再启动HMI仿真。
第三个,PLC和HMI的通信连接未建立。在“网络视图”中,把PLC的以太网口连接到HMI的以太网口上,HMI组态中的“连接”也要选“伴随PLC的HMI连接”。如果连不上,HMI画面会弹“连接中断”之类的提示。
排查顺序建议:先看PLCSIM是否RUN,再看变量表地址和连接关系,最后重新编译下载。这个流程80%的HMI无反应问题都能解决。
4. 核心PLC程序设计思路与实现
4.1 程序块的规划:OB、FC、FB怎么划分
S7-1200的程序结构支持OB(组织块)、FC(函数)、FB(功能块)和DB(数据块)。很多人写智能家居程序时,把所有逻辑都塞进OB1,几百行梯形图挤在一起,后面改一下都要找半天,非常不推荐。
我的习惯是:
- OB1:主程序框架,只做初始化和调用各个功能块。
- FC1:灯光控制逻辑。
- FC2:窗帘控制逻辑。
- FC3:烟雾报警与排风联动逻辑。
- FC4:温度检测与加热控制逻辑。
- FB1:手动/自动模式切换的逻辑(可以用FB实现带背景数据的模式管理,但毕设用FC也完全足够)。
- DB1:全局数据块,存放设备状态、模式切换标志、定时器预设值、报警阈值等。
这样划分的好处是:每个功能独立调试,仿真时单独强制某个FC的输入输出,不影响其他模块;答辩讲程序时,按功能块逐块讲,逻辑也清晰。
4.2 灯光控制:多条件组合逻辑怎么不“打架”
灯光控制通常不是单一条件触发的,而是“人体感应+光线判断+自动/手动模式”的组合。以楼道灯为例,需求是:夜晚(光敏=1表示无光照)且有人体感应(人感=1)时,灯亮,并延时30秒后熄灭;白天(光敏=0)时,即使有人也不亮;手动模式下,灯的手动开关直接控制,不受自动逻辑影响。
程序核心可以这样理解:
- 自动模式下:I0.0(人感) 与 I0.1(夜晚) 同时为真,置位Q0.0;
- 用TON定时器做延时关断;
- 手动模式下:用M0.0作为手动开指令,M0.1作为手动关指令,直接控制Q0.0;
- 自动和手动之间用M0.2模式标志位做互锁,自动模式输出不能干扰手动状态。
实际写梯形图的时候,最容出错的地方不是逻辑,而是定时器复位。很多人用了TON,但触发条件一断开,定时器就复位了,输出灯还没亮几秒就灭。所以灯光延时这块要用“线圈保持 + 定时器到时复位”的方式:人感触发时置位Q0.0,同时启动定时器;定时器到时后,复位Q0.0,并复位定时器。
4.3 窗帘控制:正反转互锁与限位保护
窗帘电机控制是智能家居里典型的双输出控制:正转开帘、反转关帘。程序上必须加互锁,防止Q0.2和Q0.3同时输出1——这会导致电机两端同时通电,轻则烧保险,重则烧电机。梯形图里最简单的互锁就是:正转输出线圈串联反转输出的常闭触点,反转输出线圈串联正转输出的常闭触点。
然后在自动模式下,根据光敏信号或时间参数控制:
- 白天光强时,自动关帘(Q0.3输出3秒,时间到停止);
- 夜晚光弱时,自动开帘(Q0.2输出3秒,时间到停止)。
这里的时间可以用TON定时器,也可以用定时器+计数器组合来做。如果想让毕设更有深度,可以在HMI上设置“窗帘开度”的百分比,然后用S7-1200的PWM输出控制电机运行时间,不过这个属于拓展加分项,基础功能不必强上。
还要注意“行程限位”问题。实物上窗帘电机通常有左右限位开关,一旦触到限位就断开输出。仿真时你可以用两个M点模拟限位信号,并让它们参与输出逻辑,这样程序更完整,答辩时也能解释保护机制。
4.4 烟雾报警与排风联动:优先级最高的安全逻辑
安全逻辑在智能家居项目里最好做,也最容易出彩。烟雾报警不能只亮个指示灯,要联动排风扇和蜂鸣器,还要具备自锁功能——也就是烟雾浓度降到阈值以下后,蜂鸣器不能自动复位,必须人工确认解除报警,这是为了不让操作人员错过危险状态。
程序逻辑:
- 当I0.2(烟雾报警信号)为1,置位Q0.4(排风扇)和Q0.5(蜂鸣器);
- 用M0.3作为报警确认标志,按下解除按钮后,Q0.4和Q0.5复位;
- 报警状态在HMI上用红色闪烁元素显示,提示操作人员。
如果用了模拟量,可以在FC3里加入比较指令,例如AQI值>2000时视为“烟气浓度超标”,Q0.5蜂鸣器输出。这里要注意模拟量信号的处理:S7-1200的模拟量输入模块把0-10V电压转换成0-27648的整型值,所以你的阈值要先做换算。例如10V对应27648,当电压达到2V时,对应的整型值就是5529,程序里用“>=”比较指令去判断。
4.5 温度检测与加热控制
温度控制如果简单做,可以做成:温度传感器输出模拟量,程序里与设定值比较,低于下限启动加热,高于上限停止加热,中间带滞回区。滞回区的意义是防止温度在设定值附近反复启停,导致继电器频繁动作。
例如设定值20℃,回差2℃:低于18℃启动加热,高于22℃停止加热。用两个比较指令就能实现,不需要PID。如果题目明确要求“恒温控制”,那你就上一路PID,S7-1200里有PID_Compact指令块,整定好后输出控制加热器通断,深度一下子就不一样了。PID整定对毕设来说不用精确,先设个经验参数,仿真观察曲线,再做微调。
5. 仿真演示与联调:让电脑像真实控制面板一样跑起来
5.1 HMI监控画面的布局设计
画面建议做成三块区域:顶部是报警信息栏和模式状态,中间是各个房间的灯光和窗帘控制按钮,底部是温度、烟雾浓度数值显示和报警复位按钮。
按钮的“操作模式”选“按一下更改位”,连接PLC的M点;状态显示用图形元素的“属性→动画→外观”,连接PLC的Q点,值为1时显示绿色,值为0时显示灰色。这样你在HMI仿真里点一下“客厅灯开”按钮,PLC程序扫描到M点置位,输出Q0.0为1,HMI画面里的灯泡图标立即变色,效果非常“实物化”。
5.2 仿真联调的典型操作序列
一个完整的演示流程可以这样走:
- 启动PLCSIM,下载程序,切RUN。
- 启动HMI仿真,画面弹出。
- 在HMI上把“自动/手动模式”切到自动。
- 在PLCSIM变量表里强制I0.1=1(模拟夜晚),强制I0.0=1(模拟人体感应),观察Q0.0是否置位,HMI客厅灯是否变绿。
- 取消I0.0,观察30秒定时器是否让Q0.0复位。
- 再把模式切到手动,按下“窗帘开”按钮,观察Q0.2输出和HMI窗帘图标的位置变化。
- 强制I0.2=1,观察Q0.4、Q0.5是否同时动作,HMI报警画面是否闪烁。
- 按下“报警复位”,确认报警输出复位。
这个流程走完,整个系统的功能和“人机交互界面”都有了,答辩时照着演示一遍,清晰又有说服力。
5.3 仿真容易忽略的参数处理
仿真和实际有一个差别:PLC程序的扫描周期非常快,但HMI刷新增量可能较慢,所以你在HMI上看到的亮度、状态变更可能滞后几十毫秒,这是正常的。如果变化太突兀,可以在HMI画面元素里设置“过渡动画”效果,比如颜色变化加淡入淡出,演示观感会好很多。
此外,PLCSIM里的定时器是真实执行的,TON预设30秒,它会真的跑30秒。如果你想快速演示效果,可以在程序里把定时器预设值设成3秒,或者干脆做一个“演示模式”的M开关,用跳跃指令切换定时值,这样答辩时等待时间少,视频效果也更紧凑。
6. 常见问题排查与毕设避坑实录
6.1 高频问题速查表
| 现象 | 可能原因 | 解决办法 |
|---|---|---|
| PLCSIM可以启动,但程序下载报错 | 项目在线检查不一致或设备版本不匹配 | 点击下载时选择“全部覆盖”,并确认PLCSIM版本与TIA版本一致 |
| HMI按钮点了没反应 | 变量没有关联PLC地址,或连接未建立 | 检查HMI变量表的连接对象和绝对地址,检查网络视图连线与HMI连接状态 |
| 定时器不动作 | 定时器触发条件一直为0,或定时器被重复复位 | 先强制触发条件为1,观察定时器是否运行;检查是否在多个网络重复复位同一定时器 |
| 模拟量数值始终是0或27648 | 仿真时未强制模拟量通道值,或通道未组态 | 在PLC变量表/PLCSIM模式下直接修改IW值,检查组态中的测量范围设置 |
| 输出灯亮了但HMI状态不变 | HMI画面元素绑定地址错误 | 确认图形动画“外观”里连接的是Q点地址,不是M点或内部变量 |
| 正反转同时输出 | 互锁触点漏写或写反 | 检查梯形图中Q0.2和Q0.3的常闭触点互锁;仿真时强制互锁测试 |
| 有报警输出但无法解除 | 未复位报警输出线圈,或复位被条件屏蔽 | 确认复位逻辑放在报警条件判断后面,并检查M0.3复位标志是否可置位 |
6.2 程序下载提示“设备不兼容”的解决思路
PLCSIM版本和TIA版本必须一致,否则会异常。例如你装了TIA V15.1,那就必须安装对应的PLCSIM V15.1。如果你装了V17,又想打开V15.1的旧项目,经常会出现“无法下载”的情况。解决办法有三个:第一种是把项目升级到当前博途版本,但升级后旧版本软件就打不开了;第二种是安装多个版本的PLCSIM,但环境变量冲突风险较高;第三种,也是最推荐的一种,新开一个空白项目,把旧项目中的程序块复制粘贴过来,然后重新组态硬件和HMI。这个方法能最大程度保留代码,同时避免版本冲突。
6.3 仿真与实物结合的补充思路
如果你的毕设要求里明确写了“实物仿真”,但实验室又只有一块S7-1200 PLC,没有其他传感器实物,我建议做一个“混合模式”:PLC程序保持不变,实际只接通几个按钮作为输入点,再通过HMI仿真画面显示所有输出状态。这样一来,按下物理按钮时,PLC确实采集到了I点信号,程序真实运行,输出结果在HMI上反馈。整个过程既有实物PLC的参与,又有仿真画面的展示,答辩时既不会露怯,又避免了传感器配线不稳定的痛苦。
另外,很多同学会问S7-1200能不能用GSD文件做Profinet从站仿真,或者用MODBUS TCP和上位机通信。这些都是加分项,但前提是基础功能全部稳定。先保证5个核心功能都能跑通,再考虑通信拓展。上位的通信调试会比较耗时,而且容易把时间和精力拖进“通信不如预期”的坑里。合理规划毕设时间,比多写一个通信块更重要。
6.4 一些数据块和变量的管理习惯
变量命名不要用默认的Tag_1、Tag_2,建议用“HumanSensor”、“LightSensor”、“SmokeAlarm”这类有意义的名称。在HMI画面里关联变量时,下拉列表看到这些名字,效率会高很多。另外,把所有定时器预设值和比较阈值统一放到DB数据块里,用“符号访问”方式调用。例如DB1.LightTimerPreset,改成3秒、30秒只需要改DB里的值,不用翻梯形图。这在答辩时也是个亮点:说明你有参数化管理意识,而不是把所有数值硬编码在线圈里。
7. 关于答辩讲解与文档整理的几点个人经验
7.1 程序讲解的叙事顺序
答辩时讲程序不要从OB1开始逐条读。正确顺序是:先讲系统需求,再展示I/O表,然后把每个功能块的梯形图截图按“输入条件→控制逻辑→输出结果”讲一遍。讲到定时器时,强调延时目的是什么;讲到互锁时,强调安全考虑是什么。不是所有老师都懂PLC,但你讲得越有逻辑,越能说明这个项目是你自己做的。
7.2 仿真演示的准备细节
所有仿真演示都要提前录屏。录屏这件事我反复强调过,因为现场演示最容易出幺蛾子,投影仪分辨率问题、HMI窗口弹不出来、PLCSIM授权失败、电脑蓝屏,哪一个发生都够让你冷汗直冒。提前录3分钟的视频,放在优盘里,万一现场环境出问题,直接播放视频,至少不会冷场。
7.3 程序备份的习惯
每完成一个功能模块,就另存一个V1.0、V1.1的版本,不要一直在同一个文件名上改。因为PLCSIM跑得好好的,你改了一个逻辑条件后整个程序突然报错,这种事太常见了。有备份就能回滚,没备份只能抓瞎。博途项目的归档功能也很实用,最后交材料时直接生成一个ZIP归档文件,方便指导老师查看。
做了这么多PLC项目,我的体会是,S7-1200这套工具链做智能家居毕设,真正的难点不在指令集,而在你能不能把“逻辑”讲清楚。灯为什么亮、帘子为什么动、报警为什么响,背后的每一个条件都是I/O信号和控制逻辑的映射。把这张映射表搞透了,代码只是一种表达方式而已。
至于“仿真是实物仿真”这个要求,其实就是让你在资源和环境受限时,用软件手段还原硬件的控制行为。别把仿真当退而求其次,仿真做得好,反而能体现你对控制系统的理解比单纯接线更深一层。
最后分享一个小技巧:把所有输入信号做成“仿真面板”,也就是在OB100初始化时,把HMI上模拟的传感器信号写入M区或者DB区,再用这些区域值去触发程序逻辑,而不是直接使用I点。这样你以后换真实验收,只需要增加一行“模块替换”程序,把所有模拟信号切换到真实I点,程序主体一行都不用改。这个设计思路比单纯跑通仿真更值得写入你的毕设总结里。