Veristand学习札记(1)- 先行了解

本文介绍Veristand在半实物仿真领域的应用,重点讲解自定义设备(Custom Device)的开发流程及其重要性,并探讨SDF文件的作用及仿真系统的搭建方法。

环境

操作系统为Win7 64位,LabVIEW2015 32位中文版,Veristand 2015 SP1 中文版。

因工作需要用到此方面内容,在此谨记下学习过程。

应用

Veristand是NI系列产品,主要用在仿真上面。其主要功能是一个仿真平台,通过添加设备和模型,组成仿真系统。设备分为NI自有的DAQ设备和用户自定义设备两种。其隐藏设备的操作,只留输入输出,让板卡设备组合等效为产品的输入输出的硬件信号接口,模型等效为产品的内部逻辑,通过模型的“软输入输出”和设备的“硬输入输出”,仿真一个带逻辑功能和真实信号输出的产品,达到半实物仿真的效果。

用Veristand最大的目的就是,将模型的输入输出和硬件接口(卡、总线、串口、网口)直接映射对应,把计算过程放在模型里面,不用在通过上位机Windows计算后配合板卡驱动操作,降低了时效性。使用单独的计算机作为仿真机,目的是要保证模型单独运行,不收其他干扰。仿真机上RT是因为时效性要求,这个所谓“实时”,一方面是时间精度,另一方面是数据的时标对齐。

术语

本次一开始一直被人追问一个问题:CD做好了没?SDF文件做好了么?

经过学习了解,CD是CustomDevice的简称,这个是自定义设备,只是Veristand的其中一个很小的功能块。直观的讲,是将一些非NI DAQ板卡经过驱动封装,屏蔽下层操作,只留下输入和输出接口。CD的开发是一个工程,是一个LabVIEW工程。这个工程怎么建立和生成?怎么用?生成出来是个什么样子?这是最近几天一直被追问的问题。

SDF文件又是什么?这个得结合Veristand的工程来说了。

遗留

1. 仿真不可避免的要涉及到“实时性”这个问题,这个和Veristand平台怎么结合起来的?

2. 模型是以什么形式呈现、调用、加载的?

3. 整个仿真系统,操作界面如何建立的?是模板还是再重新开发一个程序?

以上问题,随着自己的理解,一点点展开。

### 创建或使用自定义设备UDS在VeriStand #### 定义和配置自定义设备驱动程序 为了使用户能够在NI VeriStand中创建或使用自定义设备UDS(User Defined Symbols),需要先开发一个符合特定接口规范的动态链接库(DLL),该DLL应实现用于初始化、读取数据、写入命令以及关闭通信等功能的方法。这些方法会被映射到VeriStand内部的数据模型,从而允许通过图形化界面来操作实际硬件。 对于网络诊断服务协议(UDS)的支持,在现代车辆电子控制单元(ECU)调试过程中变得越来越重要。当涉及到基于IP的传输方式时,如DoIP (Diagnostic over Internet Protocol)[^1],则意味着任何新的UDS扩展都应当考虑与现有以太网基础设施集成的可能性。因此,在设计针对汽车ECUs或其他复杂系统的测试环境时,确保所编写的自定义设备驱动能够处理来自不同物理层的消息格式转换至关重要。 #### 实现具体功能 一旦完成了上述准备工作之后,则可以按照如下指南继续: - **注册新类型的设备**:利用C/C++编写一段代码片段作为入口点,向VeriStand注册这个新型号的虚拟仪器。 ```c++ extern "C" __declspec(dllexport) int RegisterCustomDevice(void* context){ // 注册逻辑... return 0; } ``` - **提供必要的回调函数**:为每一个预期的操作准备相应的处理器,比如`Initialize`, `ReadData`, `WriteCommand` 和 `CloseCommunication`. ```c++ typedef struct { void (*initialize)(void); float (*read_data)(int channel); bool (*write_command)(const char *command_string); void (*close_communication)(); } CustomDeviceFunctions; static CustomDeviceFunctions deviceFuncs = { initialize_func, read_data_func, write_command_func, close_communication_func }; ``` - **封装UDS请求/响应流程**:如果目标是模拟某个具体的ECU行为或是发送特殊的诊断指令给真实世界里的节点,那么还需要特别注意如何构建有效的UDS PDU(packet data unit), 并解析返回的结果。 最后一步就是把整个项目打包成适合导入至VeriStand工程文件(.nivssdf)的形式,并且验证所有特性都能正常运作。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值