ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

PLC、HMI与边缘AI三合一:工业控制器融合架构与实操指南

2026/9/27 3:12:15 拓冰建站 浏览量
PLC、HMI与边缘AI三合一:工业控制器融合架构与实操指南 1. 工业控制器的新物种为什么要把PLC、HMI和边缘AI塞进一个盒子第一次看到宏集DC-Pi这个产品定义的时候我的反应是这不就是把三台设备硬凑到一起吗。但仔细拆完它的架构逻辑之后我发现这个思路其实解决了一个在产线现场困扰了很久的问题——数据采集、逻辑控制和人机交互这三件事长期以来被迫分散在三个甚至更多硬件上跑中间靠各种协议转换和通信线缆连起来调试的时候光排查通信故障就能耗掉大半天。传统方案是什么样的呢一台PLC负责逻辑控制和IO采集一块HMI触摸屏负责本地显示和操作如果要做边缘计算或者AI推理还得再加一台工控机或者边缘网关。三台设备三套供电三种编程软件三个不同厂商的技术支持渠道。更麻烦的是PLC和HMI之间的数据映射、HMI和上位机之间的协议对接、边缘网关和PLC之间的数据采集每一层都需要单独配置和调试。任何一个环节出问题整条线就得停。宏集DC-Pi的思路是把这三件事收拢到一个基于Linux的工业控制器里。底层用实时内核跑PLC逻辑中间层跑HMI可视化上层跑边缘AI推理。三个功能共享同一套硬件资源通过内部总线通信而不是外部网络协议。这个架构带来的直接好处是接线少了故障点少了数据从采集到推理的延迟从几十毫秒降到了微秒级。这个产品适合什么人关注如果你是在做产线自动化改造的工程师正在被多设备协同调试折磨那这个方向值得研究。如果你是做设备集成的客户要求越来越高的数据分析和本地智能决策能力那边缘AI和PLC融合的思路可以给你不少启发。哪怕你只是刚接触PLC编程入门基础知识理解这种三合一架构也能帮你建立对工业控制系统整体形态的认知。2. 拆开看架构PLC、HMI和边缘AI到底怎么在一个盒子里共存2.1 实时PLC逻辑层软PLC是怎么保证确定性的DC-Pi里面的PLC不是传统的硬件PLC模块而是跑在Linux系统上的软PLC。很多人一听软PLC就摇头觉得不如硬件PLC稳定。这个担心在十年前是合理的但现在的情况已经变了。软PLC的核心挑战是实时性。Linux本身是个通用操作系统调度器要同时处理网络、文件系统、UI渲染等各种任务PLC的扫描周期很容易被其他任务打断。DC-Pi的做法是在Linux内核上打实时补丁把PLC任务线程的优先级设到最高同时用CPU隔离技术把某个核心专门分配给PLC运行时不让其他进程占用。具体来说它的PLC运行时支持IEC 61131-3标准也就是说你可以用梯形图、功能块图、结构化文本等五种语言来编程。对于习惯了西门子博图或者汇川PLC的工程师来说上手成本主要在于熟悉新的编程环境而不是重新学习编程逻辑。梯形图的逻辑还是一样的定时器、计数器、PID这些功能块的用法也大同小异。扫描周期的表现方面根据官方给出的数据典型逻辑任务的扫描周期可以稳定在1毫秒以内抖动控制在几十微秒级别。这个指标对于绝大多数工业场景是够用的。当然如果你要做高速运动控制比如多轴插补那还是得用专用的运动控制器软PLC在这方面有天然劣势。IO方面DC-Pi支持本地IO模块扩展和远程IO通过EtherCAT、Modbus TCP等协议接入。EtherCAT的刷新周期可以做到250微秒对于需要快速响应的场合完全够用。这里有个实操细节如果你同时跑PLC、HMI和AI推理建议把EtherCAT主站也绑定到和PLC同一个隔离核心上避免网络中断处理被其他任务抢占导致丢帧。2.2 HMI可视化层Web-based HMI的利与弊DC-Pi的HMI方案走的是Web-based路线也就是说HMI画面本质上是跑在本地Web服务器上的网页通过浏览器或者WebView组件来显示。这个选择有它的道理也有需要适应的地方。好处很明显开发效率高用HTML5、CSS和JavaScript就能做界面不需要专门的HMI组态软件。对于有Web开发经验的团队来说做出来的界面比传统HMI组态软件灵活得多动画效果、数据可视化图表、响应式布局都能轻松实现。而且因为是Web技术远程访问天然支持不需要额外配置VNC或者远程桌面。但问题也存在。传统HMI组态软件比如西门子WinCC或者威纶通的EasyBuilder它们对工业场景做了大量优化比如报警管理、趋势记录、配方管理、用户权限这些功能都是现成的组件拖拽配置就行。用Web技术做HMI这些功能要么自己开发要么找现成的JS库来集成。对于没有Web开发经验的自动化工程师来说这个门槛不低。我个人的建议是如果你的团队里有Web开发能力Web-based HMI的灵活性和可扩展性值得投入。如果团队纯做自动化出身那可能需要一段学习期或者考虑用一些开源的Web HMI框架来降低门槛。另外要注意的是工业现场对HMI的稳定性要求很高浏览器崩溃或者内存泄漏是不能接受的所以前端代码的质量控制比普通Web项目要严格得多。2.3 边缘AI推理层在控制器上跑模型是什么体验边缘AI是DC-Pi区别于传统PLC和HMI组合的最大亮点。它内置了NPU或者GPU加速单元可以本地运行轻量级的深度学习模型。这意味着什么以前你需要把数据传到云端或者服务器上做推理现在在控制器本地就能完成。典型的应用场景包括基于视觉的缺陷检测、基于振动信号的设备故障预测、基于历史数据的工艺参数优化。这些场景的共同特点是数据量大、对延迟敏感、而且往往涉及生产机密不适合上传到外部服务器。在DC-Pi上部署AI模型的流程大致是这样的先在PC上用PyTorch或者TensorFlow训练模型然后通过模型转换工具转成ONNX格式再用推理引擎比如TensorRT或者OpenVINO做量化和优化最后部署到控制器上。推理引擎会针对控制器的硬件做算子融合和内存优化把模型压缩到适合嵌入式环境的大小。实测下来一个轻量级的MobileNet分类模型在DC-Pi上的单次推理时间大约在10到20毫秒之间具体取决于模型复杂度和输入分辨率。这个速度对于大多数工业检测场景是够用的但如果你要做实时视频流的目标检测可能需要更强大的硬件或者更激进的模型压缩策略。这里有个容易踩的坑AI推理任务和PLC任务共享CPU资源如果推理任务占用太多CPU时间会影响PLC的扫描周期稳定性。解决办法是把AI推理绑定到和PLC不同的CPU核心上并且设置合理的线程优先级。另外推理任务最好是事件驱动的比如收到触发信号才跑一次推理而不是持续不断地跑这样可以大幅降低平均CPU占用率。3. 从零搭建一个融合方案的实操过程3.1 硬件选型与系统规划假设我们要搭建一个典型的应用场景一条小型装配线需要控制气缸动作、读取传感器信号、在触摸屏上显示状态、同时对产品外观做视觉检测。传统方案需要一台PLC、一块HMI、一台工控机加相机。用DC-Pi的话一台控制器加相机就能搞定。硬件配置方面DC-Pi通常有多个型号主要区别在CPU性能、内存大小、AI加速单元的有无以及IO接口数量。对于这个场景建议选择带NPU的型号内存至少4GB存储32GB以上。IO方面如果本地IO不够用可以通过EtherCAT扩展远程IO模块。相机选择上如果是做简单的有无检测或者尺寸测量普通的工业相机加定焦镜头就够了。如果要跑深度学习模型做缺陷分类建议用分辨率高一些的相机但也不要盲目追求高像素因为输入分辨率越高推理时间越长。一般来说500万像素对于大多数表面缺陷检测场景已经足够。系统规划阶段需要明确几个关键参数PLC扫描周期要求、HMI刷新率要求、AI推理延迟要求、IO点数、通信协议。把这些列清楚之后再对照DC-Pi的规格书确认是否满足。特别要注意的是如果三个功能同时运行资源是共享的所以规划时要留出至少30%的性能余量。3.2 开发环境搭建与PLC程序编写DC-Pi的开发环境通常是基于Eclipse的IDE支持IEC 61131-3标准的所有编程语言。安装好IDE之后第一件事是建立与控制器的连接。这里需要知道控制器的IP地址和通信端口默认情况下PLC运行时监听在某个固定端口上。连接建立之后先创建一个新项目选择目标控制器型号。然后就可以开始编写PLC程序了。对于装配线控制典型的程序结构包括初始化模块、手动模式模块、自动模式模块、报警处理模块、通信模块。初始化模块负责上电时的状态复位和参数加载。手动模式允许操作员单独控制每个气缸和电机用于调试和维护。自动模式是正常生产时的逻辑按照工艺流程依次执行动作。报警处理模块监控传感器状态和设备故障触发相应的报警和停机逻辑。通信模块负责和HMI以及AI推理层的数据交换。编程时有个经验把AI推理的触发逻辑做成PLC程序里的一个功能块输入是触发信号和图像数据指针输出是推理结果。这样PLC程序可以像调用普通功能块一样调用AI推理不需要关心底层的通信细节。这个功能块的实现通常由DC-Pi的运行时提供你只需要配置好模型路径和输入输出映射就行。3.3 HMI画面设计与数据绑定HMI画面的设计取决于你选择的方案。如果用Web-based HMI可以用任何前端框架来开发。我比较推荐用Vue或者React这类组件化框架因为工业HMI的界面通常有很多重复的元素比如按钮、指示灯、数值显示框用组件化的方式开发效率高很多。数据绑定方面Web HMI需要通过WebSocket或者HTTP API和PLC运行时通信。DC-Pi通常提供RESTful API和WebSocket接口你可以用JavaScript直接调用。比如读取一个PLC变量的值发一个GET请求到对应的API端点就行。写入变量则是发POST请求。这里有个性能优化的技巧不要每个变量单独发一个请求而是把需要同时读取的变量打包成一个请求。WebSocket的话可以订阅一组变量当变量值变化时服务器主动推送。这样可以大幅减少通信开销尤其是在变量数量多、刷新频率高的情况下。报警和趋势功能需要自己实现。报警可以用一个数组来管理每个报警项包含触发条件、优先级、确认状态等字段。趋势图可以用Chart.js或者ECharts来画数据从PLC的历史缓冲区读取。这些功能虽然要自己写但一旦写好之后可以复用到其他项目长期来看是划算的。3.4 AI模型训练与部署AI模型的训练在PC上完成。以视觉缺陷检测为例首先需要收集大量的产品图像包括合格品和各种缺陷品。图像数量至少每个类别几百张越多越好。然后做标注把缺陷区域框出来或者做像素级分割。模型选择上如果是分类任务ResNet或者MobileNet系列都可以。如果是检测任务YOLO系列比较适合工业场景因为速度快。如果是分割任务U-Net或者DeepLab系列是常见选择。对于DC-Pi这种边缘设备建议从轻量级模型开始比如MobileNetV3或者YOLOv5s先跑通流程再考虑提升精度。训练完成之后把模型导出为ONNX格式。然后用推理引擎的工具做优化包括量化把FP32转成INT8、层融合、内存复用等。量化可以大幅减小模型体积和推理时间但可能会损失一点精度需要在实际数据上验证。部署到DC-Pi上时把优化后的模型文件放到指定目录然后在PLC程序或者HMI配置里指定模型路径和输入输出参数。推理引擎会在首次加载时做初始化之后每次推理调用就是一次前向传播。注意模型加载比较耗时应该在系统启动时完成而不是每次推理时重新加载。4. 实际运行中会遇到的问题和排查方法4.1 PLC扫描周期不稳定的排查思路这是软PLC最常见的问题。表现是PLC程序的执行时间忽长忽短导致控制动作的时序不对。排查的时候先看CPU占用率如果某个核心的占用率接近100%说明有任务在抢占CPU资源。常见的原因有几个AI推理任务没有绑定到独立核心和PLC抢CPUHMI的Web服务器在处理大量请求时占用过多CPU系统日志或者数据记录功能在频繁写磁盘导致IO等待。解决办法对应也有几个用taskset或者cgroup把PLC任务绑定到专属核心限制HMI服务器的并发连接数或者把HMI服务也绑定到其他核心把日志写入改成异步方式或者写到内存文件系统里定期刷盘。还有一个容易被忽略的因素是网络中断处理。如果PLC通过EtherCAT或者Modbus TCP和远程IO通信网络中断处理程序会占用CPU时间。建议把网络中断也绑定到和PLC相同的核心上这样中断处理不会跨核心调度减少延迟抖动。4.2 HMI画面卡顿和通信超时的处理Web-based HMI的卡顿通常来自两个方向前端渲染性能不足或者后端通信延迟过高。前端方面如果画面上元素太多比如几百个动态数据点同时刷新浏览器的渲染压力会很大。解决办法是减少同时刷新的元素数量把不重要的数据降低刷新频率或者用Canvas代替DOM来渲染大量数据点。另外动画效果要节制使用CSS动画比JavaScript动画性能好但过多的动画仍然会拖慢渲染。后端方面如果PLC的通信负载已经很高HMI的请求可能会排队等待。这时候需要优化通信策略比如用WebSocket代替轮询或者把多个变量的读取合并成一个请求。另外HMI的数据刷新频率不需要和PLC扫描周期一样快人眼能感知的刷新率上限大概是10Hz左右所以HMI数据每秒刷新10次就够了没必要更快。通信超时的另一个原因是网络配置问题。如果HMI是通过网络访问PLC运行时网络延迟和丢包都会导致超时。在本地部署的情况下这个问题不大但如果HMI是远程访问就需要考虑网络质量的影响。建议在本地做HMI远程只做监控和数据查看不要把关键操作放在远程HMI上。4.3 AI推理结果不稳定的调试方法AI推理结果不稳定可能来自模型本身也可能来自输入数据或者部署环境。模型方面如果训练数据不够多样化模型在新数据上表现会差很多。解决办法是增加训练数据的多样性包括不同光照条件、不同角度、不同批次的产品。另外数据增强也可以有效提升模型的泛化能力。输入数据方面相机参数的变化会直接影响推理结果。比如曝光时间变了图像亮度就变了模型可能就不认识了。所以相机参数要锁定不能自动调节。光源也要稳定最好用工业级的光源控制器保证亮度一致。部署环境方面如果推理引擎的版本和模型转换时的版本不一致可能会导致计算结果有细微差异。建议在部署前用一组标准测试数据验证推理结果确保和PC上的结果一致。另外量化后的模型精度会有所下降如果发现精度不够可以尝试只对部分层做量化或者用精度更高的量化方案。4.4 常见问题速查表问题现象可能原因排查方法解决措施PLC扫描周期波动大CPU资源竞争查看各核心CPU占用率隔离PLC核心限制其他任务CPU使用HMI画面卡顿前端渲染压力大浏览器开发者工具查看帧率减少动态元素降低刷新频率AI推理超时模型太大或CPU被占用查看推理任务耗时和CPU占用模型量化压缩推理任务绑定独立核心通信中断频繁网络配置或线缆问题检查网络丢包率和线缆连接更换线缆优化网络配置系统启动慢服务启动顺序不合理查看系统日志中各服务启动时间调整服务依赖关系并行启动数据记录丢失磁盘IO瓶颈查看磁盘写入队列长度改用内存文件系统异步刷盘5. 这种融合方案适合什么场景不适合什么场景5.1 最适合的三种应用场景第一种是中小型产线的集中控制。产线规模不大IO点数在几百点以内但需要本地显示和一定的数据分析能力。用DC-Pi一台设备就能覆盖所有需求省去了多设备集成的麻烦。第二种是分布式设备的边缘节点。比如有多台设备分布在车间不同位置每台设备需要一个本地控制器做逻辑控制和数据采集同时要把数据汇总到中央系统。DC-Pi可以在本地做初步的数据处理和AI推理只把关键结果上传减少网络带宽压力。第三种是研发和教学场景。DC-Pi的开放性很好可以自由安装各种软件包适合做工业控制和边缘AI的算法验证和教学演示。学生可以在一个平台上同时学习PLC编程、HMI开发和AI部署不需要购买多套设备。5.2 需要谨慎评估的场景高速高精度的运动控制场景要谨慎。软PLC在运动控制方面和专用运动控制器有差距特别是多轴同步和插补运算。如果你的应用需要微秒级的运动控制精度还是应该用专用的运动控制器。安全等级要求高的场景也要注意。DC-Pi作为通用工业控制器通常不满足SIL3或者PLd等级的功能安全要求。如果设备涉及人身安全需要额外配置安全PLC或者安全继电器。极端环境下的可靠性也需要评估。虽然DC-Pi的硬件设计考虑了工业环境但和传统的硬件PLC相比软件系统的复杂度更高潜在的故障模式也更多。在高温、高湿、强电磁干扰的环境下需要做充分的测试和验证。5.3 成本效益的粗略估算从硬件成本来看DC-Pi一台设备的价格大概相当于中端PLC加中端HMI加低端工控机的总和。但如果算上节省的接线、电源、机柜空间和调试时间整体成本是有优势的。特别是调试时间传统方案三台设备联调可能需要几天DC-Pi一台设备调试可能一天就够了。从维护成本来看单一设备的维护比多设备简单备件种类也少。但需要注意的是DC-Pi的软件系统比传统PLC复杂维护人员需要具备Linux和网络方面的知识人员培训成本可能会增加。从升级扩展的角度看DC-Pi的软件定义特性意味着很多功能升级只需要更新软件不需要更换硬件。比如要增加一个新的通信协议装个软件包就行。这种灵活性在长期运行中会带来很大的便利。6. 几个容易被忽略的实操细节6.1 系统备份和恢复策略DC-Pi上跑着PLC程序、HMI画面、AI模型和系统配置这些东西一旦丢失恢复起来很麻烦。所以系统备份是必须的。建议的做法是PLC程序和HMI画面用版本控制工具管理每次修改都提交到Git仓库。AI模型文件单独备份因为文件比较大可以用对象存储或者NAS。系统配置用脚本自动化生成不要手动修改配置文件。恢复的时候先装系统镜像然后从Git仓库拉取PLC和HMI代码从备份恢复AI模型最后运行配置脚本。整个过程应该是可重复的最好写成自动化脚本减少人为错误。6.2 远程维护的安全考虑DC-Pi支持远程访问这给维护带来了便利但也带来了安全风险。基本的做法包括修改默认密码禁用不必要的服务配置防火墙规则使用加密通信。如果条件允许最好通过专用的管理网络访问不要和生产网络混在一起。远程维护的时候要注意不要在生产过程中做可能影响系统稳定性的操作。比如更新软件包、修改系统配置这些操作应该在停机维护窗口进行。如果必须在线操作要提前做好回滚方案。6.3 性能监控和预警DC-Pi上跑着多个任务任何一个任务出问题都可能影响整体。建议部署一套轻量的监控系统实时采集CPU占用率、内存使用率、磁盘IO、网络流量、PLC扫描周期、AI推理延迟等指标。当指标超过阈值时触发预警让维护人员提前介入。监控数据也可以用来做容量规划。比如发现CPU占用率在逐渐上升可能是程序有内存泄漏或者数据量在增长。提前发现这些问题可以从容地做优化和扩容避免突然宕机。6.4 固件和软件更新的注意事项DC-Pi的固件和软件更新不像手机更新那么简单更新失败可能导致设备无法启动。所以更新前一定要做完整备份并且确认更新包的来源可靠。更新最好在停机窗口进行更新后要做完整的功能测试确认PLC逻辑、HMI显示、AI推理都正常。另外要注意版本兼容性。PLC运行时、HMI框架、AI推理引擎之间可能有版本依赖关系升级其中一个可能需要同时升级其他的。更新前要仔细阅读发布说明确认兼容性矩阵。7. 我对这类融合控制器的一些个人判断工业控制器的融合化趋势是明显的。以前PLC、HMI、工控机各司其职是因为技术限制和成本考虑。现在芯片性能越来越强软件生态越来越成熟把多个功能集成到一个设备上在技术上和经济上都变得可行了。但融合不等于简单堆砌。真正的挑战在于如何让三个功能和谐共存互相不干扰同时又能高效地交换数据。这需要从操作系统层面做资源隔离和调度优化从运行时层面做通信机制的设计从应用层面做统一的开发体验。DC-Pi在这几个方面都做了不少工作但作为一个相对新的产品生态的成熟度还需要时间积累。对于从业者来说我觉得值得花时间了解这类产品。不是说要马上把所有项目都迁移过去而是理解这种架构的思路知道在什么场景下它比传统方案更合适。技术选型从来不是非此即彼而是根据具体需求做权衡。多了解一种方案就多一个选择。最后分享一个我在实际项目中总结的小技巧在DC-Pi上部署新功能时先用一个最小可行系统验证核心流程跑通了再逐步添加功能。不要一上来就把所有功能都配齐那样出了问题很难定位是哪个环节的毛病。工业控制系统的调试稳扎稳打比一步到位靠谱得多。