news 2026/10/19 1:43:14

西门子PLC入门指南:从扫描周期、接线到梯形图启保停程序

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
西门子PLC入门指南:从扫描周期、接线到梯形图启保停程序

我最早接触PLC,是刚入行时在某个设备调试现场。当时一位老师傅蹲在一台不起眼的黑色机箱前,用笔记本电脑连了根网线,屏幕上花花绿绿的梯形图亮着,他飞快地改了几个触点,回头跟我说“好了,再试一下”,电机居然就按新逻辑转起来了。那台黑色机箱就是PLC,笔记本里打开的软件叫编程工具,而那一排排接线端子后面连着的,是整个产线的“神经系统”。

这个系列就是为完全没接触过PLC、又想认真入门西门子PLC的人准备的。第一篇文章我尽量不堆指令、不拉功能表,先把“PLC是什么、为什么学西门子、家族怎么认、硬件怎么接线、数据怎么组织、第一段程序怎么写”这些地基打牢。把基础理解到位了,后面学定时器、计数器、通信、模拟量,才谈得上效率。

1. 为什么我建议从西门子PLC入门:三个不是理由的理由

1.1 现场能见度决定了你的学习动力

很多人会纠结第一个PLC品牌学哪个。我的建议很直接:看你们当地、你将要去的行业里什么最多。国内大量加工设备、装配产线、包装机械、环保设备、物料输送系统,西门子S7系列的出现频率非常高。你学会之后去现场,打开控制柜看到CPU上的“SIEMENS”字样,心里至少有底气——这玩意儿我见过。

如果学了一个市面上很少见的品牌,理论上学通了逻辑一通百通,但你在现场会异常痛苦。因为你的同事、前辈、维修手册、备件库都可能围绕主流品牌运转。学西门子不是因为它比别的品牌“高级”,而是因为你在大多数设备现场都绕不开它。这是很现实的问题,学习资料也好找,遇到问题发个截图,论坛里能帮你的人也多。

1.2 编程软件的生态决定了你的上手速度

西门子主流的编程软件是TIA Portal(博途),它把PLC编程、HMI组态、驱动配置都收在同一个工程里。对一个新手来说,这意味着你只需要熟悉一套界面、一套项目结构,就能把以后要用的东西都装进脑子里。

而且博途自带PLCSIM仿真功能。哪怕你手上暂时没有实物PLC,也可以在电脑上建一个CPU,下载程序进虚拟PLC,然后在线监控、强制变量、看波形。我常跟朋友说,想快速验证一段程序的逻辑有没有问题,开仿真比去现场接实物还快。对于零基础入门,这一点太重要了——它能让你在没花大价钱买硬件之前就先“跑”起来。

1.3 你真正要学的其实是一种控制思维

很多新手以为学PLC就是背那几十条指令。真不是。指令只是工具,你真正要建立的是“输入→程序→输出”的控制思维:现场传感器是输入,程序按你的逻辑运算,输出控制接触器、电磁阀、变频器。这个思维框架一旦建立,换任何一个品牌的PLC,对你来说都只是换一套指令符号和软件界面的事,核心逻辑完全相通。

西门子的数据组织、寻址方式、块结构相对严谨,用它入门,你会更早养成“写程序先规划数据、先做IO表”的职业习惯。这个习惯比记住某条指令的用法值钱得多。以后你接触三菱、欧姆龙、基恩士,会发现它们在底层逻辑上大差不差,真正需要适应的只是软件风格和地址格式而已。

2. PLC到底在车间里干了什么:扫描周期的秘密

2.1 从老式继电器控制柜的痛点说起

在PLC普及之前,生产线上的顺序控制靠什么?靠成百上千个中间继电器、时间继电器、接触器,在控制柜里密密麻麻地接线。你要实现“先启动A电机,5秒后启动B电机,再等待某个到位信号才允许下一步”,就得把对应的继电器线圈、触点串并联起来。

这套东西的毛病很明显:改一次逻辑就是改一次线,控制柜越大,排查故障越痛苦。一个车间老师傅跟我说过,当年查一个莫名其妙的间歇性停机,拿着万用表在柜子里量了两天,最后发现是某根线被老鼠咬了一半。

PLC把这种“硬件接线逻辑”变成了“软件程序逻辑”。同样一个启保停、同样一个延时启动,以前靠继电器硬接线,现在只要在程序里画一个梯形图,甚至写几行语句。这就是PLC最核心的价值:用软件替代硬件接线。

2.2 扫描周期:PLC“干活”的三步循环

PLC运行的时候,CPU并不是像人一样同时盯着所有输入输出看,它是按一种固定节律循环工作的。这个节律叫扫描周期,一般由三步组成:

  1. 输入采样:CPU把每一个输入端子(传感器、按钮、开关)的电平状态统一读取一遍,存到内存的“输入映像区”。这一步相当于给所有输入端拍了一张照片。
  2. 程序执行:CPU从程序第一条指令开始,逐条执行到最后一条。执行过程中根据输入映像区里的数据和程序逻辑,算出所有输出的结果,先暂存在“输出映像区”。
  3. 输出刷新:CPU把输出映像区里的结果一次性送到输出模块,让对应的输出端子得电或失电,从而控制接触器、指示灯、电磁阀。

这三步合在一起,就是一个扫描周期。完成一遍通常只需要几毫秒到几十毫秒,取决于程序大小和CPU速度。你盯着PLC工作时,感觉它像是实时响应一切,实际上它是以极快的速度一遍遍循环刷新。

打个比方:一个班组长主管一条产线,他每隔固定时间就去各工位巡查一遍(输入采样),然后回到办公室对照流程单决定谁该做什么(程序执行),再出去宣布指令(输出刷新)。周而复始。PLC就是这个不知疲倦的班组长。

2.3 为什么扫描周期决定了PLC的“脾气”

理解扫描周期之后,很多现象就解释得通了。

第一个现象:为什么程序里前后两行指令交换位置,结果可能不一样?因为PLC是顺序执行的,后面的指令可以使用前面指令的结果,反过来就不行。你写程序时,顺序本身就是逻辑的一部分。

第二个现象:为什么PLC的响应会有微小延迟?从输入变化到输出响应,最坏情况下要等一个完整扫描周期。对于控制电机、气缸这类动作,几毫秒延迟根本无所谓;但如果你做高速计数、运动控制,就必须考虑这个刷新节奏,有时要借助高速输入或中断功能。

第三个现象:为什么PLC比单片机更“稳”?不只是因为硬件更抗造,更因为PLC的系统机制是固定循环扫描、固定IO刷新,程序写出格了顶多PLC进入停机状态,不会像复杂单片机系统那样“跑飞”了导致输出乱跳。这种确定性,对一个要连续运行几千小时的产线来说,是极其宝贵的。

3. 西门子PLC家族怎么选:S7-200 SMART、S7-1200、S7-1500

3.1 三款主流型号定位对比

西门子PLC家族型号很多,但当前市面上主流学习、使用的就是下面这三款。我给你拉个表格,直观一点:

型号定位编程软件典型I/O规模通信能力典型应用场景大致价格水平
S7-200 SMART小型可编程控制器STEP 7 Micro/WIN SMART几十点为主,可扩展以太网、RS485、PPI单机设备、小型自动化、教学入门千元级
S7-1200中小型/中型TIA Portal + STEP 7百点以内,模块化扩展PROFINET、以太网、RS485、CAN等中小型产线、多设备联动、运动控制数千元级
S7-1500大型高端TIA Portal + STEP 7数百上千点,分布式扩展PROFINET、PROFIBUS、以太网等大型产线、流程控制、高速逻辑处理万元以上级

S7-200 SMART是国内单机配套市场的老熟人,很多电工师傅就是靠它起步的,价格便宜,使用简单。S7-1200是当前工业自动化的主流方向,博途生态完整,从它入手学到的知识能平滑过渡到S7-1500。S7-1500性能更强,适合大型项目,但新手没必要一步到位,你很难在入门阶段体会到它强在哪里。

3.2 新手学习到底买哪一台

如果预算有限,我建议先买一台S7-200 SMART的CPU,配一个24V开关电源和一两个输入输出按钮,几百块就能搭一套最小学习系统。它的软件上手快,梯形图界面直观,非常适合跑通“点灯、启保停、定时器”这类基础实验。

如果预算稍微宽裕,我更推荐直接上S7-1200 + TIA Portal。原因有三个:第一,TIA Portal是你未来绕不开的工具,早接触早熟悉;第二,S7-1200的组态方式更接近大型PLC的工程化思路,模块化扩展和通信组态都比200 SMART规范;第三,200 SMART学完之后你还是得再学博途,不如一步到位。

但不管选哪台,我说句实在话:**硬件可以后买,仿真先跑起来。**先装软件,把PLCSIM用熟,在电脑上把启保停、定时器、计数器这些经典程序都玩一遍,再决定买什么硬件。很多人一冲动买了PLC,结果软件都没装上,就放在角落里吃灰了。

3.3 扩展模块和通信模块第一次别钻太深

你第一次看到西门子PLC的选型手册,可能会被一堆模块名称吓到:SM、CM、CP、PM……我给你一个最简单的归类:

  • SM:信号模块,负责扩展IO点数。比如你CPU自带的输入输出不够用,就加一块数字量输入模块或模拟量输出模块。
  • CM/CP:通信模块/通信处理器,负责扩展通信接口。比如你要连第三方仪表、接串口设备、做以太网通信,就选对应的通信模块。
  • PM:电源模块,给模块和传感器供电。

第一次接触只需要知道“按需添加”这四个字就够了。以后做具体项目时,根据点数、信号类型、通信需求去选对应模块,这个能力在博途的硬件目录里练几次就能学会。现在强行背模块型号没有意义,反而让你觉得PLC很难。

4. 把一台真实PLC拆开看:指示灯、接线端子和IO模块

4.1 先从CPU模块的“脸”开始认

拿到一台西门子PLC,最先看到的是正面的状态指示灯和端子排。指示灯你必须要认识,它们是判断PLC“身体状态”的第一道线索:

指示灯颜色含义常见原因
SF红色系统故障硬件组态与实际不符、程序错误、模块异常
RUN绿色运行状态CPU正在执行程序
STOP黄色停止状态程序处于停止,或发生故障后停机
MAINT黄色维护请求需要维护或检修,具体看诊断信息

很多人第一次接电发现RUN灯不亮,心里就慌。其实先看STOP灯是不是亮着,如果亮着,多半是CPU在停止模式。把运行开关拨到RUN位置,或者用软件点“下载并运行”,灯变绿就正常了。

CPU上还能看到以太网口、PROFINET口、存储卡插槽等。第一次不用逐个搞明白,但你要记住:网口是博途下载程序的主要通道。很多新手说“下载失败”,百分之八十是电脑和PLC的IP地址不在同一网段,这个坑我后面会说。

4.2 输入端接线:源型、漏型与NPN/PNP的缠绕

输入端接的是传感器和按钮信号。这里新手最容易懵的两个词是“源型”和“漏型”。

从电流方向理解会简单一些:

  • 漏型输入:电流从外部传感器流入PLC输入端。公共端(通常是1M、2M这类端子)接电源正极,传感器信号端接PLC输入端子,传感器另一侧接电源负极。
  • 源型输入:电流从PLC输入端流出到传感器。公共端接电源负极,传感器信号端接PLC输入端子,传感器另一侧接电源正极。

和这组概念密切相关的,是NPN传感器和PNP传感器的选择。用最朴素的话讲:NPN型传感器输出“低电平”(电流从传感器流出去),通常配漏型输入;PNP型传感器输出“高电平”(电流从传感器进来),通常配源型输入。

我给你整理一个对照表:

传感器类型输出状态西门子输入模块推荐接法常见场合
NPN(开集极)导通时输出低电平漏型接线日系设备、老式接近开关常见
PNP(推挽输出)导通时输出高电平源型接线欧系设备、西门子配套最常见

实操中的教训是:接法错了,传感器信号送到PLC上会死活不亮CPU输入指示灯。我以前见过一个维修师傅,换了一个接近开关,查了一上午没查出问题,最后发现旧传感器是NPN,新买的是PNP,公共端接法完全不一样。这件事听起来很基础,但现场真的很常见。所以第一次接线时,先看传感器名牌上写的是NPN还是PNP,再决定公共端怎么接。

4.3 输出端接线:继电器输出与晶体管输出不能乱用

输出端接的是接触器、电磁阀、指示灯这类负载。西门子的数字量输出模块主要有两类,差异很大:

特性继电器输出晶体管输出
驱动负载类型交流/直流都可以只能直流
响应速度较慢(毫秒级)很快(微秒级)
机械寿命有限(触点磨损)电子开关,寿命长
典型用途一般开关控制高频脉冲、伺服脉冲、快速动作
价格相对便宜相对高一些

新手容易犯的错是:用一个晶体管输出点直接接220V交流接触器线圈,结果触点烧毁,因为晶体管只能控制直流负载。还有的人把两个不同电压等级的交流负载并到同一个公共端,导致模块过热。输出接线之前,务必先查模块手册的接线图和最大电流参数。

我自己的习惯是:凡是用作普通启停、阀门开关的,优先选继电器输出,皮实耐操;凡是需要发高速脉冲(步进驱动器、伺服脉冲口)的,才用晶体管输出。这样既能控制成本,又能避开一大半烧端子的坑。

4.4 接线之前一定先看IO表

最后一个硬件层面的建议:动手接线之前,先把IO表列出来。什么叫IO表?就是一张表格,写清楚每一路输入接到哪个传感器、地址是多少,每一路输出控制哪个负载、地址是多少。格式大致如下:

地址信号类型设备名称规格说明备注
I0.0数字量输入启动按钮常开触点绿色
I0.1数字量输入急停按钮常闭触点红色
Q0.0数字量输出主接触器AC220V线圈并联RC吸收

这张表既是接线工的图纸,也是你写程序时的依据。很多新手跳过IO表直接开干,结果线接了一大半才发现按钮接到哪个输入点忘了,回过头来拿万用表一根根对。写IO表多了,你会发现自己写程序也越来越有章法,因为每个点位的用途都用一句话说清楚了。

5. 写程序之前先搞懂数据:位、字节、地址与存储区

5.1 位、字节、字、双字:用“抽屉”来理解

PLC程序操作的本质是处理二进制数据。对新手,我会拿抽屉来打比方。

一个位就是一个小抽屉,里面只能放0或1。一个字节是8个抽屉并排。一个字是2个字节并排(16位)。一个双字是4个字节并排(32位)。

因为PLC里有大量的数字比较、运算、传输,你得明白自己操作的数据占多宽。比如你要存一个计数结果,到1000为止,用16位的字就够了;如果数到100000,就得用32位的双字。这和家里买柜子差不多——东西少买小柜子,东西多买大柜子,买大了浪费地址空间,买小了装不下。

5.2 I/O地址到底怎么读:I0.0、Q1.3这种“暗号”

西门子PLC的地址格式是“区符号+字节地址.位地址”。最常用的两个区是I和Q:

  • I区:输入映像区,I0.0表示第0个字节的第0位,I1.3表示第1个字节的第3位。
  • Q区:输出映像区,Q0.0表示第0个字节的第0位,Q1.3同理。

这样按“字节.位”来编地址,一个字节可以表示8个输入点或输出点。比如你有16个输入点,用两个字节就够,地址从I0.0到I0.7、I1.0到I1.7。

很多从三菱PLC转过来的朋友会对这套地址格式不适应,因为三菱喜欢用X0、Y0这种“八进制按位编号”。这是两个品牌风格不同,没有谁对谁错。你要做的就是尽快把I0.0这种格式看顺眼,尤其是调试时看到程序里密密麻麻的I/Q地址,要能快速对应到柜子里某个端子。

5.3 存储区是怎么分工的:I、Q、M、DB

除了I和Q,你还会经常在程序里看到M区和DB区。我给你一个简明分工表:

存储区名字作用新手理解
I区输入映像区保存CPU从输入端读到的信号状态“现场进了什么信号”
Q区输出映像区保存CPU要输出到负载的信号状态“PLC要驱动什么”
M区内部标志位程序内部的中间变量、标志位“程序里的草稿纸”
V区(200 SMART中)变量存储区保存数据、配方、中间结果“200 SMART的记事本”
DB区(1200/1500中)数据块按结构保存用户数据“1200/1500的记事本”

新手经常会问:M区和DB区都能存中间数据,有什么区别?简单理解,M区适合放零散的Bool量、标志位,比如“运行中”“报警中”这些状态;DB区适合放结构化数据,比如一组电机参数(速度、加速度、温度上限),把它们捆在一起。初期你就记住“草稿纸和记事本”的区别,等做复杂项目时自然能体会。

5.4 常用数据类型:Boolean、Int、Real先分清

写程序时,每个变量都有数据类型。新手最开始只需分清三个:

  • Bool:布尔量,一位,真/假,用于触点、线圈、标志位。
  • Int:16位整数,范围-32768到32767。适合计数、转速、时间、数量这类整值。注意它是有正负的,你要是把0到40000的范围塞进Int,会直接溢出,结果完全不对。
  • Real:32位浮点数,带小数,适合温度、压力、模拟量转换后的工程值。

模拟量处理时最容易犯的错是把整数(如0-27648)当成浮点数去算,或者反过来。西门子模拟量转换程序里,原始值通常是Int,温控工程值你往往要转成Real再做比例运算。这个转换逻辑先有个印象,等到专门讲模拟量时再深挖。

6. 启保停电路:新手写第一段梯形图的标准起点

6.1 梯形图其实就是“电气图纸的亲儿子”

梯形图是PLC最经典的编程语言,也是绝大多数维修电工最有亲切感的一种表达方式。它长得很像原来的继电器控制图纸:左边一根母线相当于电源火线,右边一根母线相当于零线,中间是触点和线圈首尾相连。触点导通,电流就能流过去,线圈就得电;触点断开,电流断,线圈失电。

学习梯形图,本质上是把原来“继电器硬接线的逻辑图”平移成“软件逻辑图”。如果你有电工基础,看上十分钟就能上手;没有电工基础也没关系,只需要把两个基本元件记住:常开触点(| |),平时是断开的,条件为真时闭合;常闭触点(|/|),平时是闭合的,条件为真时断开。线圈(( ))则是最终被驱动的对象。

6.2 启保停的控制逻辑与梯形图

“启保停”是PLC入门必学的第一个程序,意思是:按一下启动按钮,电机启动;松开按钮,电机依靠自锁继续运行;按一下停止按钮,电机停止。

控制逻辑拆开讲:

  • 启动按钮是一个瞬动常开触点,接到I0.0。
  • 停止按钮是一个瞬动常闭触点,接到I0.1。
  • 输出线圈是Q0.0,接接触器控制电机。
  • Q0.0自己的一个辅助常开触点并联在启动按钮两端,这叫自锁。

工作过程:按下启动按钮,I0.0闭合,电流流过I0.1的常闭触点,Q0.0得电,电机启动。同时Q0.0的辅助触点闭合,这样即使你松开启动按钮,电流依然能通过这个辅助触点继续给Q0.0供电。按下停止按钮时,I0.1的常闭触点被断开,电流中断,Q0.0失电,电机停止。

梯形图画出来大概是这个形状:

Network 1:电机启保停 I0.0 I0.1 Q0.0 --| |----------|/|-----------( )---- | | | | Q0.0 | | |---| |------| |

这里有一个新手最容易犯的错误:**停止按钮在梯形图里必须用常闭触点(|/|),不是常开触点。**为什么?因为物理上你用的是一个常闭按钮,平时它给PLC输入信号是导通的,一旦按下才断开。你要是程序里写成了常开触点,电机会变成“按下停止按钮才启动”,完全反了。这个错几乎每个带过徒弟的工程师都见过,所以我单独拎出来说。

6.3 在TIA Portal里跑通第一个程序

假设你已经装好了博途软件,按下面这几步走:

  1. 新建项目,给项目起个名字。
  2. 添加设备,选你实际使用的CPU型号。没有实物可以先选一个模拟用的CPU,后面用PLCSIM跑。
  3. 进入“程序块-主程序”编辑界面,新建一个Network。
  4. 从指令树里拖一个常开触点放上去,地址填I0.0;再拖一个常闭触点,地址填I0.1;最后拖一个线圈,地址填Q0.0。
  5. 把Q0.0的辅助触点并联在I0.0触点两端。方法是在分支线上放一个常开触点,地址填Q0.0。
  6. 保存并编译。
  7. 点击下载按钮,把程序下载到CPU或仿真PLC。
  8. 进入在线监控,绿色高亮表示该触点或线圈正在导通。

第一次跑通这个程序,你会立刻理解什么叫“自锁”、什么叫“软继电器”。这个体验比看十遍教程都有效。没有硬件的,用PLCSIM同样能观察逻辑变化——按下启动按钮,Q0.0变绿并保持;按下停止,Q0.0变灰。

6.4 在线监控时注意的三个细节

第一,程序里绿色高亮不代表现场真的有电压,它只代表逻辑状态为“1”。真正的接点是否得电,要看输出模块端子的指示灯和万用表读数。

第二,如果启动后Q0.0一直没能保持,先检查你画的并联自锁触点是不是不小心挂在了线圈右边而不是线圈左边。梯形图里自锁支路应该挂在触点回路里,不是挂在线圈后面。

第三,下载程序之后,如果PLC进入STOP状态,多半是程序编译有错或者组态与硬件不一致。不要慌,看诊断缓冲区,双击错误信息,它会带你跳转到出错的位置。

7. 新手最容易搞错的几件事与我的避坑心得

7.1 五个常见误区

误区一:只玩仿真,不碰实物。仿真能让你理解逻辑,但代替不了实物接线训练。现场的问题往往出在接线、干扰、电源地处理、传感器匹配这些方面,纸上谈兵永远发现不了。我认识不止一个朋友,仿真玩得很顺,真到设备现场却被一个NPN/PNP问题困住半天。

误区二:一上来就研究高级功能。FB、FC、SCL、面向对象、工艺对象,这些东西名字听着很高级,但如果你连启保停和定时器的逻辑都没吃透,学它们只会一团浆糊。PLC学习是金字塔结构,底层逻辑理解越牢固,上层功能学起来越轻松。

误区三:不做IO表,地址随手写。写程序永远不规划地址,想到哪写到哪,结果程序写到一半发现Q0.0重复使用了,或者输入映射错位。这个习惯非常危险,程序越长,越难排查。

误区四:只背指令,不读手册。很多新手喜欢看短视频里教的“必背指令”,但遇到一个陌生问题就不知道怎么查手册。你要锻炼的是“查手册的能力”:这个指令参数什么意思,模块怎么接线,故障代码怎么解。手册就是工程师的工具书,多翻几次就熟了。

误区五:同时学多个品牌。今天看西门子,明天看三菱,后天看欧姆龙,结果哪个都没学透。我的建议是咬住一个品牌学够半年,先把一个体系的软硬件吃透,再横向迁移。

7.2 我建议的学习节奏

如果你打算系统学下去,可以按这个节奏来:

第一阶段(第1周):安装软件,认识PLC硬件,跑通启保停程序,理解扫描周期和IO地址。

第二阶段(第2-4周):学定时器(TON、TOF、TONR)、计数器(CTU、CTD、CTUD),做电机正反转、星三角降压启动、顺序启动等经典案例。每个案例都要亲手写、亲手仿真、尽量动手接实物。

第三阶段(第1-2个月):接触模拟量处理(温度、压力、变频器频率给定),学习如何做工程量换算;接触触摸屏组态,把PLC和HMI连起来做一个简单的监控画面;了解以太网通信、Modbus通信的基础。

第四阶段(半年以后):根据你所在行业选择方向。做单机设备的多学运动控制和伺服,做流程控制的多学PID调节和SCADA,做搬运物流的多学定位和变频通信。到这个阶段,你已经有能力自己查手册、自己选型、自己解决现场问题了。

7.3 最后一句话

我带过几个入行的年轻人,也见过很多自学成才的维修师傅。你问他们学PLC最难的是什么,几乎没人说是指令背不下来,几乎都说是“建立控制思维”的过程——你要学会像PLC一样思考:什么信号进来,程序怎么处理,结果怎么输出,一句话、一个点、一个状态都不能含糊。

这一篇把基础的地基打完了。下一篇我会讲定时器和计数器,那是PLC程序里用到最频繁的“软元件”,也是实现几乎所有时间控制和次数控制的核心。拿到这篇文章的朋友,先把软件装好,把启保停程序跑通,再往下看,你会顺很多。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/19 1:42:12

STM32C5与CubeMX2深度解析:从选型到避坑的实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/19 1:41:38

Python62:核心语法-函数基础-案例

案例# 案例1:定义一个函数:根据传入的底base和高high计算三角形triangle面积的函数(三角形面积 底*高/2)。 def triangle_area(b, h):"""根据传入的底base和高high计算三角形triangle面积:param b: 底长:param h:…

作者头像 李华
网站建设 2026/10/19 1:40:56

STM32在线IAP升级全攻略:Bootloader设计、Flash分区与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/19 1:39:23

Unity UGUI移动端异形屏适配:安全区与Canvas Scaler实战

1. 移动端UI适配的核心痛点与整体思路做过移动端项目的同行大概都有过这种体验:在编辑器里调得好好的界面,一打包到真机上就全乱了——刘海屏把顶部按钮遮住、底部虚拟导航栏压住了技能栏、平板设备上UI被拉伸得不成比例。这些问题在Unity的UGUI体系里尤…

作者头像 李华
网站建设 2026/10/19 1:38:21

大麦网自动抢票脚本:部署、参数配置与运行原理

大麦网自动抢票脚本:部署、参数配置与运行原理 【免费下载链接】Automatic_ticket_purchase 大麦网抢票脚本 项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase Automatic_ticket_purchase 是一个面向大麦网的 Python 抢票工具&a…

作者头像 李华