PLC编程避坑指南:90条实战经验精选(01-20条)
如果让我给刚入行时的自己留一句话我不会说“多学指令”而会说“先把那些不该犯的错列成清单”。入行头一两年我最大的问题根本不是不会编程序而是总在同一个地方翻车NPN和PNP传感器配错、输出点一上电就烧、双线圈导致设备乱动、改完程序忘了备份……这些小问题单看都不难但难的是你没法提前知道它们会埋在哪。于是我从第三年开始把踩过的坑一条条记下来边记边整理攒到如今正好90条。这系列会按天更新今天先放整体框架和前20条覆盖程序结构、逻辑细节、调试前的准备再附一个完整的排查案例。1-3年的工程师拿这份清单对照工作比到处翻手册有用得多。1. 这套经验从哪来写给1-3年工程师的避坑地图1.1 为什么单独针对1-3年这个阶段很多刚入行的朋友问我学PLC是不是应该先啃指令、再背手册、最后上项目。我个人看法刚好相反1-3年这个阶段最缺的不是高级指令而是“一套稳定的工作习惯”。这个阶段的人通常已经能看懂梯形图会改简单逻辑也能独立完成一些小设备调试但还没形成自己的体系。典型的特征就是“感觉都会一做就错”。程序能跑起来但换个工况就出怪问题接线能接通但一上电就烧点什么通讯能连上但数据偶尔乱跳。这些问题单独抽出来都不高深可它们高频出现而且每次处理都要花掉大量现场时间。我给自己定的整理标准也只有一条这条经验是不是“低成本避免、高频出现”的坑。复杂的算法、偏门的用法我一律不收收进去的都是正常项目中容易碰到、又经常被忽略的东西。90条听起来很多其实拆成五个板块之后每个板块不过十几二十条。1.2 90条如何分类一个能直接对照的板块表我按照工程师日常干活的前后顺序把这90条分成了五块。这样做的好处是当你在哪个环节出问题就回到对应的板块里找答案不用从头翻到尾。板块条目范围这一板块覆盖什么程序编写与调试准备01-20程序骨架、变量命名、双线圈、定时器复位以及仿真、备份、上电前测量上电之前与接线硬功夫21-40输入输出接线、NPN/PNP、急停常闭、电源容量、续流二极管通讯与模拟量的常见坑41-60通讯参数、数据地址、模拟量零偏、屏蔽接地调试排障与防错设计61-80故障定位套路、状态记录、防错互锁工程思维与交付协作81-90点检表、备份规范、交接文档、沟通习惯今天这篇先交出第一个板块里的前20条也就是01-20。这个板块也是我反复修改次数最多的——程序写得不规范后面的调试、交付、维护全都会跟着难受。剩下的70条我会按表格顺序在后续更新里逐批放出来。1.3 这份清单的正确打开方式拿到这份清单我最不建议的做法是“通读一遍然后收藏”。人的记忆没那么可靠尤其到了现场设备和噪音一干扰读过的东西能想起来一半就算不错。我自己的用法是把它当成“点检表”。每次要下载程序、上电、或者修改逻辑之前挑出相关的几条一条条问自己这条我查过了吗确认没问题再动手。比如今天要上电就看第19条“输出侧有没有短路”今天要改程序就看第17条“仿真跑了没有”、第18条“备份做了没有”。这种带着任务去套清单的方式比单纯看十遍文字都管用。2. 第一批条目01-10编程习惯与程序结构2.1 程序骨架初始化、主逻辑、故障段最好一辈子固定经验01程序从第一天就按“初始化、主逻辑、故障处理”三段分开写。这不是为了好看而是为了排障时能顺着结构找问题。设备中途停了你如果先翻主逻辑找条件很可能绕半天但如果程序里有独立的故障处理段先看故障代码、再看故障段逻辑定位速度会快很多。我接手过一套旧设备前任把所有逻辑堆在一个长梯形图里几百行连成一片光找一条报警条件就花了半天。后来我花了两个晚上把逻辑拆成三块之后再出问题基本五分钟内就能定位到具体段。经验02初始化段只做“上电时该做一次的事”不要每个扫描周期都执行。一个很典型的新手错误是把复位动作直接放在主程序里结果设备正常运行中某个中间变量被重复复位汽缸就莫名其妙缩回去一下。正确做法是让初始化段由“首次扫描标志”或“上电脉冲”触发只执行一次之后自动跳过。不同品牌实现方式不一样但思路是一样的上电瞬间做该做的事之后把控制权交给主逻辑。经验03故障段不要只做“停机”要把发生时的状态记录下来。很多工程师处理故障的方式就是输出一个停机信号然后坐等别人来问“刚才怎么回事”。如果你在故障段里同时转存几个关键值——故障代码、发生时间、当前模式、设备停在哪个位置——后面排查会轻松太多。哪怕只是多存几个内部寄存器也比事后靠猜强。我自己的习惯是故障触发时把当时的输入点状态和关键中间变量做一个快照留给触摸屏显示或上位机读取。2.2 I/O映射、命名和注释让自己成为“好接手”的人经验04不要用绝对地址直接画梯形图先做一层输入输出映射。比如现场接了一个料位传感器到X0你如果直接在程序里用X0一旦改线、换点位就得满程序查替换。我的做法是先把物理点位映射成有意义的内部变量例如“DI_料位传感器_01”程序主体只跟这些变量打交道。硬件改线时只改最前面那一段映射表就行。这个习惯在项目中期尤其有用客户临时要加一个传感器、挪一个点位你只需要改映射不用动主逻辑。经验05变量命名统一前缀看到名字就能知道类型和作用域。通常我会用DI_开头表示数字量输入DO_表示数字量输出AI_和AO_对应模拟量M_表示中间变量T_表示定时器。这套规则很简单但团队协作时效果极好。别人接手你的程序看到一个变量叫“DO_夹紧电磁阀”立刻知道它是输出点、控制什么叫“M_自动允许”知道是中间逻辑位。别用天马行空的拼音缩写更别用一串无意义的数字那是在给以后的自己挖坑。经验06注释写“为什么”不要只写“是什么”。“让传送带停”这句话写了等于没写换谁看梯形图都知道它让传送带停。真正有价值的是“当后段料满时停传送带避免堆料”这种注释它说明的是当时加这段逻辑的动机。三个月后你回来看程序看到“是什么”只会点头看到“为什么”才能真正改得动。另外程序块头部建议加上功能说明和版本号改一次升一版方便追溯。2.3 梯形图逻辑里那些让你吃哑巴亏的点经验07输出点不要多处写双线圈要尽早消灭。同一线圈在多段程序里被置位、复位最终状态由最后一次扫描的决定这是梯形图的基本规则。可一到复杂程序很多人就把这茬忘了同一个输出点被手动段写一次、自动段写一次、报警段又写一次结果设备运行状态变得很怪还特别难查。我的习惯是输出点只在一个地方做最终赋值其他逻辑全部通过中间变量去置位和复位最后统一收口到输出段。这样就算逻辑再乱输出点也不会被多个条件拉扯。经验08用定时器之前先问自己“这个定时器被复位了吗”。有一部分PLC的定时器在条件不满足时会自动复位但也有不少需要程序里显式复位还有一些累计型定时器掉电之后不清零。同一个定时器如果被多个模式共用最容易出现“少了几秒”“多动了一次”这种怪毛病。我见过有人用一个定时器既做启动延时又做停止延时结果两个模式互相干扰怎么调都调不对。后来我改成每个动作单独配定时器并在旁边注释复位条件问题立刻消失。经验09比较指令判断位置和数值时用区间判断不要用“等于某个值”。物料检测、编码器位置、模拟量读数这些数值在真实设备里都会有抖动。程序里写“等于1000.0”才开始动作很可能这个值只在某个瞬间恰好成立设备就会忽好忽坏。我用得最多的是“大于等于下限且小于等于上限”的区间判断或者“大于设定值”这种单边判断。位置控制尤其注意别指望一个电机会精准停在一个整数点上。经验10发布程序前通读一遍所有常开常闭触点把“永远为真”的短接线找出来。调试的时候为了方便很多人会临时用一个常开触点直接短接某个条件让设备先动起来看看效果。问题是调试完了这个短接经常被忘在程序里逻辑看着还在实际上条件已经失效。这比双线圈还隐蔽因为它不报错只是让设备在某些时候不按设计动作。我每次下载前都会专门抽几分钟把程序从头到尾过一遍常开常闭触点看到那些没有实际输入对应的固定接点立刻删掉或改成注释。3. 第二批条目11-20程序逻辑细节与调试前的准备3.1 模式切换与输出抢占手动自动互打架的根源经验11手动和自动程序必须互锁最终输出统一收口。很多设备同时有手动和自动模式如果两边程序都直接驱动输出就会出现一种尴尬局面明明切到手动自动条件还在偷偷让某个阀动作。我的做法是加一个“输出使能”总开关手动时把自动段的输出使能关掉自动时把手动段的使能关掉所有驱动段都必须过这个总开关才能到输出点。这样就算某个中间位忘记复位最终输出也不会被两个模式同时控制。经验12触摸屏上的启动和停止按钮用“置位/复位”处理不要直接用瞬时脉冲。面板按钮的本质是一个触点信号按下去的时候给一个脉冲松开就没了。如果程序里用一个瞬时脉冲去驱动设备启动通讯偶尔闪断一下这个启动信号就可能丢。反过来说停止按钮如果只用脉冲断线或通讯卡顿的瞬间停止指令也就丢了。我习惯把面板命令映射为中间置位/复位位程序里再用“上升沿”去触发实际动作这样即使通讯受到干扰状态也能保持住。经验13模式切换前先把汽缸、电机、阀门恢复到安全位置再允许新模式启动。直接切到自动就开始动作是最容易出事的设计。正确做法是切换模式时先进入一个“预备状态”把夹爪打开、把升降台落到低位、把阀门关回默认位所有位置到位后面板上才出现“允许启动”的信号。这个预条件检查看起来多写了一段程序但它能避免切模式瞬间设备“跳一下”也能避免操作员在设备没准备好时误启动。3.2 掉电保持、初始化与复位上电那一刻的暗坑经验14从项目一开始就规划好“掉电保持区”和“临时数据区”。计数累计、配方号、报警记录这类数据断电后不能丢要放在保持区当前流程步骤、临时计算标志这类数据断电后应该清掉放在不保持区。很多人等到项目后期才考虑这个问题到那时改起来就是牵一发动全身。最典型的事故是设备断电再上电程序从中间状态接着往下跑汽缸直接动作。如果当初把流程步骤设计成“上电必须回初始位”这种事故根本不会发生。经验15上电初始化的顺序必须是“先禁止输出再复位数据最后开放输出”。顺序错了上电瞬间设备就会“动一下”。我之前见A同学调试一台设备上电瞬间一个夹爪先夹紧、又松开把他吓一跳。最后查下来就是初始化程序先执行了夹爪置位后面才执行复位而输出使能在整个初始化结束时才开放。调整一下顺序上电先切断输出使能所有数据复位完成确认各位置状态没问题再开放输出设备就老实了。经验16报警复位要做成“故障条件消除后才能复位”不要一键全清。有些设备为了方便复位按钮直接把所有报警位清零这很危险。故障条件还在现场你把报警清掉操作员看到面板没报警以为没事了设备又开始动作轻则撞机重则伤人。正确做法是复位指令执行前先检查对应的故障条件是否已经消失用“故障条件仍在则无法复位”的逻辑挡住。看起来只是多一个触点的事实际是安全上的一道门槛。3.3 调试前的几件事从仿真到备份少一步都可能翻车经验17下载程序之前先在编程软件里做一遍空跑仿真哪怕五分钟也行。现在的PLC编程软件大多支持在电脑上模拟运行。你把输入信号模拟出来先看输出点和中间标志的变化是否符合预期比直接到现场联调可靠太多。尤其是生产线设备程序里一个逻辑错误下载进去整个设备可能乱动。仿真不是万能的但它能把最明显的逻辑错误挡在下载之前。这五分钟比现场折腾半天的成本低得多。经验18每次修改前备份文件名带日期和版本号。这个习惯是我用一次“血的教训”换来的。当时我改完现场程序没备份三天后客户反馈程序有问题我手头只有最新版想回退到之前能用的版本却发现电脑里根本没留。从那以后我改之前必做备份文件名写成“设备名_日期_版本”旧版本保留最近三次再多就归档。这套流程看起来很笨但关键时刻能救命。经验19上电之前用万用表量一遍输出侧有没有短路。刚接完线的输出模块最容易在上电瞬间烧点。因为正负极接反、线皮破损、负载内部短路这些靠肉眼根本看不出来。我的做法是断电状态下用万用表电阻档或通断档一端接输出端子另一端分别量24V公共端和0V看有没有异常低阻值。如果量出来接近0欧说明回路里有短路必须查清楚才能上电。几分钟的测量能省掉半天换模块的功夫。第4章的排查案例就是这个步骤没做造成的。经验20第一次给设备上电时旁边站个人手放在急停上。这条看起来像废话但真有人只盯着屏幕忘了这茬。上电前我先喊一声“我要通电了”让周围人退开运动范围搭档站到急停边上待命。不是每次上电都会出事但一旦出事这声提醒和这只手就是最后一道防线。所谓经验很多时候就是把看似多余的动作变成固定习惯。4. 一次输出点烧毁的完整排查链路4.1 现象上电五秒两个输出点发烫冒烟A同学在某设备厂调试一台包装机。控制柜接线全部完成程序也下载好了自检一路通过。通电后大约五秒钟输出模块的两个点位开始发烫还隐约有焦味他赶紧按下急停。拆下模块一看两个输出点已经烧穿表面有清晰的灼烧痕迹。他第一反应是“模块是不是本身有问题”于是换上新模块再上电结果又是同样的两个点位再次烧掉。4.2 排查从模块端子一路量到负载这次他学乖了没有继续换模块先断电拿出万用表。用电阻档量那两个输出点与24V公共端之间的阻值发现本应该是断路状态的位置读数几乎为零。这说明输出点所带的负载回路里存在短路。他顺着接线端子一段一段拆开逐步缩小范围最后锁定到两个中间继电器的控制线圈。再仔细检查继电器插座发现线圈的A1、A2极性接反了相当于把输出晶体管的集电极直接怼到了电源和公共端之间。4.3 根子续流二极管方向装反真正让模块烧掉的不是继电器线圈本身而是插座上并联的续流二极管装反了方向。正常接法应该是二极管阴极接电源正极、阳极接输出点当线圈断电时给反向电流一条泄放回路装反之后通电瞬间二极管相当于一条短路线直接把输出晶体管过流击穿。这个案例不是程序问题不是模块质量问题就是“保护元件方向装反”这一个细节。整条排查链路其实很清楚从“模块冒烟”到“测输出端子对公共端电阻”再到“拆负载分段测量”最后锁定二极管。4.4 这件事对应清单里的哪些条目它和第19条“上电前测输出侧有无短路”几乎是一一对应的。如果A同学上电前先用万用表量过那两个点0欧的阻值会非常刺眼根本轮不到烧模块。这件事也提前印证了后面21-40里要讲的“保护元件极性核对”。我之所以把它放在前面讲是想说经验清单不是背出来的而是在现场被验证过之后你才真正相信它。省掉那几分钟检查往往就要用一整个下午来还。5. 把90条经验变成你自己能力的三步走5.1 建立“个人易犯错误清单”拿到这90条别急着全背下来。你真正需要的是从中挑出自己最近容易犯的10到20条打印成一页纸或者贴在工位旁边。比如最近在接传感器就把NPN/PNP那条圈出来最近在改程序就把双线圈和备份这两条放在最上面。每次干活前扫一眼这些条目坚持一个月它们会从文字变成肌肉记忆。我自己的那张清单现在已经更新了好几版有些条目对我不再是问题自然就划掉了。5.2 每天抽一条到设备上去验证“每天更新”这句话不仅是对我自己说的你也可以把它当成一个练习方法。每天到现场先抽一条经验作为当天的检查项。比如今天抽到“急停按钮是不是常闭接入”就去设备前确认一次接线方式明天抽到“定时器复位条件有没有写清”就打开程序翻一翻。验证过一遍的经验和看过一遍的经验牢固程度完全不是一个级别。很多工程师问我怎么快速成长我的回答其实就这一句带着清单去现场一条一条验证。5.3 更新计划与最后的个人体会剩下70条我会继续按板块更新顺序是上电接线硬功夫21-40、通讯与模拟量的常见坑41-60、调试排障与防错设计61-80、工程思维与交付协作81-90。说实话这90条里面没有哪一条需要很高深的技术基础它们大多是“在现场吃过亏之后才真正重视”的东西。所以我更希望这份清单不是被你收藏起来而是被当成每天开工前的一个动作拿一条问一句查一遍。坚持一段时间之后你会发现自己已经不太需要依赖别人的经验了——因为你已经养成了属于自己的那套确认习惯。

相关新闻

3k张VOC规范火焰数据集:解决标注格式不一致与小目标检测难题

3k张VOC规范火焰数据集:解决标注格式不一致与小目标检测难题

简介:本资源是面向深度学习初学者与安全监控项目开发者的火焰识别专用VOC格式标注数据集,聚焦火灾预警、智能安防等实际应用场景,支持YOLO系列模型快速训练与验证。压缩包共2000个文件,含3008张JPG火焰图像、3008份对应XML标注文件…

2026/10/11 12:08:26 阅读更多 →
UniDAC 10.3源码包在Delphi 12与Lazarus中的编译安装指南

UniDAC 10.3源码包在Delphi 12与Lazarus中的编译安装指南

简介:UniDAC 10.3 源代码包专为 Delphi 12、Free Pascal 3.3.1 与 Lazarus 3.9.9 打造,是面向 Delphi 控件开发者的通用数据访问组件。它能够统一连接 MySQL、Oracle、SQL Server 等主流数据库,让开发者无需关心底层协议差异即可完成数据读写…

2026/10/11 12:07:25 阅读更多 →
openjdk:8-jre镜像拉取失败?从manifest机制到Temurin迁移方案

openjdk:8-jre镜像拉取失败?从manifest机制到Temurin迁移方案

前阵子在调整 CI 流水线的时候,发现只要执行到docker pull openjdk:8-jre这一行就会直接 fail,报错信息是Error response from daemon: manifest for openjdk:8-jre not found: manifest unknown。更让我纳闷的是,上个月同样的命令还好好的&a…

2026/10/11 12:07:25 阅读更多 →

最新新闻

酒店管理系统毕设:房态流转、数据库设计与Spring Boot实战

酒店管理系统毕设:房态流转、数据库设计与Spring Boot实战

简介:这是一套面向Java毕业设计场景的酒店管理系统完整资料包,涵盖毕业设计论文、答辩PPT、源代码、数据库及讲解视频,主要帮助计算机类专业学生解决系统开发、毕业论文撰写和答辩准备等环节的实际问题。压缩包共13个文件,包含3个…

2026/10/11 13:04:46 阅读更多 →
用Python从零开发轻量停车管理系统:入场计费与GUI实战

用Python从零开发轻量停车管理系统:入场计费与GUI实战

上个月帮一个朋友收拾小区停车场的烂摊子,他们的登记方式还停留在一本纸质记录本加一个计算器的阶段:进场时手写车牌和入场时间,出场时翻遍整本本子找记录、算费用。高峰期出口堵成一团,保安一边对着单据皱眉,一边跟车…

2026/10/11 13:04:46 阅读更多 →
免root下的五层执行隔离:OpenClaw on Android 安全架构完全解读(SELinux、应用沙箱与版本锁定)

免root下的五层执行隔离:OpenClaw on Android 安全架构完全解读(SELinux、应用沙箱与版本锁定)

移动开发AI 应用CLI开发工具 【免费下载链接】openclaw-android Run OpenClaw on Android with a single command — no proot, no Linux 项目地址: https://gitcode.com/gh_mirrors/op/openclaw-android 点击查看 免费下载 OpenClaw on Android 让你免 root 在安卓…

2026/10/11 13:04:46 阅读更多 →
TSN网络离线规划器OpenPlanner:从约束建模到GCL下发

TSN网络离线规划器OpenPlanner:从约束建模到GCL下发

简介:OpenPlanner是一个开源TSN规划器,面向工业物联网、自动驾驶、远程医疗等低时延高可靠场景的工程师与研究者,核心价值在于通过调度算法为时间敏感网络提供确定性传输规划。资源包共217个文件,以91个Python脚本与87个JSON配置为…

2026/10/11 13:04:46 阅读更多 →
NMODBUS 实战:C# 实现 Modbus TCP 主站与从站模拟

NMODBUS 实战:C# 实现 Modbus TCP 主站与从站模拟

简介:NMODBUS.zip 是一套面向 C# 开发者的 MODBUS TCP/IP 通信库资源,适合刚接触工业自动化协议、需要快速与 PLC 建立数据交互的新手与中级开发者。它封装了 ModbusTcpMaster 等核心类,提供读写保持寄存器、线圈以及数据转换、异常处理等常用…

2026/10/11 13:04:46 阅读更多 →
为什么iwe拒绝规定笔记结构?揭秘文本图管理工具的3条设计原则

为什么iwe拒绝规定笔记结构?揭秘文本图管理工具的3条设计原则

人工智能Agent 记忆MCP 服务CLI知识管理开发工具 【免费下载链接】iwe Markdown knowledge graph — LSP for your editor, CLI MCP memory for your AI agents 项目地址: https://gitcode.com/gh_mirrors/iw/iwe 点击查看 免费下载 🤔 用过不少笔记工…

2026/10/11 13:03:46 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练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/10 10:38:42 阅读更多 →