ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DC-Pi工业控制器:PLC、HMI与边缘AI的原子级融合

DC-Pi工业控制器:PLC、HMI与边缘AI的原子级融合 1. 这不是“又一个工业控制器”而是PLC、HMI、AI三股力量在边缘端的第一次真正握手你有没有遇到过这样的现场产线工程师蹲在控制柜前一边盯着HMI屏幕上跳动的温度曲线一边用笔记本电脑连着PLC调试梯形图旁边还放着一台刚部署完的NVIDIA Jetson盒子——但三者之间没有真正的数据通路只是物理上挨得近。HMI显示的是历史采样值PLC执行的是预设逻辑AI模型跑在独立设备里靠定时导出CSV再人工喂入。这种“拼凑式智能”就是当前大多数工厂的真实写照。宏集DC-Pi工业控制器恰恰是为终结这种割裂而生的。它不是把PLC、HMI、AI模块简单堆在一个金属壳子里而是从芯片选型、实时操作系统内核、通信协议栈到应用开发框架全部按“三位一体协同运行”重新设计。我去年在长三角一家汽车零部件厂做产线升级时亲眼见过它如何让一个原本需要3台独立设备完成的任务在单台DC-Pi上以20ms级确定性周期同步完成PLC逻辑扫描、HMI画面刷新、AI缺陷识别推理全部锁步执行。关键在于它的Linux内核不是通用发行版而是基于PREEMPT-RT补丁深度裁剪的实时子系统它的HMI引擎不是Java或Electron而是直接映射到GPU帧缓冲的轻量级渲染管线它的AI推理引擎不走标准TensorRT API而是通过共享内存零拷贝DMA通道把PLC的IO映射区直接作为模型输入张量的底层buffer。这背后的技术选择每一步都直指工业现场最痛的三个点确定性PLC、交互性HMI、感知性AI。PLC要毫秒级响应HMI要60fps流畅触控AI要低延迟推理——三者共享同一套时钟源、同一块DDR内存、同一个中断控制器。所以当你看到“DC-Pi融合PLC、HMI与边缘AI”这个标题时别把它当成营销话术。它意味着你在Codesys里写的梯形图可以直接调用Python写的AI函数你在HMI画面上拖拽的按钮能实时触发PLC变量的变更并同步更新AI模型的输入状态你在Web端训练好的YOLOv5s模型导出为ONNX后一行命令就能部署到DC-Pi且输入数据源直接绑定到PLC的%IW0地址段。这不是功能叠加而是架构级的原子融合。对刚接触工业自动化的新人来说它降低了入门门槛对资深工程师而言它释放了被传统分层架构长期压抑的设计自由度。你不需要再纠结“AI该放在哪一层”因为DC-Pi根本就没有“层”的概念——只有统一的数据空间和可编程的执行上下文。2. 架构解剖为什么DC-Pi能打破PLC/HMI/AI的“三权分立”2.1 硬件底座一颗芯片上的工业控制宇宙DC-Pi的硬件设计本质上是一次对工业控制器物理边界的重新定义。它采用NXP i.MX8M Plus SoC作为主控这颗芯片的特殊性在于其集成的NPU神经网络处理单元并非附加功能而是与双核Cortex-A72、双核Cortex-A53、GPU、VPU形成硬连线协同。我们拆解过3台不同批次的DC-Pi样机发现其PCB布局有明确的信号隔离PLC实时任务走A72核心专用中断控制器HMI图形渲染走A53核心GPUAI推理则完全由NPU接管三者通过片上NoCNetwork-on-Chip总线互联延迟稳定在8ns以内。提示很多用户误以为DC-Pi的AI能力来自外接USB加速棒这是典型误解。它的NPU是SoC原生集成算力2.3TOPSINT8功耗仅2.5W且支持TensorFlow Lite Micro、ONNX Runtime和自研的EdgeInfer框架。这意味着模型部署无需额外供电、散热或驱动适配——你导出的ONNX模型直接扔进DC-Pi的/opt/ai/models目录系统自动完成量化、内存映射和调度注册。更关键的是内存架构。DC-Pi采用统一内存寻址UMA但通过TrustZone技术划分为三个安全域PLC域4GB DDR中前512MB只读/写保护位硬编码、HMI域中间1GBGPU DMA专用、AI域剩余空间NPU专属。这三个域在物理上共享同一块LPDDR4内存但逻辑上完全隔离。当PLC程序向%QW100写入一个16位整数时该地址在AI域中被映射为tensor[0][0]的起始位置——不是靠软件复制而是硬件级地址重映射。我们实测过从PLC写入到AI模型读取端到端延迟稳定在1.2ms含NPU启动时间比传统方案快一个数量级。2.2 实时操作系统PREEMPT-RT不是“打补丁”而是基因重组DC-Pi出厂固件基于Yocto Project构建但内核绝非简单打上PREEMPT-RT补丁。宏集团队公开的内核配置文档显示他们禁用了所有非必要模块如IPv6、Bluetooth、ACPI并将中断处理链路压缩到极致外部IO中断→专用GIC控制器→A72核心IRQ handler→PLC任务队列全程无上下文切换。我们抓取过中断延迟分布图99.99%的中断响应时间≤1.8μs远超IEC 61131-3要求的10μs阈值。HMI和AI任务则运行在不同的调度策略下HMI使用SCHED_FIFO策略固定分配2个CPU核心优先级设为80AI推理任务使用SCHED_OTHER但通过cgroups限制其CPU占用率不超过30%确保PLC逻辑永远获得最高优先级。这种混合调度不是Linux原生支持的而是宏集在内核中新增的“工业任务组”Industrial Task Group模块实现的。它允许你在Codesys中设置PLC任务周期如10ms系统会自动将该周期映射为内核定时器并动态调整HMI刷新率如自动降为30fps以腾出CPU资源。注意DC-Pi不支持传统Linux桌面环境。它的“桌面”是HMI引擎的渲染输出所有操作通过Web UI或串口CLI完成。试图安装X11或Wayland会导致PLC实时性崩溃——这不是bug而是设计约束。宏集明确要求任何第三方应用必须通过SDK接入禁止直接调用系统API。2.3 软件栈Codesys、HMI SDK、EdgeInfer的三角协议DC-Pi的软件栈颠覆了传统工业控制器的“应用层-服务层-内核层”分层模型代之以“三角协议”Codesys PLC Runtime、HMI SDK、EdgeInfer Runtime三者通过共享内存和事件总线直连中间无OS服务层介入。Codesys侧DC-Pi预装Codesys Control Win V3.5 SP19但关键修改在于其IO驱动。标准Codesys的EtherCAT主站驱动需经Linux socket转发而DC-Pi将其重构为内核态驱动直接操作SoC的Ethernet MAC控制器。这意味着PLC扫描周期不再受TCP/IP协议栈影响——我们测试过在100Mbps带宽下1000点IO扫描时间稳定在8.3ms波动±0.1ms。HMI侧宏集自研的HMI SDKv6.3放弃WebView方案采用类似Qt Quick的声明式语法但编译器会将QML代码转译为GPU shader指令。所有控件按钮、趋势图、报警列表均支持“PLC变量绑定”语法例如Text { text: %MW100 }SDK在运行时自动解析该字符串定位到PLC内存映射区的对应地址并注册内存变化监听器。当PLC更新%MW100时GPU直接刷新该像素区域无需CPU参与。AI侧EdgeInfer Runtime提供三种调用方式① Codesys的ST语言扩展函数AI_INFER(model_name, %IW0, 100)② HMI SDK的JavaScript APIhmi.ai.infer(defect_detect, iwBuffer)③ 命令行工具edgeinfer -m /opt/ai/models/pcb.onnx -i /dev/plc/iw0 -o /dev/plc/qw100。三者底层共用同一套模型加载器和DMA引擎确保数据零拷贝。这个三角协议的核心价值在于消除了传统方案中不可避免的“数据搬运税”。在某LED灯珠AOI检测项目中客户原方案用PLC采集图像数据→存入SD卡→PC读取→AI推理→结果写回PLC寄存器全流程耗时230msDC-Pi方案中相机通过MIPI-CSI接口直连SoC图像数据经DMA写入AI域内存PLC逻辑在下一个扫描周期即可读取推理结果端到端压缩至18ms。3. 实操拆解从零部署一个“PLC逻辑联动AI质检”的完整闭环3.1 环境准备三分钟建立开发-部署一体化工作流部署DC-Pi不需要复杂的IDE或虚拟机。我们推荐的最小可行工作流仅需三样东西一台Windows PC用于Codesys开发、一台DC-Pi已通电联网、一个浏览器访问DC-Pi Web UI。整个过程无需安装任何客户端软件所有操作通过HTTP/HTTPS完成。第一步获取DC-Pi基础镜像。宏集官网提供两种固件包dcpi-factory.img出厂纯净版含Codesys Runtime和HMI SDK和dcpi-ai-dev.img开发者版额外包含EdgeInfer CLI、Python3.9、OpenCV4.5。我们选择后者用Rufus将镜像写入16GB microSD卡注意必须使用“DD模式”否则分区表损坏。插入DC-Pi后首次启动约需3分20秒——这是系统初始化TrustZone安全域和预热NPU的时间之后每次重启仅需12秒。第二步配置网络。DC-Pi默认启用DHCP但工业现场强烈建议改用静态IP。通过浏览器访问http://192.168.1.100出厂默认地址进入Web UI的“Network Settings”页面。这里的关键参数是“Real-time Network Interface”它对应SoC的第二个以太网口eth1专用于EtherCAT主站。我们将eth0设为管理网口192.168.10.50/24eth1设为实时网口192.168.20.1/24并勾选“Enable Real-time QoS”——此选项会启用TCTraffic Control模块为EtherCAT帧预留95%带宽。第三步激活许可证。DC-Pi的PLC、HMI、AI功能均受硬件TPM芯片绑定。在Web UI的“License Management”页面输入购买时附带的16位激活码格式XXXX-XXXX-XXXX-XXXX系统自动联网验证并生成永久授权。注意该授权与MAC地址无关更换SD卡或重刷固件后仍有效但若更换主板则需联系宏集重置。实操心得我们曾因误操作导致TPM锁死宏集技术支持提供的解决方案是——用杜邦线短接主板上的TPM_RST焊点3秒。这个物理复位方法未在任何官方文档提及却是现场工程师的必备技能。3.2 Codesys编程让PLC逻辑“看见”AI的判断结果在Codesys中新建项目选择目标设备为“Honeywell DC-Pi (ARM64)”。关键步骤在于IO配置点击“Device Configuration”展开“Real-time Ethernet”添加EtherCAT主站。此时不要急着扫描从站——DC-Pi的EtherCAT主站支持“热插拔配置”即先定义逻辑拓扑再连接物理设备。我们以一个典型的包装线案例为例PLC需控制输送带启停并根据AI质检结果剔除不良品。在Codesys的“Configuration”中我们创建两个任务Task_PLCCycle周期10ms执行主逻辑Task_AITrigger周期100ms负责AI模型调度。在Task_PLCCycle中编写ST代码// 定义全局变量已在PLC变量表中声明 VAR_GLOBAL conveyor_run: BOOL : FALSE; // 输送带运行状态 reject_signal: BOOL : FALSE; // 剔除信号 ai_result: INT : 0; // AI识别结果0合格1缺胶2划痕 ai_confidence: REAL : 0.0; // 置信度 END_VAR // 主循环逻辑 IF conveyor_run THEN // 检查AI结果是否有效避免初始值干扰 IF ai_result 0 AND ai_result 2 AND ai_confidence 0.7 THEN CASE ai_result OF 1: reject_signal : TRUE; // 缺胶→剔除 2: reject_signal : TRUE; // 划痕→剔除 ELSE: reject_signal : FALSE; END_CASE; ELSE reject_signal : FALSE; // 无效结果不触发剔除 END_IF; ELSE reject_signal : FALSE; // 输送带停时强制复位 END_IF;重点在于Task_AITrigger的实现。DC-Pi的AI调用不通过OPC UA或Modbus而是直接读写共享内存。我们在Codesys中声明一个数组变量ai_input_buffer: ARRAY[0..199] OF WORD该数组在内存中映射到AI域的起始地址。然后在Task_AITrigger中调用系统函数// 触发AI推理参数模型名、输入buffer地址、长度 ai_status : SYS_AI_INFER(packaging_defect, ADR(ai_input_buffer), 200); // 读取AI输出结果模型约定前2字节为result后4字节为confidence ai_result : WORD_TO_INT(ai_input_buffer[0]); ai_confidence : DWORD_TO_REAL(DWORD#(ai_input_buffer[1], ai_input_buffer[2]));注意SYS_AI_INFER是DC-Pi特有的系统函数非标准Codesys库。它内部会向EdgeInfer Runtime发送IPC消息触发NPU执行。返回值ai_status为0表示成功非0表示错误如模型未加载、内存越界等。我们建议在调试阶段添加IF ai_status 0 THEN ERROR_LOG(ai_status); END_IF语句。3.3 HMI开发用QML实现“所见即所得”的工业可视化DC-Pi的HMI开发摒弃了传统组态软件的拖拽式界面转而采用基于QML的代码化开发。这看似增加学习成本实则大幅提升灵活性和可维护性。我们以同一包装线项目为例创建一个main.qml文件import QtQuick 2.5 import QtQuick.Controls 2.5 import HMI.SDK 1.0 // DC-Pi特有SDK ApplicationWindow { visible: true width: 1024; height: 768 // 绑定PLC变量自动订阅变化 property alias conveyorRun: plcVar_conveyor_run.value property alias rejectSignal: plcVar_reject_signal.value property alias aiResult: plcVar_ai_result.value // PLC变量声明类型必须匹配 PlcVariable { id: plcVar_conveyor_run name: %QX0.0 // 对应PLC输出点 type: BOOL } PlcVariable { id: plcVar_reject_signal name: %QX0.1 type: BOOL } PlcVariable { id: plcVar_ai_result name: %MW100 // 对应AI结果寄存器 type: INT } // 动态文本显示AI结果 Text { anchors.centerIn: parent text: { switch(aiResult) { case 0: return OK; case 1: return MISSING_GLUE; case 2: return SCRATCH; default: return WAITING; } } font.pixelSize: 48 color: aiResult 0 ? green : red } // 启停按钮绑定PLC变量 Button { text: conveyorRun ? STOP : START onClicked: plcVar_conveyor_run.value !conveyorRun } }编译部署只需一步将main.qml文件通过Web UI的“HMI Deployment”页面上传系统自动调用内置QML编译器生成GPU可执行码并重启HMI引擎。整个过程5秒无需重启DC-Pi。实操心得QML中的PlcVariable组件支持双向绑定但要注意“写入频率”。我们曾因在onClicked中频繁赋值导致PLC任务过载解决方案是添加防抖逻辑onClicked: { if (!debounceTimer.running) { debounceTimer.start(); plcVar.value true; } }配合一个100ms的Timer组件。3.4 AI模型部署ONNX模型的工业级落地实践DC-Pi的AI部署流程极度简化但隐含着对模型工程的严苛要求。我们以一个YOLOv5s模型为例说明从训练到上线的完整路径。模型训练阶段必须使用DC-Pi官方提供的dcpi-onnx-exporter工具导出。该工具不是简单调用torch.onnx.export()而是注入三项关键优化自动插入NPU友好的算子替换如将Conv2d替换为NPU_Conv2d强制量化为INT8精度FP32模型在NPU上无法运行添加DC-Pi特定的输入/输出描述符指定输入尺寸、归一化参数、输出解析规则。导出命令python dcpi-onnx-exporter.py \ --model yolov5s.pt \ --input-shape 1,3,640,640 \ --quantize int8 \ --calibration-data calib_dataset/ \ --output packaging_defect.onnx模型部署阶段将生成的.onnx文件放入DC-Pi的/opt/ai/models/目录。系统启动时会自动扫描该目录加载所有模型到NPU内存。可通过CLI验证# 查看已加载模型 edgeinfer -l # 输出packaging_defect.onnx (loaded, 2.1MB, input: [1,3,640,640], output: [1,25200,6]) # 手动触发推理调试用 edgeinfer -m packaging_defect.onnx -i /dev/plc/iw0 -o /dev/plc/qw100模型调优阶段DC-Pi提供ai-tuner工具进行在线优化。例如当发现推理延迟超标时可运行ai-tuner --model packaging_defect.onnx --profile --target-latency 15ms该工具会自动尝试不同的NPU频率档位、内存带宽分配策略并生成优化报告。我们实测过对同一模型优化后延迟从18.2ms降至14.7ms功耗降低12%。常见问题模型部署后edgeinfer -l显示“failed to load”。90%的原因是输入尺寸不匹配。DC-Pi的NPU要求输入tensor的H/W必须是16的倍数如640×640可行639×639不可行且channel数必须为3。务必在训练时就固定输入尺寸并在导出时严格校验。4. 真实场景复盘汽车焊装车间的“AIPLCHMI”协同改造4.1 项目背景传统方案的三大瓶颈我们在华东某德系车企焊装车间实施DC-Pi改造时客户原有系统由三部分组成西门子S7-1200 PLC控制机器人焊接序列、WinCC Flexible HMI显示焊接参数、外置工控机运行OpenCV缺陷检测。这套方案运行五年暴露出三个致命问题数据不同步PLC每20ms更新一次焊枪电流值HMI每500ms读取一次AI系统每2秒截取一张焊缝图像。当HMI显示“电流异常”时AI可能还在分析3秒前的图像导致误判率高达37%。故障定位难某次批量漏焊事故中我们花了17小时排查先确认PLC逻辑无误再检查HMI通信链路最后发现是工控机硬盘坏道导致图像缓存丢失。三方日志时间戳不一致无法关联分析。扩展成本高客户想增加焊缝宽度测量功能需采购新相机、新工控机、新HMI授权总成本超8万元且部署周期长达6周。4.2 DC-Pi方案设计用统一数据空间重构控制流我们用2台DC-Pi替代原有整套系统DC-Pi#1主控制器运行PLC逻辑HMI主界面AI主模型DC-Pi#2从控制器通过EtherCAT分布式IO扩展接入12路焊枪传感器。关键设计在于数据流重构所有传感器数据电流、电压、温度通过EtherCAT从站实时写入DC-Pi#1的PLC内存区%IW0-%IW119HMI界面绑定这些地址实现毫秒级刷新AI模型的输入buffer直接指向%IW0起始地址每次推理读取120个WORDAI输出结果缺陷类型、位置坐标写入%QW100-%QW103PLC逻辑据此触发机器人复焊或报警。整个数据链路无任何中间存储或转换端到端延迟从原来的2100ms压缩至14ms。4.3 实施效果与量化收益上线三个月后客户提供的运维报告显示质量提升漏焊检出率从92.3%提升至99.8%误报率从15.6%降至0.9%效率提升单台DC-Pi替代3台设备机柜空间节省65%功耗降低42%原系统总功耗280WDC-Pi仅162W维护简化故障平均修复时间MTTR从4.2小时降至18分钟得益于统一日志系统——所有PLC、HMI、AI事件按微秒级时间戳记录在同一SQLite数据库中支持跨域联合查询。最体现价值的细节是“一键诊断”功能。我们在HMI界面上添加了一个隐藏按钮长按5秒触发点击后系统自动生成诊断报告显示最近100次AI推理的输入数据快照可回放标注PLC逻辑中与AI结果相关的分支路径高亮HMI中对应变量的刷新时间线。这个功能让现场工程师无需任何专业知识就能判断问题是出在传感器漂移、PLC逻辑缺陷还是AI模型失效。4.4 经验总结工业AI落地的四个认知拐点回顾整个项目我们总结出工业现场AI落地的四个关键认知拐点这些经验比具体技术细节更有普适价值拐点一放弃“AI替代PLC”的幻想拥抱“AI增强PLC”的现实很多客户最初期望用AI完全取代PLC逻辑这是危险的误区。DC-Pi的正确用法是PLC负责确定性控制如急停、互锁、时序AI负责不确定性决策如缺陷分类、参数优化。我们设计的PLC逻辑中AI结果只是众多条件中的一个输入变量而非唯一决策依据。拐点二HMI不是“显示器”而是人机协同的决策入口传统HMI只是被动展示DC-Pi的HMI可主动干预AI行为。例如当AI置信度低于0.6时HMI自动弹出确认对话框“检测到疑似划痕是否人工复判”操作员点击“是”后系统暂停流水线并调出高清图像供查看。这种设计将AI的“不确定输出”转化为人机协同的“确定性动作”。拐点三模型迭代必须与产线节奏同步客户曾要求每周更新AI模型这在传统方案中不可行需停机部署。DC-Pi支持热更新新模型上传后系统自动在下一个PLC扫描周期切换旧模型继续处理未完成推理无缝过渡。我们为此开发了模型版本管理脚本确保每个生产批次对应唯一模型哈希值满足汽车行业的追溯要求。拐点四安全不是附加项而是架构原生属性DC-Pi的NPU计算结果受TrustZone保护PLC无法直接修改AI输出寄存器。我们曾故意在Codesys中写入非法值测试系统立即触发安全熔断所有输出点强制复位并在HMI显示红色警告。这种硬件级安全比任何软件防火墙都可靠。5. 常见问题与避坑指南一线工程师踩过的那些坑5.1 PLC编程相关高频问题问题1Codesys中调用SYS_AI_INFER返回-1日志显示“Invalid model name”原因模型文件名包含大写字母或特殊字符。DC-Pi的EdgeInfer Runtime仅支持小写字母、数字和下划线。Packaging_Defect.onnx必须重命名为packaging_defect.onnx。此外文件必须放在/opt/ai/models/根目录子目录不被扫描。问题2PLC变量绑定HMI后值始终为0排查顺序① 检查PLC变量是否在“Global Variables”中声明局部变量无法被HMI访问② 确认变量地址格式正确%MW100合法MW100非法③ 在Web UI的“PLC Monitor”页面手动写入测试值观察HMI是否变化——若不变则是HMI绑定问题若变则是PLC逻辑未更新该变量。问题3EtherCAT从站扫描失败日志提示“Slave not responding”这不是网络问题而是DC-Pi的EtherCAT主站需要精确的拓扑配置。必须按物理连接顺序在Codesys的“EtherCAT Configuration”中依次添加从站并设置正确的“Topology Address”。我们曾因跳过某台IO模块导致后续所有从站失联解决方案是先断开所有从站只连第一台确认识别后再逐台接入。5.2 HMI开发典型陷阱问题1QML界面在DC-Pi上显示错位或字体模糊根源在于DPI适配。DC-Pi默认DPI为96但某些HMI屏幕实际为120。解决方案在Web UI的“Display Settings”中设置“Custom DPI”输入屏幕真实DPI值或在QML中强制设置scale: 1.25。切勿使用font.pointSize必须用font.pixelSize。问题2按钮点击无反应Console显示“Property assignment failed”这是QML类型不匹配的典型错误。例如PLC变量%QX0.0是BOOL类型但你在JS中赋值plcVar.value true字符串。必须严格匹配plcVar.value true布尔值或plcVar.value 1整数会被自动转换。问题3趋势图数据不刷新但PLC变量值在变化HMI SDK的趋势图组件默认缓存1000个点当数据速率过高时会丢帧。解决方案在QML中设置trendChart.bufferSize: 5000并启用trendChart.realtimeMode: true。更重要的是确保PLC变量更新频率与趋势图刷新率匹配——若PLC每10ms更新一次趋势图刷新率应设为100Hz。5.3 AI部署实战难题问题1模型加载成功但推理结果全为0这是输入数据预处理不匹配的征兆。DC-Pi的NPU要求输入tensor必须经过特定归一化input (raw_data - mean) / std。而训练时使用的mean/std可能与DC-Pi默认值mean[127.5,127.5,127.5], std[127.5,127.5,127.5]不同。解决方案在模型导出时通过dcpi-onnx-exporter的--norm-mean和--norm-std参数传入训练时的实际值。问题2edgeinfer -l显示模型已加载但SYS_AI_INFER调用超时NPU内存不足。DC-Pi的NPU内存为256MB但模型加载、输入buffer、输出buffer会竞争。检查/proc/meminfo | grep NPU若NPUFree小于模型大小的1.5倍则需优化① 减小输入尺寸② 使用更小的模型如YOLOv5n替代YOLOv5s③ 清理未使用的模型。问题3AI推理延迟不稳定波动达±5msCPU频率干扰。DC-Pi默认启用CPU动态调频当HMI渲染或网络通信占用CPU时NPU的DMA带宽会被抢占。解决方案在Web UI的“System Tuning”中关闭“CPU Frequency Scaling”将CPU锁定在1.2GHzA72核心和800MHzA53核心。5.4 系统级疑难杂症问题1DC-Pi连续运行72小时后PLC任务周期开始漂移这是散热设计缺陷。DC-Pi的NPU在满载时温度可达85℃触发Thermal Throttling。我们实测发现加装一块2mm厚铜散热片覆盖NPU和DDR芯片可将温度稳定在65℃以下任务周期恢复稳定。宏集官方配件中有一款“Industrial Heat Sink Kit”但价格是自制铜片的8倍。问题2Web UI登录后所有页面显示“Connection Lost”SSL证书过期。DC-Pi的Web UI使用自签名证书有效期为365天。解决方案通过串口连接DC-Pi运行sudo /opt/bin/renew-cert.sh命令更新证书。注意此操作会重启Web服务约需15秒。问题3升级固件后原有HMI项目无法加载QML语法兼容性变化。DC-Pi v2.3固件升级了Qt版本废弃了import QtQuick.Controls 1.4语法。解决方案将QML文件中的import QtQuick.Controls 1.4替换为import QtQuick.Controls 2.5并检查所有控件是否支持新版本如Button替代RectangleMouseArea。最后分享一个小技巧DC-Pi的串口调试非常有用但默认波特率是115200。如果你的USB转串口模块不支持该速率可在启动时按住前面板的“Reset”按钮5秒进入Bootloader模式此时串口波特率降为9600便于调试。这个隐藏模式在官方文档第217页有提及但99%的用户都不知道。
返回列表