DLMS/COSEM协议库集成指南:从对象模型到智能电表读数的实战路径
简介DLMS协议库压缩包面向智能电表、水表及能源计量领域的嵌入式开发者提供一套已在欧盟、东南亚多国批量部署的DLMS/COSEM通信协议实现也是值得珍藏的实战参考。该协议栈通过CCT软件测试并取得DLMS证书同时获得MID和KEMA认证符合最新CTT测试规范覆盖DLMS协会蓝皮书、绿皮书与黄皮书定义的通信架构、对象建模及安全机制能帮助开发者快速理解并集成DLMS/COSEM协议。压缩包内共2个文件分别是1个C源文件与1个头文件整体约41KBC源文件承载协议栈核心逻辑与状态处理头文件提供对外接口和数据结构定义结构精简便于移植到现有计量产品。该资源已有1100人学习或下载关注度反映其实战价值研读代码可直接借鉴多国实际验证的协议分层思路、报文组织方法及认证细节显著缩短从零开发与调试的时间成本适合预研DLMS协议或推进电表、水表产品认证的工程师。1. DLMS协议库智能电表通信的入场券但别当成普通驱动做电力采集、能效管理或园区用能监测的人大概率都遇到过这个场景手里拿到一个DLMS协议库的压缩包以为像装驱动一样解压、引用、调几个接口就能把电表数据读上来。结果一跑才发现连建立连接都要先理解一堆概念读回来的字节流自己都不知道该信哪一段。DLMSDevice Language Message Specification不是一套值寄存器表而是一套面向对象的应用层协议配合COSEMCompanion Specification for Energy Metering模型定义了电表里每个数据“对象”的访问方式。协议库只是帮你省掉手工拼报文的功夫接线、调试、排错都得自己来。这篇文章面向的读者是那些准备把DLMS接入集中器、边缘网关或后台系统的从业者。下文会从对象模型说起走到集成路径、最小读表代码、高频坑位最后给一套验证手段。看懂这套流程你拿到任何DLMS相关的协议库都知道该从哪里下手、怎么避免白干一个月。2. 先搞懂 DLMS/COSEM 的对象模型为什么不是读寄存器而是读对象2.1 寄存器模型与对象模型的本质差异带过Modbus的人上手DLMS会极不习惯。Modbus里一个地址对应一个数值写0x0002读出来就是电压简单直接。DLMS/COSEM里没有“地址表”取而代之的是接口类和对象。每个对象有逻辑名Logical Name、属性Attribute、方法Method数据挂在属性上。你要读电压实际上是去访问某个对象的某一个属性而这个对象由一台电表里唯一的OBIS码标识。举个例子Modbus读电压可能是“读寄存器0x0002”DLMS读电压则是“读OBIS 1.0.21.7.0.255的第2个属性”。前者是查表后者是查对象。这个差异带来的直接影响是DLMS协议库存量里往往没有业务字段定义它只负责编解码、建连、传输至于哪个对象存了什么、属性几是瞬时值需要你在集成层自己解决。很多人在协议库上翻车不是把报文拼错而是不知道自己要读的数据放在哪个对象里。2.2 OBIS码结构六段数字怎么定位一个数据点OBIS码的结构是 A-B:C.D.E*F每段含义固定。A代表数据抽象层电能表里几乎都是0B代表通道单相表是1三相表按相序填1、2、3C是测量量类别1是电量2是最大需量21是电压22是电流32是功率因数91是数据同步事件D是处理方式0表示当前值7表示历史值E是费率0是总和1是尖2是峰3是平4是谷F是单位或限定词255一般表示不使用限定。读实时电压就是1.0.21.7.0.255读三相电压就是1.0.32.7.0.255第32类是电压实际可能用1.0.32.1.0.255来区分相序。反向有功电量是1.0.2.8.0.255正向是1.0.1.8.0.255。这些码本身就能在DLMS协议库里检索出对应的接口类属性和数据类型。我一般会先列一张表把要采集的指标和OBIS码一一对应再让代码团队按表去读对象属性不要边写边查。2.3 接口类、属性与动作协议库里真正被调用的部分COSEM对象有固定的接口类Interface Class比如单相电能表就是IC1Data对象电能计量是IC3Register对象需量记录是IC5Load Profile是IC7自动应答器是IC10。每个接口类规定了属性和方法。属性从1开始编号属性1通常是逻辑名属性2是值属性3是单位属性4是缩放因子。方法从1开始编号比如IC10的1号方法是触发数据重组。协议库的API通常会暴露几个核心函数读取一个对象属性get、写入一个对象属性set、调用一个对象方法action。这三类操作几乎覆盖了DLMS/COSEM的所有应用场景。所以接到协议库后先确认库对外暴露的是不是这三个接口如果是那说明封装得比较完整如果库只给了一堆ASN.1编解码原语那你要自己组织请求上下文工作量会大不少。3. 拿到协议库后怎么落地选型、解包与最小集成框架3.1 先看协议库的形态源码、编译产物、文档三样东西我不清楚你手上的协议库具体包含什么但从业这些年见过数十个这类压缩包落地时第一件事是按形态分类。如果解压后是完整源码比如一组C或C#工程那么集成自由度最高可以自己裁剪栈甚至可以放到嵌入式环境如果只有编译好的动态库和你那个平台的导入库那就把它当黑匣子只能调公开API出问题只能靠抓包定位如果只剩头文件和示例工程那说明作者大概率假设你熟悉DLMS/COSEM结构示例代码本身是极好的参考资料。正常一套成熟的DLMS协议库应该同时覆盖三层链路层HDLC或TCP、应用层AARQ/AARE关联请求、数据访问层GET/SET/ACTION。我见过不少“半成品”协议库只实现了APDU编解码没有关联和链路处理这种库用起来等于自己写协议栈。拿到包后先确认有没有关联握手Association Setup和链路层处理这两个模块缺任何一个都补起来比较费劲。3.2 选型维度语言栈、平台约束、是不是要跑在边缘设备上如果业务后端是C#或Java后台我建议选C#系协议库LINQ处理对象模型方便如果采集器是ARM Linux的C程序那就只能选C/C流派。仓库里常见有C、C、C#、Java几种实现C版最贴近协议栈真实涵义适合需要精确控制内存和帧处理的场景C#版一般封装得最友好适合快速跑通业务。这里有一个很关键的选型考量DLMS规范里没有规定传输层必须用哪种常见的是HDLC现场光学口、RS-485和TCP/IP以太网集中器。如果你只需要走TCP裸连接那么任何语言栈的库都能胜任如果要走HDLC务必确认库是否实现了HDLC帧的分帧、重组和窗口机制。窗口机制是HDLC最关键的部分协议允许最多16帧未确认但大多数实现只开1帧窗口这样吞吐量很难看。3.3 最小集成框架连接管理、认证等级、对象读写接口下面给一个C语言的骨架代码体现集成协议库时的核心场景。这里不绑定具体库名函数名按常见API约定来写重点是结构。/* dlms_integration.c */ #include stdio.h #include string.h /* 假设协议库提供以下核心能力 */ typedef struct { unsigned char server_addr; unsigned char client_addr; } DlmsLinkCfg; typedef struct { int auth_level; unsigned char password[16]; int password_len; } DlmsAuthCfg; /* 协议库对外暴露的抽象接口 */ int dlms_open_network(const char* ip, int port); /* 建立TCP连接 */ int dlms_associate(int handle, DlmsAuthCfg* auth); /* 建立应用关联 */ int dlms_get(int handle, const char* obis, int attr_id, unsigned char* out, int* out_len); /* 读对象属性 */ int main(void) { int handle -1; unsigned char buf[256]; int buf_len 0; /* 1. 网络连接: 默认DLMS TCP端口是4059, 不要跟其他协议混用 */ handle dlms_open_network(192.168.1.100, 4059); if (handle 0) { printf(open fail\n); return -1; } /* 2. 关联: 先用公共客户端无认证方式, 之后可以升级高等级安全 */ DlmsAuthCfg auth { 0 }; /* 0: public client */ if (dlms_associate(handle, auth) 0) { printf(associate fail\n); return -1; } /* 3. 读实时电压: OBIS 1.0.21.7.0.255, 属性2是瞬时值 */ int len sizeof(buf); memset(buf, 0, sizeof(buf)); if (dlms_get(handle, 1.0.21.7.0.255, 2, buf, len) 0) { printf(voltage object read, len%d\n, len); } /* 4. 断开时先释放关联, 再关闭连接, 顺序反了会在表端残留会话 */ dlms_associate_release(handle, auth); dlms_close(handle); return 0; }这段代码体现了一个完整会话的标准生命周期网络连接、应用关联、数据访问、释放关联、断开连接。DLMS有一个反直觉之处就是关联和连接是两回事TCP连接建立了不代表可以读数据必须先发起AARQ关联请求对方返回AARE后才进入可访问数据的会话状态结束时要先释放关联再断TCP否则电表端的会话状态会残留一段时间导致下一次连接刚建立就被拒。参数上需要留意两个地址客户端地址client address和服务端地址server address。TCP承载方式中client address通常填1管理端或16HDLC栈习惯server address是电表的逻辑设备地址常见默认值是1、2、16或33。这里没有标准答案要跟表厂确认乱填会导致AARE响应永久拒绝。认证等级字段0表示公共客户端1表示低等级安全密码明文2起步是高等级安全HLSHLS涉及算法握手先别一上来就开等链路通了再说。4. 跑通第一次读表用最小代码完成 OBIS 读取与响应解析4.1 理解 APDU 的组成标签、调用号、对象选择DLMS应用层报文APDU是BER编码的每个字段都有标签。读操作最核心的是GET-Request标签0xC0对应的响应是GET-Response标签0xC4。一个GET请求里要包含三样东西调用号Invoke ID、请求类型通常是02表示GET-Request-Normal、以及由OBIS码加属性号组成的对象选择器。调用号是每次请求递增的计数器从1开始一般加到0xFF后回绕。这要求客户端维护会话状态不能每次请求都用同一个调用号否则表端会认为是重复请求并丢弃。响应报文的第一个字节是0xC4后面跟调用号然后是结果标签0x01或0x02。0x01表示数据成功返回后面的字节就是你要的数据可能是整型、字符串、或长整型的定长编码0x02表示读取被拒绝后面会跟一个拒绝原因码。解析时不要只看结果码要先核对调用号和你发出去的请求是否一致这叫“调用号镜像”。很多时候报文乱、数据错都是因为调用了旧的静态报文模板而忘了刷新调用号。4.2 用 Python 快速验证一台表能不能读通很多从业者会先用Python脚本验证目标电表和协议栈的兼容性再回到正式业务代码里实现。下面这段脚本只用了Python标准库的socket演示完整的最小读表流程。import socket, struct, time # 电表连接配置 HOST 192.168.1.100 # 表或集中器的IP PORT 4059 # DLMS over TCP 默认端口 CLIENT_ADDR 16 # 客户端地址, 常见16或1, 跟表厂确认 SERVER_ADDR 1 # 服务端逻辑设备地址, 默认多为1 OBIS [1, 0, 21, 7, 0, 255] # 实时电压对象 def ber_length(n): BER长度编码: 短格式127, 长格式用0x80|字节数 if n 0x80: return bytes([n]) b [] while n 0: b.append(n 0xff) n 8 b.reverse() return bytes([0x80 | len(b)]) bytes(b) def build_aarq(): 构造AARQ关联请求: 这里简化, 只带必备的字段 cipher bytes.fromhex(02 04 00 00 01 00) # 协商加密方式: 无加密 # 实际AARQ需要完整的ACSE与服务元素字段, 生产环境用协议库拼 return bytes([0x60]) ber_length(0) cipher def build_get_request(invoke_id, obis, attr_id): 构造GET-Request-Normal报文 body bytes([0x02]) # 请求类型: 2 GET-Request-Normal obis_bytes bytes(obis) body obis_bytes bytes([attr_id]) # C0是GET-Request标签, 后面跟调用号, 再跟内容 return bytes([0xC0, invoke_id]) ber_length(len(body)) body def parse_get_response(data): 解析GET-Response报文 if data[0] 0xC4 and data[1] 0x01: # 数据返回成功 # 数据标签0x02表示octet string直接解析0x09表示整数需用长度和补码判断 if data[4] 0x02: return octet, data[5:] elif data[4] 0x09: return integer, int.from_bytes(data[5:], big, signedTrue) return raw, data[4:] elif data[0] 0xC4 and data[1] 0x02: return error_code, data[3] return unknown, data sock socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(5) sock.connect((HOST, PORT)) # 1. 发送AARQ建立关联 aarq build_aarq() sock.sendall(aarq) time.sleep(0.1) aare sock.recv(1024) print(AARE raw:, aare.hex()) # 2. 发送GET请求读电压属性2 req build_get_request(1, OBIS, 2) sock.sendall(req) resp sock.recv(1024) print(GET resp:, resp.hex()) # 3. 解析并打印结果 status, value parse_get_response(resp) print(status:, status, value:, value) sock.close()这段脚本的重点不是拼一个完美合规的AARQ真实产品中AARQ有十多个字段我在这里省略了大多数而是展示读表逻辑的全貌关联、请求、响应、解析。你拿到协议库后第一步就干这个事验证库的封装、表端的响应格式和本地的对象模型假设同时成立。如果GET返回数据标签是0x02说明值是字符串0x09是整数0x06是实数0x0C是浮点类型。整数值的解析要带符号判断DLMS整数是有符号的BER编码这就是为什么同一条报文有的库解析出来是负数有的库解析出来是超大正数因为符号位没处理。4.3 字段对齐与连接复用采集性能差的常见源头跑通单次读取后下一步一定是批量采集多块表。此时性能瓶颈不在协议栈编解码上而在连接复用和调用号管理。每块表建立一个TCP连接再释放在电表端非常耗时因为表端的嵌入式协议栈响应慢频繁建连还会触发会话残留保护。正确做法是长连接轮询一个连接内依次读取多个OBIS对象或按顺序切换server address去访问多块表集中器场景常见。调用号要按连接会话独立维护。有的库在每次请求时自动递增调用号有的库要你手动传后者要格外小心。我见过一个真实项目采集器每秒钟跑两三百次GET请求全部卡在调用号永远为1上面表端认为都是重放请求全部丢弃。排查了很久才发现调用号不是全局变量而是每个连接上下文一个计数器。5. 集成 DLMS 协议库的 5 个高频坑现象、原因与解法5.1 连不上电表TCP 通但 AARE 永久拒绝现象用telnet或nc能连上4059端口但发起AARQ之后收到的AARE响应里结果字段是permanent denied永久拒绝。原因排查下来九成是client address和server address不匹配。尤其注意DLMS/TCP承载中client address不是操作系统层面的网络端口而是应用层逻辑地址表端会校验它是否在允许访问的白名单里。有些表出厂默认只允许client address1访问有些厂默认是16。解决先和表厂确认两个地址的具体值更稳妥的办法是先用表厂自带的上位机软件读一次抓包看它用的是哪个client address和server address照抄过来比自己猜高效得多。另外确认一下连接里是否带了密码字段如果表端开启了低等级安全密码认证AARQ没带密码也会被永久拒绝。5.2 读到的值是乱码或超达范围现象GET响应返回正常但解析出的电压数值完全离谱比如显示1320000 V或者负数巨大。原因DLMS数值编码是BER整型带符号位而且有些对象的值是字符串格式比如时间对象而不是数字还有一类场景是对象带缩放因子Scaler属性里存的原始值要乘上10的负N次方才是真实值。解决先确认解析时对0x09类型的整型做了符号扩展再查该对象所属接口类的属性定义Register类IC3的属性2原始值、属性4是缩放因子电压类对象通常缩放因子是-1即原始值要除以10。路径是先看接口类文档再写解析不要先写解析再猜。还有一种翻车现场是字节序DLMS严格按照大端序编码如果你的集成环境用到了小端解析函数读多字节整型就会出现高低位颠倒。我的血泪经验是任何离开协议库直接碰原始报文的数据处理都要用抓包工具对一次十六进制再动逻辑。5.3 HDLC 抓不到帧链路层配置和 TCP 栈混为一谈现象换到RS-485或光电口的场景代码明明没报错但完全收不到数据。原因HDLC承载有自己的物理参数波特率、数据位、校验位和链路层帧格式0x7E开头、地址字段、帧长、HCS校验大部分协议库的TCP接口和HDLC接口是分开的你在初始化时只配了IP端口底层实际走了HDLC通道参数不匹配就挂了。解决先确认物理参数和电表设置一致常见是波特率9600数据位8校验位无但很多新表默认115200。在协议库里找到HDLC初始化入口单独配链路层参数不要指望TCP的配置能自动映射过去。排查时用一个小工具连续发0x7E帧如果表端有回应说明物理链路是通的再往上层看。5.4 长连接运行几小时后突然全部超时现象程序刚启动一切正常跑一两个小时后所有GET请求都超时或者直接断连。原因DLMS会话是有闲置超时的表端在几十秒到几分钟没有应用层报文就会自动释放关联。你的长连接框架里如果只有定时采数没有心跳包超过表端超时阈值就被踢了。另一个原因是TCP层的keepalive和DLMS应用层会话超时不联动系统认为连接还在但表端会话已释放。解决在应用层加心跳——周期性地发送一个轻量GET请求或者调用一个空方法频率要高于表端超时阈值。常见的做法是每30秒读一次时间对象OBIS 0.0.9.1.0.255属性2既验证了通道又不会产生大量数据。同时确认协议库在会话释放后能自动重发AARQ重建关联否则断线后还是复用旧句柄发请求一定失败。5.5 同一块表多客户端同时读会把表读崩现象集中器和后台系统同时连同一块表用不同的client address。过一会儿其中一方的请求全部返回0x02拒绝甚至没有响应。原因很多电表同一时刻只允许一个应用关联会话新连接发起AARQ会把旧的关联踢掉。两边都在用对方建好的会话必然冲突。这不是协议库的bug是产品设计问题。解决明确归属权——采集只由集中器负责后台需要数据时通过集中器上行接口拿不直接连表。实在要多客户端同时访问必须确认所用表计支持多个并发关联会话并且每个客户端使用固定的client address表端ACL里放行。集成前一定向上游要“并发访问数”参数这是选型买表的硬指标。6. 进阶用抓包对比法验证协议栈少走三个月弯路无论协议库质量多好接入真实电表后我都会建议团队做一次“库输出 vs 抓包协议栈输出”的对比测试。方法不复杂拿一台PC同时跑你自己的采集程序和抓包工具抓取完整的TCP报文再在代码里把每一次收发报文打日志。然后将同一帧的十六进制和解析结果逐字节对齐重点看三个地方调用号是否递增、长度字段是否一致、GET响应中的数据类型标签。这一步看起来繁琐但能一次性暴露大量问题BER长度编码的短格式/长格式错误、整型解析时符号位丢失、HDLC地址字段填反、关联会话释放没调用导致表端会话残留。很多项目在联调阶段白耗半个月问题根源就是某个环节的字节序和标签偏移看错了而这种对比法半小时就能定位。我先说自己的一个教训在某个跨平台系统的开发中当时用的DLMS协议库对数据类型解析有一段“快速通道”直接从报文的固定偏移取数据没走语义分析。项目在三种型号的表计上测都正常换到第四种表就全部读出错误值一抓包发现那种表的返回报文里多了一个厂商私有对象导致偏移整体后移。从那以后我的习惯就是协议库对数据的解析绝不直接信必须结合抓包和对象模型的类型定义双重核对日志里输出的不只是读到的值还要有整帧十六进制和调用号校验结果方便事后回溯。验证动作做完整后这个技术方向值不值得投入答案也就清晰了。DLMS/COSEM虽然上手曲线比Modbus陡但是它把计量数据的表达标准化了。一旦跑通一个型号的表换其他合规表计基本只需要改OBIS码和认证参数不用重写协议逻辑。这对于做能效管理平台、集中器设备、或园区多表采集网关的团队来说是一次性投入长期收益的事。希望上面这些过程能帮你把这个头开得稳一点。本文还有配套的精品资源点击获取

相关新闻

从信息过载到自动化日报:信源分层、去重与质量过滤的工程实践

从信息过载到自动化日报:信源分层、去重与质量过滤的工程实践

1. 当"日报"变成一种自动化流水线:我为什么要做这件事每天早上八点半,我端着咖啡坐到工位,第一件事不是看邮件,而是打开十几个信息源,把过去24小时里值得关注的AI动态扫一遍。这个动作我坚持了快两年&#x…

2026/10/11 5:47:52 阅读更多 →
337.安卓刷机通关教程!Fastboot/Recovery 双模式底层原理 + 自动化脚本

337.安卓刷机通关教程!Fastboot/Recovery 双模式底层原理 + 自动化脚本

摘要:本文从安卓系统启动链路出发,系统讲解Fastboot与Recovery两种刷机模式的底层原理、分区表结构、镜像文件格式,并结合真实维修案例给出可落地的ADB/Fastboot命令与Python自动化脚本。内容覆盖解锁引导、刷写分区、救砖恢复、Magisk Root、常见报错排查,适合具备基本命令…

2026/10/11 5:47:52 阅读更多 →
12nm 的芯片,它的ddr 和 cpu 是怎么规划位置的?

12nm 的芯片,它的ddr 和 cpu 是怎么规划位置的?

#灵感# 研究下存算一体芯片在 12nm(比如 TSMC 12FFC) FCBGA​ 的 SoC 里,CPU 和 DDR 不是“并排随便放”,而是按“数据流最短 出球最近 供电不炸”三件事一起定的。下面用一颗典型应用处理器/边缘 AI SoC 的 floorplan 逻辑给你…

2026/10/11 5:47:52 阅读更多 →

最新新闻

【Web全栈进阶】OAuth实战——GitHub第三方登录

【Web全栈进阶】OAuth实战——GitHub第三方登录

“用GitHub账号登录”是每个网站都想要的体验:用户不用注册、密码永远不会经过你的服务器。 本篇走完授权码流程全链路,并把JWT接进来——OAuth负责 “他是谁”,JWT负责 “他还在”。 🎯 本篇产出:GitHub登录入口 回调…

2026/10/11 6:39:22 阅读更多 →
高校OJ平台STL专题AC代码库:容器选型、避坑与刷题实战

高校OJ平台STL专题AC代码库:容器选型、避坑与刷题实战

简介:这是东北大学OJ平台上C语法与STL练习的AC代码合集,面向正在刷题备赛的高校学生,以及刚接触标准模板库、希望系统提升容器与算法选型能力的C初学者。压缩包内共44个cpp源文件,整体仅29KB,内容覆盖vector、set、map…

2026/10/11 6:39:22 阅读更多 →
趣博思AI格式排版:那些让编辑在初审阶段就皱眉的“格式暗病“

趣博思AI格式排版:那些让编辑在初审阶段就皱眉的“格式暗病“

一篇论文被退稿,理由可以有很多:选题不够新颖、方法不够严谨、论证不够充分。 但还有一种退稿,理由不会写进意见里,却真实存在:编辑打开你的稿子,第一眼就觉得"不对劲"。 页边距太窄,…

2026/10/11 6:39:22 阅读更多 →
趣博思 AI|文献综述不是文献盘点,教你构建层层递进的学术论证脉络

趣博思 AI|文献综述不是文献盘点,教你构建层层递进的学术论证脉络

在论文写作流程中,文献综述常常被误解为 “文献盘点”。不少学生花费大量时间搜集文献,堆砌大量引用,篇幅达标,但整篇综述没有论证主线,各个段落彼此割裂,无法向评审说明为什么要开展这项研究。本质上来说&…

2026/10/11 6:39:22 阅读更多 →
趣博思 AI|跳出文献清单陷阱,用评述思维搭建论文文献综述

趣博思 AI|跳出文献清单陷阱,用评述思维搭建论文文献综述

写论文的同学大多都听过一句话:文献综述是整篇论文的地基。但绝大多数新手在动笔时,很容易走进一个误区,将文献综述写成一份简单的文献清单,按照年份、作者依次复述每篇文章的观点,通篇都是 “某某学者认为” 的句式&a…

2026/10/11 6:39:22 阅读更多 →
Java聊天程序实战:手写服务端客户端Socket消息通信

Java聊天程序实战:手写服务端客户端Socket消息通信

简介:这套Java聊天程序包含完整可运行的服务端与客户端源码,采用经典C/S架构,适合正在学习Java网络编程、需要课程设计或毕业设计参考的高校学生与自学者。服务端代码围绕聊天室服务器展开:构造器通过新建服务器套接字创建监听端口…

2026/10/11 6:38:22 阅读更多 →

日新闻

流感时间序列预测实战: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/10 5:23:50 阅读更多 →
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 阅读更多 →