描述
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">* 1、项目功能介绍</h3>
<hr class="horizontal-splitline normal-bold-2">
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="color:#95a5a6;">请输入内容…</span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="color:#95a5a6;">注:可以是解决生活/工作中的某个问题、为某个人群/场景设计的方案、毕业设计/课程设计/DIY项目/纯属炫酷项目等。主要描述在电路设计、算法编写、系统搭建等方面做了什么、实现的核心功能、解决了什么问题。</span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">*2、项目属性</h3>
<hr class="horizontal-splitline normal-bold-2">
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="color:#95a5a6;">请输入内容…</span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="color:#95a5a6;">注:请说明项目是否首次公开;项目是否为原创;项目是否曾经在其他比赛中获奖,若有获奖则叙述获奖详情;项目是否在学校参加过答辩。</span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">* 3、开源协议</h3>
<hr class="horizontal-splitline normal-bold-2">
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="color:#95a5a6;">请输入内容…</span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="color:#95a5a6;">注:利他即利己,请认真阅读下述内容。</span></p>
<ol style="line-height:1.8;">
<li class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-hanging-indent-1.6em" style="line-height:1.8;"><span style="color:#95a5a6;">拥抱开源,赋予项目无限价值。建议项目核心功能开源80%以上;</span></li>
<li class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-hanging-indent-1.6em" style="line-height:1.8;"><span style="color:#95a5a6;">若某一部分功能不可替代且删掉之后项目无法解决对应的问题,则这一部分实现的功能就是项目的核心功能;比如设计了一台电子负载且设计了一款上位机软件监控功率变化,则电子负载为核心功能,上位机软件为辅助功能;比如电子负载中使用了一款隔离485模块与上位机通信,则此485模块实现的通讯功能为辅助功能; </span></li>
<li class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-hanging-indent-1.6em" style="line-height:1.8;"><span style="color:#95a5a6;">项目应选择适合自己的<span style="text-decoration:underline;"><a href="/posts/98fdb2accd754af7b51990790db3b47a" target="_blank">开源协议</a></span>,若项目引用其他开源项目,应注明来源并遵循原作者的开源协议规定;原创项目推荐使用GPL3.0开源协议;</span></li>
<li class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-hanging-indent-1.6em" style="line-height:1.8;"><span style="color:#95a5a6;">直接引用开源项目的原电路或原代码实现的功能不可作为自己项目的核心功能、使用市场上通用模块直接实现的功能不可作为自己项目的核心功能。</span></li>
</ol>
<p style="line-height:1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><strong><span style="color:#0093e6;">请在竞赛阶段填写 ↓</span></strong></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">*4、硬件部分</h3>
<hr class="horizontal-splitline normal-bold-2">
<h3 style="text-indent:0pt;line-height:12pt;background:#ffffff;margin:12pt 0pt 6pt 0pt;"><strong><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:8pt;">(1) 硬件总体架构</span></strong></h3>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">本系统采用模块化设计思想,以沁恒微电子</span>CH32V208R RISC-V无线MCU为核心控制单元,围绕其构建电源管理、多协议通信、LED指示及程序调试等外围功能子系统。系统硬件总体架构如图所示,包括:Type-C供电模块</span><span style="font-family:'宋体';color:#0f1115;letter-spacing:0pt;font-size:6pt;">、</span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;">AMS1117-3.3V降压电路、CH32V208R主控及其外围时钟与复位电路、四路RS485通信接口(基于SP3485收发器)、状态指示LED电路、HR911105A以太网网络接口</span><span style="font-family:'宋体';color:#0f1115;letter-spacing:0pt;font-size:6pt;">、</span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;">SWD调试接口。各功能模块以主控MCU为中心有机整合,形成面向工业现场设备控制与数据采集的通用硬件平台。</span></p>
<div class="document"><span style="color:#95a5a6;"><span><img src="//image.lceda.cn/pullimage/rYWCV9Tocv4AgUdjr2FW7GYqoVGrt8DOrBc4rz4B.png" alt=""></span></span></div>
<h3 style="text-indent:0pt;line-height:12pt;background:#ffffff;margin:12pt 0pt 6pt 0pt;"><strong><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:8pt;">(2) 电源管理模块</span></strong></h3>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">系统供电取自</span>Type-C接口的5V VBUS电源,经AMS1117-3.3V低压差线性稳压器转换为3.3V,为MCU及所有外设芯片供电。AMS1117-3.3V具有1A的最大输出电流能力,输入电压范围为4.75V~12V,输出电压精度为±1%,其低压差特性确保在5V输入下可稳定输出3.3V。为优化电源质量,在稳压器的输入端和输出端各</span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">配置</span>10μF电解电容与100nF</span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;">陶瓷电容的组合滤波网络</span><span style="font-family:'宋体';color:#0f1115;letter-spacing:0pt;font-size:6pt;">,</span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;">所有电容均就近布置于芯片引脚附近。需注意</span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">的是,该稳压器为线性拓扑,其功耗为输入输出压差与负载电流的乘积,当系统满载(</span>MCU、四路SP3485、以太网PHY及LED指示灯同时工作)时需关注芯片温升,PCB设计中应在芯片底部铺设散热铜箔以增强热传导。经核算,系统满载电流约400~600mA,在AMS1117-3.3V的额定工作范围内。</span></p>
<h3 style="text-indent:0pt;line-height:12pt;background:#ffffff;margin:12pt 0pt 6pt 0pt;"><strong><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:8pt;">(3) 主控</span></strong><strong><span style="font-family:'宋体';color:#0f1115;letter-spacing:0pt;font-size:8pt;"><span style="font-family:'Segoe UI';">MCU</span></span></strong><strong><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:8pt;"><span style="font-family:'Segoe UI';">与时钟复位电路</span></span></strong></h3>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">主控芯片选用沁恒微电子的</span>CH32V208RBT6,该芯片采用自研青稞V4C RISC-V内核,最高工作频率144MHz,内置128KB Flash程序存储器和64KB SRAM,片内集成2Mbps BLE 5.3无线收发器、10M以太网MAC与PHY、USB 2.0全速控制器以及4个通用同步/异步收发器(USART),其外设资源与本系统的多路RS485通信、以太网联网及无线调试需求高度匹配。</span></p>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">时钟电路为</span>MCU提供工作基准。本设计采用32MHz无源晶振作为系统主时钟源,晶振两引脚分别连接MCU的OSC_IN与OSC_OUT引脚,匹配电容依据晶振手册选取</span><span style="font-family:'宋体';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">22</span></span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;">pF,晶振走线应尽可能缩短并实施包地处理,以降低分布电容对频率精度的影响及减少高频噪声耦合。复位电路采用阻容上拉方式,NRST引脚经10kΩ电阻上拉至3.3V,并并联0.1μF电容至地实现上电复位延时,同时引出按键至机壳供手动复位操作。BOOT0引脚通过10kΩ电阻下拉至地,并引出按键至VCC</span><span style="font-family:'宋体';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'宋体';">。</span></span></p>
<h2><strong><span style="font-family:'宋体';color:#0f1115;letter-spacing:0pt;font-size:8pt;"><span style="font-family:'Segoe UI';">(4)</span></span></strong><strong><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:8pt;">RS485多协议通信接口</span></strong></h2>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">为满足系统与多个远端设备(如</span>RFID读卡器、远程LED控制器、上位机等)的分布式通信需求,本系统设计了四路独立的RS485通信接口。每路接口均选用SP3485EN-L/TR作为收发器,该芯片工作电压为3.3V,与MCU IO电平直接兼容,最高数据传输速率达10Mbps,总线可挂载多达32个节点,符合工业现场总线的一般要求。</span></p>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">单路</span>RS485的电路连接方式如下:SP3485的DI引脚接MCU的USART TX输出,RO引脚接MCU的USART RX输入</span><span style="font-family:'Segoe UI';letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">,</span>DE与RE引脚短接后由MCU的通用GPIO控制,用以切换收发方向——高电平时芯片处于发送模式,低电平时为接收模式</span><span style="font-family:'Segoe UI';color:#0000ff;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">。</span></span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">总线侧</span>A与B引脚为差分信号对,对外连接至接线端子。为提高总线通信的可靠性与抗干扰能力,每路接口均配置了完整的外围电路:A线通过</span><span style="font-family:'宋体';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">10</span></span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;">kΩ电阻上拉至3.3V,B线通过</span><span style="font-family:'宋体';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">10</span></span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;">kΩ电阻下拉至地,避免接收器输出不确定状态;A/B线对地并联双向TVS管(型号SMAJ6.5CA),用以泄放静电与浪涌能量,保护后级芯片</span><span style="font-family:'宋体';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'宋体';">。</span></span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;">PCB布线中,A/B差分对需保持等长且间距恒定,以控制差分阻抗并减少共模噪声耦合。四路RS485分配至CH32V208R的USART1~USART4,各自独立工作,支持同时与四种不同从站设备通信,亦可配置为多主机轮询模式。</span></p>
<h3 style="text-indent:0pt;line-height:12pt;background:#ffffff;margin:12pt 0pt 6pt 0pt;"><strong><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:8pt;">(5) 状态指示电路</span></strong></h3>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">系统</span></span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;">中配置了两种指示电路:</span></p>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';"><span style="font-family:'宋体';"><strong>四组</strong></span></span><span style="font-family:'Segoe UI';">通信状态指示组</span></span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">:该组</span>LED用于指示RS485通信的收发状态——TX端LED在数据发送时点亮,RX端LED在数据接收时点亮。此设计便于现场运维人员直观判断通信链路的工作状态,无需借助示波器等仪器即可快速定位通信故障。该组LED的驱动信号来自MCU的USART外设发送与接收引脚,在硬件上实现了串口数据活动的物理映射。</span></p>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';"><span style="font-family:'宋体';"><strong>一组</strong></span></span><span style="font-family:'Segoe UI';">系统运行指示组(</span><span style="font-family:'Segoe UI';">LED_RUN与LED_PWR</span></span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;">)</span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">:用于指示系统的基本运行状态。</span>LED_PWR为电源指示灯,连接至3.3V电源网络,上电即常亮,用以确认系统供电正常。LED_RUN为运行状态指示灯,由MCU的GPIO控制,可通过软件配置为以固定频率(通常为1Hz)翻转,指示系统程序正常运行且未发生死机。</span></p>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'宋体';">这两种</span></span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;">LED共同构成了系统的可视化状态监控机制:电源指示灯确认供电正常,运行指示灯确认程序执行正常,通信指示灯确认数据链路正常,三者结合可在不连接调试器的情况下快速判断系统健康状况。</span></p>
<h3 style="text-indent:0pt;line-height:12pt;background:#ffffff;margin:12pt 0pt 6pt 0pt;"><strong><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:8pt;">(6) 以太网网络接口</span></strong></h3>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">系统通过</span>HR911105A集成网络变压器的RJ45插座提供标准10/100M以太网有线连接能力,使控制器能够接入工厂局域网或云端服务器,实现远程监控与数据上传。HR911105A内部集成了网络变压器、共模扼流圈及匹配电阻网络,并内置黄色(链路状态指示)与绿色(数据活动指示)双LED指示灯,对外仅需连接少量外围元件即可完成以太网物理层的全部功能。</span></p>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;">CH32V208R片内集成了10M以太网MAC与PHY,其TX+、TX-、RX+、RX-四根差分信号线直接与HR911105A的对应引脚相连。设计中的关键之处在于变压器中心抽头(TCT与RCT)的电气连接方式——该连接取决于PHY的驱动类型,必须严格遵循CH32V208R官方硬件参考设计,接法错误将导致以太网无法正常通信。差分信号线在PCB布线中需严格等长(长度偏差控制在5mil以内),并控制差分阻抗为100Ω±10%,同时PHY芯片至RJ45插座的距离应尽可能缩短(建议不超过50mm)以减小传输损耗。插座屏蔽壳通过1nF电容接至数字地,以抑制高频共模干扰。</span></p>
<h3><strong><span style="font-family:'宋体';color:#0f1115;letter-spacing:0pt;font-size:8pt;"><span style="font-family:'Segoe UI';">(</span></span></strong><strong><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:8pt;">7) USB Type-C接口</span></strong></h3>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;">USB Type-C接口在系统中承担</span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'宋体';">两</span></span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">项职能:供电输入和</span></span><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">上位机通信。接口的</span>VBUS引脚连接至5V电源网络,为AMS1117提供输入电源;D+与D-引脚分别连接CH32V208R的USB_DP与USB_DM引脚,支持USB 2.0全速通信(12Mbps);CC1与CC2各通过5.1kΩ下拉电阻至地,将本机识别为UFP(下行端口设备),使Type-C电源适配器能够正确输出5V电压。</span></p>
<h3 style="text-indent:0pt;line-height:12pt;background:#ffffff;margin:12pt 0pt 6pt 0pt;"><strong><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:8pt;">(8) 调试接口</span></strong></h3>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">为便于软件开发阶段的在线调试与程序下载,系统引出</span>SWD两线调试接口(SWDIO、SWCLK),配合WCH-Link专用调试器(支持RISC-V内核调试)使用,可在MounRiver Studio集成开发环境中实现单步执行、断点设置、寄存器与存储器查看等调试功能。该接口采用4Pin排针形式(3.3V、SWDIO、SWCLK、GND)引出至板边,方便调试线缆插接。</span></p>
<h3 style="text-indent:0pt;background:#ffffff;margin:12pt 0pt 6pt 0pt;"><strong><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:8pt;">(9) 硬件可靠性设计综述</span></strong></h3>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">在整体硬件设计中,从工程实用性出发,在多个层面考虑了系统的可靠性保障。</span></span></p>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">电源完整性方面,采用多级电容滤波网络,输入输出端均配置大小容值组合以覆盖不同频段的噪声抑制;主控芯片各电源引脚就近放置</span>100nF去耦电容,确保高频瞬态电流的本地回路,减小电源分配网络阻抗。</span></p>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">电磁兼容方面,</span>RS485接口配置双向TVS管与偏置电阻,兼顾了浪涌防护与总线空闲电平确定性;以太网接口内置隔离变压器,提供1500V以上的耐压隔离,保护内部电路免受外部网线上的共模电压冲击;插座屏蔽壳通过电容接地,抑制高频共模辐射。</span></p>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;"><span style="font-family:'Segoe UI';">信号完整性方面,</span>RS485差分对与以太网差分对均控制等长与阻抗,降低反射与模态转换;晶振走线短且包地,减少高频模拟信号对邻近信号的串扰。按键输入均并联去抖电容,配合软件消抖处理,避免机械触点抖动引发的误操作。</span></p>
<p><span style="font-family:'Segoe UI';color:#0f1115;letter-spacing:0pt;font-size:6pt;">PCB布局层面,数字电路与模拟电路分区布置,大电流路径与敏感小信号走线保持足够间距,从物理布局上降低相互干扰耦合。以上措施虽然并非尖端技术,但在实际工程中能够有效提升系统在工业环境下的稳定运行能力。</span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height:1.8;"> </p>
<h2 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">*5、软件部分</h2>
<hr class="horizontal-splitline normal-bold-2">
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="color:#95a5a6;">请输入内容…</span></p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">5.1 系统概述</h3>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">CH32V208 </span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">边缘控制型</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;"> Modbus </span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">网关是工业自动化系统中的一个网络集成与自主控制核心设备。下与现场传感器、执行器及智能仪表连接,利用多路</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;"> RS485 </span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">接口进行底层数据的实时采集与本地控制指令交互;上与工控机、服务器或计算机网络连接,按照</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;"> Modbus TCP </span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">协议规约与网络计算机或上位机配置子系统通信。系统支持多种工控协议,支持网口及多路串口连接;支持数字虚拟寄存器缓存、串口终端通信及图形化逻辑节点边缘处理等接入,同时也支持</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;"> TCP/IP </span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">等主流网络协议,能够在低成本硬件环境下实现稳定、高效的本地智能化工业控制。系统总体架构图如图5-1</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">所示。</span></p>
<p><img src="//image.lceda.cn/pullimage/lAlkDcXi8fhNUboGqreXsT4ruPfHSIRu8KaWymHY.png" alt="" width="837" height="513"></p>
<p style="text-align:center;"> 图5-1 系统总体架构图</p>
<h3>5.2 下位机软件设计</h3>
<p><span style="font-size:12pt;line-height:115%;font-family:'宋体';">下位机软件运行于</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">CH32V208R</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">微控制器,以</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">FreeRTOS</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">为实时运行基础,承担设备接入、协议转换、数据处理、流程执行和固件升级等核心功能。系统采用</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">“</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">驱动层</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">—</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">协议层</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">—</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">业务层</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">”</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">的分层结构,并通过多任务机制将网络通信、</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">RS485</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">通信和流程执行解耦,使各功能能够在同一设备上稳定并行运行。</span></p>
<h4>5.2.1 软件总体架构</h4>
<p><span style="font-size:12pt;line-height:115%;font-family:'宋体';">底层驱动模块负责以太网、串口、</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">Flash</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">、定时器和调试接口等硬件资源的初始化与控制;协议层负责</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">TCP/IP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">网络通信、</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">Modbus TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">从站通信和</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">Modbus RTU</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">主站通信;业务层负责设备地址映射、从机轮询、寄存器缓存、写命令转发、图形化流程执行和配置数据管理。</span></p>
<p><span style="font-size:12pt;font-family:'宋体';">系统启动时从</span><span style="font-size:12pt;font-family:'Times New Roman', serif;">Flash</span><span style="font-size:12pt;font-family:'宋体';">读取网络参数、串口参数、设备映射表和流程定义。需要长期保存的参数与流程数据存放在</span><span style="font-size:12pt;font-family:'Times New Roman', serif;">Flash</span><span style="font-size:12pt;font-family:'宋体';">中;设备轮询结果、寄存器缓存及流程运行状态存放在</span><span style="font-size:12pt;font-family:'Times New Roman', serif;">RAM</span><span style="font-size:12pt;font-family:'宋体';">中。该设计既保证了设备断电后的配置可恢复性,也保证了通信和流程执行时的数据访问效率。</span><span style="font-family:'宋体';font-size:12pt;">软件总体结构图如图5-2</span></p>
<p><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/OQ9fOstJ6XfxuUEdeH6XWrxQiKiZuyETiVKoE7Xj.png" alt="" width="743" height="604"></p>
<p style="text-align:center;">5-2 软件总体结构图</p>
<h4>5.2.2 <strong><span style="font-size:12pt;font-family:'Times New Roman', serif;">FreeRTOS</span><span style="font-size:12pt;font-family:'宋体';">任务设计</span></strong></h4>
<p><span style="font-size:12pt;line-height:115%;font-family:'宋体';">系统将不同功能划分为独立任务,由</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">FreeRTOS</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">按照优先级进行调度。网络通信任务负责维护以太网连接和网络事件;</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">Modbus TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">从站任务负责处理上位机请求;</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">RTU</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">主站任务负责管理</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">RS485</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">总线通信;普通轮询和优先级轮询任务负责周期采集现场设备数据;流程引擎任务负责执行下发到设备的图形化控制流程,任务职责描述如表2-1</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">所示。</span></p>
<p class="MsoNormal" style="text-align:center;text-indent:21pt;line-height:115%;" align="center"><span style="line-height:115%;font-family:'宋体';">表</span><span style="line-height:115%;font-family:'Times New Roman', serif;">2-1 FreeRTOS</span><span style="line-height:115%;font-family:'宋体';">任务职责表</span></p>
<p><span style="font-size:12pt;line-height:115%;font-family:'宋体';"> </span></p>
<table class="MsoTableGrid" style="border:medium none;">
<tr>
<td style="width:136.1pt;border-width:1pt;padding:0cm 5.4pt;" width="181">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><strong><span style="font-size:12pt;line-height:115%;font-family:'宋体';">任务类型</span></strong></p>
</td>
<td style="width:315.6pt;border-width:1pt 1pt 1pt medium;border-style:solid solid solid none;padding:0cm 5.4pt;" width="421">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><strong><span style="font-size:12pt;line-height:115%;font-family:'宋体';">主要职责</span></strong></p>
</td>
</tr>
<tr>
<td style="width:136.1pt;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="181">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">应用管理任务</span></p>
</td>
<td style="width:315.6pt;padding:0cm 5.4pt 0cm 5.4pt;" width="421">
<p class="MsoNormal" style="line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">创建系统资源与业务任务,监测运行状态并完成镜像运行确认</span></p>
</td>
</tr>
<tr>
<td style="width:136.1pt;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="181">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">以太网通信任务</span></p>
</td>
<td style="width:315.6pt;padding:0cm 5.4pt 0cm 5.4pt;" width="421">
<p class="MsoNormal" style="line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">维护网络协议栈,接收和发送</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">、</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">UDP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">数据</span></p>
</td>
</tr>
<tr>
<td style="width:136.1pt;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="181">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">Modbus TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">从站任务</span></p>
</td>
<td style="width:315.6pt;padding:0cm 5.4pt 0cm 5.4pt;" width="421">
<p class="MsoNormal" style="line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">解析上位机读写请求并返回处理结果</span></p>
</td>
</tr>
<tr>
<td style="width:136.1pt;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="181">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">Modbus RTU</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">主站任务</span></p>
</td>
<td style="width:315.6pt;padding:0cm 5.4pt 0cm 5.4pt;" width="421">
<p class="MsoNormal" style="line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">管理各</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">RS485</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">端口的主站通信与协议事件</span></p>
</td>
</tr>
<tr>
<td style="width:136.1pt;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="181">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">普通轮询任务</span></p>
</td>
<td style="width:315.6pt;padding:0cm 5.4pt 0cm 5.4pt;" width="421">
<p class="MsoNormal" style="line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">按设定周期读取现场从机数据</span></p>
</td>
</tr>
<tr>
<td style="width:136.1pt;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="181">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">优先级轮询与写入任务</span></p>
</td>
<td style="width:315.6pt;padding:0cm 5.4pt 0cm 5.4pt;" width="421">
<p class="MsoNormal" style="line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">优先刷新重要数据,并执行待发送的写命令</span></p>
</td>
</tr>
<tr>
<td style="width:136.1pt;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="181">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">图形化流程任务</span></p>
</td>
<td style="width:315.6pt;padding:0cm 5.4pt 0cm 5.4pt;" width="421">
<p class="MsoNormal" style="line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">根据触发条件执行已保存的流程节点</span></p>
</td>
</tr>
</table>
<p> <span style="text-indent:24pt;font-size:12pt;line-height:115%;font-family:'宋体';">任务之间通过互斥锁保护串口和共享数据,通过消息队列传递写命令,通过信号量和事件组协调网络服务启停、主站初始化及状态切换。</span><span style="text-indent:24pt;font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">APP</span><span style="text-indent:24pt;font-size:12pt;line-height:115%;font-family:'宋体';">任务还会定期输出任务栈使用情况,为系统稳定性测试和异常定位提供依据。</span></p>
<p><span style="text-indent:24pt;font-size:12pt;line-height:115%;font-family:'宋体';"><span style="font-size:12pt;font-family:'Times New Roman', serif;">FreeRTOS</span><span style="font-size:12pt;">任务时序图如图5-3</span><span style="font-size:12pt;">所示:</span></span></p>
<p> </p>
<p><span style="text-indent:24pt;font-size:12pt;line-height:115%;font-family:'宋体';"><img src="//image.lceda.cn/pullimage/fbqmjg7Qz9jeMwijmmmz9pXfyQ0g9BDwDWtMf7YF.png" alt="" width="866" height="865"></span></p>
<p class="MsoNormal" style="text-align:center;text-indent:21pt;line-height:115%;" align="center"><strong><span style="line-height:115%;font-family:'宋体';">图5-3</span><span style="line-height:115%;font-family:'Times New Roman', serif;"> FreeRTOS</span><span style="line-height:115%;font-family:'宋体';">任务时序图</span></strong></p>
<h4>5.2.3 系统启动流程</h4>
<p class="document">设备上电后,系统首先完成时钟配置、中断配置和板级硬件初始化,并输出芯片信息、系统时钟和操作系统版本等启动日志。随后创建应用管理任务并启动FreeRTOS调度器,由应用管理任务继续创建同步对象和各业务任务。在任务创建完成后,系统加载Flash中的网络参数、串口参数和设备映射配置,完成以太网与RS485通信初始化,最后进入正常服务状态。若启用双分区启动布局,应用程序稳定运行约5秒后将当前镜像标记为可用,以避免异常镜像在重启后被持续选择。固件启动流程如图5-4所示</p>
<p><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/YFR8dgNhBYCdEVjuagiFTjyW48TEadcU5dHWceae.png" alt="" width="290" height="787"></p>
<p style="text-align:center;"> 图5-4 固件启动流程</p>
<h4 style="text-align:left;">5.2.4<strong><span style="font-size:12pt;font-family:'宋体';">固件升级与</span><span style="font-size:12pt;font-family:'Times New Roman', serif;">Boot</span><span style="font-size:12pt;font-family:'宋体';">运行确认</span></strong></h4>
<p style="text-align:left;"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">固件升级由上位机发起,下位机负责镜像接收、存储、启动切换和运行确认。系统收到升级请求后进入引导程序,完成固件数据接收与完整性校验;校验通过后,将新固件写入备用应用分区,并更新启动配置。</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">设备复位后,引导程序根据启动配置选择待运行镜像。新应用启动并完成基础自检后,若能够稳定运行约</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">5</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">秒,则确认该镜像为有效版本;若启动异常或未完成确认,则保留原有效镜像,降低升级中断或新版本异常对现场设备运行的影响。</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">下位机固件升级与</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">Boot</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">运行确认流程如图5-5</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">所示。</span></p>
<p style="text-align:left;"><span style="font-size:12pt;line-height:115%;font-family:'宋体';"><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/kBEBAWzZPukEU5Tnon46ZcVRQb1m2pcUjf1gkYqz.png" alt="" width="439" height="569"></span></p>
<p style="text-align:center;"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">图5-5下位机固件升级与Boot运行确认流程图</span></p>
<h4><span style="font-size:12pt;line-height:115%;font-family:'宋体';">5.2.5 </span><strong><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">Modbus TCP</span></strong><strong><span style="font-size:12pt;line-height:115%;font-family:'宋体';">通信设计</span></strong></h4>
<p><span style="font-size:12pt;line-height:115%;font-family:'宋体';">(</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">1</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">)</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">服务启动</span></p>
<p><span style="font-size:12pt;line-height:115%;font-family:'宋体';">系统启动后读取</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">Flash</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">中的网络配置,完成</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">IP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">地址、网关、子网掩码和服务端口设置,并启动</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">Modbus TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">服务。网关在以太网侧作为</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">Modbus TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">从站,默认监听</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">502</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">端口,为上位机和</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">SCADA</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">系统提供寄存器查询、参数配置和控制命令接口。</span></p>
<p><span style="font-size:12pt;line-height:115%;font-family:'宋体';">(</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">2</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">)</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">帧接收流程</span></p>
<p><span style="font-size:12pt;line-height:115%;font-family:'宋体';">当网络接口收到</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">数据时,系统先完成报文长度检查和缓存,再将接收事件交由</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">Modbus</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">协议任务处理。协议任务按照</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">Modbus TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">报文格式解析功能码、寄存器地址和数据内容,并根据请求类型读取网关缓存、修改配置或生成</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">RTU</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">写命令,最后向上位机返回响应结果。</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">网络接收与协议解析分离执行,可避免网络中断处理过程被复杂协议逻辑占用,提高系统在连续通信场景下的稳定性。</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">Modbus TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">接收流程如图5-6</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">所示。</span></p>
<p style="text-align:center;"><span style="font-size:12pt;line-height:115%;font-family:'宋体';"><img src="//image.lceda.cn/pullimage/tFQayhxvJjuDryHf6PUAKw4lrlXEHWkALwdbefFE.png" alt="" width="103" height="264"></span></p>
<p class="MsoNormal" style="line-height:115%;"> </p>
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="line-height:115%;font-family:'宋体';">图5</span><span style="line-height:115%;font-family:'Times New Roman', serif;">-6 Modbus TCP</span><span style="line-height:115%;font-family:'宋体';">接收流程图</span></p>
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"> </p>
<p class="MsoNormal" style="line-height:115%;text-align:left;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">(</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">3</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">)</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">UDP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">设备发现</span></p>
<p class="MsoNormal" style="line-height:115%;text-align:left;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">系统同时提供</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">UDP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">设备发现服务。上位机发送发现请求后,网关返回自身</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">IP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">地址和</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">Modbus TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">服务端口,使用户能够在同一局域网内快速识别设备并建立连接,减少人工输入网络地址的操作。网关侧接收</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">UDP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">发现报文的流程如图5</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">-7</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">所示。</span></p>
<p class="MsoNormal" style="line-height:115%;text-align:center;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';"><img src="//image.lceda.cn/pullimage/LcMPyLtPBuNF7Lj0HOrN8Oklpx2iKmR6hwZYTY3k.png" alt="" width="427" height="541"></span></p>
<p class="MsoNormal" style="line-height:115%;text-align:left;" align="center"> </p>
<p class="MsoNormal" style="text-align:center;text-indent:24.4pt;line-height:115%;" align="center"><span style="line-height:115%;font-family:'宋体';">图5</span><span style="line-height:115%;font-family:'Times New Roman', serif;">-7 UDP</span><span style="line-height:115%;font-family:'宋体';">处理流程图<br></span></p>
<p class="MsoNormal" style="text-indent:24.4pt;line-height:115%;text-align:left;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';"><br><span style="line-height:115%;font-family:'宋体';">5.2.6</span><strong style="font-family:sans-serif;font-size:14px;text-align:center;text-indent:32.5333px;"><span style="font-size:12pt;font-family:'Times New Roman', serif;"> Modbus RTU</span><span style="font-size:12pt;font-family:'宋体';">主站与协议转换设计</span></strong></span><span style="font-size:12pt;line-height:115%;font-family:'宋体';"> </span></p>
<p class="MsoNormal" style="text-indent:24.4pt;line-height:115%;text-align:left;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">(</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">1</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">)地址映射结构</span></p>
<p class="MsoNormal" style="text-indent:24.4pt;line-height:115%;text-align:left;" align="center"><span style="font-size:12pt;font-family:'宋体';"><span style="font-size:12pt;font-family:'宋体';">网关通过地址映射表建立上位机寄存器地址与现场</span><span style="font-size:12pt;font-family:'Times New Roman', serif;">RTU</span><span style="font-size:12pt;font-family:'宋体';">从机寄存器地址之间的</span>对应关系。每条映射记录包含从机地址、寄存器类型、读写权限、连续寄存器数量、从机起始地址和网关映射地址等信息。系统据此将不同从机、不同寄存器类型的数据统一映射到网关寄存器空间,便于上位机以统一方式访问现场设备。映射字段详细说明见表</span><span style="font-size:12pt;font-family:'Times New Roman', serif;">2-2。</span></p>
<p class="MsoNormal" style="text-indent:24.4pt;line-height:115%;text-align:center;" align="center"> </p>
<p class="MsoNormal" style="text-align:center;text-indent:24.4pt;line-height:115%;" align="center"><span style="line-height:115%;font-family:'宋体';">表</span><span style="line-height:115%;font-family:'Times New Roman', serif;">2-2 </span><span style="line-height:115%;font-family:'宋体';">地址映射字段说明表</span></p>
<p class="MsoNormal" style="text-indent:24.4pt;line-height:115%;text-align:left;" align="center"> </p>
<table class="MsoTableGrid" style="height:380px;width:91.1843%;border:medium none;">
<tr>
<td style="width:48.6965%;border-width:1pt;padding:0cm 5.4pt;" width="228">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><strong><span style="font-size:12pt;line-height:115%;font-family:'宋体';">映射信息</span></strong></p>
</td>
<td style="width:51.3052%;border-width:1pt 1pt 1pt medium;border-style:solid solid solid none;padding:0cm 5.4pt;" width="374">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><strong><span style="font-size:12pt;line-height:115%;font-family:'宋体';">说明</span></strong></p>
</td>
</tr>
<tr>
<td style="width:48.6965%;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="228">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">从机地址</span></p>
</td>
<td style="width:51.3052%;border-width:medium 1pt 1pt medium;border-style:none solid solid none;padding:0cm 5.4pt;" width="374">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">标识目标</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">RTU</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">从机</span></p>
</td>
</tr>
<tr>
<td style="width:48.6965%;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="228">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">寄存器类型</span></p>
</td>
<td style="width:51.3052%;border-width:medium 1pt 1pt medium;border-style:none solid solid none;padding:0cm 5.4pt;" width="374">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">区分线圈、离散输入、保持寄存器和输入寄存器</span></p>
</td>
</tr>
<tr>
<td style="width:48.6965%;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="228">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">读写权限</span></p>
</td>
<td style="width:51.3052%;border-width:medium 1pt 1pt medium;border-style:none solid solid none;padding:0cm 5.4pt;" width="374">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">限制上位机对映射数据的访问方式</span></p>
</td>
</tr>
<tr>
<td style="width:48.6965%;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="228">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">数据数量</span></p>
</td>
<td style="width:51.3052%;border-width:medium 1pt 1pt medium;border-style:none solid solid none;padding:0cm 5.4pt;" width="374">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">指定连续读写的寄存器范围</span></p>
</td>
</tr>
<tr>
<td style="width:48.6965%;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="228">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">从机起始地址</span></p>
</td>
<td style="width:51.3052%;border-width:medium 1pt 1pt medium;border-style:none solid solid none;padding:0cm 5.4pt;" width="374">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">现场设备中的实际寄存器地址</span></p>
</td>
</tr>
<tr>
<td style="width:48.6965%;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="228">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">网关映射地址</span></p>
</td>
<td style="width:51.3052%;border-width:medium 1pt 1pt medium;border-style:none solid solid none;padding:0cm 5.4pt;" width="374">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">上位机访问时使用的统一地址</span></p>
</td>
</tr>
</table>
<p class="MsoNormal" style="text-indent:24pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">(</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">2</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">)普通轮询与优先级轮询</span></p>
<p class="MsoNormal" style="text-indent:24.4pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">系统依据映射表和端口配置周期性读取</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">RTU</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">从机数据。普通轮询用于完成常规数据采集;优先级轮询用于刷新需要更快响应的重要寄存器。采集结果写入</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">RAM</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">中的网关寄存器缓存,上位机发起读请求时直接从缓存获取数据,避免每次</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">查询都等待</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">RS485</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">总线响应。</span></p>
<p class="MsoNormal" style="text-indent:24.4pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">(</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">3</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">)主机读寄存器命令处理</span></p>
<p class="MsoNormal" style="text-indent:24.4pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">当上位机发起寄存器或线圈写入请求时,系统首先检查目标地址是否存在有效映射并具备写入权限。校验通过后,网关将请求转换为对应从机的</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">RTU</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">写操作,并放入目标</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">RS485</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">端口的写命令队列。主站通信任务按照队列顺序向现场设备发送命令,再将处理结果返回上位机。</span></p>
<p class="MsoNormal" style="text-indent:24.4pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">该机制将</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">请求处理与串口写入操作分离,既避免网络通信任务长期等待串口响应,也保证了同一总线上的写命令按序执行。</span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p>
<p class="MsoNormal" style="text-indent:24.4pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">网关地址映射与轮询数据流图如图5</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">-8</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">所示:</span></p>
<p class="MsoNormal" style="text-indent:24.4pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';"><img src="//image.lceda.cn/pullimage/sJoXa8PSUhDZjcGdNGpzkP1OEnXHDdYbiTkRGOZO.png" alt="" width="507" height="216"></span></p>
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="line-height:115%;font-family:'宋体';">图</span><span style="line-height:115%;font-family:'Times New Roman', serif;">2-18 </span><span style="line-height:115%;font-family:'宋体';">网关地址映射与轮询数据流图</span></p>
<p class="MsoNormal" style="line-height:115%;text-align:left;" align="center"> </p>
<p class="MsoNormal" style="line-height:115%;text-align:left;" align="center"> </p>
<p class="MsoNormal" style="text-indent:24.4pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">主机读寄存器命令处理流程如图5</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">-9</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">所示:</span></p>
<p class="MsoNormal" style="text-indent:24.4pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';"><img src="//image.lceda.cn/pullimage/zE7VsGBOOv4iFZM4PhEkvT1ukEGF8saXPAsYvwfN.png" alt="" width="418" height="398"></span></p>
<p class="MsoNormal" style="text-indent:24.4pt;line-height:115%;" align="left"> </p>
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="line-height:115%;font-family:'宋体';">图</span><span style="line-height:115%;font-family:'Times New Roman', serif;">2-19 </span><span style="line-height:115%;font-family:'宋体';">主机读寄存器命令处理流程图</span></p>
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"> </p>
<p class="MsoNormal" style="text-indent:24pt;line-height:115%;"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">(</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">4</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">)写命令转发</span></p>
<p class="MsoNormal" style="text-indent:24pt;line-height:115%;"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">当上位机发起保持寄存器或线圈写入请求时,网关先减去对应地址偏移量,再通过按主机起始地址排序生成的索引表和二分查找定位首条映射记录。随后检查寄存器类型、地址连续性、覆盖范围和读写权限,并按主机写入区间与各映射记录的交集拆分数据,换算出目标从机</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">ID</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">、物理寄存器地址、数量和数据偏移。</span></p>
<p class="MsoNormal" style="text-indent:24pt;line-height:115%;"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">拆分得到的主机写入的数据按照映射记录所属端口写入对应接口的队列。各</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">RTU</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">主站通信任务按队列顺序发送写命令,从而把</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">请求解析与慢速</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">RS485</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">写操作解耦,并避免不同端口、不同从机的写操作无序交叉。当前实现已经完成写区间定位、权限校验、拆分和分端口队列下发;目标从机一致且物理地址连续的写片段还可以在后续版本中进一步合并,以继续减少</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">RTU</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">报文数量。</span></p>
<p class="MsoNormal" style="line-height:115%;text-align:left;" align="center"><span style="line-height:115%;font-family:'宋体';"> </span></p>
<p class="MsoNormal" style="text-indent:24pt;line-height:115%;"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">该机制将</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">请求处理与串口写入操作分离,既避免网络通信任务长期等待串口响应,也保证了同一总线上的写命令按序执行。具体流程如图5</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">-10</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">所示。</span></p>
<p class="MsoNormal" style="text-indent:24pt;line-height:115%;"><span style="font-size:12pt;line-height:115%;font-family:'宋体';"><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/AfH4S2UFnY6c6j4H7aMvHlBMJtoqrbHScjkSroRB.png" alt="" width="358" height="728"></span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;text-align:center;"> </p>
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="line-height:115%;font-family:'宋体';">图</span><span style="line-height:115%;font-family:'Times New Roman', serif;">2-20 </span><span style="line-height:115%;font-family:'宋体';">主机写寄存器命令处理流程图</span></p>
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"> </p>
<h4 class="MsoNormal" style="line-height:115%;text-align:left;" align="center"><span style="line-height:115%;font-family:'宋体';">5.2.7</span><strong><span style="font-size:12pt;font-family:'宋体';">图形化流程执行设计</span></strong></h4>
<p class="MsoNormal" style="text-indent:24pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">图形化流程功能由上位机和下位机共同完成。上位机负责通过节点和连线描述控制逻辑,并将流程编译为定长二进制数据;下位机负责保存流程、判断触发条件、执行节点并反馈运行状态。流程节点包括数据读取、数据写入、常量、运算、条件判断、延迟和边沿检测等类型。</span></p>
<p class="MsoNormal" style="text-indent:24pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">下位机将流程定义保存到</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">Flash</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">流程槽位中,每个槽位大小为</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">2048B</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">,内部保存流程基本信息、节点信息和节点连接关系,具体存储如图</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">2-xx</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">。</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">Flash</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">中的流程定义在断电后仍可保留;流程运行时产生的节点队列、计算结果、延迟状态和执行状态则保存在</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">RAM</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">中。</span></p>
<p class="MsoNormal" style="text-indent:24pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">流程引擎周期扫描有效流程。当触发条件满足时,系统创建本次运行的执行上下文,将入口节点加入待执行队列,并按照节点连接关系依次执行。普通节点执行完成后将下游节点加入队列;条件节点按照判断结果选择分支;延迟节点在等待时间到达后继续执行。读取和写入类节点可访问网关寄存器缓存或通过</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">RTU</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">主站与现场设备交互。</span></p>
<p> </p>
<p class="MsoNormal" style="text-indent:24pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">流程结束后,下位机保存节点运行状态和调试结果,上位机可据此显示节点数值、成功或失败状态以及执行路径。该设计使网关在脱离上位机后仍能依据已保存流程完成现场数据采集、逻辑判断和设备控制。执行流程图如图5</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">-11</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">所示。</span></p>
<p class="MsoNormal" style="line-height:115%;text-align:left;" align="center"><img src="//image.lceda.cn/pullimage/UJE44ycyj7RmlxhxWSpkBJgkG1p5JFwqr0cGFdoa.png" alt="" width="489" height="731"></p>
<p class="MsoNormal" style="line-height:115%;text-align:left;" align="center"> </p>
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="line-height:115%;font-family:'宋体';">图5</span><span style="line-height:115%;font-family:'Times New Roman', serif;">-11 </span><span style="line-height:115%;font-family:'宋体';">图形化流程执行流程</span></p>
<h3 class="MsoNormal" style="line-height:115%;text-align:left;" align="center"><strong><span style="font-size:14pt;font-family:'宋体';">5.3上位机软件设计</span></strong></h3>
<p class="MsoNormal" style="text-indent:24pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">上位机配置工具采用</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">Python</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">和</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">PyQt5</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">开发,为网关提供图形化流程编辑、设备连接、参数配置、数据调试和固件升级等功能。软件以主窗口为统一入口,通过对话框组织不同配置页面,并将耗时的通信操作放入工作线程执行,保证用户界面在读取、写入、流程下发和固件升级过程中保持响应。</span></p>
<h4 class="MsoNormal" style="text-indent:24pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">5.3.1</span><strong><span style="font-size:12pt;line-height:115%;font-family:'宋体';">主窗口与连接管理</span></strong></h4>
<p class="MsoNormal" style="text-indent:24pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">主窗口负责设备连接状态、功能入口和运行日志的集中管理。软件支持串口连接和</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">连接两种通信方式:串口连接适用于现场调试和</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">RS485</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">相关配置,</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">连接适用于通过以太网访问网关。连接建立后,各配置页面复用同一通信会话,避免多个操作同时占用连接或重复建立网络连接,页面功能如表</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">2-3</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">所示,且支持中英双语切换,如表5</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">-3</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">、图5</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">-12</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">所示。</span></p>
<p class="MsoNormal" style="text-align:center;text-indent:21pt;line-height:115%;" align="center"><span style="line-height:115%;font-family:'宋体';">表5</span><span style="line-height:115%;font-family:'Times New Roman', serif;">-3 </span><span style="line-height:115%;font-family:'宋体';">上位机功能模块说明表</span></p>
<table class="MsoTableGrid" style="border:medium none;">
<tr>
<td style="width:150.05pt;border-width:1pt;padding:0cm 5.4pt;" width="200">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><strong><span style="font-size:12pt;line-height:115%;font-family:'宋体';">功能模块</span></strong></p>
</td>
<td style="width:301.65pt;border-width:1pt 1pt 1pt medium;border-style:solid solid solid none;padding:0cm 5.4pt;" width="402">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><strong><span style="font-size:12pt;line-height:115%;font-family:'宋体';">主要功能</span></strong></p>
</td>
</tr>
<tr>
<td style="width:150.05pt;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="200">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">设备与接口配置</span></p>
</td>
<td style="width:301.65pt;padding:0cm 5.4pt 0cm 5.4pt;" width="402">
<p class="MsoNormal" style="text-align:center;text-indent:24pt;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">配置设备信息、网络参数、串口参数及主从站接口</span></p>
</td>
</tr>
<tr>
<td style="width:150.05pt;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="200">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">映射与轮询配置</span></p>
</td>
<td style="width:301.65pt;padding:0cm 5.4pt 0cm 5.4pt;" width="402">
<p class="MsoNormal" style="text-align:center;text-indent:24pt;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">维护寄存器映射、普通轮询及优先级轮询参数</span></p>
</td>
</tr>
<tr>
<td style="width:150.05pt;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="200">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">在线调试</span></p>
</td>
<td style="width:301.65pt;padding:0cm 5.4pt 0cm 5.4pt;" width="402">
<p class="MsoNormal" style="text-align:center;text-indent:24pt;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">读取实时数据、显示通信日志并辅助定位异常</span></p>
</td>
</tr>
<tr>
<td style="width:150.05pt;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="200">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">自动地址配置</span></p>
</td>
<td style="width:301.65pt;padding:0cm 5.4pt 0cm 5.4pt;" width="402">
<p class="MsoNormal" style="text-align:center;text-indent:24pt;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">对现场设备进行地址分配或地址调整</span></p>
</td>
</tr>
<tr>
<td style="width:150.05pt;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="200">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">图形化流程编辑</span></p>
</td>
<td style="width:301.65pt;padding:0cm 5.4pt 0cm 5.4pt;" width="402">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">创建、编辑、导入、导出、下发、读取和调试控制流程</span></p>
</td>
</tr>
<tr>
<td style="width:150.05pt;border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 5.4pt;" width="200">
<p class="MsoNormal" style="text-align:center;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">固件升级</span></p>
</td>
<td style="width:301.65pt;padding:0cm 5.4pt 0cm 5.4pt;" width="402">
<p class="MsoNormal" style="text-align:center;text-indent:24pt;line-height:115%;" align="center"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">选择固件文件、显示传输进度并反馈升级结果</span></p>
</td>
</tr>
</table>
<p class="MsoNormal" style="text-indent:24pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">对于</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">TCP</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">通信,上位机采用共享连接并使用互斥机制串行执行访问请求,避免多个工作线程同时读写同一连接造成报文交叉或响应错配。主窗口统一负责连接的创建和释放,工作线程只负责提交具体的通信请求。</span></p>
<p> </p>
<p class="MsoNormal" style="text-indent:24pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';">上位机主界面截图如图5</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">-12</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">、图5</span><span style="font-size:12pt;line-height:115%;font-family:'Times New Roman', serif;">-13</span><span style="font-size:12pt;line-height:115%;font-family:'宋体';">所示:</span></p>
<p class="MsoNormal" style="text-indent:24pt;line-height:115%;" align="left"><span style="font-size:12pt;line-height:115%;font-family:'宋体';"><img src="//image.lceda.cn/pullimage/8EkgUC0aa95EA8VXk1HBObNg2lSUJaFK6uD76YvB.png" alt="" width="518" height="268"></span></p>
<p class="MsoNormal" style="text-align:center;text-indent:21pt;line-height:115%;" align="center"><span style="line-height:115%;font-family:'宋体';">图5</span><span style="line-height:115%;font-family:'Times New Roman', serif;">-12 </span><span style="line-height:115%;font-family:'宋体';">上位机主界面(中文)</span></p>
<p class="MsoNormal" style="text-align:center;text-indent:21pt;line-height:115%;" align="center"> </p>
<p class="MsoNormal" style="text-indent:21pt;line-height:115%;text-align:left;" align="center"><span style="line-height:115%;font-family:'宋体';"><img src="//image.lceda.cn/pullimage/KOAl1ou6f29EE1FjSbJloFx8vOZMDm8mTA7tmIyQ.png" alt="" width="549" height="282"></span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;text-align:center;"> </p>
<p class="MsoNormal" style="line-height:115%;" align="center"><span style="line-height:115%;font-family:'宋体';">图5</span><span style="line-height:115%;font-family:'Times New Roman', serif;">-13 </span><span style="line-height:115%;font-family:'宋体';">上位机主界面(英文)</span></p>
<div style="color:#000000;background-repeat:repeat;background-attachment:scroll;"> </div>
<div style="background-attachment:scroll;">
<div style="background-attachment:scroll;">
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.4 软件模块详细说明</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.4.1 Modbus TCP 从机模块</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">Modbus TCP 从机模块是网关软件与上位机系统之间的数据交互核心模块,使设备能够作为标准 Modbus TCP Server 运行,为 SCADA 系统、工业触摸屏以及其他控制设备提供数据访问接口。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(1) 网络参数加载逻辑</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">系统启动后,首先从片内 Flash 存储区域读取网络配置参数,包括设备 IP 地址、子网掩码、默认网关、TCP 服务端口以及 Modbus 从站地址等信息。如果配置数据不存在或校验失败,则自动加载默认网络参数,保证设备能够正常启动运行。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(2) 协议初始化与监听服务</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">模块初始化过程中,通过调用 Modbus TCP 协议初始化接口完成协议栈加载,并建立 TCP 监听服务。设备默认监听 Modbus 标准端口 502,等待上位机建立 TCP 连接。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(3) 报文接收与解析流程</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">在正常运行状态下,以太网任务负责接收来自网络的数据帧,并将有效数据传递至 Modbus TCP 从机任务进行解析。系统首先对接收到的数据进行长度检查,然后解析 Modbus TCP 报文中的 MBAP 协议头信息,包括事务标识符、协议标识符以及单元标识符等内容。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(4) 按功能码分类数据处理逻辑</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">① 读操作功能码(0x01、0x02、0x03、0x04):系统首先查询网关内部寄存器缓存。如果目标数据已经通过 RTU 主站轮询获取,则直接返回缓存数据;如果数据不存在,则生成对应读取请求并发送至 RTU 主站任务执行。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">② 写操作功能码(0x05、0x06、0x0F、0x10):系统首先检查地址映射关系和访问权限,然后将写操作转换为 RTU 写命令,通过消息队列发送至对应 RS485 通道执行。 </span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">③ 特殊功能码(0x08、0x2B、0x46):系统执行设备诊断、配置模式切换等特殊操作。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(5) 双运行状态管理</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">① 正常从机模式:设备作为 Modbus TCP Server,为上位机提供数据访问服务。 ② 配置模式:允许用户在线修改网络参数、设备配置以及地址映射信息。 通过状态机管理两种模式之间的切换,保证设备运行稳定性。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(6) UDP 设备自动发现功能</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">系统提供 UDP 自动发现功能。设备监听 UDP 1000 端口,当接收到指定发现命令后,自动返回自身 IP 地址以及 Modbus TCP 服务端口,方便上位机自动搜索设备。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.4.2 Modbus RTU 主站模块</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">Modbus RTU 主站模块负责网关与现场 RS485 从设备之间的数据通信,是实现 TCP 到 RTU 协议转换的关键部分。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(1) 四路独立 RS485 通道硬件映射</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">系统设计支持四路独立 RS485 通道,每一路均运行独立的 Modbus RTU Master 协议实例:</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">① USART1 对应 RS485 通道 1; ② USART2 对应 RS485 通道 2;</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">③ USART3 对应 RS485 通道 3; ④ UART4 对应 RS485 通道 4。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">每个主站实例均拥有独立的数据缓存区、串口配置参数、超时计时器以及通信状态机,各通道之间互不影响,可同时与不同现场设备进行通信。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(2) 端口映射初始化逻辑</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">软件启动时,通过端口绑定表完成逻辑端口与物理串口之间的映射关系,同时检查是否存在端口冲突。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(3) RS485 收发引脚自动控制</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">通信过程中,主站任务按照调度周期生成 Modbus RTU 请求帧,并通过 RS485 总线发送数据。发送过程中自动控制 RS485 收发方向:</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">① 发送数据前,将 DE/RE 引脚设置为发送状态;</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">② 数据发送完成后,通过串口发送完成中断自动切换至接收状态。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(4) 通信异常容错处理机制</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">系统内部集成通信异常处理机制:</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">① 从站无响应时执行超时检测; ② CRC 校验错误时自动重新发送;</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">③ 连续通信失败达到设定次数后记录错误状态,并跳过当前设备。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(5) 多通道并行调度机制</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">通过多任务并行机制,实现四路 RS485 通道同时运行,提高系统通信效率。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.4.3 网关地址映射引擎</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">地址映射引擎是整个 Modbus TCP 转 RTU 网关的软件核心模块,主要负责建立上位机虚拟地址空间与现场多个 Modbus RTU 从站实际地址之间的对应关系。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(1) 地址映射表存储字段定义</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">系统通过地址映射表保存每个寄存器的转换信息,包括:从站 ID、寄存器类型、读写权限、寄存器数量、RTU 从站起始地址、TCP 网关起始地址。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(2) 映射配置加载流程</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">设备启动后,从 Flash 中读取地址映射配置,并建立内部从站配置表以及索引映射表。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(3) TCP 访问地址转换完整流程</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">当上位机访问某个 Modbus TCP 地址时,网关根据映射关系计算对应的 RTU 从站地址:</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">① 查询虚拟地址对应的映射记录; ② 获取目标从站编号; ③ 根据地址偏移计算实际寄存器地址; ④ 生成对应 Modbus RTU 请求; ⑤ 通过 RS485 发送给目标设备; ⑥ 接收响应后重新映射到网关寄存器空间。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(4) 轮询请求合并算法触发条件</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">为了提高通信效率,系统设计了轮询请求合并算法。当多个寄存器满足以下条件时,自动合并为一次读取请求:</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">① 从站 ID 相同; ② 寄存器类型相同; ③ 访问权限一致; ④ 地址连续或存在重叠。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">合并请求可减少 RS485 通信次数,提高数据刷新速度。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(5) Modbus 协议长度约束校验</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">系统限制单次请求长度符合 Modbus 协议规范,避免超过最大寄存器数量限制。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.4.4 可视化流程执行引擎</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">流程执行引擎用于实现网关设备本地自动控制逻辑,使设备具备边缘计算能力,无需依赖上位机即可完成复杂控制任务。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(1) 流程配置生成与存储方式</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">用户可以通过上位机流程编辑工具,以类似 Node-RED 的拖拽方式创建控制流程,生成流程配置文件后存储至 Flash,由嵌入式系统实时解析执行。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(2) 流程周期扫描执行机制</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">流程引擎采用周期扫描和状态机结合的执行方式:</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">① 每 10ms 扫描一次所有有效流程; ② 每个流程独立维护运行状态; ③ 根据节点之间的拓扑关系确定执行顺序; ④ 未满足执行条件的节点自动等待下一周期。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(3) 流程资源容量限制</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">系统支持 20 个独立流程槽位,每个流程最多包含 50 个节点。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(4) 内置全类型功能节点清单</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">支持的节点类型包括:周期触发节点、寄存器变化触发节点、数据读取节点、数据写入节点、数学运算节点、条件判断节点、延时等待节点、累加器节点、跨流程通信节点。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(5) 低内存存储优化方案</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">流程数据采用固定长度二进制格式存储,提高解析效率。运行过程中,系统直接从 Flash 读取流程定义,实现低 RAM 占用运行。5.4.5 以太网通信模块</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">以太网通信模块基于沁恒 WCHNET 网络协议栈实现,为系统提供 TCP/IP 网络通信能力。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(1) 网络协议栈初始化配置项</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">系统启动时初始化网络协议栈,并配置:MAC 地址、IP 地址、子网掩码、默认网关。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(2) 网络任务调度逻辑</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">运行过程中,Eth_Task 周期调用网络协议栈任务函数,处理网络数据收发以及 Socket 状态维护。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(3) 三大核心网络服务功能</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">① Modbus TCP 服务:设备创建 TCP Server,监听 502 端口,接收上位机 Modbus TCP 请求,并转交协议处理模块。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">② UDP 自动发现:设备监听 UDP 1000 端口,当接收到指定发现命令后,自动返回设备 IP 地址和服务端口。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">③ TCP 保活机制:系统支持 Keep-Alive 功能,空闲 20 秒后启动检测;每隔 15 秒发送一次探测;最大检测次数为 9 次。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(4) TCP 保活机制作用</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">通过该机制能够及时释放异常断开的 TCP 连接,提高系统可靠性。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.4.6 Flash 存储管理模块</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">Flash 存储模块负责管理设备运行过程中需要长期保存的数据。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(1) 持久化存储数据分类</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">需长期保存的数据包括:网络参数、地址映射表、主机索引表、流程定义数据、系统配置参数。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(2) Flash 分区规划设计</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">系统 Flash 采用分区管理方式,不同区域存储不同类型数据,主要分区包括:</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">① BOOT 区:存储启动程序; ② NETCORE 区:存储网络核心程序; ③ APP1 区:应用程序主区域; ④ APP2 区:升级备份区域; ⑤ FLAG 区:启动状态标志; ⑥ 记录存储区:保存地址映射数据; ⑦ 索引表区域:保存快速查询信息。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(3) Flash 硬件操作参数</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">Flash 操作采用:1KB 页擦除、32 位数据编程。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(4) 闪存寿命优化策略</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">写入数据前,系统自动检测目标区域是否已经擦除,减少无效擦写次数,提高 Flash 使用寿命。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.5 算法设计</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.5.1 轮询请求合并算法</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(1) 传统轮询方案缺陷</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">传统方式下,每一个寄存器地址对应一次通信请求,会导致大量重复通信,总线负载高。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(2) 算法合并判断条件</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">本系统通过分析地址映射表,将满足合并条件的寄存器自动组合:相同设备地址、相同寄存器类型、相同权限、地址连续。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(3) 算法收益效果</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">合并后的请求一次读取多个寄存器,从而降低 RS485 总线负载。实验设计中,典型情况下可减少 60%~80% 的轮询请求数量。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.5.2 地址映射转换算法</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(1) 算法应用场景</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">上位机访问的是连续的网关地址空间,而实际现场设备可能分布在多个不同地址区域,该算法完成地址统一转换。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(2) 完整转换步骤</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">系统通过查找 AddressMapRecord 记录执行转换:</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">① 找到目标网关地址对应的从站; ② 计算地址偏移; ③ 转换为实际 RTU 地址; ④ 生成通信请求。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(3) 业务价值</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">通过该方式,上位机无需关注现场设备分布情况,实现统一访问。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.5.3 CRC16-Modbus 校验算法</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(1) 算法核心作用 CRC16-Modbus</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">算法用于保证 RS485 数据通信可靠性。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(2) 收发端校验流程</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">① 发送端计算数据帧 CRC 校验值,并附加到数据尾部;</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">② 接收端重新计算 CRC,与接收到的 CRC 值比较。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(3) 校验结果处理逻辑</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">若校验值一致,则认为数据正确;若不一致,则丢弃数据并触发重传机制。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.5.4 流程引擎边缘计算算法</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(1) 流程数据下发与存储</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">PC 端首先将用户设计流程转换为固定格式二进制数据,随后存储到设备 Flash。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(2) 设备本地执行步骤</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">设备运行时完整执行逻辑:</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">① 加载流程数据; ② 解析节点信息; ③ 根据拓扑排序确定执行顺序; ④ 调用对应节点处理函数; ⑤ 更新运行状态。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(3) 依赖关系解决方案</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">系统采用 Kahn 拓扑排序算法解决节点依赖关系问题,保证流程按照正确顺序执行。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.5.5 流程二进制编译算法</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(1) 二进制流程固定存储结构</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">每个流程槽位占用 2048 字节,结构包含:32 字节流程头、600 字节节点数据、400 字节连接数据、端口类型信息、填充区域。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(2) 设计优势 通过固定结构设计,提高嵌入式端解析效率。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.5.6 自动编址算法</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(1) 算法使用场景</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">自动编址算法用于现场快速发现并配置新接入 RS485 设备。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(2) 编址执行流程</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">网关进入配置模式后,向 RS485 网络发送探测命令,从站根据命令响应并完成地址分配。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(3) 算法内置优化能力</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">算法支持:多端口并行探测、冲突检测、二分搜索优化。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(4) 实际落地价值</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">减少现场设备部署和调试时间。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.6 源码结构说明</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">软件工程采用模块化目录结构设计。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(1) 各目录功能划分</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">① User:应用层代码,包括任务管理、网关逻辑、流程引擎等;</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">② Core:芯片核心驱动;</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">③ Peripheral:外设驱动;</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">④ FreeRTOS:实时操作系统源码;</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">⑤ FreeModbus:Modbus 协议栈;</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">⑥ NetLib:网络协议库;</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">⑦ Bsp:板级支持包;</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">⑧ Startup:启动代码;</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">⑨ Ld:链接脚本。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(2) 目录分层设计优势</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">软件按照功能模块划分,提高代码维护性和扩展能力。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.7 编译环境搭建与配置</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">软件开发环境采用 MounRiver Studio(MRS)。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(1) 开发环境硬件软件要求</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">① MRS ≥ V1.9.0; ② RISC-V GCC 编译器; ③ WCH-Link 调试器; ④ Windows 操作系统。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(2) 完整工程配置流程</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">① 安装 MRS 开发环境; ② 导入工程文件; ③ 配置芯片型号 CH32V208R; ④ 设置链接脚本; ⑤ 配置编译宏; ⑥ 编译生成 HEX 文件。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(3) 核心编译配置参数</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">主要编译参数包括:网络协议栈共享模式、Bootloader 分区模式、Modbus 主站数量、调试串口配置。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.8 程序烧录方法</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">系统支持多种程序烧录方式,适配不同场景。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(1) MRS 在线烧录</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">适用场景:开发调试阶段。操作方式:通过 WCH-Link 连接调试接口,在 MounRiver Studio 中直接下载程序。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(2) WCH-Link Utility 烧录</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">适用场景:独立烧录操作。操作方式:加载 HEX 文件后完成程序写入。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(3) 串口 ISP 烧录</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">适用场景:批量生产。操作方式:通过 USART1 接口下载程序,无需额外调试器。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(4) 烧录方式选型原则</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">不同烧录方式根据开发、维护和生产场景进行选择。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.9 调试方法</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.9.1 串口调试</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">系统通过 USART1 输出运行日志。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(1) 日志输出内容清单</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">系统启动信息、芯片 ID、FreeRTOS 版本、网络参数、通信数据帧、错误报警信息、任务栈使用情况。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.9.2 SWD 在线调试</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">通过 WCH-Link 和 MounRiver Studio 实现硬件调试功能。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(1) 支持调试能力 单步调试、断点调试、变量观察、内存查看、调用栈分析。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(2) 调试作用 便于定位软件运行过程中的异常问题。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">5.9.3 上位机调试工具</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">系统支持多种辅助测试工具,实现软硬件联合调试。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(1) 配套调试工具用途</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">① Modbus Poll:测试 Modbus TCP 通信;</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">② Modbus Slave:模拟 RTU 从站;</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">③ 串口调试助手:观察 RS485 原始数据;</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">④ Wireshark:分析 TCP 网络数据包。</span></span></h3>
<h3 style="margin:0pt;"><span style="color:#000000;font-family:'宋体';"><span style="font-size:16px;">(2) 联合调试目标 验证网关通信、协议转换以及流程执行等全部功能。</span></span></h3>
<p style="color:#000000;font-family:'ui-sans-serif', 'system-ui', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';font-size:16px;"> </p>
</div>
</div>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="color:#95a5a6;">注:若您的项目涉及软件开发,请在附件上传对应的工程源码。这里可以详细说明您的软件流程图、功能模块框图、相关算法的解释或科普、源码结构、编译环境的搭建和配置、源码编译方法、程序烧录方法等。推荐图文并茂的形式向别人介绍您的想法。</span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height:1.8;"> </p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">*6、BOM清单</h3>
<hr class="horizontal-splitline normal-bold-2">
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="color:#95a5a6;">请输入内容…</span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="color:#95a5a6;">注:项目涉及的BOM清单。在<span style="text-decoration:underline;"><a href="https://lceda.cn/editor" target="_blank">嘉立创EDA</a> </span>生成/上传设计文件后,BOM将自动生成至项目详情;建议包括型号、品牌、名称、封装、采购渠道、用途等内容。具体内容和形式应以表达清楚项目构成为准。 </span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">*7、大赛LOGO验证</h3>
<hr class="horizontal-splitline normal-bold-2">
<p style="line-height:1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="color:#95a5a6;">请上传包含大赛logo的项目图片,logo以丝印形式印刷在PCB上面。</span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="color:#95a5a6;">点击zip下载大赛logo标识! <span style="text-decoration:underline;"><a href="https://image.lceda.cn/easyedaResource/images/d1bbfd69f9404f56901a0e7b849b7245.rar" target="_blank">(大赛标识).zip</a></span></span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">* 8、演示您的项目并录制成视频上传</h3>
<hr class="horizontal-splitline normal-bold-2">
<p style="line-height:1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="color:#95a5a6;">视频要求:请横屏拍摄,分辨率不低于1280×720,格式Mp4/Mov,单个视频大小限50M内;</span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="color:#95a5a6;">视频标题:立创电赛:{项目名称}-{视频模块名称};如立创电赛:《自动驾驶》-团队介绍。</span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="color:#95a5a6;">视频冲榜:项目制作过程中,可随时录制视频上传至B站、小红书、视频号、抖音号,<a style="text-decoration:underline;" href="https://doc.weixin.qq.com/smartsheet/form/1_wpmhMpBwAAfrKELBBSNdSqJrorjTQE8Q_600d71" target="_blank">冲榜人气奖励 ></a>,优秀项目可获得立创官方全域曝光机会;</span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><a style="text-decoration:underline;" href="/posts/b2b65ad17ac34080a318a5ab47a632c2" target="_blank">前往查看更多详情 ></a></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p>
评论(0)