EtherNet/IP 网络调试:设备扫描、CIP 连接与排障实战

简介:Ethernet/IP Tool V2.2.0 是一款面向自动化与工业网络工程师的 Ethernet/IP 协议调试测试工具,支持设备发现、实时数据交互、参数配置与通信故障排查,适用于设备集成、网络运维及教学培训等场景。压缩包共 20 个文件,以 exe 主程序和 DLL 动态库为核心,辅以 XML 配置文件、PDB 调试符号及 TXT 说明文档,整体仅 2.04MB,轻量易用。工具基于 CIP 协议实现,可扫描网络中的 Ethernet/IP 设备、模拟生产环境通信、监控延迟与丢包率,并记录通信日志辅助定位问题,能提升现场排障和验证效率。已有 1564 人下载学习,适合初次接触 Ethernet/IP 的开发者快速上手,也适合工程师作为日常调试工具箱使用。结合 DLL 库与调试符号(PDB),还可满足协议学习与深层问题分析需求。

1. EtherNet/IP Tool V2.2.0:打开一个工具,看透一条 EtherNet/IP 网络的底细

EtherNet/IP Tool V2.2.0 是我在调试工业以太网现场时最常打开的第一个工具。它不替代可编程控制器、不替代抓包分析仪,但能在几分钟内把一整条 EtherNet/IP 网络上活跃的设备身份、IP 地址、厂商代号、产品类型和连接状态给你列成一张可操作的清单——听起来简单,做过的都懂,这一步其实能解决现场一半的“不知道从哪查起”。适合做产线自动化交付的调试工程师、运维人员和设备制造商技术支持;新手能顺着它把协议层和物理层分开,熟手则可以用它做配置核对、变更验收和故障复盘。工具叫“Tool”,实际更重要的是背后那套 CIP 协议的组织方式:先把“能看见设备”这条底线立住,后面所有连接配置和排查才有支点。

2. 设备扫描与 CIP 连接排查:先把“看到设备”和“看清身份”做到位

2.1 扫描前先做两件小事:网卡绑定和 IP 段规划

EtherNet/IP 设备扫描不复杂,但第一件事常常不是点“Scan”,而是先把电脑的网卡选对。笔记本一般有有线网口、无线网卡、虚拟机虚拟网卡,同时插着 USB 转以太网适配器的时候,系统路由会乱跳。我一般会做两件事:一是在电脑的“网络连接”里把用不到的网络适配器临时禁用,只留下连着现场交换机的那块物理网卡;二是给这块网卡一个静态 IP,保持在目标设备网段内,并且确保子网掩码把目标地址包进去,否则后面的广播报文根本传不到设备。这两步做不好,扫描结果要么是空的,要么只回来自带路由器的几个地址。

网卡选型上还有个细节:很多现场交换机端口被配置成 spanning-tree 阻塞,接上去要等十几秒到一分钟才进入转发状态。V2.2.0 的扫描超时一般只有几秒,第一次扫描出现空列表时不要立刻怀疑工具,先把电脑接到一个没有启用生成树协议的对端端口,或者用直连网线单独连一台设备验证一次。

2.2 主机扫描背后在做什么:一份 List Identity 广播的拆解

EtherNet/IP 的设备发现机制,核心是一条广播的 List Identity 请求。工具向目标网段的 44818/UDP 端口广播一条 CIP 报文,支持该命令的适配器会用自己的设备信息回包。下面这段脚本可以直观看到这条请求长什么样,也能帮你理解扫描工具的输出字段从哪来:

from scapy.all import Ether, IP, UDP, Raw, sendp, conf import socket # 构造 List Identity 请求 # 以太网帧头 + IP 头 + UDP 头,目的端口 44818 payload = bytes.fromhex('01000000') # CIP 命令代码: List Identity pkt = Ether(dst='ff:ff:ff:ff:ff:ff') / \\ IP(src='192.168.1.10', dst='255.255.255.255') / \\ UDP(sport=44818, dport=44818) / Raw(load=payload) # 从指定网卡发出,如果没有收到响应,先检查网卡绑定是不是发错口 sendp(pkt, iface='eth1', verbose=False) print('已发送 List Identity 广播,无法直接在此脚本里收包,需要配对抓包观察')

这段脚本的业务逻辑并不复杂:目的 IP 是 255.255.255.255,目的端口 44818,CIP 命令字 0x0001 对应 List Identity。真正需要强调的参数是iface必须指定成你要发往现场的那块网卡,src必须和这块网卡的 IP 一致。很多扫描失败不是因为协议,而是 IP 头里的源地址和网卡实际绑定的地址不一致,导致设备把响应包发到一个没人听的地址。工具做的事情本质和这个相同,只是把广播、监听、超时重发和结果解析封装成图表了。

工具扫描界面里看到的 Vendor ID、Device Type、Product Code、IP Address 这些字段,全部来自设备回包里的身份信息。Vendor ID 是 ODVA 分配给厂商的代号,Product Code 是厂商内部定义的产品代号,Device Type 表示设备属于 AC Drive、Encoder、Safety 还是通用 I/O 适配器。理解这些字段的意义在于:你看到的不是乱码文本,而是一套可以跨厂商使用的设备身份体系。

2.3 扫描结果的三层读取法:IP 通、身份对、版本匹配

扫描结果里每个条目至少提供 IP、MAC、厂商名称、产品名称和固件版本。我习惯按三层去看这份结果:第一层只看 IP 和 MAC 能否对上,这解决“网络里到底有多少设备在上线”;第二层核对厂商名称和产品名称是否和图纸一致,这时能抓到一批“更换了型号但没更新图纸”的设备;第三层核对固件版本,判断不同设备之间的版本差异会不会造成连接参数不一致。V2.2.0 的列表支持按列排序,也支持导出成文本或表格文件,我会把一份“在线设备清单”在开工前导出一次,当作配置基线。

扫描不到某台设备时,先区分三种情况:一是设备没通电或在另一个 VLAN,二是设备支持 EtherNet/IP 但没实现 List Identity 响应,三是在交换机上被广播域隔离了。第一种最常见,第二种多见于早期第三方设备,第三种在大型产线里经常发生。把工具本身当成第一道验票机,但不要把所有“看不到”都判定成“坏掉”。

2.4 连不上时按三层分界:物理、网络、协议

没有从别人那里拿到图纸的情况下,排查顺序比排查手段更重要。我按“物理层 → 网络层 → CIP 协议层”分三步走。物理层看网口指示灯、链路速率是否协商成 100M 或 1G,排除劣质网线引起的闪断。网络层先ping设备地址,看延迟和丢包;丢包严重时把交换机端口暂时配成 Access 口,先把 VLAN 问题摘除。协议层才轮到工具登场:能 ping 通但扫描不出,一般是设备未开启 EtherNet/IP 实例或 CIP 连接数满。

下面这段命令能帮你在扫描前后快速判断网络通断状态:

ping -c 4 192.168.1.20 arp -a | grep 192.168.1.20

注意arp -a的输出能辅助判断:如果 ping 通但 ARP 表里是动态 MAC,说明二层通信是通的;如果工具仍看不到设备,问题大概率在 CIP 报文没有被响应。这时我会回到工具界面,把扫描超时时间从默认上调到 3 秒以上,有些老设备的响应时间不稳定,重试次数多一点,列表就全了。

3. 用 EtherNet/IP Tool 做 IO 回读与设备配置:RPI 和连接参数是核心

3.1 显式报文和隐式报文的区别:决定工具里怎么选

EtherNet/IP 上同时跑两类报文:显式报文走 TCP 44818,用于读参数、写配置、调用服务,特点是面向连接、响应确认、适合零散数据;隐式报文走 UDP,也建立 IO 连接,但数据是按固定周期刷新的,适合实时控制数据。V2.2.0 里你会发现图形界面会把两个区域分开:设备身份和参数浏览用显式连接拉取,实时 IO 数据则用隐式连接订阅。理解这两类报文的区别,你才知道工具里“连接类型”这个下拉框为什么会有不同选项。

显式报文的代价是每次读写都有往返开销,不适合高速周期刷新。隐式报文里,Scanner 和 Adapter 会协商 RPI(Requested Packet Interval)、传输类型和连接超时倍数。工具充当临时 Scanner 时,它需要向目标设备发起前向开放连接(Forward Open),拿回一组组装后的 IO 数据。这个机制决定了你要先知道目标设备支持哪个 Assembly 实例、实例的字节长度,填错了连接根本建立不起来。

3.2 建立一条测试 IO 连接的参数清单

用工具建 IO 连接前,先备好下面的参数,不要打开界面才去看:

参数填写建议说明
目标 IP设备实际 IP不能填广播地址或自身地址
目标端口默认 44818 附近的 RSP 端口一般保持默认,按设备文档调整
连接类型Class 1 或 Exclusive Owner测试性连接建议先用 Class 1 只读
RPI按设备文档给的范围填写常见取值:10ms、20ms、50ms
传输超时倍数通常 2 到 4网络抖动大的场合调大
Direction区分 O->T 和 T->O方向填反只能收到空数据

我一般先用工具的“自动发现”功能读取设备支持的 Assembly 实例表,如果工具没提供该功能,就查设备卖家提供的 EDS 文件。EDS 文件里能直接看到Assembly 0x64: 8 bytes, 0x65: 16 bytes这类描述,照着填进工具连接配置里,再把 RPI 从 100ms 开始试,逐步缩短。为什么要从大往小调?因为 RPI 太小,设备或交换机的负载会急剧上升,连接可能建立后立即超时,给人错觉是“工具坏了”。

3.3 IO 连接配置的三个常踩误区

第一个误区:把 O->T 和 T->O 弄反。O 是 Originator(发起方),T 是 Target(目标设备)。在工具里,O->T 表示从工具发给设备的数据,T->O 表示设备发给工具的数据。对输入模块,主站读到的状态量在 T->O;对输出模块,主站下发的控制量在 O->T。填反后连接能建立,但数据永远不对。

第二个误区:忽略连接超时相关的三个数。CIP 建立连接时不止 RPI 一个时间参数,还有超时倍数。产品手册常常只写 RPI,不写超时计算方式。实际超时时间是 RPI × 超时倍数,现场网络有交换机缓存、广播风暴时,把倍数从默认 4 调到 6 到 8 能显著减少偶发掉线。

第三个误区:用了 Exclusive Owner 连接类型去测试只读设备。Exclusive Owner 连接要求设备只能被一个主站占有,工具还在挂着的时候,可编程控制器和其他主站就抢不到这个设备。测试性连接、临时查看数据,优先选 1 类连接或输入/输出只读连接,不影响原控制系统运行。

4. EtherNet/IP Tool 排障路上的 5 个避坑记录(现象、原因、解决)

4.1 扫描只返回一半设备,另一半没有任何回包

现象:同一个二层交换机下挂着 10 台设备,工具能看到其中 5 台,另外 5 台在网络上像是完全不存在。手动 ping 它们的 IP 都能通,但工具就是扫不出来。原因:设备所在交换机端口被划分到了不同 VLAN,广播域被隔离,List Identity 广播根本进不去;另有一台老设备不支持 List Identity 命令,必须用其固定 IP 发起定向连接。解决:先查交换机上所有相关端口是否同 VLAN,把电脑所在端口临时改成 Trunk 并允许所有 VLAN,再重新扫描。如果多出来的是那台老设备,就用工具手工添加目标 IP,绕开自动扫描。

4.2 RPI 配成 5ms,连接反复断开

现象:工具里把 RPI 从 50ms 改成 5ms,界面提示连接成功,但状态一刷新就变红,偶尔收到一条数据后超时。原因:设备本身支持的 RPI 下限是 10ms,工具界面没有像一台正式主站那样做足够的参数校验,连接建立时做了协商但设备在 5ms 压力下处理不过来。解决:查 EDS 文件里定义的Minimum RPI,没有 EDS 就从 50ms 起步逐步下降测试,每次改完保持 30 秒以上,看连接状态是否稳定。不要用一次成功连接当作可靠连接。

4.3 工具读出的 Assembly 实例号和图纸编号对不上

现象:同一个编码器,工具返回的 Assembly 实例是 0x64,字节长度 8;设备铭牌上的型号手册里写的是 0x6B。原因:设备固件启用了某种双配置模式,固件版本之间的 Assembly 映射不一样;或者设备多人改过配置,当前生效的配置与出厂文档不同。解决:以工具实际读到的数据为准,导出扫描结果和连接参数,连带把设备序列号、固件版本一起归档,更新到原有图纸上。图纸和实物冲突时,实物优先级更高,但要在记录里注明谁改的、什么时候改的。

4.4 配置修改后提示保存失败,重连后配置又变回原样

现象:通过工具把一台驱动器的 IP 地址和网关改掉,界面确认写成功,断电重启后又变回老地址。原因:不少设备区分“运行配置”和“永久存储”,工具界面写的可能只是落在内存区域,需要额外触发Save Parameters服务,或者要切换到配置模式后才能写闪存。解决:检查设备对象的保存服务,确认写了哪一层。没有把握时,先下载当前配置备份,再修改,保存,断电验证,三步走齐全再收工。

4.5 频繁反复开关连接导致设备“不进不出”

现象:在工具里反复建立、断开 IO 连接,最终某台设备不再响应任何新的连接请求,别的工具也连不上。原因:设备使用了有限的运行上下文槽位,某个异常连接未正常释放,占住了一个或多个槽位;设备处于系统实用模式时会等待上电复位后自己清理。解决:先等一到两分钟,看设备是否自动释放;不行就对该设备做断电重启,重启后立刻用工具做一次只读连接,避免短时间反复开关同一个连接。期望的连接释放方式应该是显式调用关闭连接,而不是直接断网线。

5. 从单机调试到整套交付:把 EtherNet/IP Tool 用成文档化和验收工具

5.1 建立设备台账:扫描结果 + EDS 版本 = 可追溯的基线

工具用熟了以后,我最常做的事反而不是现场排障,而是把每次扫描结果导出成一份基线清单。清单里包含设备 IP、MAC、厂商代号、产品名称、固件版本、当前 Assembly 实例。这份基线在项目验收和后期故障定位时价值很大:现场人员换了一台备件,拿新旧两份扫描列表对比,哪些设备变了、哪些地址漂了,一目了然。我会把清单按产线工位分文件存放,文件名用“日期_工位号_设备清单”的格式,这和工具版本号无关,但能最大程度发挥工具输出的价值。V2.2.0 的导出格式一般兼容文本编辑软件和表格软件,放到任何归档平台里都能打开,这就是选工具时值得留意的输出兼容性。

5.2 用工具做离线仿真:先桌面验证再现场变更

没有设备在手边时,照样可以把一个站点的大部分配置流程先走一遍。常见做法是用服务器或虚拟机搭一个软件设备模拟器,或者用一台闲置的真实的适配器接入测试网段,把工具连接压力、参数读写流程在实验室先过掉。工具能不能支持离线模式看版本界面的设计,我遇到过一些老版本在无设备时会卡在扫描阶段,这时我会把电脑网卡禁用再启动一次,强制工具重新枚举网络接口。离线验证阶段重点验证的应该是“操作路径”而不仅是参数值:哪里点保存、哪里会弹风险确认、哪个服务会触发设备重启。

现场变更前先在离线环境把工具每个按钮的行为过一遍,能有效减少误操作。尤其是 RPI、超时倍数和连接类型这几个参数,离线环境里配错的代价是几分钟,现场配错的代价可能是产线停线。血泪经验告诉你,去现场前多花一次连线时间,比在现场翻 EDS 文档要轻松得多。

5.3 验收检查单:连接参数、心跳、冗余和文件归档

交付一个包含 EtherNet/IP 设备的系统时,我会用工具执行一份固定验收流程:第一步,扫描全网络,确认在线设备数量与图纸一致;第二步,逐台连接设备读取身份、固件、Assembly 映射,与卖家出厂参数比较;第三步,配置一条测试 IO 连接,观察 5 分钟内的连接稳定性和数据刷新是否正确;第四步,断开再重连,确认设备可以被重复发现,不会被上一次的连接残留占用;最后,把扫描结果、参数记录、EDS 版本存储路径整理成一份交付文件。

设备的连接参数不是收完就完的。我见过某个现场因为交付时没有记录超时倍数,后期出现偶发报警时重新花了一整天排查,最后发现是替换备件时带的标准配置与现场的“非标配置”不一致。因此,归档里一定要藏一个“这份配置在哪个环节上传给设备”的说明。V2.2.0 之类的工具能帮你导出配置文件,但“为什么这么配”这个信息只有人才能写清楚,把两份材料放一起才算完整交付。

6. 进阶技巧:让 Wireshark 给工具结论背书,形成“工具+抓包”双确认

工具界面给你一个“绿色对勾”时,不要急着写入报告。我会用一个不太起眼但极有用的习惯:在关键操作旁边开着 Wireshark,抓一次完整报文,确认工具显示的结果真的是 CIP 层正确交换出来的,而不是界面状态误报。抓包时只需要一条过滤规则就可以过滤数据:cif || ip.port == 44818这种过滤方式不严谨,正确写法应该是:tcp.port == 44818 || udp.port == 44818,再配合设备地址ip.addr == 192.168.1.20收窄范围。等扫描命令发出后,重点看两个东西:有没有回包、回包里 Vendor ID 和 Product Code 是否与设备铭牌一致。这一步不算科研较真,而是避免工具层把异常数据处理成“看起来正常”的字段。

我还做过一个“工具结论 + 抓包佐证”的对比表:工具显示在线时间的字段,和抓包里两次 List Identity 响应的时间差做对照;工具显示连接断开,抓包里能看到 Forward Close 还是超时清理。两种方式对不上时,优先相信抓包结果,因为那是电缆上真实流转的信息。抓包也能发现工具不会告诉你的事:比如设备持续发 1 毫秒间隔的广播风暴,工具面板上连接是正常的,但抓包里已经有大量重传和丢包信号。遇到这种场景,单单依靠工具做诊断是不够完整的。

我早年调试一套多站输送线时,工具显示所有设备在线、IO 连接全正常,产线却莫名丢包,后来抓包才发现是某台设备的组播发送速率严重超出负载能力。从那次之后,我的习惯变成:工具做筛选和交互,Wireshark 做确认,两边都有记录才往客户报告里写。这看起来多花了 10 分钟,实际上省掉了后面无数封“为什么正常还会停机”的追问。希望这个双确认习惯能帮到你的现场。

本文还有配套的精品资源,点击获取

相关新闻

SQL Server JDBC无法打开数据库MSSQLSERVER排查与修复

SQL Server JDBC无法打开数据库MSSQLSERVER排查与修复

如果你在日志里看到这条 com.microsoft.sqlserver.jdbc.SQLServerException: 无法打开登录所请求的数据库 "MSSQLSERVER"。登录失败。 ,第一反应多半是"数据库连不上了,赶紧检查账号密码"。但按这个思路去排查,大概率会…

2026/10/20 17:36:10 阅读更多 →
Selenium四类高频难点完整方案:下拉框、文件上传、弹窗与多窗口切换

Selenium四类高频难点完整方案:下拉框、文件上传、弹窗与多窗口切换

做Web自动化测试,跑到电商、后台管理系统这类项目时,脚本最容易翻车的其实不是登录、不是数据断言,而是下拉框、文件上传、弹窗和多窗口切换这种看起来不起眼的交互操作。很多新人在这四个场景上栽了跟头,多半是因为官方文档只讲了…

2026/10/20 17:36:10 阅读更多 →
Selenium进阶:JS执行、Cookie管理与浏览器配置实战

Selenium进阶:JS执行、Cookie管理与浏览器配置实战

做Selenium自动化做了几年,我最大的感受是:能被 find_element 和 click 解决的需求,只能算 Selenium 的入门玩法。真正让你在复杂页面、登录态、无人值守环境中活下来的,往往是三样进阶技能——JavaScript 执行、Cookie 管理和…

2026/10/20 17:36:10 阅读更多 →

最新新闻

智能助手技能机制全链路拆解:存放、加载、更新与维护实战

智能助手技能机制全链路拆解:存放、加载、更新与维护实战

1. 从一次技能失效说起:为什么我要拆解这套机制去年冬天,我负责维护的一个智能协作助手突然在某个任务上"失忆"了。前一天还能准确调用的技能,第二天就像从没存在过一样,用户问它问题,它只会礼貌地回复"…

2026/10/20 18:22:01 阅读更多 →
Hello world!:从第一行代码到环境自检与冒烟测试

Hello world!:从第一行代码到环境自检与冒烟测试

每个程序员的电脑里,都住着一行 Hello world!。不管是写前端的、做嵌入式的,还是半路出家搞数据分析的,第一次敲下这行代码、按下运行键、盯着终端里的输出愣住两秒的时刻,基本可以算作职业生涯里的第一个"高光瞬间"。这…

2026/10/20 18:22:01 阅读更多 →
DeepSeek开源Agent框架插件化设计深度拆解:从注册到执行链路

DeepSeek开源Agent框架插件化设计深度拆解:从注册到执行链路

1. 拆之前先想清楚:为什么要看这个框架第一次看到 DeepSeek 开源 Agent 框架的消息,我其实没太当回事。市面上 Agent 框架已经多到数不过来,从早期的任务编排库到后来的多智能体协作平台,大部分都是把 LLM 调用、工具注册、对话循…

2026/10/20 18:22:01 阅读更多 →
插件化Agent框架源码拆解:工具、执行器、记忆与规划器四层设计

插件化Agent框架源码拆解:工具、执行器、记忆与规划器四层设计

1. 拆之前先想清楚:为什么要看这个 Agent 框架大模型圈子里做应用的人,最近一年绕不开一个词——Agent。但真正动手写过 Agent 的人都知道,从"能聊天"到"能干活"之间隔着一道巨大的鸿沟。你让模型调用一个工具&#xff0…

2026/10/20 18:22:01 阅读更多 →
AI中台数据资产智能清查指令与核验模板实战指南

AI中台数据资产智能清查指令与核验模板实战指南

1. 数据资产清查为什么需要一套“指令模板”做过企业级AI中台落地的人都有一个共同感受:模型训练、推理服务、知识库检索这些“显性能力”往往被反复讨论,但真正拖慢项目进度的,反而是最不起眼的一环——系统里到底有哪些数据资产、它们分布在…

2026/10/20 18:22:01 阅读更多 →
cgroups 核心模型与实操:从 v1 到 v2 的资源限制机制详解

cgroups 核心模型与实操:从 v1 到 v2 的资源限制机制详解

这段时间在帮人排查一套测试环境,机器一早就卡住,SSH 敲半天都进不去。登上去一看,好几个容器在抢 CPU,内存也快被打穿。想定位到底是哪个容器干的,光靠 namespace 根本看不出来——namespace 只解决“容器能看到什么”…

2026/10/20 18:21:00 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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/20 10:02:08 阅读更多 →
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/20 9:50: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/20 9:50:45 阅读更多 →