基于 Excel 驱动的 Simulink 硬线 IO 模型自动生成工具
2026/9/15 9:20:02 网站建设 项目流程

基于 Excel 驱动的 Simulink 硬线 IO 模型自动生成工具——原理、内容说明与使用指南

原代码地址:https://www.goofish.com/item?spm=a21ybx.personal.feeds.1.42c26ac2oKxZr3&id=1079646611044&categoryId=50023914

面向 HIL /嵌入式软件测试工程师与 MATLAB/Simulink开发者。本文完整介绍一套由 Excel引脚表一键驱动、自动生成 Simulink硬线 IO模型的工具:讲清它的原理每个字段/文件的“内容说明”,以及从填表到生成、再到结构校验的使用说明”文中同时给出顶层与端子内部两张原理图的读图说明。

1. 我们在解决什么痛点

在硬件在环(HIL) 与控制器回环测试里,经常要搭建一套硬线(引脚级) IO模型,把真实 ECU 的大量引脚——模拟量、数字量、PWM、电阻型传感器、CAN/LIN/FlexRay/以太网等——在 Simulink 里建模,用于:

  • 信号与 NI 板卡通道的映射、收发路由;
  • 自动化测试中的“手动注入 / 联调 / 故障注入”;
  • 作为部署目标(VeriStand / 代码生成)的IO映射全量清单

手工搭会踩一堆坑:

  1. 信号量大(几十上百路、多 ECU / 多类型),重复劳动、易漏;
  2. 引脚与 ECU / 子模型 / 块名难以整齐统一;
  3. 端子块内部连线布局丑、块重叠、名称被截断,交付观感差、易错;
  4. 后期新增通讯类型(刚冒出个电阻类型、冷门 K 线)要动一大片代码;
  5. 方案文本与交付实物“两张皮”,一致性全靠人肉保证。

本工具的思路朴素而有效:信息”(引脚清单)生成规则”(模型代码)分离。用一张受控的 Excel 引脚表当唯一输入,一键生成整套 IO 模型。信息增改几乎不碰代码,这才做到“Excel 即配置、Excel 即说明书”。

2. 总体设计思想

一句话:一个输入(Excel) →一个解析(引擎) →一个生成器(建模) →一轮校验/布局

 ECU_Pin_Config.xlsx       ← 唯一“用户输入”:Overview 总览 + 各类型分表
         │
         ▼
 ExcelAnalysis.m           ← 解析:读 Overview、按类型自动发现、读各分表附加列(Extra)
         │  struct Signals
         ▼
 IOMDLCreatFun.m           ← 生成:建顶层模型、两大 IO 网络、ECU→端子、端子内部接线
         │
         ▼
 IO_Model.slx              ← 输出模型;另可由 test_core 一键生成 + update 编译

四个理念基点

  1. 类型自动发现”(核心):解析器不靠硬编码类型表,而是扫 Overview,把实际出现的SignalType收集起来,再去同名分表读该类型附加列 => 新类型加在 Excel 里就被自动认,主流程零改动
  2. 信息与规则分离:业务字段都在 Excel;模型结构 / 规则都在 .m。改信号不碰代码,改结构才动 .m。
  3. 端子统一手自动结构:每个端子内部都含手动值+/自动Switch + (按需)增益/限幅+ Convert +输出引脚,HIL 调试顺手。
  4. 布局交给 Simulink:端子建完统一调 Simulink.BlockDiagram.arrangeSystem 自动排版,绕开“手摆坐标 → 交叉 / 重叠 / 被截断”。

3. 输入格式:Excel 引脚表(ECU_Pin_Config.xlsx)

一张工作簿拆成多张 Sheet,每张代表一种信号类型,另有一张总览 Overview。

Overview ——总览 /自动发现入口

No | SignalName | ECU | SignalType | Direction | DataType | SampleTime | Channel | PortName | Remark

  • 作用 1:作为全局信号清单(谁、在哪、怎么走);
  • 作用 2:登记SignalType触发“自动发现”,决定读哪张分表;
  • 约定:Overview 的 SignalType与该类型分表名一致、区分大小写

各类型分表 ——存“附加列”:公共列 + 该类型特有附加列;分表与 Overview 用SignalName关联。

现支持 +预留类型概览

类别

类型

附加列(分表层字段)

总线

Ethernet/CAN/LIN/PSI5/Sent/PWM/Flexray

各自 DBC / 波特率 / 帧格式 / 节点等

模拟硬线

AIAO

Vmin, Vmax, LimitMin, LimitMax, Gain, Offset

数字硬线

DIDO

ActiveLevel, Pull(上/下拉), Logic

电阻传感

RES

SensorKind, RminOhm, RmaxOhm, Curve, ReferenceVoltage(V), LimitMin, LimitMax, Gain, Offset

预留空模板

KLine / Modbus485 / RS232 / LVDS

已在其空白分表建好附加列表头

4. 内容说明:字段字典与填写规范

这一节像一本“词典”,把你要填的单元格 / 文件含义逐项讲清楚 ——弄明白再动手填

4.1 Overview 公共列字典

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询