AI写PLC程序实战:用Claude大语言模型辅助工业自动化编程的完整指南
1. 为什么AI写PLC程序这件事值得认真聊搞工业自动化的朋友这两年应该都有一个明显感受以前写PLC程序靠的是翻手册、查指令表、一遍遍在线调试现在越来越多的人开始尝试让大语言模型帮忙生成梯形图逻辑、SCL代码、甚至整段工艺流程的控制框架。我自己从2023年开始断断续续用Claude、GPT这类工具辅助PLC编程踩过的坑和捡到的便宜都不少今天就把这套AI写PLC的实战经验完整拆一遍。先说清楚这篇文章适合谁看。如果你是完全没碰过PLC的纯小白建议先补一下继电器逻辑和基本指令系统再来如果你是有几年经验的电气工程师、自动化集成商的技术负责人或者正在做产线改造、设备程序维护的一线人员那这篇内容基本可以当作一份AI辅助PLC编程操作手册来用。核心关键词就几个AI、PLC、编程、Claude、大语言模型围绕这几个词展开的所有实操细节我都会尽量讲透。需要提前说明的是AI写PLC程序这件事目前阶段的定位非常明确——它是一个高效的辅助工具不是一个能替代工程师的自动编程机器。它最擅长的是帮你快速生成代码骨架、翻译逻辑描述、解释报错信息、补全注释文档它最容易翻车的地方是指令语法细节、硬件相关地址映射、安全联锁逻辑。把这两条边界搞清楚你就能用它省下大量重复劳动而不是被它带进沟里。下面我按整体思路—核心细节—实操过程—问题排查四个大块来讲每一块都会给出可以直接抄作业的方法和参数。2. 整体设计思路AI在PLC编程里到底该干什么2.1 先明确AI的能力边界别让它干不该干的活很多人第一次用AI写PLC上来就是一句帮我写一个十字路口红绿灯的PLC程序然后拿到一段看起来像模像样的代码直接往TIA Portal里一贴编译报错几十条。问题不在于AI不行而在于你没告诉它用什么平台、什么指令集、什么编程语言。PLC这个领域和普通软件开发最大的区别在于强硬件绑定。西门子的S7-1200/1500、三菱的FX/Q系列、欧姆龙的NJ/NX、AB的ControlLogix指令系统、数据类型、地址格式完全不一样。你让AI写一个定时器它可能给你Python的time.sleep()也可能给你西门子的TON还可能给你三菱的OUT T0 K50。所以第一步永远是把平台信息喂给它。我自己的做法是在每次对话开头固定给一段系统提示格式大概是这样你是一名资深PLC工程师精通西门子S7-1500系列 使用TIA Portal V17编程主要用SCL和LAD两种语言。 请在所有代码中标注变量类型和绝对地址 定时器统一使用TON/TONR计数器使用CTU/CTD。 输出代码时请附带变量表。这段提示看起来简单但它能把AI的输出质量拉高一个档次。原因很直接大语言模型的输出高度依赖上下文你给的约束越具体它越不会自由发挥。2.2 三种典型使用场景对应三种不同的提问方式我把AI辅助PLC编程的用法分成三类每类的提问模板和预期产出都不一样场景典型需求提问方式预期产出代码生成从零写一段逻辑描述工艺平台语言可编译的代码骨架代码翻译梯形图转SCL、老程序转新平台贴原代码目标平台转换后的代码差异说明调试辅助报错排查、逻辑优化贴报错代码片段原因分析修改建议这三种场景里代码生成是最容易出成果的代码翻译是最省时间的调试辅助是最考验AI理解能力的。我个人的经验是代码生成和翻译可以放心大胆用调试辅助要带着怀疑态度看它的结论因为它经常会把语法错误和逻辑错误搞混。2.3 为什么选Claude而不是别的模型热词里出现了Claude、Claude Code、Claude Desktop这些词说明不少同行已经在用Claude做编程辅助。我自己对比下来Claude在PLC这个领域的优势主要有三点第一长上下文处理能力强。PLC程序经常是几百上千行的规模你要让它理解整个程序的逻辑关系上下文窗口不够大根本做不到。Claude在这方面的表现明显好于早期的一些模型。第二对结构化代码的遵循度高。你让它按SCL语法写它基本不会跑偏去写ST或者C你让它标注变量类型它也会老老实实标。这一点在生成需要严格语法的PLC代码时特别重要。第三解释能力强。PLC里很多指令比如西门子的RD_SYS_T读系统时间、RDREC读记录用法比较绕Claude能把参数含义、调用时机、常见错误讲得比较清楚这对新手特别友好。当然Claude也不是万能的。它对某些国产PLC品牌比如汇川、信捷的指令系统了解有限对最新的TIA Portal版本特性也可能滞后。所以平台信息一定要在提示里写清楚遇到它不确定的地方要主动追问。3. 核心细节解析让AI输出可用PLC代码的关键要点3.1 提示词的结构化写法这是整篇文章最核心的部分。我试过几十种提问方式最后总结出一个五段式提示词模板实测下来生成代码的可用率能从30%提到70%以上第一段角色和平台明确告诉AI它是谁、用什么平台、什么版本、什么编程语言。第二段工艺描述用自然语言把控制流程讲清楚包括输入信号、输出信号、中间状态、时序要求。第三段变量定义把I/O地址、DB块、M区变量提前列出来让AI按你给的变量名写代码而不是自己编。第四段输出格式要求要求它输出代码变量表注释必要时要求它画流程说明。第五段约束条件比如不使用未定义的变量、所有定时器必须用TON、安全逻辑必须独立。举个实际例子。我要写一个电机星三角启动过载保护的程序提示词是这样组织的角色你是西门子S7-1200 PLC工程师使用TIA Portal V17SCL语言。 工艺按下启动按钮I0.0主接触器Q0.0得电星接触器Q0.1得电 延时5秒后星接触器断开、角接触器Q0.2得电。按下停止按钮I0.1 所有接触器断开。过载信号I0.2为1时立即断开所有输出并置故障标志M0.0。 变量启动I0.0停止I0.1过载I0.2主接触器Q0.0 星接触器Q0.1角接触器Q0.2故障标志M0.0定时器T1TON。 输出SCL代码变量表关键逻辑注释。 约束星角和角接触器必须互锁切换时留100ms死区。这样一段提示丢过去Claude生成的代码基本可以直接编译剩下的就是在线调试微调。关键就在于你把该给的约束全给了它就没有自由发挥的空间。3.2 变量命名和地址规划AI最容易出错的地方我踩过最大的一个坑就是让AI自己编变量名和地址。结果它给我生成了一个Motor_Start的BOOL变量地址写的是%I0.0但同一个程序里另一个地方又用了%I0.0做停止信号。这种地址冲突在AI生成的代码里非常常见因为它是按语义生成代码的不是按资源生成代码的。解决办法很简单变量表你自己先列好让AI照着用。具体做法是在提示词里附一个变量表格式如下变量名数据类型地址注释Start_BtnBool%I0.0启动按钮Stop_BtnBool%I0.1停止按钮OverloadBool%I0.2过载信号KM_MainBool%Q0.0主接触器KM_StarBool%Q0.1星接触器KM_DeltaBool%Q0.2角接触器Fault_FlagBool%M0.0故障标志StarTimerTON%DB1星三角切换定时器有了这张表AI生成的代码里所有变量引用都会和你的实际硬件对应上省去了大量手动改地址的时间。这一步看起来麻烦但它能把调试时间缩短一半以上。3.3 安全逻辑必须人工复核这是我要反复强调的一点。AI生成的PLC代码安全相关的逻辑绝对不能直接用。原因有两个第一AI不理解你现场的安全等级要求。一个急停回路到底是用安全继电器硬接线还是走PLC的安全程序还是两者都有这取决于你的安全评估结果AI给不出这个判断。第二AI容易在安全逻辑上偷懒。比如你要求过载时立即断开所有输出它可能只写了断开主接触器忘了断开星角和角接触器。这种遗漏在普通逻辑里可能只是小问题在安全逻辑里就是事故隐患。我的做法是AI生成的代码里所有涉及急停、过载、限位、互锁的部分全部人工重写一遍。AI生成的版本只作为参考不作为最终版本。这个习惯救过我好几次。3.4 注释和文档AI的强项要用足PLC程序的可维护性很大程度上取决于注释质量。但实际项目里工程师往往因为赶工期注释写得一塌糊涂。这时候AI就派上大用场了。你可以把一段没有注释的代码贴给AI让它逐行添加中文注释说明每个变量的作用和逻辑意图。它生成的注释质量通常比人工写的还规范因为它不会偷懒。我现在的习惯是程序写完后统一让AI过一遍注释然后再人工检查一遍效率比纯手工高很多。同样程序说明文档、变量表、流程图这些文档工作也可以大量交给AI。你只要把程序逻辑讲清楚它能帮你生成结构化的文档格式还特别整齐。4. 实操过程从零用AI写一个完整PLC程序的完整流程4.1 环境准备和工具链搭建在开始之前你需要准备这些东西PLC编程软件西门子用TIA PortalV16以上三菱用GX Works3欧姆龙用Sysmac Studio。版本尽量用新一点的AI对旧版本的指令细节可能记不准。仿真工具西门子的PLCSIM或PLCSIM Advanced三菱的GX Simulator。仿真环境能让你在不接硬件的情况下验证AI生成的代码这是必须的。AI工具Claude网页版或Claude Desktop如果要用Claude Code做批量处理需要单独配置。国内用户如果访问受限可以考虑本地部署大语言模型但要注意本地模型的代码生成能力通常弱于云端大模型。变量表模板提前准备好Excel或CSV格式的变量表模板方便和AI交互。这里特别说一下PLCSIM Advanced。热词里有人问plcsim advanced plc启动不了 error11这个问题我遇到过。常见原因有三个一是虚拟网卡没配置好二是Windows的Hyper-V和VMware冲突三是PLCSIM Advanced的授权没装对。解决办法是先在Windows功能里确认Hyper-V状态然后检查虚拟网卡的IP段是否和实际PLC冲突。这个坑我在4.4节还会详细讲。4.2 第一步把工艺需求翻译成AI能理解的描述假设我们要做一个传送带分拣系统的控制程序。工艺描述是这样的传送带由电机M1驱动入口光电传感器PE1检测到工件后传送带启动。工件经过颜色传感器CS1时如果是红色气缸V1动作将其推入红色料道如果是蓝色气缸V2动作推入蓝色料道如果是其他颜色不动作工件走到末端由PE2检测后进入废料道。传送带运行期间如果急停按钮ES1被按下所有输出立即断开。这段描述要翻译成AI能理解的格式需要拆成输入信号、输出信号、中间变量、控制流程四个部分。我一般会写成这样输入 PE1 %I0.0 入口光电 CS1_Red %I0.1 红色信号 CS1_Blue %I0.2 蓝色信号 PE2 %I0.3 末端光电 ES1 %I0.4 急停常闭 输出 M1 %Q0.0 传送带电机 V1 %Q0.1 红色气缸 V2 %Q0.2 蓝色气缸 中间变量 Run_Flag %M0.0 运行标志 Red_Latch %M0.1 红色锁存 Blue_Latch %M0.2 蓝色锁存 流程 1. PE1上升沿触发Run_Flag置位M1输出 2. CS1_Red为1时Red_Latch置位 3. CS1_Blue为1时Blue_Latch置位 4. PE2上升沿时根据Red_Latch/Blue_Latch状态驱动V1或V2 延时500ms后复位锁存 5. ES1为0时急停按下所有输出复位这样一段描述丢给AI它生成的代码基本就是可用的。关键是把时序关系讲清楚特别是上升沿、延时、锁存这些概念一定要明确写出来。4.3 第二步生成代码并做静态检查AI生成代码后不要急着往PLC里下载。先做三件事第一检查变量引用。看代码里用到的变量是不是都在你的变量表里有没有AI自己编出来的变量。第二检查指令语法。不同平台的指令写法不一样比如西门子的上升沿检测用R_TRIG三菱用LDPAI有时候会混用。这个要逐条核对。第三检查逻辑完整性。把代码从头到尾读一遍看有没有遗漏的分支、有没有死循环、有没有互锁缺失。我一般会用一个检查清单来过检查项检查内容常见问题变量引用所有变量是否在变量表中定义AI自编变量名地址冲突同一地址是否被多处赋值双线圈问题指令语法指令是否符合目标平台规范平台混用互锁逻辑互斥输出是否有互锁星三角、正反转安全逻辑急停、过载是否独立处理遗漏断开定时器/计数器类型和参数是否正确TON/T OF混淆这个清单看起来简单但能过滤掉80%的低级错误。4.4 第三步仿真验证和在线调试代码静态检查通过后进仿真环境跑一遍。以西门子PLCSIM为例步骤是在TIA Portal里编译项目确认无错误启动PLCSIM下载程序打开监控表强制输入信号观察输出变化按工艺描述逐条验证逻辑仿真阶段最容易发现的问题是时序问题。比如星三角切换的死区时间AI可能给你写了100ms但实际电机要求是200ms这种参数必须根据实际设备调整。仿真能帮你快速验证参数是否合理不用反复下载到真机。如果PLCSIM Advanced启动报error11先检查这几点虚拟网卡是否启用、IP地址是否冲突、Hyper-V是否开启、授权是否有效。我遇到过一次是虚拟网卡的IP段和公司内网冲突改了网段就好了。4.5 第四步代码优化和文档生成程序跑通之后还有两件事要做一是让AI优化代码结构。比如把重复的逻辑封装成FC或FB把硬编码的参数提取成常量把长代码拆成多个网络。这些优化AI做得比人工快而且不容易漏。二是让AI生成文档。把最终代码贴给AI让它生成程序说明、变量表、流程图说明。这些文档在项目交付和后期维护时特别有用。我现在的完整流程是需求描述→AI生成→静态检查→仿真验证→人工优化→AI生成文档→人工审核。整个流程下来一个中等复杂度的PLC程序从需求到可交付时间能压缩到传统方式的一半左右。5. 常见问题与排查技巧实录5.1 AI生成代码的典型问题速查表问题现象可能原因解决方法编译报错未定义变量AI自编变量名提供完整变量表编译报错指令不存在平台/版本不匹配提示词中明确平台版本逻辑运行异常时序理解错误补充时序描述人工复核输出抖动缺少锁存/滤波增加R_TRIG或TON互锁失效AI遗漏互锁逻辑人工补充互锁定时器不动作定时器类型错误核对TON/TOF/TONR地址冲突双线圈检查变量表地址分配5.2 几个我踩过的坑坑一AI把常闭当常开。急停按钮在硬件上是常闭触点正常时信号为1按下时为0。但AI经常按按下为1来写逻辑导致急停逻辑完全反了。这个坑我踩过两次后来在提示词里明确写急停信号常闭正常为1按下为0就没再出过问题。坑二AI生成的定时器参数单位不对。西门子的TONPT参数单位取决于时基可能是ms、s、min。AI有时候按ms给参数有时候按s给导致延时时间差1000倍。解决办法是在提示词里明确所有定时器PT参数单位为毫秒。坑三AI不理解PLC的扫描周期。PLC程序是循环扫描执行的AI有时候会写出依赖程序执行顺序的逻辑但实际扫描顺序可能和它想的不一样。这类问题在仿真阶段能发现但需要你仔细看监控。坑四AI对国产PLC支持有限。汇川、信捷、台达这些品牌的指令系统AI了解得不如西门子、三菱透彻。用这些平台时AI生成的代码需要更多人工修改。我的建议是国产PLC的程序AI只用来生成逻辑框架具体指令全部人工替换。5.3 提升AI生成质量的几个技巧技巧一给例子。在提示词里附一段你以前写的类似代码让AI参考风格。这个技巧特别有效AI会模仿你给的代码风格和结构。技巧二分步生成。不要一次性让AI生成整个程序而是按功能块分步生成。比如先写急停逻辑再写启动逻辑再写分拣逻辑。每步生成后检查一遍再进入下一步。这样出错容易定位。技巧三让AI自我检查。生成代码后追问一句请检查这段代码是否有变量未定义、地址冲突、互锁缺失的问题。AI的自检能力还不错能发现一部分问题。技巧四用Claude Code做批量处理。如果你有大量类似的程序要写可以用Claude Code写脚本批量生成。比如把变量表和工艺描述做成CSV让Claude Code读取后批量生成代码。这个用法适合集成商做标准化项目。技巧五建立自己的提示词库。把常用的提示词模板保存下来下次直接改参数用。我现在的提示词库里有几十个模板覆盖了电机控制、PID、通信、HMI交互等常见场景效率提升非常明显。5.4 关于本地部署大语言模型的现实考量热词里有人问本地部署大语言模型我实际试过用本地模型做PLC编程辅助。结论是目前阶段本地模型在PLC代码生成上的表现还不足以替代云端大模型。主要问题是本地模型的参数量通常较小对PLC指令细节的掌握不够生成的代码错误率明显更高。如果你的项目涉及保密要求必须本地部署我的建议是本地模型只用来做代码注释、文档生成这类低风险任务核心代码生成还是用云端大模型生成后人工复核。或者用本地模型做初稿云端模型做优化两者结合。6. 关于AI写PLC这件事我的一些真实体会用了两年多AI辅助PLC编程最大的感受是它改变的不是能不能写而是写得多快。以前写一个中等复杂度的程序从需求到调试完成可能要两三天现在用AI辅助一天就能搞定剩下的时间可以用来做优化和文档。但有一点始终没变工程师的判断力仍然是核心。AI能生成代码但它不知道你的现场环境、不知道你的设备特性、不知道你的安全要求。这些判断必须由人来做。我见过有人直接把AI生成的代码下载到设备上结果因为一个互锁缺失烧了接触器。这种教训说明AI是工具不是替身。另外AI生成的代码质量高度依赖你的提示词质量。你描述得越清楚它生成得越准。这其实反过来倒逼工程师把需求想清楚——很多时候我们写程序出问题不是因为不会写而是因为需求本身没想明白。AI辅助编程的过程某种程度上也是需求梳理的过程。最后分享一个小技巧每次用AI生成代码后让它用自然语言把代码逻辑复述一遍。如果它复述的逻辑和你的需求一致说明代码大概率没问题如果复述出来有偏差说明你的提示词或者它的理解有问题需要调整。这个复述验证法我用了几十次非常有效。后续如果要做更复杂的项目比如多PLC协同、SCADA集成、视觉系统联动AI辅助的空间会更大。这些场景下代码量更大、逻辑更复杂AI的效率优势会更明显。但同样安全逻辑和关键互锁永远要人工把关。

相关新闻

微信小程序登录全解析:从wx.login到code2session完整指南

微信小程序登录全解析:从wx.login到code2session完整指南

这个需求几乎每个小程序开发者都躲不掉:用户打开小程序,需要识别出他是谁。我刚接到这个任务时心里想的是“不就是调一下 wx.login 嘛”,但真正做完才发现,微信登录这条链路里藏着 wx.login、code2session、openid、session_key、…

2026/10/9 11:22:15 阅读更多 →
Vue项目AI扩图实战:方案选型、代码实现与坑点优化

Vue项目AI扩图实战:方案选型、代码实现与坑点优化

上个月有个朋友来找我,说他们后台管理系统的商品图片比例总是不统一,设计师给的图换到不同位置就要重新裁,用户上传的图尺寸更是五花八门。我第一个想到的就是在 Vue 项目里直接做一个AI 扩图功能:让用户上传原图,AI 自…

2026/10/9 11:22:15 阅读更多 →
Makefile patsubst函数实战:模式替换与路径映射技巧

Makefile patsubst函数实战:模式替换与路径映射技巧

1. 从一次Makefile调试事故说起:为什么patsubst值得单独拎出来讲如果你写过稍微复杂一点的Makefile,大概率遇到过这样的场景:源文件散落在src/、src/core/、src/utils/好几个目录里,编译产物想统一放到build/下对应的子目录&#…

2026/10/9 11:22:15 阅读更多 →

最新新闻

Ubuntu Server 无桌面环境播放视频与显示网页:轻量 X11 方案实战

Ubuntu Server 无桌面环境播放视频与显示网页:轻量 X11 方案实战

1. 为什么要在 Ubuntu Server 上播放视频和显示网页很多人第一次听到“在 Ubuntu Server 上播放视频、显示网页”这个需求时,第一反应是:Server 版不是没有图形界面吗?这不是自找麻烦吗?我一开始也这么想,直到实际碰到…

2026/10/9 11:59:07 阅读更多 →
Rust CLI开发指南:深入Abscissa微框架核心机制与实战避坑

Rust CLI开发指南:深入Abscissa微框架核心机制与实战避坑

1. 项目概述:为什么一个叫“Abscissa”的微框架值得你花时间搞懂?最近在几个技术社区里,陆续看到有开发者提到Abscissa这个名字——不是坐标系里的横轴本义,而是一个真实存在的、专注构建命令行工具(CLI)的…

2026/10/9 11:59:07 阅读更多 →
ODC与ICT认证:从概念到职业发展的完整指南

ODC与ICT认证:从概念到职业发展的完整指南

1. 两个高频缩写的真实含义拆解1.1 为什么这两个词总被放在一起搜在ICT行业里摸爬滚打的人,几乎都遇到过这样的场景:招聘网站上刷到“ODC岗位”,技术交流群里有人晒“ICT认证证书”,刚入行的朋友一脸懵地跑来问“这俩到底是不是一…

2026/10/9 11:59:07 阅读更多 →
SSM+Vue流浪动物领养助养系统设计与实现全流程

SSM+Vue流浪动物领养助养系统设计与实现全流程

做毕设选什么题目,比怎么做更重要。我今年定的题目是“ssmvue流浪动物领养助养系统”,后端用Spring、SpringMVC、MyBatis这套SSM框架,前端用Vue,再加上毕业论文和一套能跑起来的完整程序。整套做下来,从数据库设计到领…

2026/10/9 11:59:06 阅读更多 →
Nuxt vs Next.js:全栈框架选型实战与避坑指南

Nuxt vs Next.js:全栈框架选型实战与避坑指南

全栈框架的选型,几乎是每个前端团队从“纯做页面”走向“独立交付产品”时绕不开的一道坎。我这些年带过几个不同规模的项目,从内容站、后台系统到偏交互的 SaaS 工具,Nuxt 和 Next.js 这两个名字反复出现在技术评审会上。它们都打着“全栈框…

2026/10/9 11:59:06 阅读更多 →
投资理财系统源码:从部署到二次开发的完整实战指南

投资理财系统源码:从部署到二次开发的完整实战指南

简介:面向金融商贸领域开发与运维人员的投资理财系统完整源码包,适用于银行、基金、P2P等机构搭建理财平台。资源共有2000个文件,以php后端逻辑、html前端页面、js交互脚本及大量jpg/png图片资源为主,辅以sql数据库脚本、配置文件…

2026/10/9 11:58:05 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* 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 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 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/8 21:13:17 阅读更多 →
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/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练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/9 6:17:20 阅读更多 →