news 2026/10/19 15:18:00

基于PLC的校园照明控制系统设计与实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于PLC的校园照明控制系统设计与实践

1. 项目概述与设计思路

校园照明这件事,乍一听好像就是个“天黑开灯、天亮关灯”的简单活,但真去管过的人才知道有多折磨人。教学楼、图书馆、宿舍区、操场、主干道、林荫小道,每块区域的照明需求完全不同:有的要通宵常亮,有的只在下晚自习那半小时亮,有的遇到阴雨天必须提前开启,寒暑假又得彻底关掉。靠人去按开关,哪怕专门配两个后勤师傅三班倒,也总有漏灯、晚开、早关的情况,电费账单还年年走高。这也是我接下这个基于PLC的校园照明控制系统项目时,第一个想明白的事:这不是一个“做个自动开关”的电气题,而是一个“如何用一套可靠的控制系统,把分散在校园各处的照明设备管起来”的管理题。

用PLC来做校园照明,最大的优势不在“自动化”本身,而在于它的可编程、可监控、可扩展。你可以把光照度、时间表、节假日、紧急模式全部揉进一套逻辑里,让系统自己判断什么时候该亮、亮到什么程度、哪些回路必须保持。比起传统的继电器控制——改一次定时就要爬一次控制柜重新接线——PLC只需在软件里改个参数、下载一段程序,现场完全不用动。这一点在校园这种需求经常变的环境里,价值远高于那点硬件成本差。

这篇内容面向的读者,不只是电气自动化专业的在校学生,也包括学校后勤的电工师傅、做楼宇自控的工程同行。你可能是为了交一份毕业设计,手上刚好有“设计源文件+万字报告+讲解”的整套参考;也可能是学校要改造老旧照明系统,想看PLC方案到底怎么落地、值不值得上。不管哪种情况,这篇的重点都不是摆一堆梯形图让你抄,而是把“为什么这么设计、现场会踩哪些坑、报告里该写什么”讲透。

1.1 核心需求解析

先理一下校园照明到底有哪些典型场景。我按实际项目的功能分区习惯,把它拆成四类:

宿舍区照明。这区域的灯,使用高峰期集中在晚上十点前后和早晨六点到七点,深夜到凌晨基本没人,但出于安全考虑又不能全灭。最适合的模式是“高峰全亮、深夜隔盏亮”,也就是隔一个灯亮一个,保持基本照度又省电。

教学区与图书馆照明。需要的是可预测的定时控制,比如晚上六点半到十点保持全亮,周末白天如果有自习需求,则切换到“光照度不足才开启”的光控模式。

主干道与操场照明。道路照明讲究均匀性,操场则要考虑场地活动安排。这类区域我一般建议做“光控优先、时控修正”:光线暗到阈值以下才允许开灯,但到了深夜十二点以后自动切换到半亮状态,避免整夜满功率运行。

景观与应急照明。景观灯追求效果,可以直接用独立的时控回路;应急照明则必须独立于所有自动逻辑,保证消防联动时强制点亮。

综合来看,一套合格的校园照明控制系统,至少要满足三个层面的需求:安全层面,保证夜间校园基本照度,应急回路不能失效;管理层面,要能灵活应对上课日、周末、假期、考试周等不同时间表;经济层面,通过分区控制、隔盏亮、分时调光等手段,把无谓的空耗电费压下来。

1.2 方案选型:为什么是PLC

这里有个很实在的问题:校园照明控制,用单片机、用智能时控开关、甚至用物联网云平台都能做,为什么我偏好PLC?答案不在于“PLC更高级”,而在于“PLC更适合现场电气工程师维护”。

单片机方案,成本确实低,但开发周期长,一旦出了问题,学校后勤很难找到人改程序,更别提看懂你的代码。云平台方案,控制灵活,但校园网络万一断了,整个照明系统就瘫了,这对安全要求较高的场景是不能接受的。智能时控开关最便宜,但功能太死,改个节假日时间表要把每个开关重新按一遍,几十个回路让你按到怀疑人生。

PLC方案的逻辑是:把控制逻辑全部下沉到本地,网络断了不影响基本运行;程序用梯形图编写,稍微学过电工基础的人都能看懂维护;I/O点数和通讯接口留足余量,以后要接入光照传感器、人体感应、触摸屏甚至上位机监控,都不用换主机。从全生命周期的维护成本来算,PLC反而是最划算的选择。

当然,PLC也不是没有缺点。它的强项是逻辑控制和开关量处理,做模拟量采集(比如光照度连续变化、电流检测)不擅长,但校园照明恰恰主要是开关量控制,只要选型时把CPU本体和扩展模块搭配好,这个劣势基本不影响。如果你后续想加入调光功能,可以考虑加模拟量输出模块控制0-10V调光驱动器,或者直接用带调光功能的继电器输出模块,这部分我在后面的扩展思路里细讲。

2. 系统架构与硬件选型详解

2.1 PLC机型选型

具体到设备选型,我推荐以“点数够用、留30%余量、通讯接口齐”为原则。校园照明项目通常是几十个回路,开关量输入几十点,输出几十点,属于典型的小型PLC应用场景。市场上用得最多的是西门子S7-200 SMART和三菱FX3U/FX5U系列,两者都是主流选择,选哪个主要看你手上熟悉哪种编程环境。

西门子S7-200 SMART的性价比在这个体量的项目里确实能打。CPU SR20或SR30自带数字量I/O,不够就加一个EM DR16数字量扩展模块;本体带网口,支持Modbus TCP,以后要接触摸屏或上位机组态非常方便。软件用STEP 7-Micro/WIN SMART,免费的,对初学者也友好。

三菱FX3U的强项是指令丰富、运行稳定,国内工厂的老设备里存量很大,如果你以后要跟工厂设备打交道,学FX系列不吃亏。它的编程软件GX Works2也免费,仿真功能比西门子做得更顺手。缺点是要加通讯模块才能方便地上以太网,成本会比西门子方案略高一点。

从项目交付的角度,我额外看重两点:一是编程软件必须是免费的,因为学校或后勤不可能单独买授权;二是资料要好找,毕竟最后接手维护的人可能是下一届学生或新来的电工,遇到问题查得到资料比什么都强。基于这个考虑,西门子S7-200 SMART在校园项目里优势更明显。

2.2 I/O点数计算与地址分配

I/O点数的估算是方案设计的第一步,也是最容易翻车的一步。我见过太多项目做到一半发现输入输出不够用,最后只能外挂继电器来解决,既难看又不可靠。正确的做法是先把控制需求全部列出来,再逐项折算成I/O点。

以一座中等规模校园为例:照明回路按配电箱分,假设共有24个照明回路,每个回路由一个接触器控制,那就是24个PLC输出点控制24个接触器线圈。同时,为了能在监控界面看到每个回路的实际通断状态,需要接触器辅助触点反馈到PLC输入,又是24个输入点。再加上手动/自动切换开关、光照传感器信号、应急联动信号、治安值班室远程控制按钮,输入点大约需要30~32点,输出点24点。

这样算下来,一个CPU SR30是24输入/16输出,明显不够,所以我会选SR30加一块EM DR16(8输入/8输出),凑到32输入/24输出,刚好覆盖需求,余量约20%,对校园项目来说够用了。如果你预计以后要加路灯节能柜、喷淋联动、门禁联动这些,建议直接上SR40或加两块扩展模块,余量拉到30%以上。

地址分配方面,我的习惯是输入按功能区域分组,输出按配电箱回路编号一一对应,绝不能乱跳。比如I0.0到I0.7分配给手动/自动切换和应急联动,I1.0到I1.7分配给宿舍区照明反馈,I2.0开始分配给教学区;输出Q0.0到Q0.7对应宿舍区回路1到8,Q1.0到Q1.7对应教学区回路。这样以后排查故障时,看程序注释和图纸就能直接定位,不需要对着万用表猜。

2.3 控制柜布局与接线要点

控制柜的设计直接决定这个系统后期好不好维护。我见过的反面教材包括:接线端子排得密密麻麻连个标签都没有、PLC放在柜子最底部一进水就跳闸、强电弱电走同一个线槽导致通讯干扰。

布局上,我的习惯是遵循“上强下弱、左进右出”的基本规则。柜顶或柜内上部安装总断路器和各回路断路器,中部安装接触器和热继电器,下部或侧边独立空间布置PLC和24V开关电源,强电线缆和弱电信号线必须分开走线槽,间距至少10厘米以上。PLC的24V电源不要和接触器线圈共用,要单独用开关电源供电,避免接触器吸合瞬间的电压跌落把PLC搞复位。

每个回路的接触器线圈两端必须并联RC吸收回路(电阻电容串联),或者直接选用自带浪涌抑制的接触器。线圈断电瞬间会产生很高的反向电动势,不吸收的话轻则干扰PLC程序跑飞,重则打坏输出继电器触点。这是很多新手自己接线调试时反复“莫名复位”的根本原因。

输出端到接触器线圈之间,建议加一级中间继电器过渡。你可能会问:PLC输出继电器直接带接触器线圈不行吗?行是行,但S7-200 SMART输出点的带载能力只有2A,而且频繁通断对PLC内部继电器触点寿命影响很大。加了中间继电器之后,换一个继电器几块钱,烧了不心疼,PLC输出板坏了那就要返厂了。这个钱不能省。

3. 控制逻辑设计与梯形图实现

3.1 时间表控制与季节自适应

时间控制是校园照明的主干逻辑。用一个时钟指令读PLC实时时钟,然后在程序里设定多个时间段,每个时间段对应不同的回路组合动作。这里有个隐藏问题:不同季节的日落时间相差近两个小时,如果时间表写死一个“18:00开灯”,夏天18:00天还大亮,灯白白亮一小时,冬天18:00已经全黑,灯却没开。解决思路有两层。

第一层是给时间表加“季节偏移量”,把一年分成春夏秋冬四套时间段,通过日期判断自动切换。例如夏天上课日晚间照明设为19:00到22:30,冬天设为17:30到22:30。这个方案实现简单,不需要额外硬件,适合预算有限的学校。

第二层是引入光照传感器做“光控修正”,也是我更推荐的方案。PLC的模拟量模块接一路光照度传感器,当检测到照度低于设定阈值(比如30勒克斯)且当前时间处于允许开灯的窗口期(比如17:00到23:00)时,才允许照明回路得电。这相当于给时间表加了一个“前置条件”,天气突变、阴雨天提前暗下来时,系统能自动提前开灯,不需要人干预。

我在现场调试时,光控阈值不是一次性写死的。先连续记录一周的光照度曲线,再根据实际视觉感受调整阈值。经验值是校园主干道在30~50勒克斯之间开灯比较合适,低于30勒克斯时人眼已经明显感觉昏暗,高于50勒克斯开灯又太早浪费。宿舍区走廊可以适当放宽到20勒克斯,毕竟走廊有应急灯兜底。

3.2 模式切换与优先级管理

一个实用的校园照明系统,至少要具备四种运行模式:自动、手动、应急、检修。四个模式之间必须设置严格的互锁,优先级从高到低依次是:应急大于手动、手动大于自动、检修独立于所有模式。

自动模式下,程序按上述的时间表加光控逻辑自动通断。手动模式用于特殊情况,比如运动会晚上操场要加练、考试周教学楼要延时熄灯,这时候值班人员在触摸屏或控制柜面板上直接操作“强制开/关”按钮。

应急模式是安全性最高的一级,由消防信号或治安报警信号触发。这个模式不经过任何时间表和光控判断,直接点亮应急回路和关键通道照明。在PLC程序里,应急信号优先使用输入点的常闭触点参与逻辑,这样即使传感器断线、程序跑飞,只要信号线没断,硬件层面也能保证应急回路得电。

检修模式则是把某个回路从自动控制中完全摘除,允许电工在大白天检修线路时强制断电或点动送电,而不会触发自动开灯。

这四个模式的切换,我在程序里统一使用“模式字”来管理,M0.0到M0.3分别代表四个模式,切换时先复位全部模式位再置位目标模式位,杜绝两个模式同时激活的竞争状态。这个编程习惯在大型项目里尤其重要,我在小型校园项目里也坚持这么做,就是为了避免逻辑漏洞。

3.3 核心程序段示例说明

梯形图我不会整段贴出来,但几个关键程序段的逻辑骨架值得说说。

第一个是照明回路的基本控制段。以宿舍区回路1为例,逻辑是:手动/自动模式切换之后,在自动模式下,条件为“时间窗内 + 光照度低于阈值 + 宿舍区总开关已合闸”,三个条件串联输出到Q0.0。其中任何一个条件不满足,回路就断开。这个段的写法很简单,但要注意“时间窗内”的条件必须用“大于等于开始时间 与 小于等于结束时间”写,不能反了,否则半夜会误开灯。

第二个是隔盏亮控制段。深夜模式启动时,程序把两个相邻照明回路的输出条件错开——回路1由深夜模式直接点亮,回路2必须在“深夜模式且再隔30分钟”才点亮,这样走廊或道路保持基本照度,又不会整宿满功率。如果想做得更精,可以用一个定时器做轮换,每隔一小时把亮的那半换到另一半,让灯具使用寿命更均衡。不过这个功能会增加接触器动作频率,对接触器寿命是一种损耗,我一般在校园项目里不主动启用,除非甲方明确要求。

第三个是“最后一次熄灯”逻辑。以宿舍区为例,晚上22:30主灯熄灭,但为了照顾晚归学生,程序控制在主灯熄灭后延时5分钟,点亮两盏门厅灯和走廊应急灯,维持30分钟后自动熄灭。这30分钟内如果有人经过,可以再接人体感应器触发走廊灯短暂全亮。加了这层逻辑之后,学生和宿管的满意度都会明显提升,属于花小钱办大事的典范。

3.4 触摸屏监控与数据记录

现在做PLC项目,不带人机界面基本没法交代。我推荐选一个7寸的国产触摸屏(昆仑通态、威纶通都可以),通过网线和PLC连接,省去了串口线还要转USB的麻烦。触摸屏页面主要做三块:系统总览画面、回路控制画面、参数设置画面。

系统总览画面用图形显示校园平面图,各个照明区域用不同颜色标识状态。运行中的回路绿色显示,关闭的灰色,故障报警的红色闪烁。值班人员一眼就能看出哪条回路有问题,不用再拿手电筒去配电房挨个看接触器。

回路控制画面就是软手操面板,每个回路配一个“自动/强制开/强制关”三选按钮。这个页面是给后勤人员用的,所以操作逻辑必须防呆:强制操作前必须选择“手动模式”,防止误触导致自动逻辑失效。

参数设置画面用于修改时间表、光控阈值、延时时间等。这些参数直接写入PLC的掉电保持区,停电重启后不丢失。我建议把所有可调参数集中到一个数据块里,并在程序里给每个参数设置合理的上下限。这样既方便现场调整,也能防止误操作把时间改成“25:99”之类的非法值。

数据记录方面,如果项目预算允许,可以在触摸屏上做一个简单的运行日志,记录每天各回路的累计运行时间。这个数据有两个用途:一是月底和电费单对账,验证节能效果;二是推算接触器和灯具的维护周期,提前备件。

4. 设计源文件与万字报告怎么整理

4.1 源文件归档的规范做法

很多人在项目收尾时只丢出一个“xxx.zap”或“xxx.gxw”文件,这在交付上是严重不合格的。一个规范化归档的源文件包,至少应该包含以下层次的内容。

第一层是PLC程序文件。西门子对应的是.zap归档文件,里面要包含程序注释、符号表、交叉引用表。我强烈建议在程序里把每个I/O点的注释写清楚,网络注释也尽量完整。你可能觉得麻烦,但三个月后你自己回来看程序,如果没有注释,你真的会看不懂当时的逻辑。更别提接手的人是别人了。

第二层是触摸屏画面文件。画面源文件、画面截图、字体文件(如果用了特殊字体)都要归档。触摸屏项目最容易丢的就是字体文件,换一台电脑打开项目字体全变方块,特别影响体验。

第三层是电气图纸。包括主电路图、控制回路图、PLC接线图、端子排图、柜内布置图。图纸不需要用专业电气CAD软件画,但至少要用通用格式输出一份,方便后期任何人打开查看。

第四层是设备清单和参数表。PLC型号、扩展模块订货号、接触器型号、中间继电器型号、开关电源规格、断路器整定值、传感器型号,全部列成清单,并注明每个元器件在柜内的安装位置。这张表对于以后备件采购来说就是救命表。

4.2 万字报告的结构与写作方法

这份报告是很多学生最头疼的部分,但其实掌握了结构框架之后,写起来并不难。我的建议是严格按照毕业设计或项目验收报告的通用结构来组织,不要自由发挥。

第一章写需求分析,从校园照明现状切入,指出人工管理的问题,引出自动化改造的必要性。第二章写方案论证,对比PLC、单片机、云平台三种方案,从可靠性、维护性、成本三个维度给出选择PLC的理由。第三章写硬件设计,把I/O表、电气原理图、选型计算逐个写进去,特别要把接触器线圈电流、PLC输出驱动能力、开关电源容量这些计算过程写清楚,这是评阅老师最看重的地方。

第四章写软件设计,包括程序流程图、梯形图逻辑说明、关键参数设置。第五章写调试过程,把我在现场遇到的几个典型问题如实写进去,比如光控阈值怎么整定、时间表怎么修正、干扰怎么排除。第六章写运行效果和节能分析,用改造前和改造后的用电量做对比表格。

万字听起来很多,但把每章写500到800字的分析文字,加上图表和参数表格,其实很快就够数了。关键是每个章节都要有实质内容,不能靠空话凑字数。我见过一些报告,光“引言”就写了两千字的背景描述,结果一到核心设计部分就只剩一两百字的截图,这种报告在我这里直接不合格。

4.3 配图与参考资料的收集策略

标题里提到“支持资料、图片参考”和“文章底部可以扫”,这其实是很多校园项目交付时的流量入口。我的建议是,配图要有四个层次:系统架构图(让读者一眼看明白整个系统的层级关系)、控制柜实物图(展示接线工艺水平)、触摸屏界面截图(展示人机交互设计的完整性)、运行曲线或数据截图(用实际数据支撑节能效果)。

这些图片在写报告、做答辩PPT、发技术博客时都能复用,所以平时养成随手拍照的习惯特别重要。每次调试到一个阶段,就拍一张柜内布局图、一张屏幕状态图,记录当时的操作和现象。这些都将是项目报告里最有说服力的素材,比一百页说明书都好用。

5. 现场调试与常见故障排查

5.1 调试前的通电检查清单

控制柜安装完毕、程序下载之后,先别急着合闸。我总结了一套“通电九查”,每次调试必做,花不了十分钟,但能避免大部分低级事故。

一查接线端子紧固情况,用螺丝刀逐个拧一遍,带电前松动的端子是大隐患。二查PLC输出点与中间继电器线圈之间有没有短路,尤其是强电端子和24V端子有没有搭线。三查24V开关电源输出电压是否为24V正负0.5V范围。四查接触器线圈电压等级,不要AC220V的线圈接到了AC380V回路里。五查PLC和触摸屏的IP地址是否在同一网段,这是最常见连接不上故障的根源。六查所有PLC输入点对应的传感器信号线有没有接反。七查应急回路是否直接由消防信号源独立供电,不允许经过PLC电源。八查柜内接地排和PLC的接地端子是否可靠连接,悬浮接地是干扰的根源。九查上电后CPU运行指示灯是否正常,程序是否处于运行状态。

这“九查”听起来琐碎,但每一个我都踩过对应版本的坑。特别是第一项,有一次调试时端子松动,接触器吸合瞬间直接拉弧,把端子排熏黑了一块,幸好没伤到人。

5.2 高频故障现象与处理方案

运行阶段常见的故障,我按照出现频率排个序,逐个说处理思路。

故障一:PLC程序正常,部分回路不动作。优先排查方向是中间继电器是不是坏了,或者中间继电器底座松动。我遇到过继电器坏了一半触点的情况,万用表量线圈正常,但带负载就拉不动。替换中间继电器后问题消失。

故障二:照明灯该亮时不亮,该灭时不灭。不要先去怀疑PLC,先看接触器辅助触点反馈给PLC的输入点状态对不对。很多时候接触器动作是正常的,但反馈触点虚接,导致PLC误判回路状态。用万用表在端子排上量输入点电压,很快就能定位。

故障三:触摸屏不定期显示通讯超时。原因九成是屏蔽层接地没做好或者通讯线缆和动力线走在同一个线槽里。处理方法是把通讯线单独走管,屏蔽层单端接地,再在触摸屏侧加一个终端电阻。如果还不行,把PLC通讯波特率降一档,从187.5K降到9.6K,稳定压倒一切。

故障四:光控在傍晚频繁闪动。这是因为光照度在设定阈值附近波动,PLC输出触点反复通断。解决办法是加一个滞回区间,比如开灯阈值设为30勒克斯,关灯阈值设为50勒克斯,中间这段是死区。凝滞回区间之后,傍晚只会动作一次,不会来回折腾。

故障五:雷雨天气后某几个回路失控。大概率是感应雷通过线路窜入,击穿了PLC输出点或中间继电器线圈。除了在电源端加防雷器之外,我还会在每个回路的中间继电器线圈两端加一个压敏电阻,能吸收大部分浪涌能量。这个做法成本很低,但现场非常有效。

5.3 调试记录与验收材料

调试完成不是项目的终点,验收材料才是真正让甲方签字的东西。我建议把调试过程归纳成三份文档:调试记录表、运行日志、验收报告。

调试记录表按日期记录每天巡检发现的问题、处理措施、遗留事项。运行日志是交给后勤部门日常使用的,格式简单,每天抄录各回路开关状态和异常记录。验收报告则需要包含系统功能逐项确认表,每一行对应一个功能点,甲乙双方当场确认并签字。

写到这里,我想说一个自己反复强调的心得:PLC项目成败的关键,往往不在编程技巧有多花哨,而在细节有没有做到位。一个接线规范、注释完整、文档齐全的系统,哪怕程序逻辑平平无奇,也能让人放心用上十年;反之,程序写得再精巧,端子接得乱七八糟,调试时照样会让你痛不欲生。

还有一个小技巧送给大家:所有程序修改、参数调整,都在触摸屏上做一个“修改日志”页面,每次改动自动记录时间和修改内容。这不仅是给甲方看的,更是给自己留的后路——一旦改出问题要回退,你至少知道上一个能用的版本是什么时候、改了什么。这个习惯,在之后的多个项目里都帮我省了大量返工时间。

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

基于导频的MATLAB信道估计:LS与MMSE原理、代码与避坑指南

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

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

局域网组网课程设计实战:VLAN划分、Trunk配置与静态路由避坑指南

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

作者头像 李华
网站建设 2026/10/16 5:31:43

PCA9422与STM32F100ZE协同实现超低功耗电源管理

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

作者头像 李华
网站建设 2026/10/17 23:38:07

PCA9422与STM32F723ZE的嵌入式电源管理及低功耗设计实战

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

作者头像 李华
网站建设 2026/10/18 12:17:33

H5竞猜源码搭建实战:免公众号授权与防风控完整指南

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

作者头像 李华
网站建设 2026/10/16 12:48:09

iOS集成gmssl国密库:arm64真机运行与bitcode编译全解

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

作者头像 李华