第二章 实验环境搭建:SCALEXIO硬件安装、ConfigurationDesk基础配置、RTI模块加载与映射
好,咱们直接进入正题。第二章是整个课程的地基,说白了就是让你手里的SCALEXIO硬件能真正跑起来。我见过太多工程师,理论背得滚瓜烂熟,一到实验室接硬件就懵了。嗯,今天咱们就把这事彻底捋清楚。
2.1 SCALEXIO硬件安装——别让接线毁了你的测试
SCALEXIO这个平台,我个人的第一印象就是「皮实」。但再皮实的设备,也怕你乱接。我记得刚入行那会儿,有次急着做HIL测试,把DS2671的电源线插反了,结果板卡上的保护二极管直接烧了。从那以后,我养成了一个习惯:上电前,拿万用表量一遍所有电源对地阻抗。
2.1.1 硬件组成快速认知
你拿到一套SCALEXIO,通常包含这几样东西:
- 机箱(Chassis):比如DS1007,这是骨架,所有板卡都插在上面。
- 处理器板卡:比如DS1006或DS1007自带,负责跑实时模型。
- I/O板卡:DS2671(模拟量)、DS2680(数字量)、DS2655(总线接口)等等。
- 接线面板:从板卡接口引出来的端子排,方便你接线。
2.1.2 安装步骤与避坑
- 断电操作:这是铁律。SCALEXIO机箱的背板带电插拔风险极高,我见过有人把DS1007的背板插槽烧出焦痕。
- 板卡插入:对准导轨,均匀用力。听到「咔哒」一声才算到位。别用蛮力,我曾经因为没对准,把DS2671的边沿连接器压弯了两根针。
- 接线端子:SCALEXIO的接线端子是弹簧式的。用一字螺丝刀压下去,线插到底,松开。记得线径不要超过1.5mm²,否则端子卡不住。
- 上电自检:机箱前面板有LED灯。正常启动后,PWR灯常亮,RDY灯闪烁几下后常亮。如果ERR灯亮了,别慌,八成是板卡没插好或者电源模块功率不够。
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等等。别被数量吓到,你只需要用你板卡对应的那几个。
2.3.2 信号映射——从模型到物理通道
映射过程其实就三步:
- 拖模块:从RTI库里把对应的I/O模块拖到你的Simulink模型里。
- 双击配置:比如DS2671 ADC模块,双击后选择通道号(比如Channel 0),设置采样率(比如100kHz)。
- 连接信号线:把模型里的信号线连到模块的输入/输出端口上。
举个例子,你要采集一个电压信号:
模型信号: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%的问题出在:
- 通道号重复(两个模块用了同一个通道)
- 数据类型不匹配
- 采样率设置过高(超过板卡上限)
2.4 实战小练习——点亮一个LED
光说不练假把式。咱们来个最简单的:用SCALEXIO的数字输出通道点亮一个LED。
- 硬件连接:DS2680的通道0接一个LED(串联1kΩ电阻),另一端接GND。
- ConfigurationDesk配置:把DS2680的通道0设为数字输出,初始状态为Low。
- Simulink模型:放一个Constant模块(值为1),连到DS2680 DIO模块的通道0。
- 编译下载:点击Build,等几秒钟。
- 观察:LED应该亮了。如果不亮,检查接线和通道号。
这个练习虽然简单,但能帮你验证整个链路:硬件→ConfigurationDesk→RTI→Simulink→编译→下载→运行。我每次搭建新平台,都会先跑一遍这个流程,确保环境没问题。
好了,第二章的内容就这些。环境搭建是基础中的基础,别嫌麻烦。你想想看,如果硬件都没配对,后面故障注入做得再花哨,也是白搭。下一章咱们开始讲真正的故障注入——怎么让信号短路、断路、漂移,嗯,那才是好戏开场。