三菱FX3U PLC与GX Works2从零实战:硬件连接、软件配置与梯形图编程全解析
1. 项目概述从零上手三菱FX3U与GX Works2如果你刚拿到一台三菱FX3U-32M PLC和一套GX Works2软件面对一堆线缆和复杂的软件界面感到无从下手那么这篇分享就是为你准备的。我接触过不少从西门子、欧姆龙转过来的工程师或者刚入行的新人在初次使用三菱这套经典组合时总会遇到一些“水土不服”的问题。比如电脑明明识别了USB线但软件就是连不上PLC程序写好了下载时却报错想在线监控一下变量却发现数据纹丝不动。这些问题看似琐碎但足以让一个项目停滞半天。今天我就以一个老电工的视角带你完整走一遍从硬件接线、软件配置到程序编写、调试上线的全过程把那些手册里一笔带过、但实际操作中至关重要的细节和“坑”都摊开来讲清楚。我们的目标很简单让你手里的FX3U-32M通过GX Works2真正“活”起来完成一次可靠的通讯与编程。2. 核心硬件与软件环境搭建工欲善其事必先利其器。在开始敲代码之前确保你的“战场”准备妥当是成功的第一步。很多通讯失败的问题根源都出在环境搭建这个环节。2.1 硬件清单与连接要点首先请确认你手头有以下硬件三菱FX3U-32M PLC本体这是我们的控制核心。32M表示32点主机其中输入16点X0-X7 X10-X17输出16点Y0-Y7 Y10-Y17。编程电缆这是通讯的物理桥梁。最常用的是USB-SC09-FX电缆或兼容型号。请注意务必使用质量可靠的电缆市面上一些廉价仿制品驱动不稳定极易导致通讯时断时续。个人电脑安装有Windows操作系统的电脑。24V直流电源为PLC供电。注意正负极不要接反电源功率要足够。硬件连接实操步骤与避坑指南PLC上电连接24V电源给PLC供电。上电后PLC面板上的“POWER”指示灯应常亮“RUN”指示灯可能闪烁或熄灭取决于内部是否有程序及运行状态。连接编程电缆将电缆的圆形8针插头端牢固地插入PLC上方的“编程/通讯口”。将电缆的USB端插入电脑的USB口。建议优先使用电脑主板自带的USB口机箱后部而非前置面板的USB口后者供电和信号稳定性可能较差。驱动安装插入USB电缆后电脑通常会提示发现新硬件并自动安装驱动。如果自动安装失败你需要手动安装。驱动文件通常随GX Works2安装包提供或从三菱官网下载。安装后在电脑的“设备管理器”中应能看到一个对应的COM端口例如“MELSOFT USB (COM3)”。记住这个COM口编号后续软件设置要用到。注意如果设备管理器中该设备有黄色感叹号说明驱动未正确安装。请务必使用管理员身份运行驱动安装程序并关闭所有杀毒软件和防火墙临时再试。2.2 GX Works2软件安装与关键配置GX Works2是三菱电机推出的新一代PLC编程软件相比老款的GX Developer界面更友好功能也更强大支持结构化工程类似于高级语言编程。安装注意事项系统兼容性确保你的Windows系统版本如Win10/Win11在软件支持列表中。安装前最好以管理员身份运行安装程序。安装路径建议使用默认安装路径避免使用中文或带有空格的路径防止一些未知的兼容性问题。序列号与激活安装过程中需要输入有效的序列号并完成激活。请妥善保管你的授权信息。软件首次运行核心配置新建工程启动GX Works2点击“工程”-“新建”。这时会弹出一个至关重要的对话框。工程设置详解系列选择“FXCPU”。这是指定PLC的家族。机型务必准确选择“FX3U(C)”。这个选择直接影响后续可用的指令和软元件范围。程序语言新手建议从“梯形图”开始这是最直观的PLC编程语言。有高级语言基础的也可以尝试“结构化梯形图/ST”。工程类型选择“简单工程”。对于绝大多数单台PLC的控制项目这就足够了。设置好工程名和保存路径后点击“确定”软件主界面就会打开。3. 建立通讯连接打通电脑与PLC的“对话”通道这是最关键也最容易出错的一步。通讯连接的本质是让GX Works2软件知道你通过哪个通道COM口、以什么方式协议与哪台PLC对话。3.1 通讯参数设置实操在GX Works2中通讯设置入口在“在线”菜单下。最常用的方式是“当前连接目标指定”。打开连接设置点击“在线”-“传输设置”或直接使用快捷键F8会弹出连接设置窗口。选择接口在“PC侧I/F”中根据你使用的电缆选择。对于USB-SC09-FX电缆通常选择“USB”。如果你在设备管理器看到的是COM口也可以选择“串行COM”但需要手动指定COM端口号。我个人的经验是直接选“USB”更省事软件会自动识别。PLC侧接口保持默认的“CPU模块”即可。通讯测试所有设置完成后不要急着点确定务必点击右下角的“通讯测试”按钮。这是检验连接是否成功的“金标准”。成功提示如果弹出“与FX3U CPU连接成功”的对话框恭喜你硬件连接和驱动安装完全正确。失败提示如果失败软件会给出错误代码。这时需要按照以下思路排查检查硬件PLC电源亮了吗USB线插紧了吗换一个USB口试试检查驱动设备管理器里对应的设备是否正常有没有感叹号或问号检查占用是否还有其他软件如旧版的GX Developer、触摸屏组态软件占用了这个通讯端口关闭它们再试。重启大法关闭GX Works2重新拔插USB线再打开软件进行测试。3.2 在线操作与程序传输通讯测试成功后你就可以进行在线操作了。在线模式是编程、调试、监控的统称。写入PLC下载当你编写或修改完程序后需要将程序从电脑传输到PLC的ROM中。点击“在线”-“写入至PLC”快捷键F4。会弹出一个对话框通常默认选中“程序”和“参数”直接点击“执行”即可。下载前请确保PLC处于“STOP”状态软件会提示你。下载完成后PLC会自动进入“STOP”状态。读取PLC上传如果你手头的PLC里已经有程序需要读到电脑里查看或修改就使用“从PLC读取”快捷键F5。操作与下载类似。PLC运行/停止在软件界面有明显的“远程运行”和“远程停止”按钮。下载程序后点击“远程运行”PLC的“RUN”指示灯会亮起程序开始执行。监控/调试这是编程调试的核心功能。点击“在线”-“监视”快捷键F3或者点击工具栏上的监视按钮。在监视模式下你可以实时看到程序中触点的通断状态常开触点接通会变蓝色、线圈的输出状态、寄存器的当前值。右键点击某个软元件如D0选择“当前值更改”可以强制修改其值用于模拟测试这个功能在调试时非常有用。4. FX3U-32M编程核心要点解析环境通了接下来就是核心——编程。FX3U的编程有其特定的规则和资源限制了解这些是写出稳定、高效程序的基础。4.1 软元件内存分配规划你可以把PLC的内存想象成一个巨大的酒店软元件就是一个个房间有不同类型的房间触点、线圈、数据寄存器等每个房间有唯一的房号。输入继电器 (X)对应PLC的物理输入端子如X0, X1...X17FX3U-32M。它们的状态只能由外部传感器如按钮、开关决定程序不能驱动不能作为线圈输出。输出继电器 (Y)对应PLC的物理输出端子如Y0, Y1...Y17。程序驱动Y线圈来控制外部负载如继电器、指示灯。辅助继电器 (M)这是程序内部的“开关”没有物理端子对应。常用于程序中的逻辑状态保持、流程步进。例如M0可以作为整个设备“自动运行”的启动标志。定时器 (T)用于计时。FX3U有100ms、10ms、1ms等多种分辨率的定时器。例如T0 K100表示一个100ms的定时器设定值为100即10秒。计数器 (C)用于计数。有16位增计数和32位增减计数等类型。数据寄存器 (D)用于存储数值数据16位整数、32位双整数等。这是进行数据运算、工艺参数存储的主要区域。特别注意D0-D199在PLC断电后默认会清零如果需要断电保持要使用D200及以后的寄存器或者通过参数设置将特定区域设为保持。编程前的重要习惯在工程树的“软元件注释”里为你计划使用的主要X, Y, M, D等软元件添加有意义的注释例如给X0注释为“启动按钮”给D100注释为“加热设定温度”。这在大程序调试和维护时能救命。4.2 基本梯形图编程逻辑与实例梯形图编程的核心思想是“能流”Power Flow从左边的垂直母线流到右边的垂直母线中间经过各种触点开关驱动线圈负载。一个简单的起保停电路实例这是电机控制中最经典的电路。X0 X1 Y0 |---] [----]/[-----( )---| | | Y0 | |---] [---------------|逻辑解释X0启动按钮常开触点。X1停止按钮常闭触点梯形图中用“/”表示。Y0控制电机的输出线圈。第三行是Y0的常开触点实现自锁保持。操作过程按下X0能流通过X0接通和X1常闭默认接通流到Y0线圈Y0通电并自锁。即使松开X0通过自身的常开触点Y0继续保持通电。按下X1其常闭触点断开能流切断Y0断电自锁解除。进阶功能定时器与计数器的应用假设我们需要一个报警灯在故障信号M10到来后闪烁亮0.5秒灭0.5秒持续10秒后自动停止。M10 T0 K5 |---] [-----------------( )---| // T0为100ms定时器K5即0.5秒 T0 T1 K5 |---] [-------------( )---| // T1也是0.5秒定时器 T1 |---] [--------------------| | M10 T2 K200 Y2 |---] [----]/[---------( )---| // Y2是报警灯T2是20秒总定时 | | Y2 | |---] [-----------------------|这个程序用到了两个定时器T0 T1组成一个振荡电路闪烁发生器再用一个总定时器T2来控制闪烁的总时长。这里就体现了梯形图逻辑组合的巧妙。5. 高级功能与通讯初步探索FX3U-32M虽然属于小型PLC但功能并不弱除了基本的逻辑控制还支持一些高级应用和通讯功能。5.1 应用指令功能指令的使用应用指令是实现复杂计算、数据处理、流程控制的关键。在GX Works2中你可以通过工具栏的图标或直接输入指令名来添加。数据传输MOV指令是最常用的。例如MOV K100 D0将十进制常数100传送到数据寄存器D0。比较指令CMP、ZCP等。例如CMP D0 K50 M0比较D0和50如果D050则M0接通如果D050则M1接通如果D050则M2接通。四则运算ADD加、SUB减、MUL乘、DIV除。注意32位运算要使用DADD、DSUB等指令。流程控制CALL调用子程序、FOR/NEXT循环等。使用心得对于复杂的数学运算或数据处理我强烈建议在编程前画一个简单的流程图并规划好需要用到的数据寄存器D避免在编程过程中随意使用D寄存器导致混乱和覆盖。可以划定一个区域专门用于某个功能块例如D100-D119用于温度PID运算。5.2 通讯功能简介与配置思路FX3U本体自带一个编程口我们正在用的和一个RS-422/485接口在面板下方。这个RS-485接口赋予了它强大的通讯能力。无协议通讯RS指令可以自定义数据帧格式与第三方设备如智能仪表、扫码枪等进行通讯。你需要清楚了解对方设备的通讯协议报文格式、波特率、校验等然后使用RS指令来收发数据。这是最灵活但也最复杂的方式。变频器通讯通过使用IVCK、IVDR等专用指令可以非常方便地与三菱的FR系列变频器进行通讯读写频率、启停命令等无需了解底层Modbus协议细节。N:N网络多台FX系列PLC之间可以通过RS-485接口连接组成一个小型网络共享部分数据寄存器D和辅助继电器M实现简单的分布式控制。配置通讯的基本步骤硬件连接使用屏蔽双绞线连接各设备的RS-485接口正确连接SDA、SDB、RDA、RDB等端子并在网络两端安装终端电阻通常为110Ω。参数设置在GX Works2的“参数”-“PLC参数”-“内置端口设置”中设置通讯格式波特率、数据位、停止位、校验位和通讯协议如无协议、变频器链接等。程序编写根据选择的通讯方式在程序中编写对应的指令如RS指令或变频器专用指令。调试这是最耗时的一步。建议先使用串口调试助手如AccessPort单独测试通讯线路和对方设备的数据收发是否正常然后再整合到PLC程序中调试。务必处理好通讯超时和错误处理逻辑防止程序因通讯失败而卡死。6. 项目调试与故障排查实战记录理论讲得再多不如一次实际的排错经历。下面我分享几个在FX3U和GX Works2使用中最常遇到的“坑”及其解决办法。6.1 常见问题速查表问题现象可能原因排查步骤与解决方案GX Works2通讯测试失败1. USB驱动未正确安装。2. PLC电源未接通。3. 端口被其他软件占用。4. 编程电缆损坏或兼容性差。1. 检查设备管理器重新安装驱动。2. 确认PLC“POWER”灯亮。3. 关闭所有可能占用串口的软件包括触摸屏软件、虚拟串口软件等。4. 更换电缆或换一台电脑测试。程序可以下载但PLC不运行RUN灯不亮1. PLC处于“STOP”模式。2. 程序存在致命错误如参数设置错误。3. 有外部错误如I/O配置错误。1. 在GX Works2中点击“远程运行”。2. 编译程序后查看“编译结果”窗口是否有错误。双击错误信息定位。3. 检查“诊断”-“PLC诊断”查看详细错误代码。在线监控时触点/线圈状态无变化1. 未进入“监视”模式。2. 程序扫描周期内条件不满足。3. 监控的软元件地址错误。1. 确认软件处于监视模式工具栏监视按钮为按下状态。2. 检查输入信号是否真实触发逻辑条件是否苛刻。3. 核对程序中使用和监控的软元件号是否一致。断电后数据寄存器D值丢失使用了非断电保持区域。1. 使用断电保持寄存器FX3U默认D200-D511为保持区。2. 在“参数”-“PLC参数”-“软元件设置”中自定义保持区域范围。使用应用指令如MOV无效1. 指令操作数类型不匹配如给16位指令传了32位数。2. 指令执行条件不满足。1. 仔细查阅编程手册确认指令对操作数源、目标的数据类型要求。2. 确保驱动该指令的触点通常是上升沿PLS或常开触点在需要的时候是接通的。6.2 调试思维与高级技巧分段调试法不要试图一次性写完整个大程序然后调试。应该按功能模块编写和调试。例如先调试手动操作功能再调试自动流程的第一步每一步调通了再进行下一步。可以利用M8000常ON触点或M8002初始脉冲来临时驱动某个功能块进行测试。善用“当前值更改”和“强制”在监视模式下右键可以“更改当前值”这对于模拟输入信号、设定参数值无比方便。但要注意“强制”输出Y是直接作用于物理端子的有风险调试时务必确认外部负载安全。程序加密与保护在“参数”-“PLC参数”-“口令/关键字”中可以设置关键字来保护程序防止被随意上传和修改。务必牢记密码否则一旦忘记PLC可能只能通过更换存储芯片或联系三菱技术服务来清除非常麻烦。备份备份备份在项目的重要节点如每个功能模块调试成功、最终上线前务必通过“工程”-“保存”备份你的GX Works2工程文件并通过“在线”-“读取”备份PLC中的完整程序。有备份心不慌。从硬件连接到软件操作从基础逻辑到高级应用这套FX3U-32M与GX Works2的组合拳其核心在于“严谨”和“实践”。手册是地图但路上的沟沟坎坎需要自己踩过才知道。我最开始用的时候也曾因为一个COM口设置不对折腾半天也曾因为定时器编号用重复了导致逻辑混乱。但当你按照正确的步骤耐心地搭建好环境清晰地规划好软元件一步步地用梯形图搭建出控制逻辑最后看到设备按照你的设想精准运行时那种成就感是实实在在的。记住PLC编程不仅是技术更是一种与机器对话的思维多写、多调、多思考你很快就能从新手成长为能独当一面的老手。如果在实践中遇到上面没覆盖的怪问题不妨先从“电源、接线、参数、程序”这个顺序排查一遍大多数问题都逃不出这个圈子。

相关新闻

小米平板1刷机实战:解析TWRP Error 7与Error 255的成因与解决方案

小米平板1刷机实战:解析TWRP Error 7与Error 255的成因与解决方案

1. 项目概述与问题引入如果你是一位热衷于折腾老旧设备、尤其是小米平板1这类“上古神器”的玩家,那么刷机过程中遇到的各种报错代码,绝对是家常便饭。今天要聊的这两个错误——在刷入ROM时出现的E1001 Error: 7,以及在TWRP恢复备份时跳出的E…

2026/9/28 4:26:42 阅读更多 →
第一篇:容器化技术介绍

第一篇:容器化技术介绍

本文是个人学习使用容器技术的整理笔记(V1.0),内容来源于公开资料与实践总结,部分技术仅作概念了解,后续会持续更新和勘误。一、容器技术行业简介容器技术通过将应用及其依赖打包成可移植的容器,实现跨环境…

2026/10/8 5:36:36 阅读更多 →
Product Hunt 每日热榜 | 2026-07-30

Product Hunt 每日热榜 | 2026-07-30

1. Prelint 标语:防止AI生成代码中的产品偏差 介绍:AI以10倍的速度为你编写代码,而Prelint则确保这些代码是正确的。它会在每个合并请求(PR)之前,针对你的架构决策(ADR)、文档和过…

2026/10/1 22:13:49 阅读更多 →

最新新闻

VoiceStudio 本地训练实战:几小时音频炼出专属音色 TTS 模型

VoiceStudio 本地训练实战:几小时音频炼出专属音色 TTS 模型

VoiceStudio 本地训练实战:几小时音频炼出专属音色 TTS 模型 【免费下载链接】VoiceStudio VoiceStudio is the open-source, fully-local ElevenLabs alternative — voice cloning, voice design, video dubbing, dictation, transcription & audiobook creat…

2026/10/13 2:10:25 阅读更多 →
CC Switch:构建模型即契约的本地AI编码工作流

CC Switch:构建模型即契约的本地AI编码工作流

1. 这不是“换模型”,而是重构本地开发流的起点“别再手改配置了:用 CC Switch 把自定义模型接进 Claude Code”——光看标题,你可能以为这是个简单的工具替换教程。但实际操作过的人会立刻意识到:它解决的从来不是“能不能连上”…

2026/10/13 2:10:25 阅读更多 →
Godot Engine Sprite3D 节点完全指南:在 3D 世界中渲染 2D 纹理、图集帧与区域裁剪

Godot Engine Sprite3D 节点完全指南:在 3D 世界中渲染 2D 纹理、图集帧与区域裁剪

文档教程游戏开发 【免费下载链接】godot-docs Godot Engine official documentation 项目地址: https://gitcode.com/GitHub_Trending/go/godot-docs 点击查看 免费下载 Sprite3D 是 Godot Engine 中用于在 3D 场景里显示 2D 纹理的核心节点,继承自 Sp…

2026/10/13 2:10:25 阅读更多 →
xqvm_py 使用与实现指南:XQuad 工具链的 Python 参考虚拟机与一致性基准

xqvm_py 使用与实现指南:XQuad 工具链的 Python 参考虚拟机与一致性基准

【免费下载链接】xquad A rust implementation of the Quip Networks quantum virtual machine. 项目地址: https://gitcode.com/gh_mirrors/xq/xquad 点击查看 免费下载 本文以 xqvm_py/README.md 为骨架,结合 xqvm_py 包源码、xqffi 绑定、conformanc…

2026/10/13 2:10:25 阅读更多 →
PX4飞控开发基础:从架构原理到仿真调试实战指南

PX4飞控开发基础:从架构原理到仿真调试实战指南

1. 从飞控固件到整机调试:PX4开发到底在开发什么很多人第一次听到PX4这个词,脑子里浮现的是一块电路板或者一个软件界面。实际上PX4是一套开源的自动驾驶仪固件,跑在飞控硬件上,负责把传感器数据融合成姿态和位置估计,…

2026/10/13 2:10:25 阅读更多 →
tf-quant-finance 日期模块中的 WeekendMask:周末掩码定义与假日日历实战指南

tf-quant-finance 日期模块中的 WeekendMask:周末掩码定义与假日日历实战指南

金融科技科学计算 【免费下载链接】tf-quant-finance High-performance TensorFlow library for quantitative finance. 项目地址: https://gitcode.com/gh_mirrors/tf/tf-quant-finance 点击查看 免费下载 导读 WeekendMask 是 tf-quant-finance 日期模块&#x…

2026/10/13 2:09:25 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/12 18:11:17 阅读更多 →