尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
IEC101规约报文解析与调试实战:从固定帧到总召唤
简介面向电力自动化领域的一份IEC101规约报文流程解析说明内容围绕2002版规约在实际系统中的应用展开适合变电站调试人员、电网运维工程师以及准备入手规约开发的初学者阅读。文档结合DF8900、DF8002与DF1800系统清晰对比2002版与97版ZD101的主要差别并按实际通讯顺序逐段说明请求链路状态、复位链路、总召唤、召唤一级数据、召唤二级数据等交互步骤同时详细列出链路地址、公共地址、传输原因、信息体地址、时标CP56Time2a以及ACD位等关键字段的配置规则和字节数取值便于现场核对。压缩包内为1个doc文档约121KB内容以文字说明配合报文帧结构为主包含总召唤帧、总召唤确认帧、遥信帧、遥测帧等典型报文的逐字节解析涵盖97版与2002版基地址范围差异、常用类型标识和传送原因说明可直接用于报文分析和规约调试参考。该资源已有2770人学习下载适合需要对照报文手工分析或进行规约参数配置的工程技术人员。1. 电力系统规约调试的硬骨头IEC101通讯报文到底怎么读在电力自动化现场IEC101通讯规约是主站与RTU之间最常用的通讯报文规范之一也是很多调试人员入门时最先碰到的硬骨头。拿到一串十六进制原始报文10 49 01 4A 16这种短帧到底在干什么68 09 09 68 53 01 64 01 06 01 00 00 14这些字节又各自代表什么这份资料把2002版IEC101规约的报文流程拆得很细从握手、复位链路、总召唤到对时、召唤电度、遥控每一帧都给了字节级解析。适合两类人一是刚接手变电站自动化调试、需要看懂串口报文的新手二是要从97版规约迁移到2002版、被短帧链路确认和ACD位机制折磨过的老手。下面我按自己的阅读顺序把这份资料的干货重新梳理一遍。2. 报文结构拆解固定帧、可变帧和控制域的字节级解剖2.1 固定帧长10H 开头的短帧IEC101规约里固定帧长报文是链路层最基础的控制帧典型长度只有5个字节。结构从资料里可以提炼成一张表字段字节数说明启动字符1固定为10H控制域1含PRM、FCB、FCV、ACD、DFC和功能码链路地址1或2RTU地址配置决定帧校验和1控制域与链路地址逐字节累加取低8位结束字符1固定为16H以握手请求链路状态为例完整报文是10 49 01 4A 16拆开看10H是启动字符49H是控制域01H是链路地址RTU地址4AH是校验和16H是结束字符。校验和的计算方式是0x49 0x01 0x4A正好等于4AH。这个例子很好地说明了固定帧长校验和的算法从控制域开始到链路地址为止逐字节累加超过0x100就丢掉进位。从站返回链路完好时的报文是10 0B 01 0C 16校验和0x0B 0x01 0x0C同样验证了这个规则。实际调试中我经常用这个加法快速判断一帧短报文是不是被串口噪声干扰了——校验和不对帧就可以直接丢掉。2.2 可变帧长68H 开头的 ASDU 数据帧总召唤、遥信、遥测、对时、电度这些带数据的报文全部走可变帧长结构。它的开头是68 L L 68 控制域 链路地址 ASDU 校验和 16其中L是长度从控制域开始到校验和前一字节为止的字节数。ASDU是应用服务数据单元由类型标识、可变结构限定词、传送原因、公共地址、信息体地址和信息元素组成。以总召唤帧为例68 09 09 68 53 01 64 01 06 01 00 00 14 xx 16字节值含义6868H启动字符0909H长度共9字节控制域到QOI6868H启动字符重复5353H控制域主站→从站功能码3传送数据0101H链路地址16464H类型标识召唤全数据0101H可变结构限定词1个信息体0606H传送原因激活0101H公共地址100 000000H信息体地址1414HQOI总召唤限定词xxxxH校验和1616H结束字符注意长度字段是0x09从控制域53H开始数到QOI的14H53101164101106101100 0021419刚好。这个长度自校验逻辑是排查报文截断问题的关键——如果收到的帧长度和L字段对不上说明串口缓存或者物理链路出了问题。2.3 控制域位定义、配置文件参数与校验和算法控制域是整个链路层最核心的字节。资料里给出了完整的位定义我实际使用中是这样理解的bit6为PRM位1表示主站→从站0表示从站→主站这一位决定了报文的传输方向主站→从站时bit5是FCB帧计数位bit4是FCV帧计数有效位bit3-0是功能码0复位链路、3传送数据、4请求链路状态、9请求访问、10召唤一级数据、11召唤二级数据从站→主站时bit5是ACD要求访问位bit4是DFC数据流控制位bit3-0是功能码0确认、1链路状态、8响应数据、9无数据这里最容易搞混的是ACD位。比如总召唤后从站回一个10 20 01 21 16控制域20H的bit51表示ACD1从站有数据请求主站访问。主站必须立刻发召唤一级数据帧把从站缓冲区的数据取走。如果不发从站会认为主站不想要数据后续报文可能被挂起。配置方面资料里专门提到iec101规约配置表.ini这个文件。在DF8900系统中可以通过它配置链路地址字节数1或2、公共地址字节数1或2、传送原因字节数1或2、信息体地址字节数2或3。但在DF8002/DF1800系统中没有配置文件信息固定为链路地址1字节、传送原因1字节、公共地址1字节、信息体地址2字节。这个差异决定了你解析报文时每个字段取几个字节做通用解析工具时一定要把这四个字节数设为可配置参数。帧校验和的计算对可变帧长来说是从控制域开始到信息元素最后一个字节为止逐字节累加超过0x100丢弃进位。比如资料里遥测帧的校验字节C3H就是把控制域28H、链路地址01H、类型标识15H、VSQ E0H、传送原因14H、公共地址01H、信息体地址07 01H以及后面192个遥测值字节全部累加后取低8位的结果。实际调试时我会先写个小函数算校验和再和帧尾比对能快速定位是组帧错误还是串口传输丢字节。3. 完整通讯流程走一遍从握手到总召唤的报文交互3.1 链路建立请求链路状态与复位链路主站上电后的第一件事不是直接发总召唤而是先确认链路通不通。这一步叫握手请求链路状态完整交互是主站发送: 10 49 01 4A 16 从站回复: 10 0B 01 0C 16主站发出的49H控制域表示请求链路状态从站回0BH控制域表示链路完好。如果从站没有回应或者回的是无数据帧10 09 01 8A 16说明物理链路有问题——常见的坑是RS-485的A/B线接反了或者从站设备没有上电。第二步是复位链路主站发送: 10 40 01 41 16 从站回复: 10 00/20 01 01 16注意从站回复的控制域有两种可能00H或20H。如果是00H说明从站没有一级数据等待上送如果是20H即ACD1说明从站有一级数据。我在实际调试中遇到过多次复位链路后从站直接回20H紧接着主站召唤一级数据收到的是初始化结束帧类型标识46H表示RTU刚重启完成。如果不处理这个ACD位初始化结束帧就一直积压在从站缓冲区里后面的总召唤数据可能延迟甚至出错。3.2 总召唤全数据上送的完整报文序列链路建立之后第三步是召唤全数据。这一步是整个规约流程的核心资料里给出的完整交互序列值得一步步拆。主站先发总召唤命令68 09 09 68 53 01 64 01 06 01 00 00 14 xx 16注意类型标识64H是召唤全数据传送原因06H表示激活QOI14H表示总召唤。如果QOI是其它值则可能是分组召唤这个字段决定RTU上送全部数据还是部分数据。从站收到总召唤后先回一个链路层确认短帧10 20 01 21 16。这个20H控制域再次出现ACD1主站需要发召唤一级数据来取后续帧。召唤一级数据的指令是10 7A 01 7B 16控制域7AH 0111 1010bit61表示主站→从站功能码10表示召唤一级数据。从站随后上送总召唤确认帧68 09 09 68 20 01 64 01 07 01 00 00 14 xx 16传送原因变成07H即激活确认。之后主站继续发召唤一级数据10 5A 01 5B 16FCB翻转从站依次上送遥信帧、遥测帧最后上送总召唤结束帧68 09 09 68 00 01 64 01 0A 01 00 00 14 xx 16传送原因0AH表示激活结束。到这一步一轮完整的总召唤才算结束。这里有个容易忽视的细节遥信帧和遥测帧之间主站每收完一帧都要重新发送召唤一级数据指令。换句话说从站不会连续上送多帧数据而是每帧等主站来取。这就是2002版规约严格一问一答的体现。我在调试时用串口抓包工具看报文序列发现如果主站发送召唤一级数据的间隔太长整个总召唤流程会被拉长到几十秒这时候要检查主站的处理逻辑是否有阻塞。3.3 对时与召唤电度时间同步和冻结召唤的细节第四步对时。主站发68 0F 0F 68 73 01 67 01 06 01 00 00 22 58 14 0F 62 09 05 xx 16类型标识67H表示时钟同步后面的信息元素是CP56Time2a格式的7字节时标。从站收到后回链路层确认然后主站召唤一级数据从站返回对时确认帧传送原因07H激活确认。第五步召唤全电度。这步比较特殊——要先冻结再召唤分两步走。第一步发冻结全电度68 09 09 68 53 01 65 01 06 01 00 00 45 xx 16类型标识65H表示召唤全电度信息体地址后跟QCC限定词45H表示记账冻结。第二步发读全电度68 09 09 68 53 01 65 01 06 01 00 00 05 xx 16QCC改为05H表示读取冻结值。这个先冻结后读的顺序不能反。如果直接发05H读电度从站返回的可能是当前时刻的累计值而不是冻结时刻的快照值两个值在电量结算时对不上。电度数据帧的格式是类型标识0FH不带时标的电能脉冲计数每个信息体7字节信息体地址2字节电度值4字节描述信息1字节。资料里给的电度帧长度是E6H实际算下来与信息体个数相关组帧时别照抄长度值要按真实信息体个数重新计算。3.4 遥控操作预置、反校、执行、撤销的严格顺序第六步遥控也是现场最容易出问题的环节。完整流程分四段主站发送遥控预置: 68 09 09 68 53 01 2E 01 06 01 03 0B 82 xx 16 从站返回链路确认: 10 20 01 21 16 主站召唤一级数据: 10 7A 01 7B 16 从站返回反校帧: 68 09 09 68 00 01 2E 01 07 01 03 0B 82 xx 16预置帧的重点在信息体地址03 0BH代表信息体地址0xB03。资料里的基地址对应关系是97版遥控基地址B01H遥控号 0xB03 - 0xB01 2号遥控。这个偏移计算经常有人算错把2号遥控的地址当成0xB02实际应该是0xB03。预置反校通过后主站发遥控执行68 09 09 68 53 01 2E 01 06 01 03 0B 02 xx 16执行确认返回后整个遥控过程就完成了。如果执行失败可以发遥控撤销68 09 09 68 53 01 2E 01 08 01 03 0B 02 xx 16传送原因08H表示停止激活从站返回停止激活确认传送原因09H。注意撤销时遥控命令值仍然是02H与执行的命令值相同区别只在传送原因上。遥控命令值这里有个玄学点资料里预置控合用的是82H执行控合用02H。有些厂家的设备把bit7作为合/分标志bit4作为选择/执行标志那么预置控合应该是92H而不是82H。我遇到过一个现场主站按资料发82H预置RTU返回拒绝后来对照设备文档发现该设备要求预置命令的S/E位必须置1。所以做遥控前一定先看设备说明书里对双点命令状态字的位定义不要默认所有厂家实现一致。正常运行时的第七、八步是处理突发数据和轮询二级数据。当从站有变位遥信或SOE时会在响应帧的控制域中置ACD1主站需要召唤一级数据。平时没有变化数据时主站轮询二级数据10 7B 01 7C 16从站如果无变化数据就回10 09 01 8A 16。如果从站有变化遥测则返回带数据的帧例如68 0A 0A 68 08 01 15 01 05 01 05 07 07 00 xx 16类型标识15H是不带品质的遥测值VSQ01H表示1个信息体传送原因05H表示请求或被请求信息体地址07 05H对应遥测号 0x705 - 0x701 4号遥测遥测值07 00H 0x0007。4. 类型标识、传送原因与CP56Time2a时标数据解读的第二层4.1 类型标识速查遥信、遥测、SOE、电度怎么分报文流程看懂之后下一步是识别报文里装的是什么数据。类型标识是ASDU的第一个字节决定了信息元素的结构和长度。资料里列的类型标识比较多我按用途整理成表类别类型标识含义每个信息体长度遥信01H不带时标的单点遥信1字节遥信03H不带时标的双点遥信1字节遥信14H具有状态变位检出的成组单点遥信7字节含地址遥测09H带品质描述的测量值3字节遥测0DH带品质描述的浮点值5字节遥测15H不带品质描述的测量值2字节SOE02H带3字节短时标的单点信息6字节SOE1EH带CP56Time2a时标的单点信息10字节电度0FH不带时标的电能脉冲计数7字节含地址电度10H带3字节短时标的电能脉冲计数10字节含地址电度25H带CP56Time2a时标的电能脉冲计数14字节含地址其他2EH双点遥控4字节其他46H初始化结束1字节其他64H召唤全数据3字节其他65H召唤全电度3字节其他67H时钟同步7字节表里有一个容易忽略的点类型14H的成组单点遥信帧信息元素是遥信值2字节状态变化检出2字节品质描述1字节即每个信息体含16个遥信点。资料里的遥信帧示例从1号遥信开始第二个信息体地址直接跳到11 0017号遥信跨度正好16个点说明这类帧按16点一组组织。4.2 传送原因与公共地址判断报文语义的第二层信息传送原因紧随可变结构限定词之后表示报文的触发原因和方向。资料里列出的常用传送原因有值含义03H突发04H初始化05H请求或被请求06H激活07H激活确认08H停止激活09H停止激活确认0AH激活结束14H响应总召唤传送原因要和类型标识结合起来看。比如类型标识14H成组单点遥信配传送原因14H响应总召唤说明这是总召唤过程中上送的遥信帧如果传送原因是03H突发则是遥信变位主动上送。同一帧数据类型传送原因不同处理逻辑也不同——总召唤上送的数据要刷新全量画面突发数据则要触发告警和变位记录。公共地址字段的作用是区分同一个链路上挂接的多个RTU。在多RTU共线的场景下每个RTU只响应公共地址等于自己地址的报文。资料里97版和2002版的基地址映射有差异解析信息体地址时要先判断当前主站运行的是哪个版本97版遥测基地址是701H2002版变成了4001H同样的信息体地址0x705在97版里对应4号遥测在2002版里按4001H基准算则对应0x705 - 0x4001 0x304差别非常大。如果主站规约版本配置错了解析出来的遥测数据会全部错位。4.3 CP56Time2a时标逐位解析七个字节还原完整时间对时帧和对时确认帧的信息元素都是CP56Time2a格式共7字节。资料里给了一个示例22 58 14 0F 62 09 05我把它按位拆开字节1-2: 22 58H 0x5822 22562毫秒 ≈ 22.562秒 字节3: 14H 0001 0100, bit5-0 0x14 20分钟, bit7 IV 0 字节4: 0FH 0000 1111, bit4-0 0x0F 15小时, bit7 SU 0 字节5: 62H 0110 0010, bit4-0 0x02 2日, bit7-5 011 星期三 字节6: 09H 0000 1001, bit3-0 0x09 9月, bit7-4 保留 字节7: 05H 0000 0101, bit6-0 0x05 2005年注意几个位段不是连续排列的星期占字节5的高3位日占低5位月占字节6的低4位年占字节7的低7位。解析时要用位与和移位操作不能直接读整字节。IV位字节3的bit7表示时间有效性如果IV1说明RTU时钟未同步时间值不可信SU位字节4的bit7在夏令时调整时会用到国内基本不需要处理但解析时也要屏蔽掉。资料里年份字节05H的含义需要说明一下CP56Time2a的年份基准由厂商定义常见的是从2000年开始偏移05H即2005年。有些设备从1988年开始基准05H就成了1993年。做时间解析工具时年份基准最好做成可配置项。5. 避坑与常见问题排查实践中的五个典型现场5.1 现象1总召唤后遥测帧迟迟不出现现象主站发送总召唤命令收到了总召唤确认帧但后续只有遥信帧遥测帧一直不来或者整个流程卡在半路。原因总召唤确认帧的控制域是20HACD位置1说明从站有一级数据需要主站来取。如果主站在收到确认帧后没有正确处理ACD位发送了召唤二级数据帧7BH而不是召唤一级数据帧7AH从站会认为主站不想要一级数据把遥测帧挂在缓冲区里不上送。解决严格按收到帧→看控制域ACD位→ACD1则发召唤一级数据否则才能发召唤二级数据的规则处理。我习惯在调试日志里把每一帧的控制域单独打印出来一眼就能看出ACD位有没有被正确处理。5.2 现象2遥控预置成功但执行失败现象遥控预置后从站返回的反校帧正常但主站发出执行命令后从站返回的确认帧携带异常状态或者干脆没有响应遥控操作失败。原因最常见的两个一是遥控号换算错误。信息体地址 基地址 遥控号 - 1比如2号遥控在97版下的信息体地址是0xB03不是0xB02。二是遥控命令字里的S/E位定义与设备实现不匹配。资料里预置控合用82H但有些设备要求预置时S/E位必须置1也就是命令字要发92H。解决预置前核对信息体地址偏移组帧前查设备手册确认命令字位定义反校帧返回后对比预置帧的地址和命令值确认没有在传输过程中被改掉。我从那以后每次做遥控调试都会先用模拟器发一帧预置看反校帧里的地址和命令字是否原样返回。5.3 现象397版规约能通2002版不通现象同一台RTU主站配置97版规约时通信正常切换成2002版后总召唤没有响应日志里只有主站发的帧收不到任何回包。原因97版和2002版的关键区别在于2002版要求主站发送的每个长帧RTU先回短帧链路层确认有些RTU厂家发E5帧确认然后再上送被召唤的数据。如果主站在发送长帧后没有等待这个短帧确认直接发送下一个长帧RTU会把后续帧丢弃。另外2002版的基地址范围整体向上偏移遥信从1H-400H变成1H-4000H如果配置时没有同步更新基地址RTU对信息体地址的解析也会出错。解决抓包对比97版和2002版主站的发帧节奏。2002版的发帧节奏必须是长帧→等短帧确认→再发下一个长帧。同时检查主站的规约配置表中基地址是否切换到了2002版的范围。5.4 现象4电度召唤总是不完整现象主站发送冻结全电度命令从站返回激活确认但发送读全电度命令后只收到确认帧没有收到电度数据帧。原因两个可能一是RTU参数表里电度个数配置为0从站认为没有电度数据可送二是QCC限定词使用错误——冻结电度必须用45H记账冻结读冻结值用05H如果第一步发的QCC不对冻结操作没生效第二步读的就是无效值。解决先检查RTU参数表中的电度个数配置如果确实带电度表确认个数不为0再检查流程顺序确保先冻结后读取QCC值按资料区分45H和05H。资料里特别提醒了一句如果不需要召唤电度一定要在RTU参数表中把电度个数设置为0否则主站每次轮循都会走一遍冻结和读取增加无效通信开销。5.5 现象5时标解析总是差8小时或日期错乱现象解析SOE报文里的CP56Time2a时标时间比实际时间早8小时或者日和月完全对不上。原因CP56Time2a的7个字节不是每个字节都直接对应一个时间字段。小时在字节4的低5位分钟在字节3的低6位日期的日是字节5的低5位、星期是高3位月是字节6的低4位。如果直接用整字节读取0x62会被读成98日实际低5位0110 0010的bit4-0是2即2日。早8小时的问题通常是毫秒和分钟解析时把高低字节顺序搞反了或者小时字段忘了屏蔽bit7的SU位和bit6的RES2位。解决解析时逐位段操作用位与和右移。毫秒必须低字节在前byte0 | (byte1 8)。小时 byte3 0x1F分钟 byte2 0x3F日 byte4 0x1F星期 byte4 5月 byte5 0x0F年 byte6 0x7F。我建议把这段解析写成独立函数任何报文解析工具都复用它不要在每个报文类型里各写一遍。6. 进阶技巧用 Python 快速算校验和与组帧验证6.1 校验和的编程计算我平时调试时会先写一个几十行的Python脚本把组帧和校验和计算自动化避免手工累加出错。核心逻辑很简单def iec101_checksum(data: bytes) - int: 计算IEC101帧校验和 输入从控制域开始到信息元素最后一字节 return sum(data) 0xFF def build_frame(control: int, addr: int, asdu: bytes) - bytes: 组装可变帧长报文 length 1 1 len(asdu) # 控制域 链路地址 ASDU body bytes([0x68, length, length, 0x68, control, addr]) asdu checksum iec101_checksum(body[4:]) # 从控制域开始累加 return body bytes([checksum, 0x16])参数说明control是控制域字节主站发送长帧时一般为0x53addr是链路地址asdu是应用服务数据单元。组装时注意长度字段是重复两次的而且不包括启动字符68H和长度自身。校验和从控制域开始计算到ASDU最后一个字节结束。6.2 验证一次完整总召唤用上面的函数可以快速验证总召唤流程。主站发送的总召唤帧可以这样生成asdu bytes([0x64, 0x01, 0x06, 0x01, 0x00, 0x00, 0x14]) frame build_frame(0x53, 0x01, asdu) print(frame.hex( ))输出结果和资料里的总召唤帧一致68 09 09 68 53 01 64 01 06 01 00 00 14 校验 16。从站回确认帧后主站召唤一级数据帧是固定帧长可以直接手工构造def build_fixed(control: int, addr: int) - bytes: return bytes([0x10, control, addr, iec101_checksum(bytes([control, addr])), 0x16]) print(build_fixed(0x7A, 0x01).hex( ))输出10 7A 01 7B 16对照资料无误。这套脚本在手抓包后可以很快确认主站发出的每一帧是否合规排查问题时不用再肉眼算校验和了。从那以后我每次到现场调试IEC101规约都强制自己先跑一遍这套组帧和校验工具再连现场设备。报文这种东西错一个字节查起来半天起步工具自动化之后能把排查时间压缩到几分钟。资料里的报文流程和解析方法本身是静态的但配合可复现的验证手段才能真正变成自己手里的调试能力。希望帮到你。本文还有配套的精品资源点击获取
RELATED

相关推荐

SAPRO安装失败排查指南:HARDLOCK驱动、KY1密钥与权限配置全解析

SAPRO安装失败排查指南:HARDLOCK驱动、KY1密钥与权限配置全解析

简介:本资源是一份面向结构工程初学者与SAPRO软件新用户的实操安装指南,专为解决工业级分析软件部署难、组件依赖多、授权配置易出错等痛点而整理。文档系统梳理了从环境准备到最终授权的完整链路,涵盖HARDLOCK与SCOPE基础驱动安装、POL63X/P…

📅 2026/10/23 6:41:50
LED单元板接口选型必读:HUB75E/HUB08/HUB12扫描方式与驱动时序详解

LED单元板接口选型必读:HUB75E/HUB08/HUB12扫描方式与驱动时序详解

简介:LED单元板常用的HUB75E、HUB08、HUB12接口,是驱动控制电路与显示面板之间的关键桥梁。这份说明文档面向LED显示屏设计、安装及维护人员,系统剖析三种接口的引脚定义、扫描方式与驱动原理:HUB12对应1/4扫描,用于P1…

📅 2026/10/23 6:41:50
DeepSeek本地部署入门:零基础在Windows上运行私有AI

DeepSeek本地部署入门:零基础在Windows上运行私有AI

简介:本资源是一份面向AI初学者与本地化应用开发者的DeepSeek大模型本地部署实战指南,专为解决公共平台服务不稳定、隐私泄露及响应延迟等问题而设计。教程覆盖Ollama安装配置、DeepSeek-R1多版本模型(1.5B/7B/32B)的适配选择与命…

📅 2026/10/23 6:41:50
MORE NEWS

更多资讯

📰

【工创赛2025-塔吊方案机械开源(2分15秒)】西安理工大学工程训练中心

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

📰

Altium Designer快捷键修改丨AD中如何修改快捷键。

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

📰

python和java爬虫优劣对比

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

📰

Path of Building PoE2角色规划实操手册:从0到Build定型只需3步

Path of Building PoE2角色规划实操手册:从0到Build定型只需3步 【免费下载链接】PathOfBuilding-PoE2 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2 PoB2(Path of Building PoE2)是《Path of Exile 2》的…

📰

在 iPhone 和 iPad 上运行 Minecraft Java 版的完整指南:PojavLauncher iOS 启动器教程

在 iPhone 和 iPad 上运行 Minecraft Java 版的完整指南:PojavLauncher iOS 启动器教程 【免费下载链接】PojavLauncher_iOS A Minecraft: Java Edition Launcher for Android and iOS based on Boardwalk. Succeeded by https://github.com/AngelAuraMC/Amethyst-i…

📰

Trae 接入 ChatGPT 配置全攻略:从 API Key 到模型调优与故障排查

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

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬