第二章 实验环境搭建:SCALEXIO硬件安装、ConfigurationDesk基础配置、RTI模块加载与映射

好,咱们直接进入正题。第二章是整个课程的地基,说白了就是让你手里的SCALEXIO硬件能真正跑起来。我见过太多工程师,理论背得滚瓜烂熟,一到实验室接硬件就懵了。嗯,今天咱们就把这事彻底捋清楚。

2.1 SCALEXIO硬件安装——别让接线毁了你的测试

SCALEXIO这个平台,我个人的第一印象就是「皮实」。但再皮实的设备,也怕你乱接。我记得刚入行那会儿,有次急着做HIL测试,把DS2671的电源线插反了,结果板卡上的保护二极管直接烧了。从那以后,我养成了一个习惯:上电前,拿万用表量一遍所有电源对地阻抗

2.1.1 硬件组成快速认知

你拿到一套SCALEXIO,通常包含这几样东西:

  • 机箱(Chassis):比如DS1007,这是骨架,所有板卡都插在上面。
  • 处理器板卡:比如DS1006或DS1007自带,负责跑实时模型。
  • I/O板卡:DS2671(模拟量)、DS2680(数字量)、DS2655(总线接口)等等。
  • 接线面板:从板卡接口引出来的端子排,方便你接线。
我的小习惯:每次安装新板卡,我都会在ConfigurationDesk里先建一个空项目,把板卡型号读出来,确认固件版本。这一步能帮你省掉后面至少一半的排查时间。

2.1.2 安装步骤与避坑

  1. 断电操作:这是铁律。SCALEXIO机箱的背板带电插拔风险极高,我见过有人把DS1007的背板插槽烧出焦痕。
  2. 板卡插入:对准导轨,均匀用力。听到「咔哒」一声才算到位。别用蛮力,我曾经因为没对准,把DS2671的边沿连接器压弯了两根针。
  3. 接线端子:SCALEXIO的接线端子是弹簧式的。用一字螺丝刀压下去,线插到底,松开。记得线径不要超过1.5mm²,否则端子卡不住。
  4. 上电自检:机箱前面板有LED灯。正常启动后,PWR灯常亮,RDY灯闪烁几下后常亮。如果ERR灯亮了,别慌,八成是板卡没插好或者电源模块功率不够。
警告:SCALEXIO的电源模块(比如DS1101)有功率限制。如果你挂载了超过6块高功耗板卡(比如DS2671),建议用外部供电。我曾经在项目里挂过8块板卡,结果电源模块过热保护,整个机箱自动断电,测试数据全丢了。

2.2 ConfigurationDesk基础配置——把硬件「告诉」软件

硬件装好了,接下来就是让软件认识它。ConfigurationDesk就是干这个的。说白了,它是个翻译官,把物理板卡映射成软件里的虚拟通道。

2.2.1 创建新项目与扫描硬件

打开ConfigurationDesk,新建一个项目。我个人习惯先不急着配模型,而是先做硬件扫描:

1. 点击「Hardware」菜单 → 「Scan Hardware」
2. 选择连接方式:Ethernet(推荐)或PCIe
3. 输入SCALEXIO的IP地址(默认是192.168.1.10)
4. 点击「Start Scan」

扫描成功后,你会看到机箱里所有板卡的列表。注意看序列号固件版本。如果某块板卡显示「Unknown」,大概率是固件不匹配。我曾经遇到过DS2680的固件版本是2.0,但ConfigurationDesk要求2.1,结果死活识别不出来。升级固件后就好了。

2.2.2 配置I/O通道

扫描完成后,你需要为每个通道分配信号类型。比如DS2671的通道0,你要告诉它:这是模拟量输入,范围0-10V,分辨率16位。

板卡类型 通道号 信号类型 量程 采样率
DS2671 0-7 模拟量输入 ±10V / 0-10V / 0-20mA 100kHz
DS2680 0-15 数字量输入/输出 5V / 24V 1MHz
DS2655 0-1 CAN / LIN 标准/扩展帧 1Mbps

这里有个坑:量程设置一定要和实际传感器匹配。我有个同事,把0-10V的传感器接到了±10V的通道上,结果分辨率直接减半,信号噪声大了好几倍。你想想看,这要是做故障注入,数据根本没法用。

2.3 RTI模块加载与映射——让Simulink和硬件「对话」

ConfigurationDesk配好了,接下来就是RTI(Real-Time Interface)模块。它的作用是把Simulink模型里的变量,和SCALEXIO的物理通道绑定在一起。嗯,这一步是很多新手翻车的地方。

2.3.1 加载RTI模块库

在Simulink里,你需要先加载RTI库:

1. 在MATLAB命令窗口输入:rti_init
2. 等待库加载完成(大概10秒)
3. 在Simulink Library Browser里找到「dSPACE RTI」库

加载成功后,你会看到一堆模块:DS2671 ADC、DS2680 DIO、DS2655 CAN等等。别被数量吓到,你只需要用你板卡对应的那几个。

重要:RTI模块的版本必须和ConfigurationDesk版本一致。我曾经因为RTI 7.4配了ConfigurationDesk 7.5,结果编译报错,提示「RTI library mismatch」。折腾了半天才发现是版本号差了一个小版本。

2.3.2 信号映射——从模型到物理通道

映射过程其实就三步:

  1. 拖模块:从RTI库里把对应的I/O模块拖到你的Simulink模型里。
  2. 双击配置:比如DS2671 ADC模块,双击后选择通道号(比如Channel 0),设置采样率(比如100kHz)。
  3. 连接信号线:把模型里的信号线连到模块的输入/输出端口上。

举个例子,你要采集一个电压信号:

模型信号:Voltage_Sensor (double类型)
RTI模块:DS2671 ADC (Channel 0, 0-10V)
连接方式:Voltage_Sensor → DS2671 ADC 的输出端口

这里要注意:数据类型必须匹配。RTI模块输出的是double,你模型里如果用了single,编译时会报类型不匹配。我刚开始做的时候,经常因为数据类型问题卡编译,后来学乖了,统一用double。

2.3.3 编译与下载

映射完成后,点击Simulink的「Build」按钮。ConfigurationDesk会自动生成代码并编译。这个过程大概1-5分钟,取决于模型复杂度。编译成功后,你会看到:

### 编译成功
### 下载到SCALEXIO...
### 下载完成,开始实时运行

如果编译失败,别慌。看错误日志,90%的问题出在:

  • 通道号重复(两个模块用了同一个通道)
  • 数据类型不匹配
  • 采样率设置过高(超过板卡上限)
避坑指南:我曾经在编译时遇到「Task overrun」错误,意思是模型计算时间超过了采样周期。解决办法是降低采样率,或者把模型拆成多个子任务。嗯,这个后面章节会细讲。

2.4 实战小练习——点亮一个LED

光说不练假把式。咱们来个最简单的:用SCALEXIO的数字输出通道点亮一个LED。

  1. 硬件连接:DS2680的通道0接一个LED(串联1kΩ电阻),另一端接GND。
  2. ConfigurationDesk配置:把DS2680的通道0设为数字输出,初始状态为Low。
  3. Simulink模型:放一个Constant模块(值为1),连到DS2680 DIO模块的通道0。
  4. 编译下载:点击Build,等几秒钟。
  5. 观察:LED应该亮了。如果不亮,检查接线和通道号。

这个练习虽然简单,但能帮你验证整个链路:硬件→ConfigurationDesk→RTI→Simulink→编译→下载→运行。我每次搭建新平台,都会先跑一遍这个流程,确保环境没问题。

好了,第二章的内容就这些。环境搭建是基础中的基础,别嫌麻烦。你想想看,如果硬件都没配对,后面故障注入做得再花哨,也是白搭。下一章咱们开始讲真正的故障注入——怎么让信号短路、断路、漂移,嗯,那才是好戏开场。