news 2026/9/5 7:09:29

VFBOX网关实现逆变器Modbus转IEC104接入光伏监控平台

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
VFBOX网关实现逆变器Modbus转IEC104接入光伏监控平台

VFBOX网关实现逆变器Modbus转IEC104接入光伏监控平台项目案例

做光伏运维这些年,最常遇到的一个坑就是设备数据上不来。尤其是分布式光伏项目,逆变器品牌杂、型号多,通讯协议五花八门,底层采集用的大多是Modbus RTU或者Modbus TCP,可监控平台调度侧偏偏只认IEC104规约。两边语言不通,数据就卡在中间层,项目交付一拖再拖。这篇文章我以VFBOX网关为载体,把“逆变器Modbus转IEC104接入光伏监控平台”的完整链路拆开来讲,从协议梳理、数据点表设计、网关配置、平台联调,到现场常见的坑和排查手段,一次性说透。不管你是做光伏EPC的工程师、做运维的技术员,还是刚接触规约转换的PLC调试人员,这篇文章都能帮你少走不少弯路。

1. 项目背景与方案选型逻辑

先交代一下项目的基本盘。现场有30多台组串式逆变器,每台逆变器都有标准的Modbus RTU通讯接口,内部寄存器里存了实时功率、日发电量、总发电量、直流侧电压电流、交流侧三相电压电流、机内温度、告警状态这类关键运行数据。但业主方的集中监控平台对接要求却很明确:必须用IEC104规约上送数据。这就相当于一个只会说方言的人,要跟一个只听得懂普通话的人对话,中间必须有一个“翻译”来完成协议转换。

这种场景在光伏电站里太常见了,选型的时候其实摆在我面前有三条路。第一条是直接用开源协议转换软件跑在工控机上,比如在Linux里装一些协议网关程序,把Modbus采集的数据重新封装成IEC104报文,再转发给平台。省钱是省钱,但工控机需要长期开机、稳定性、散热、系统崩溃恢复都是问题,而且光伏电站现场的电网环境复杂,工控机死机一次,数据就断一次,运维成本根本压不住。第二条是改用支持Modbus转IEC104的专用规约转换装置,比如VFBOX这类工业协议网关。这类设备是嵌入式硬件,上电就跑,没有操作系统层面的脆弱性,MTBF比普通工控机高了一个量级。第三条是从逆变器底层入手,直接换用支持IEC104的通讯板,但现场逆变器不支持热插拔更换通讯板,而且改造工期长、停机损失大,基本上不现实。

综合三个方案的投入产出比,最后还是选了VFBOX网关。这里有个很现实的考量:VFBOX网关可以同时作为Modbus主站去轮询逆变器,又作为IEC104从站把数据送给监控平台,一台设备就把双向链路打通了。省掉了一台工控机,还不用自己写协议转换代码,调试时间从“周”压缩到“天”,对项目交付来说这意义非常大。当然,选VFBOX还有一个原因,就是它的配置方式足够傻瓜化,网页版配置界面,不用装客户端,后期现场改点表也方便,对一线调试人员来说学习成本极低。

再说说为什么是Modbus和IEC104这两兄弟。Modbus是工业自动化领域事实上的通讯标准,几乎所有逆变器厂商都会开放Modbus寄存器地址表,因为它是公开协议、实现简单、调试方便。而IEC104则是电力行业远动通讯的标准规约,用于调度主站和变电站/电站之间的数据交互,光伏监控平台如果要做区域级集中管理,或者跟电网调度系统对接,就必须支持IEC104。所以“Modbus采集+IEC104上送”是光伏监控项目中非常典型的技术组合。

1.1 核心需求拆解和架构设计

整个项目的核心需求有四个维度。第一是数据采集层,要求能稳定轮询所有逆变器的Modbus寄存器,采集频率满足平台刷新需求,一般在3到5秒一轮;第二是协议转换层,要把Modbus的寄存器数据映射成IEC104的信息体地址,按平台要求的分组方式上送;第三是数据上送层,要能主动建立TCP连接把IEC104报文送到监控平台的前置机;第四是异常处理层,逆变器离线、通讯中断、数据越限都要有合理的告警机制,不能把错误数据上送平台。

先看一下我画的整体架构图草图,方便大家理解数据流向:

[逆变器组串1..N] | Modbus RTU (RS485) v [VFBOX 协议网关] | IEC104 (TCP/IP) v [光伏监控平台前置机]

这里有个细节容易被人忽略:逆变器端是Modbus RTU,走的是RS485串口,远方监控平台是IEC104,走的是以太网。所以VFBOX网关必须同时具备RS485串口和以太网口,而且串口数量要足够,因为现场30多台逆变器不太可能全是手拉手串在一条485总线上,通常会分成几组,每组一条总线接到网关不同的串口上,这样不但可以降低总线负载,还能在某一组短路或者干扰时隔离故障范围。选型时我特意确认了VFBOX支持多串口型号,给项目预留了扩展余量。

1.2 为什么不用DTU透传或者直接上云

这里插一个题外话,很多做光伏的朋友会问,为什么不用4G DTU加云平台的方式?其实如果只是做一个逆变器远程监控的轻量应用,用DTU把Modbus数据透传到云平台是完全可行的,很多逆变器厂商自己的监控系统就是这么做的。但问题在于,业主的监控平台是电力调度级别的,数据要进调度系统,必须走IEC104规约,不能是MQTT、不能是HTTP,更不能是自定义透传。这是行业标准,不是技术喜好问题。所以在这个项目里,协议转换是绕不开的一环,VFBOX这类网关的作用就是把“采集适配”和“规约转换”一次性解决,省去自研的麻烦。

2. 逆变器侧Modbus通信要点盘点

只要做过Modbus采集的项目,都知道寄存器地址表是命根子。逆变器的厂家不同,寄存器地址定义差别很大,有的用40001起始的PLC地址,有的直接给你十六进制地址,有的寄存器存的是原始值需要乘以系数才是真实物理量。这块配置错了,后面全是白费功夫。

2.1 典型逆变器寄存器数据点规划

以现场某主流品牌组串式逆变器为例,它的Modbus寄存器表大概长这样:

数据名称寄存器地址(Hex)数据类型缩放系数单位
实时功率0x0100uint161W
日发电量0x0102uint321Wh
总发电量0x0104uint321Wh
A相电压0x0108uint160.1V
B相电压0x010Auint160.1V
C相电压0x010Cuint160.1V
A相电流0x010Euint160.1A
机内温度0x0112uint161
运行状态0x0114uint16-枚举

拿到这张表之后,第一步不是急着配置网关,而是先用Modbus调试软件去做点位验证。我最常用的工具是Modbus Poll,它可以直接读指定地址的寄存器,并把原始值和换算后的工程值都显示出来。逐个点位确认寄存器地址、数据类型、字节顺序,确认无误后再让VFBOX网关去读,这样能避免“网关配好了但数据一直不对”这种低级问题。

实际验证的时候有一个点必须要注意:Modbus协议里数据地址有“协议地址”和“数据地址”两种习惯叫法。有的厂商给的寄存器地址是协议地址(从0开始),有的给的是PLC地址(从1开始),中间差一个偏移。比如协议地址0x0100对应PLC地址40001十六进制换算后的0x0100+1,很多新手就是在这里被绕进去的。推荐的做法是统一用十六进制协议地址加功能码来测试,比如03功能码读地址0x0100,这样最不容易出错。

2.2 轮询策略和读取频率的权衡

逆变器数量多了之后,Modbus总线的轮询效率就成了一个关键问题。RS485是半双工通讯,一条总线上同一时刻只能有一个设备发送数据,如果所有逆变器串在一条线上,轮询一圈的时间会随设备数量线性增长。按照Modbus RTU默认波特率9600bps,一个读请求加响应大约需要20到30毫秒,30台逆变器一台一台轮询下来,一个循环就是将近1秒。再加上每条报文之间的间隔,实际跑到2到3秒一轮非常正常。

如果监控平台要求的数据刷新周期是5秒,那这个轮询速度勉强能用;但如果平台要求3秒刷新,单条总线就捉襟见肘了。现场的做法是把30多台逆变器分成了4条485总线,每条约8台设备,网关的4个串口分别接一条总线,这样4条链路并行轮询,一轮耗时压缩到1秒以内,数据刷新就从容多了。这里推荐大家配网关的时候优先选中多串口的型号,除非你的现场设备数量很少。

波特率方面,我惯例先把逆变器和网关都配成9600bps,8数据位、无校验、1停止位,这是Modbus RTU最通用的配置,兼容性最好。如果现场总线距离比较短、干扰小,可以考虑提速到19200bps,但提速之后对线材和接地要求更高,不建议在分布式光伏这种线缆走线复杂的环境里盲目提速。另外,每条485总线的两端必须加120欧姆终端电阻,这是RS485通讯稳定性的基本保障,很多现场通讯不稳定,查到最后就是少了这两个电阻。

2.3 数据格式和大小端模式坑

Modbus寄存器是16位为单位存储的,但很多数据超过16位范围,比如日发电量、总发电量这类大数值,逆变器会用连续两个寄存器来存一个32位数据。这时候就出现了一个经典的坑:字节顺序和字顺序。

举个例子,总发电量的原始十六进制值是0x12345678,如果是在两个寄存器里存为0x1234和0x5678,那么读取时到底是先来0x1234还是先来0x5678?不同厂商实现完全不同,有的是大端模式(高位在前),有的是小端模式(低位在前),有的还会把两个寄存器的字节再拆开交叉存储。好在VFBOX网关和Modbus Poll这类工具都提供了字节序设置选项,调试的时候多试几次就能匹配上。我自己的习惯是:先不换算工程值,直接在Modbus Poll里看原始寄存器值,根据读取结果的十六进制顺序判断它的大小端模式,然后在网关里把字节序配置改成对应模式,这样很快就能校准。

还有一个缩放系数的问题。逆变器寄存器里通常不会直接存带小数点的物理值,比如相电压是231.5V,寄存器里面存的可能是2315,需要除以10才是231.5V。这个缩放系数如果配置错了,界面上看到的电压就是几百甚至几千伏,半天找不到原因。配置VFBOX网关的时候,每一条数据点都要把缩放系数填对,这一点宁可多花十分钟核对,也不要等到平台联调的时候再来返工。

3. VFBOX网关IEC104转换配置实操

前面做了那么多准备工作,核心目的就是让后面的网关配置一步到位。VFBOX网关的配置方式是通过内嵌网页配置工具进行的,把电脑网卡和网关的网口连到同一个局域网,浏览器输入默认管理地址就能打开配置界面。这里我按实际调试顺序,把关键步骤拆开讲。

3.1 首次上电和网络参数准备

网关拿到手上,第一步是接电源、接网线,然后用电脑浏览器进入管理页面。默认管理IP一般印在机身标签上,常见的有192.168.1.1、192.168.0.1这类网段。如果进去之后发现页面打不开,大概率是电脑和网关不在一个网段,手动把电脑IP改成和网关同网段,比如网关是192.168.1.1,电脑就设192.168.1.100,掩码255.255.255.0,再做一次访问就通了。

第一次进去之后,建议先改管理密码,再把网关的LAN口IP改成项目实际规划的地网地址。比如光伏站控网规划的是192.168.10.x网段,网关就设成192.168.10.250,避免以后网络变动导致进不了配置界面。另外,还要确认网关到监控平台前置机的路由是通的,最简单的方式就是在防火墙或者交换机上看两个IP能不能互访,或者直接在电脑上把网关LAN地址当作网关去ping前置机地址。网络不通的话,后面IEC104连接配置得再好也是白搭。

3.2 配置Modbus主站采集逆变器数据

这一部分是整个配置的核心,大致分为三步:新建通道、配置从站设备、配置数据点表。

先说新建通道。在VFBOX配置界面里找到“通道”或“串口”配置页面,选择一个空闲的串口,配置通讯参数:波特率9600、数据位8、校验位None、停止位1、从站数量按实际设备数量来。这个通道就是一条物理RS485总线,对应现场的一组逆变器。

然后是配置从站设备。在通道下面添加从站设备,一个从站就是一台逆变器,配置它的Modbus从站地址(1到247之间),以及访问模式(RTU或TCP)。如果现场是Modbus TCP的逆变器,那就不走串口,直接在网口通道下建TCP客户端去连接逆变器,配置逻辑是一样的,差异只在物理链路上。

最后是配置数据点表。这是最繁琐的一步,需要把前面整理好的寄存器表一条一条填到网关里。每条数据点要配置的内容包括:数据名称、功能码(一般用03读保持寄存器)、寄存器地址、数据类型(16位无符号、32位无符号、32位浮点等)、字节序、缩放系数、数据单位。填完之后保存、重启,网关就会开始轮询这些寄存器。

配置点表的时候有几个小技巧想分享。第一,数据名称尽量用英文或者拼音,不要用中文字段名,有些平台的转发配置对中文支持不好,会乱码;第二,每个数据点选完类型之后,最好在“模拟量”或“只读”属性上认真选一下,有些点位是状态量(如开关机状态),有些是模拟量(如电压电流功率),在IEC104里对应不同类型的信息体地址,属性选错了转换层不会报错,但平台端接收后显示会异常;第三,非关键点位可以先不加,等核心数据调通后再逐步补全,避免一开始点表太大,问题排查范围也跟着变大。

3.3 IEC104从站配置和公共地址规划

IEC104的配置相比Modbus采集要简单一些,关键是理清几个参数:公共地址、传输原因、信息体地址、RTU地址映射关系。

公共地址(Common Address, COA)在IEC104规约里用来标识一个从站(或者一个站所),平台侧会根据这个地址来区分不同的上送设备。如果整个光伏电站只要上送一个VFBOX网关的数据,公共地址一般设成1,或者按平台具体要求来。如果以后要接多个网关,每个网关的公共地址必须不同,平台侧才能区分是哪个站的数据。

信息体地址(Information Object Address, IOA)在IEC104里是数据点的唯一标识,平台侧根据IOA来识别具体是功率还是电压还是电度。VFBOX网关在做协议转换的时候,允许用户给每个Modbus数据点手动指定IOA,这非常有用。你可以按平台的点表要求,把实时功率映射到IOA 10001,把日发电量映射到IOA 10002,总发电量映射到IOA 10003,这样平台那边配置起来就非常顺,不用改平台侧的点表,直接对上。

3.4 IEC104双端连接和主动上送机制

IEC104规约的一个特点是它有“站端主动上送”的机制,也就是常说的遥控、遥信变位、遥测越死区主动上报。平台侧配置好前置机地址和端口后,网关会作为客户端主动向平台前置机发起TCP连接,建链之后按照规约握手确认,然后开始周期性上送遥测数据。这里有个重要参数叫“死区”,也就是数据变化多少才触发主动上送,设置太大会导致数据变化不敏感,设置太小会导致频繁上送占用带宽。一般来说,实时功率的死区设成总装机容量的1%左右比较合适,电压死区设成1V,电流死区设成0.5A,这样既能保证数据实时性,又不会造成网络拥塞。

VFBOX网关的IEC104从站配置界面里,一般会有“本地端口”“对端IP”“对端端口”“公共地址”“心跳周期”等参数。对端IP和端口填平台前置机的地址,心跳周期默认15秒或者30秒,这个值要保持和平台侧一致,不然平台会判定链路超时断开连接。调试的时候,先打开IEC104主站模拟软件,比如使用一些开源的IEC104客户端测试工具,把前置机地址指向模拟软件,手动触发网关主动上送,确认报文里面的公共地址、IOA、数据类型、传输原因都正确,再切换到真实监控平台,这样能把平台侧的问题和网关侧的问题隔离开来,排查效率高很多。

4. 光伏监控平台联调与常见问题排查

网关配置完成只是一个开始,真正让项目跑起来是在联调阶段。这一部分我结合现场实际踩过的坑,把平台联调流程和常见问题排查做个详细梳理。

4.1 平台前置机侧配置步骤

监控平台侧要做的准备工作相对简单,但这一步如果做不好,也会导致通信链路建不起来。以某主流光伏监控平台为例,它有一个“前置通讯管理”模块,在这里需要新增一个IEC104从站设备,配置以下参数:

  • 设备名称:一般用电站名称加逆变器组,便于人眼识别;
  • 通讯方式:TCP服务端,监听端口通常使用2404,这是IEC104规约的默认TCP端口;
  • 公共地址:必须和VFBOX网关内配置的公共地址一致;
  • 数据点表:按照之前规划好的IOA映射,在平台里添加对应的遥测量点。

这里最常见的错误是:平台前置机做的是TCP服务端(监听端口),而VFBOX网关做的是TCP客户端(主动去连平台),两边模式配反了。IEC104规约里规定了站端(采集侧)是客户端,调度端/监控平台侧是服务端,所以必须网关主动去连平台,平台侧只能被动监听。如果反过来配置,链路永远建不起来。

4.2 数据刷新慢和链路抖动排查思路

联调过程中,最让人头疼的就是数据刷新慢和链路来回断开。先说链路抖动。IEC104建链之后,站端和主站之间会周期性发送TESTFR(测试帧)来维持连接,如果其中一方在规定时间内没收到对方的确认帧,就会认为链路中断,主动断开TCP连接。遇到链路反复断开,先检查网关和前置机的时钟是否同步,如果两端时间差太大,会导致报文序号错乱,验证时会连续出错。其次检查心跳周期配置,网关和平台侧的心跳周期必须匹配,一般15秒或30秒比较常见,不要一边15一边60,那样会出现频繁超时。

再来说数据刷新慢。在Modbus采集侧,如果一条总线上挂了太多逆变器,轮询周期就长,IEC104上送的数据自然就慢。这时候优先优化采集侧,检查网关的数据采集周期配置,看看能不能把不重要的点位读取周期放长,或者把核心点位单独建通道。还有一种特殊情况是网关内存里的缓存区满了,导致新数据覆盖旧数据不及时,这种需要看网关的运行日志,一般日志里会有错误提示,按日志去调整即可。

4.3 模拟测试工具实战:Modbus Poll和IEC104客户端

任何现场调试都离不了模拟工具,合理利用工具能快速定位问题。Modbus Poll是用来模拟Modbus主站读设备的,它可以模拟VFBOX网关去读逆变器的寄存器,验证逆变器点位是否正常。反过来,也可以用Modbus Slave模拟逆变器,配合VFBOX网关调试采集链路的配置。两套工具组合使用,可以做到:先用Modbus Slave模拟逆变器发给VFBOX,确认网关能正确读取,再把VFBOX转出来的IEC104数据用IEC104客户端工具接收,验证转换是否正确。

模拟工具的使用建议分三步走。第一步用Modbus Poll接真实逆变器,确认寄存器点和缩放系数准确无误;第二步用Modbus Slave模拟一套标准的逆变器数据,接VFBOX网关,确认网关采集没问题;第三步用IEC104客户端工具做服务端接收,把VFBOX当客户端连过来,检查IEC104报文中的点位和数据是否和Modbus Slave里的原始值一致。三步都通过之后,再连真正的监控平台,剩下的事情就非常简单了。

4.4 典型故障速查和避坑心得

最后整理一份现场调试中最高频的故障速查表,都是我用时间换来的总结。

故障现象可能原因处理办法
网关采集不到逆变器数据485线A/B接反调换A、B接线顺序
网关采集超时但Modbus Poll正常终端电阻缺失或485总线过长在总线两端加120Ω终端电阻
IEC104链路建立后立刻断开心跳参数不匹配统一网关和平台侧心跳周期
IEC104链路正常但无数据上送IOA映射错误或公共地址不匹配核对平台点表和网关IOA配置
数据显示为0或极大值寄存器地址错误或缩放系数未配置重新核实逆变器寄存器表
数据刷新慢(超过10秒)轮询周期过长或总线设备过多分总线路由、调高波特率
网关IP无法访问电脑与网关卡不在同一网段临时设置电脑IP为同网段

还有一个经验想特别提醒:VFBOX这类网关在做项目交付前,一定要把配置文件备份下来。有些现场调试结束后,隔了几个月平台改了点数,或者逆变器换了一台,又要重新配置。有备份文件在手,直接导入修改,省时省力。现场照片、点表、截图、调试日志这些过程文档也要归档,后期出问题翻起来非常方便。

4.5 数据准确性核验方法

IEC104链路调通之后,不要急着签验收单,先做一轮数据准确性核验。方法是拿平台界面显示的数据和逆变器本地显示屏上的数据做对比,重点是电压、电流、实时功率、日发电量四个关键量。功率误差一般在±5%以内可以接受;电压电流由于采集周期差异,小幅波动是正常的,但持续性的偏差就要检查缩放系数。如果平台显示日发电量和逆变器本地数据差了很多,大概率是32位寄存器读取时的字序问题,重新核对大小端设置。

核验完成之后再跑24小时连续运行测试,观察链路稳定性、数据断点率、告警正确性。如果24小时内链路断开次数为零,数据完整率在98%以上,项目就可以正式交付了。别小看这24小时,很多间歇性问题(比如某台逆变器夜间模块休眠导致Modbus响应慢、485总线某个时段受现场设备干扰)都是在长时间运行测试中暴露出来的。

5. 项目复盘与扩展思考

项目收尾之后,我个人对这个方案的评价是“稳、省、快”。稳在整个链路非常简洁,没有多余节点,网关一个设备承担了采集和转换两个角色,故障点极少;省在省掉了一台工控机和相关软件授权费用,功耗也低得多;快在配置和调试周期压缩到了两三天,真正把项目交付从“需要专业协议开发人员”拉低到了“现场电气工程师就能完成”。

如果后续项目规模扩大,比如从30台逆变器扩展到100台,或者要把汇流箱、电表、气象站的数据也接入同一个平台,我的建议是:按设备类型分网关,一台VFBOX负责一类设备,不要试图把所有设备都挂到一台网关上。一是485总线的负载和轮询周期限制了单网关的容量极限,二是设备类型多了之后点表管理复杂度上升,后期维护会很难受。分段治理、按类接入,才是光伏站控网长期稳定运行的良策。

还有一点值得展望:现在很多光伏监控平台开始要求上送“遥信”和“遥控”数据,比如逆变器开关机状态、告警状态、远程启停指令。IEC104规约本身支持遥信(单点信息)和遥控(双点命令),VFBOX网关的协议转换能力也覆盖了这些功能。如果项目后期需要远程控制逆变器启停,在Modbus侧用写寄存器实现,在IEC104侧映射成遥控命令,反过来用平台下发遥控指令,网关执行写操作到逆变器,同样是一条链路搞定。这个扩展方向从技术上看完全可行,关键是前期配置时把读写权限和命令映射规划好。

写在最后,协议转换这件事,看上去是个小功能,做不好却能卡住整个项目的咽喉。我在现场见过太多因为通讯问题导致并网验收拖延的案例,本质都是“采集适配”和“规约转换”这一层没做好。把VFBOX网关这类专用设备用好,把Modbus点表摸清,把IEC104映射理透,光伏监控项目的数据链路这关就算过了。这套方法,放到其他工业现场,凡是涉及Modbus和IEC104转换的场景,也同样适用。

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

Spring AI详解

可以。你可以把 Spring AI 理解成:Spring Boot 生态里的 AI 应用开发框架,用 Spring 的方式把 LLM、Prompt、RAG、向量数据库、Tool Calling、MCP、Agent 等能力接进 Java 应用。如果你已经熟悉 Spring Boot,那么 Spring AI 是目前比较适合你…

作者头像 李华
网站建设 2026/9/5 7:08:41

WPS2013单元格数字格式设置全解析:从基础到高级应用

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

作者头像 李华
网站建设 2026/9/5 7:08:20

滤波器核心原理与选型指南:从模拟电路到数字降噪实战

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

作者头像 李华
网站建设 2026/9/5 7:07:35

可重构晶体管介质堆叠工艺:从原理到规模化制造的关键突破

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

作者头像 李华
网站建设 2026/9/5 7:06:46

MATLAB例程工程化实践:从命名解析到开箱即用

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

作者头像 李华
网站建设 2026/9/5 7:06:30

AI日报:Agent上岗、模型部署与AI应用落地的工程化实践指南

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

作者头像 李华