Veristand介绍Veristand是一款NI推出的仿真工具通过整合设备和模型实现半实物仿真用于测试带逻辑功能的产品行为。用Veristand最大的目的就是将模型的输入输出和硬件接口卡、总线、串口、网口直接映射对应把计算过程放在模型里面不用在通过上位机Windows计算后配合板卡驱动操作降低了时效性。使用单独的计算机作为仿真机目的是要保证模型单独运行不收其他干扰。仿真机上RT是因为时效性要求这个所谓“实时”一方面是时间精度另一方面是数据的时标对齐。1.半实物仿真HILNI VeriStand 中模型、硬件接口、仿真机、时效性共同构成了半实物仿真HIL系统的核心框架1.1模型定义模型是仿真系统的逻辑核心用于模拟真实产品的内部行为如控制算法、物理动态。形式通常由 Simulink、LabVIEW 或 C 代码生成包含输入/输出端口软接口。作用将计算过程封装在模型中避免通过上位机计算直接与硬件接口映射提升时效性。在VeriStand中的角色通过Model Framework集成到 VeriStand 工程中作为仿真逻辑的载体输入/输出端口通过映射与硬件通道绑定实现信号交互。1.2硬件接口定义连接物理设备如 DAQ 板卡、CAN 总线的通道负责信号采集与输出。类型NI 标准设备如 PXI 采集卡自定义设备Custom Device封装非 NI 硬件的驱动仅暴露输入/输出接口。在VeriStand中的角色硬件接口的输入输出通道与模型的软接口直接映射形成“硬信号输入→模型计算→硬信号输出”闭环支持故障注入如短路信号、反射内存跨系统数据共享等高级功能。1.3仿真机定义独立运行的实时计算机如 PXI 控制器部署并执行模型和硬件接口逻辑。核心要求实时系统RT运行 NI Linux Real-Time 操作系统确保任务调度满足微秒级精度隔离性专用硬件避免其他进程干扰模型执行。在VeriStand中的角色作为 VeriStand 引擎的载体通过System Explorer配置并部署模型与硬件接口支持分布式系统多仿真机协同处理复杂场景如飞机多子系统仿真。1.4时效性定义系统响应速度和同步精度的综合指标核心包括时间精度控制循环周期如 1ms时标对齐数据产生与处理的严格时序同步。保障机制主控制环PCL并行模式模型异步执行数据延迟一个周期低延迟模式模型同步执行减少响应延迟牺牲速度时钟同步通过 PXI-6683 等模块同步多机时钟避免信号漂移反射内存如 cPCI-5565实现跨系统亚微秒级数据同步。1.5四者本质关系硬件接口是躯干信号通路模型是大脑逻辑计算仿真机是心脏实时引擎时效性是血液同步与调度——四者通过 VeriStand 整合为高保真半实物仿真系统。2.CDCustom DeviceCD是Custom Device的简称自定义设备是用于扩展 VeriStand 功能的核心模块允许用户将非 NI 标准硬件如串口设备、总线卡、第三方控制器或定制化算法集成到 VeriStand 的仿真环境中。CD 通过封装硬件驱动和通信协议将外部设备转化为 VeriStand 可识别的输入/输出通道如电压、数字信号、CAN 报文等实现硬件信号与仿真模型的直接映射。CD 可嵌入自定义算法如公式计算、数据预处理替代需通过上位机软件如 LabVIEW处理的逻辑提升时效性。2.1Custom Device的开发Custom Device 是 VeriStand 的“功能扩展卡”它让你能够将 VeriStand 原本不支持的硬件、协议或复杂算法无缝地、专业化地集成到你的实时测试与仿真系统中。在本文中主要用到了modbus slave来与VersiStand的CD进行演示,还会用到labview的modbus TCP。CD开发需要遵照NI提供的模板进行。安装完Veristand之后会在LabVIEW 安装目录下的vi.lib文件下生成【NI Veristand】目录。输入名字点击运行会生成以下自定义设备通常由一个XML文件和两个VI库组成。下图显示了自定义设备LabVIEW项目的组织结构。Initialization VI.vi实现的功能是当 Veristand 中创建该 Custom Device 时为Custom Device创建相对应的属性和输入/输出通道Main Page.vi实现的功能是在Veristand 中显示 Custom Device 相对应的通道和属性信息RTDriver.vi实现的是当Veristand 将 Custom Device 部署到 Real-Time 系统之后 Custom Device Loop 中 Custom Device如何执行自己的工作。因此可以看出前两者Initialization和main page运行的环境是上位机(Windows开发程序平台)可以加入“弹出对话框”等调试方式后者的主要操作环境是 Real-Time2.2Initialization VI.vi点击打开Initialization VI.vi文件维持此模板VI的连接器面板。此VI在新的自定义设备创建后被调用。系统资源管理器将设备创建为指定的自定义设备类型异步、内联等并根据自定义设备XML定义文件中的规定设置其依赖项。XML文件中的版本信息也已被应用。请在此处使用“设备项引用”和自定义XML中指定的内容来填充初始的自定义设备状态。控件位置如上图所示可按CtrlH然后鼠标悬停在想要了解的控件上进行了解。这个文件弄完就相当于搭建出了如上图一样的一个文件结构。2.3Main Page.vi添加如上图所示的两个控件整体情况如上图所示上面三图为具体情况。2.4RT Driver VI.vi整体情况如上图。刚创建时可以将Data Loop中的各种乱七八糟的东西删除然后再循环外左侧获取ip和端口号主要就是对Data Loop进行处理。断线重连上图。左侧子vi如下图所示右侧子vi如下图所示这里的起始地址全部用的2052随便输入都一样就行。完成后右键点击之后选择build all。然后新建Veristand文件进入SDF配置右键点击Custom Device如下图就出现了刚刚编写好的CD。点击添加后填写完记得保存。这里就算部署好了。接下来去modbus slave。进入后右击如下图所示点击进入完毕后点击ok点击上方的connection的connect返回verstand开始部署3.VeriStand项目打开VeriStand软件创建LEARNING中的Engine Demo默认工程进入后如图所示根据介绍运行一次体验体验可以打开工作区文件再根据提示打开日志规范文档运行后点开日志文档规范点击开始然后设置转速并启动发动机SystemDefineFile就是SDF文件其定义了系统一些参数。这是创建项目后项目中的各个文件项目文件.nivsproj这是VeriStand项目文件用于组织和管理整个测试项目相关的配置、设置、引用的资源等。它类似于一个项目容器记录了项目的整体结构和各项参数设置打开该文件可加载整个项目的配置信息到VeriStand环境中进行测试执行、参数调整等操作 。序列文件.nivsscr这是VeriStand序列文件用于定义测试执行的逻辑顺序和流程。可以在其中设置一系列的测试步骤比如先加载特定的刺激信号、然后进行数据采集、再执行某些控制操作等类似于一个测试脚本控制着测试过程的先后次序和具体动作。工作区文件.nivswd工作区文件存储了VeriStand工作区的相关配置包括用户界面布局、数据显示设置、监测变量的选择等信息。它保存了用户在VeriStand界面上的个性化设置和工作环境状态再次打开时可恢复到之前的工作布局和参数显示状态 。系统定义文件.nivssdf系统定义文件用于描述测试系统的硬件和软件组件及其相互连接关系。在该文件中可以定义输入输出通道、硬件设备如数据采集卡、控制器等的配置、模型接口等信息是构建测试系统架构的关键配置文件。Stimulus Profiles文件夹用于存放刺激配置相关的文件刺激配置定义了施加到被测系统的输入信号。UpdateParameter.txt可能用于定义在测试过程中需要更新的参数信息例如在不同测试阶段修改刺激信号的参数如幅值、频率等。Step Profile文件夹可能用于存放与阶跃信号刺激相关的配置文件阶跃信号是一种常见的测试激励信号此文件夹内可能包含针对阶跃刺激的具体参数设置、触发条件等内容。Table Profile可能用于存放基于表格形式定义的刺激配置文件通过表格可以精确地定义不同时间点的刺激信号值适用于复杂的信号变化场景。对nivssdf文件右键进入System Explorer3.1Target下Controller参数设置Target指的是仿真模型运行的平台。Controller中设置了运行平台的系统是普通的Windows还是实时的Pharlap(PXI机箱实时系统)、Vxworks或者Linux。此时需注意不同的平台或者叫操作系统下面的设备驱动是不一样的。Maximum streamed channels最大流通道数指的是系统能同时向主机如PC实时传输数据的通道数量上限。3.1.1 PCL Execution两种模式并行模式和低延迟模式PCL像是一个交通指挥官核心任务它要按照严格的时刻表指挥所有硬件、模型、数据等车辆在实时系统的道路上有序通行。两种指挥策略决定了数据到站的及时性并行模式parallel mode高效率但结果延迟在并行模式下PCL会启动模型的执行并持续进行下一轮的选代而不需要等待模型执行完毕。这导致模型执行和其产生的数据可供系统使用之间存在一个周期延迟低延迟模式low latency mode即时性但效率低在低延迟模式下PCL会等待模型执行循环完成向模型写入数据的过程然后才开始读取数据并将模型值发布到系统中。这个过程会发生在系统的每一次迭代中。当模型执行完成时PCL会在模型生成数据的同一选代中将模型提供的数据提供给其他循环。3.1.2 Data sharing暂时不知道干啥用。3.1.3 SLSCSLSCSwitch, Load, and Signal Conditioning是美国国家仪器NI为测试测量系统设计的模块化扩展架构主要用于增强PXI和CompactRIO等平台的信号调理、负载模拟和开关控制能力。信号调理Signal Conditioning对传感器原始信号进行放大、滤波、隔离或电平转换确保其能被DAQ设备精确采集例如将汽车ECU的24V电池信号转换为5V逻辑电平。负载模拟Load Simulation为被测设备如电机控制器提供虚拟负载模拟真实工况如突加/突减负载验证系统稳定性。开关控制Switching通过继电器模块实现信号路径的动态切换支持故障注入如模拟线缆断路以测试系统的容错能力。3.1.4 FPGAFPGA全称Field-Programmable Gate Array即现场可编程门阵列。 FPGA 是在 PAL、 GAL、 CPLD 等可编程器件的基础上进一步发展的产物 是作为专用集成电路 ASIC领域中的一种半定制电路而出现的既解决了定制电路的不足又克服了原有可编程器件门电路数有限的缺点。 简而言之 FPGA 就是一个可以通过编程来改变内部结构的芯片。3.1.5 NI-XNET接口NI-XNET是一个NI仪器驱动程序具有一组易用的常见功能用于读写PXI、PCI、NI CompactDAQ和NI CompactRIO等不同平台的汽车以太网、CANI、LIN和FlexRay帧和信号。NI-XNET CAN、LIN和FlexRay接口经优化适合需要对数百个CAN帧和信号进行高速实时操作的应用如硬件在环仿真、快速控制原型验证、总线监控和自动化控制等。在VeriStand环境中集成NI-XNET接口主要解决了汽车、航空航天等领域对高精度车载总线通信仿真与测试的核心需求。其核心价值在于将复杂的底层通信协议如CAN、LIN、FlexRay抽象化、标准化并与VeriStand的实时测试框架深度整合。3.2仿真模型Simulation Models在 NI VeriStand 中Simulation Models是一个容器或框架是 VeriStand 环境中的一个配置项你可以在System Explorer中找到它。它本身不是模型而是模型的载体和管理者。用于集成和管理那些定义了被测系统动态行为的数学模型。而这些被管理的具体文件就是Models。Simulation Models 是连接抽象的数学模型和具体的实时测试系统的桥梁。它让你能够将一个用数学公式描述的“虚拟产品”无缝地融入到由真实硬件、数据和界面构成的测试环境中从而实现对真实控制器的全面、安全、高效的测试。3.3User Channels用户通道3.4Alarms警报3.5Procedures处理4.如何用User Channels、Alarms、ProceduresUser Channels是由用户创建的可在VeriStand中使用的变量。使用Alarms、Procedures两个功能来监控User Channels的值超过指定范围时执行预设的处理程序。4.1创建User ChannelsUser Channels是由用户创建的变量存储单个值可以在Procedures、Stimulus Profile等中使用或者作为模型和Alarms的触发。如上图点击Add User Channels添加一个用户变量。4.2创建AlarmsAlarms警报用于监控指定通道的数值是否在范围内并根据该通道的数值执行预设的程序操作。Alarms面板如上图所示。Alarms列表显示已有Alarms的列表。Priority优先级是指Alarms调用的Procedure的执行优先级优先级列的数值在【031】之间数值越小则对应警报程序优先级越高高优先级的警报可以中断执行中的较低优先级警报程序。Alarms Groupsa、不同Group的Alarms并行执行不受优先级影响。b、同一Group的Alarms优先级高的Alarms优先执行中断程序插队同一优先级的Alarms根据触发时间排队执行。Procedure Priority该Alarm指定Procedure程序的执行优先级数值在【0,31】之间。Default State默认启用或不启用Alarm。Delay Durationsec触发Alarm到开始执行对应Procedure的延迟时间。ModNormal模式正常调起Procedure执行Indicate Only模式指仅弹出消息不执行对应Procedure。4.3创建ProcedureProcedure是程序启动或触发警报时执行的程序。上图是Procedure面板布局以及各个执行步骤说明。Procedure中没有else语句和if语句搭配只能通过跳转执行不同步骤。Procedure执行功能User Chunnel变量小于5时延迟3秒后置0,User Chunnel大于5时先置为2延迟3秒后再置0。Alarm Command的Re-Arm Alarm用于重置Alarm若无该指令则后续无法再次触发Alarm最后记得添加End步骤否则Alarm Command的Re-Arm Alarm指令无效。为什么要添加End步骤想象一下你正在通过电话向一个执行人员下达指令你测试序列在电话里说“现在去把一号警报器重置一下。”说完这句话后你立刻挂断了电话这就相当于序列执行到了End步骤。执行人员听到“嘟...嘟...”的忙音后知道你的指令说完了于是开始执行“重置一号警报器”的任务。现在想象另一种情况你说“现在去把一号警报器重置一下。”但说完后你没有挂电话紧接着又说“然后再去检查一下二号设备...”后面还有一堆其他指令。执行人员会怎么做他会等着直到你把所有指令都说完即整个序列执行完毕。因为他不知道你后面是否还有更重要的补充。在这个过程中他不会去执行重置警报器的操作。4.4部署运行在部署运行之前可以将SDF中弄好的User ChannelAlarm拖出来。拖出来后点击部署运行再在输入中修改数值就可以实现之前设计好的Alarm和Procedure。如下图所示。在工作区添加控件需要先部署运行然后打开工作区文件点击Screen中的Edit Mode。然后点击屏幕左侧就可以挑选合适的控件啦附小记1.输入/出英文Input/Output简写为 I/O是信息处理系统例如计算器与外部世界可能是人类或另一信息处理系统之间的通信。输入是系统接收的信号或数据输出则是从其发送的信号或数据。2.模拟Simulation模拟是模拟出原系统的一个抽象模型而不需要真的去做真实系统要做的事情。因此它其实不具备真实系统的功能只是当某一功能执行时通常不必输出功能执行的结果只是在 simulator 中记录下由此引发的状态变化。因此它通常用于设计初期的模型验证。3.仿真Emulation仿真是什么意思仿真是指利用模型模仿实际系统进行实验研究。仿真是以功能为基础的效仿。与模拟相比仿真则更进一步。仿真意味着使用硬件来模拟芯片如何近乎实时地运行速度。 该硬件使设计人员能够加快仿真过程的速度传统仿真软件的功能。 对于非常高性能的芯片尤其是在关键任务应用中这一点非常重要。仿真Emulation 要涉及到硬件实现的部分。4.LabVIEW和VeriStand分别是什么LabVIEW 是一个图形化的编程软件用来快速搭建和设计各种“游乐设施”和“表演项目”。它是给谁用的主要是给工程师和科学家用的。它做什么用你可以在电脑上画一个流程图LabVIEW 就能帮你创建一个真实的程序。比如你想做一个“过山车”你可以用LabVIEW来编程控制它的启动、加速、刹车、灯光和音效。它也是一个强大的数据采集和分析工具。比如你可以用它连接温度传感器实时监测并记录过山车发动机的温度或者分析采集到的振动数据看看运行是否平稳。核心特点灵活性高创造性强。你可以用它从零开始建造任何你想要的“游乐设施”。简单说LabVIEW 是用于【创造和测量】的软件你把想法用图形化的方式搭出来它就能在电脑和硬件上运行。VeriStand - 就像【主题公园的中央控制室】VeriStand 是一个现成的实时测试和仿真平台用来管理和运行整个“公园”的日常运营和压力测试。它是给谁用的主要是给测试工程师用的。它做什么用假设“过山车”已经用LabVIEW设计好了。现在你需要对它进行严格的测试比如连续运行1000次模拟各种极端天气或者突然断电的情况看看它会不会出问题。VeriStand 就是一个现成的“控制室”你不需要从零开始搭建控制界面。你可以轻松地把过山车的控制器、传感器、故障注入装置等都连接到VeriStand里。然后你可以在这个“控制室”里一键启动复杂的测试流程实时监控所有数据速度、温度、电压等并自动记录所有测试结果。核心特点开箱即用专注于实时测试。它提供了一个强大的框架让你能快速配置和执行自动化测试而不用花大量时间去编写底层控制程序。简单说VeriStand 是用于【测试和验证】的软件你把已有的东西硬件、模型接进来它帮你高效地完成各种测试任务。总结一下LabVIEW问你“你想做什么” —— 然后帮你把它做出来。VeriStand问你“你做好了东西想怎么系统地测试它” —— 然后提供一个专业的测试环境。两者都是美国国家仪器NI公司的产品在工业自动化、汽车、航空航天等测试测量领域被广泛应用5.DAQDAQData Acquisition采集卡是一种用于从传感器或其他设备中采集数据并将其转换为数字信号的硬件设备。它通常与计算机连接用于实时数据采集、处理和分析。DAQ采集卡广泛应用于工业自动化、实验室研究、医疗设备、环境监测等领域。6.通道Channel在 NI VeriStand 这个实时测试与硬件在环仿真平台上通道是最基本、最核心的数据单元。你可以把它理解为一个具有特定属性、存储单个数据值的变量。7.LabView中的VISAVISA的全称是Virtual Instrument Software Architecture即虚拟仪器软件架构。它是测量测试行业的一个标准 I/O API是 LabVIEW 乃至整个 NI 生态系统与外部仪器通信的基石。VISA 的核心作用接口无关性这是 VISA 最大的价值。无论你的仪器是通过哪种物理总线连接的你都可以使用相同的 VISA 函数VISA Write,VISA Read,VISA Configure等来进行操作。支持的接口类型包括GPIBIEEE-488串口RS-232USB以太网TCP/IP LXIPXI/CompactPCI你不需要为每种接口学习一套新的编程方法。资源抽象与管理VISA 使用一个统一的资源名称来标识每个仪器。这个名称通常看起来像GPIB0::1::INSTR、ASRL1::INSTR或TCPIP::192.168.0.10::INSTR。在 LabVIEW 中你只需要将这个资源名称传递给 VISA 函数它就会自动找到对应的硬件并完成所有底层的配置和通信。标准化编程模型VISA 提供了一套标准化的函数来处理仪器通信的完整生命周期VISA Open与仪器建立连接会话。VISA Write向仪器发送命令字符串或二进制。VISA Read从仪器读取返回的数据或测量结果。VISA Clear清空仪器的输入/输出缓冲区。VISA Close结束会话释放资源。总结来说VISA 让你无需关心仪器具体的连接方式和底层协议用一种标准化的方法就能与绝大多数测量仪器“对话”。8.上位机和下位机上位机Host Computer通常是指具有强大计算能力和数据处理能力的计算机系统。它负责整个控制系统的监控、指令下发、数据采集、处理分析以及用户交互。上位机作为系统的“大脑”能够处理复杂算法进行长期数据存储并提供图形化界面供用户操作。下位机Slave Device是指在控制系统中直接与传感器、执行器等硬件相连的设备或控制器。它负责执行上位机发出的具体控制指令如开关信号的输出、模拟量的调节、数据的采集等。下位机通常执行简单的逻辑判断和实时控制任务。核心比喻餐厅厨房你可以把整个系统想象成一家餐厅的运作下位机 后厨的厨师和学徒干什么他们在第一线负责具体的、重复性的体力活。比如切菜、炒菜、控制火候、看管烤箱。他们只管执行命令把菜做出来。特点专注、专业、反应快。你让他大火炒菜他立刻就能把火开到最大。但他们不关心今天来了多少客人也不管哪道菜最受欢迎。上位机 餐厅前台的经理/收银台干什么他面对顾客负责管理和决策。比如接收顾客的点单指令然后把“做一份宫保鸡丁”的命令下达给后厨。同时他还会看今天的销售报表数据分析哪道菜卖得好库存还够不够。特点宏观、管理、界面友好。他通过电脑或纸笔人机界面来工作能看到全局但不直接去碰锅碗瓢盆。通信 传菜员/对讲机经理上位机和厨师下位机之间需要沟通。经理通过对讲机通信线路如网线、串口喊话“5号桌宫保鸡丁一份” 这就是下达指令。厨师做完后也可能通过对讲机回复“宫保鸡丁好了” 或者报告“经理盐快用完了” 这就是上传状态和数据。总结一下角色下位机上位机身份一线员工、执行者管理者、决策者工作控制设备、采集数据、执行具体动作发送指令、监控状态、显示数据、存储分析特点实时性强、专注底层、结构简单、通常不配备豪华屏幕界面友好、功能丰富、处理复杂信息、通常是电脑/触摸屏思考方式“我该怎么把这件事做到最好”“我该让他去做什么事现在情况怎么样”
个人笔记VeriStand
Veristand介绍Veristand是一款NI推出的仿真工具通过整合设备和模型实现半实物仿真用于测试带逻辑功能的产品行为。用Veristand最大的目的就是将模型的输入输出和硬件接口卡、总线、串口、网口直接映射对应把计算过程放在模型里面不用在通过上位机Windows计算后配合板卡驱动操作降低了时效性。使用单独的计算机作为仿真机目的是要保证模型单独运行不收其他干扰。仿真机上RT是因为时效性要求这个所谓“实时”一方面是时间精度另一方面是数据的时标对齐。1.半实物仿真HILNI VeriStand 中模型、硬件接口、仿真机、时效性共同构成了半实物仿真HIL系统的核心框架1.1模型定义模型是仿真系统的逻辑核心用于模拟真实产品的内部行为如控制算法、物理动态。形式通常由 Simulink、LabVIEW 或 C 代码生成包含输入/输出端口软接口。作用将计算过程封装在模型中避免通过上位机计算直接与硬件接口映射提升时效性。在VeriStand中的角色通过Model Framework集成到 VeriStand 工程中作为仿真逻辑的载体输入/输出端口通过映射与硬件通道绑定实现信号交互。1.2硬件接口定义连接物理设备如 DAQ 板卡、CAN 总线的通道负责信号采集与输出。类型NI 标准设备如 PXI 采集卡自定义设备Custom Device封装非 NI 硬件的驱动仅暴露输入/输出接口。在VeriStand中的角色硬件接口的输入输出通道与模型的软接口直接映射形成“硬信号输入→模型计算→硬信号输出”闭环支持故障注入如短路信号、反射内存跨系统数据共享等高级功能。1.3仿真机定义独立运行的实时计算机如 PXI 控制器部署并执行模型和硬件接口逻辑。核心要求实时系统RT运行 NI Linux Real-Time 操作系统确保任务调度满足微秒级精度隔离性专用硬件避免其他进程干扰模型执行。在VeriStand中的角色作为 VeriStand 引擎的载体通过System Explorer配置并部署模型与硬件接口支持分布式系统多仿真机协同处理复杂场景如飞机多子系统仿真。1.4时效性定义系统响应速度和同步精度的综合指标核心包括时间精度控制循环周期如 1ms时标对齐数据产生与处理的严格时序同步。保障机制主控制环PCL并行模式模型异步执行数据延迟一个周期低延迟模式模型同步执行减少响应延迟牺牲速度时钟同步通过 PXI-6683 等模块同步多机时钟避免信号漂移反射内存如 cPCI-5565实现跨系统亚微秒级数据同步。1.5四者本质关系硬件接口是躯干信号通路模型是大脑逻辑计算仿真机是心脏实时引擎时效性是血液同步与调度——四者通过 VeriStand 整合为高保真半实物仿真系统。2.CDCustom DeviceCD是Custom Device的简称自定义设备是用于扩展 VeriStand 功能的核心模块允许用户将非 NI 标准硬件如串口设备、总线卡、第三方控制器或定制化算法集成到 VeriStand 的仿真环境中。CD 通过封装硬件驱动和通信协议将外部设备转化为 VeriStand 可识别的输入/输出通道如电压、数字信号、CAN 报文等实现硬件信号与仿真模型的直接映射。CD 可嵌入自定义算法如公式计算、数据预处理替代需通过上位机软件如 LabVIEW处理的逻辑提升时效性。2.1Custom Device的开发Custom Device 是 VeriStand 的“功能扩展卡”它让你能够将 VeriStand 原本不支持的硬件、协议或复杂算法无缝地、专业化地集成到你的实时测试与仿真系统中。在本文中主要用到了modbus slave来与VersiStand的CD进行演示,还会用到labview的modbus TCP。CD开发需要遵照NI提供的模板进行。安装完Veristand之后会在LabVIEW 安装目录下的vi.lib文件下生成【NI Veristand】目录。输入名字点击运行会生成以下自定义设备通常由一个XML文件和两个VI库组成。下图显示了自定义设备LabVIEW项目的组织结构。Initialization VI.vi实现的功能是当 Veristand 中创建该 Custom Device 时为Custom Device创建相对应的属性和输入/输出通道Main Page.vi实现的功能是在Veristand 中显示 Custom Device 相对应的通道和属性信息RTDriver.vi实现的是当Veristand 将 Custom Device 部署到 Real-Time 系统之后 Custom Device Loop 中 Custom Device如何执行自己的工作。因此可以看出前两者Initialization和main page运行的环境是上位机(Windows开发程序平台)可以加入“弹出对话框”等调试方式后者的主要操作环境是 Real-Time2.2Initialization VI.vi点击打开Initialization VI.vi文件维持此模板VI的连接器面板。此VI在新的自定义设备创建后被调用。系统资源管理器将设备创建为指定的自定义设备类型异步、内联等并根据自定义设备XML定义文件中的规定设置其依赖项。XML文件中的版本信息也已被应用。请在此处使用“设备项引用”和自定义XML中指定的内容来填充初始的自定义设备状态。控件位置如上图所示可按CtrlH然后鼠标悬停在想要了解的控件上进行了解。这个文件弄完就相当于搭建出了如上图一样的一个文件结构。2.3Main Page.vi添加如上图所示的两个控件整体情况如上图所示上面三图为具体情况。2.4RT Driver VI.vi整体情况如上图。刚创建时可以将Data Loop中的各种乱七八糟的东西删除然后再循环外左侧获取ip和端口号主要就是对Data Loop进行处理。断线重连上图。左侧子vi如下图所示右侧子vi如下图所示这里的起始地址全部用的2052随便输入都一样就行。完成后右键点击之后选择build all。然后新建Veristand文件进入SDF配置右键点击Custom Device如下图就出现了刚刚编写好的CD。点击添加后填写完记得保存。这里就算部署好了。接下来去modbus slave。进入后右击如下图所示点击进入完毕后点击ok点击上方的connection的connect返回verstand开始部署3.VeriStand项目打开VeriStand软件创建LEARNING中的Engine Demo默认工程进入后如图所示根据介绍运行一次体验体验可以打开工作区文件再根据提示打开日志规范文档运行后点开日志文档规范点击开始然后设置转速并启动发动机SystemDefineFile就是SDF文件其定义了系统一些参数。这是创建项目后项目中的各个文件项目文件.nivsproj这是VeriStand项目文件用于组织和管理整个测试项目相关的配置、设置、引用的资源等。它类似于一个项目容器记录了项目的整体结构和各项参数设置打开该文件可加载整个项目的配置信息到VeriStand环境中进行测试执行、参数调整等操作 。序列文件.nivsscr这是VeriStand序列文件用于定义测试执行的逻辑顺序和流程。可以在其中设置一系列的测试步骤比如先加载特定的刺激信号、然后进行数据采集、再执行某些控制操作等类似于一个测试脚本控制着测试过程的先后次序和具体动作。工作区文件.nivswd工作区文件存储了VeriStand工作区的相关配置包括用户界面布局、数据显示设置、监测变量的选择等信息。它保存了用户在VeriStand界面上的个性化设置和工作环境状态再次打开时可恢复到之前的工作布局和参数显示状态 。系统定义文件.nivssdf系统定义文件用于描述测试系统的硬件和软件组件及其相互连接关系。在该文件中可以定义输入输出通道、硬件设备如数据采集卡、控制器等的配置、模型接口等信息是构建测试系统架构的关键配置文件。Stimulus Profiles文件夹用于存放刺激配置相关的文件刺激配置定义了施加到被测系统的输入信号。UpdateParameter.txt可能用于定义在测试过程中需要更新的参数信息例如在不同测试阶段修改刺激信号的参数如幅值、频率等。Step Profile文件夹可能用于存放与阶跃信号刺激相关的配置文件阶跃信号是一种常见的测试激励信号此文件夹内可能包含针对阶跃刺激的具体参数设置、触发条件等内容。Table Profile可能用于存放基于表格形式定义的刺激配置文件通过表格可以精确地定义不同时间点的刺激信号值适用于复杂的信号变化场景。对nivssdf文件右键进入System Explorer3.1Target下Controller参数设置Target指的是仿真模型运行的平台。Controller中设置了运行平台的系统是普通的Windows还是实时的Pharlap(PXI机箱实时系统)、Vxworks或者Linux。此时需注意不同的平台或者叫操作系统下面的设备驱动是不一样的。Maximum streamed channels最大流通道数指的是系统能同时向主机如PC实时传输数据的通道数量上限。3.1.1 PCL Execution两种模式并行模式和低延迟模式PCL像是一个交通指挥官核心任务它要按照严格的时刻表指挥所有硬件、模型、数据等车辆在实时系统的道路上有序通行。两种指挥策略决定了数据到站的及时性并行模式parallel mode高效率但结果延迟在并行模式下PCL会启动模型的执行并持续进行下一轮的选代而不需要等待模型执行完毕。这导致模型执行和其产生的数据可供系统使用之间存在一个周期延迟低延迟模式low latency mode即时性但效率低在低延迟模式下PCL会等待模型执行循环完成向模型写入数据的过程然后才开始读取数据并将模型值发布到系统中。这个过程会发生在系统的每一次迭代中。当模型执行完成时PCL会在模型生成数据的同一选代中将模型提供的数据提供给其他循环。3.1.2 Data sharing暂时不知道干啥用。3.1.3 SLSCSLSCSwitch, Load, and Signal Conditioning是美国国家仪器NI为测试测量系统设计的模块化扩展架构主要用于增强PXI和CompactRIO等平台的信号调理、负载模拟和开关控制能力。信号调理Signal Conditioning对传感器原始信号进行放大、滤波、隔离或电平转换确保其能被DAQ设备精确采集例如将汽车ECU的24V电池信号转换为5V逻辑电平。负载模拟Load Simulation为被测设备如电机控制器提供虚拟负载模拟真实工况如突加/突减负载验证系统稳定性。开关控制Switching通过继电器模块实现信号路径的动态切换支持故障注入如模拟线缆断路以测试系统的容错能力。3.1.4 FPGAFPGA全称Field-Programmable Gate Array即现场可编程门阵列。 FPGA 是在 PAL、 GAL、 CPLD 等可编程器件的基础上进一步发展的产物 是作为专用集成电路 ASIC领域中的一种半定制电路而出现的既解决了定制电路的不足又克服了原有可编程器件门电路数有限的缺点。 简而言之 FPGA 就是一个可以通过编程来改变内部结构的芯片。3.1.5 NI-XNET接口NI-XNET是一个NI仪器驱动程序具有一组易用的常见功能用于读写PXI、PCI、NI CompactDAQ和NI CompactRIO等不同平台的汽车以太网、CANI、LIN和FlexRay帧和信号。NI-XNET CAN、LIN和FlexRay接口经优化适合需要对数百个CAN帧和信号进行高速实时操作的应用如硬件在环仿真、快速控制原型验证、总线监控和自动化控制等。在VeriStand环境中集成NI-XNET接口主要解决了汽车、航空航天等领域对高精度车载总线通信仿真与测试的核心需求。其核心价值在于将复杂的底层通信协议如CAN、LIN、FlexRay抽象化、标准化并与VeriStand的实时测试框架深度整合。3.2仿真模型Simulation Models在 NI VeriStand 中Simulation Models是一个容器或框架是 VeriStand 环境中的一个配置项你可以在System Explorer中找到它。它本身不是模型而是模型的载体和管理者。用于集成和管理那些定义了被测系统动态行为的数学模型。而这些被管理的具体文件就是Models。Simulation Models 是连接抽象的数学模型和具体的实时测试系统的桥梁。它让你能够将一个用数学公式描述的“虚拟产品”无缝地融入到由真实硬件、数据和界面构成的测试环境中从而实现对真实控制器的全面、安全、高效的测试。3.3User Channels用户通道3.4Alarms警报3.5Procedures处理4.如何用User Channels、Alarms、ProceduresUser Channels是由用户创建的可在VeriStand中使用的变量。使用Alarms、Procedures两个功能来监控User Channels的值超过指定范围时执行预设的处理程序。4.1创建User ChannelsUser Channels是由用户创建的变量存储单个值可以在Procedures、Stimulus Profile等中使用或者作为模型和Alarms的触发。如上图点击Add User Channels添加一个用户变量。4.2创建AlarmsAlarms警报用于监控指定通道的数值是否在范围内并根据该通道的数值执行预设的程序操作。Alarms面板如上图所示。Alarms列表显示已有Alarms的列表。Priority优先级是指Alarms调用的Procedure的执行优先级优先级列的数值在【031】之间数值越小则对应警报程序优先级越高高优先级的警报可以中断执行中的较低优先级警报程序。Alarms Groupsa、不同Group的Alarms并行执行不受优先级影响。b、同一Group的Alarms优先级高的Alarms优先执行中断程序插队同一优先级的Alarms根据触发时间排队执行。Procedure Priority该Alarm指定Procedure程序的执行优先级数值在【0,31】之间。Default State默认启用或不启用Alarm。Delay Durationsec触发Alarm到开始执行对应Procedure的延迟时间。ModNormal模式正常调起Procedure执行Indicate Only模式指仅弹出消息不执行对应Procedure。4.3创建ProcedureProcedure是程序启动或触发警报时执行的程序。上图是Procedure面板布局以及各个执行步骤说明。Procedure中没有else语句和if语句搭配只能通过跳转执行不同步骤。Procedure执行功能User Chunnel变量小于5时延迟3秒后置0,User Chunnel大于5时先置为2延迟3秒后再置0。Alarm Command的Re-Arm Alarm用于重置Alarm若无该指令则后续无法再次触发Alarm最后记得添加End步骤否则Alarm Command的Re-Arm Alarm指令无效。为什么要添加End步骤想象一下你正在通过电话向一个执行人员下达指令你测试序列在电话里说“现在去把一号警报器重置一下。”说完这句话后你立刻挂断了电话这就相当于序列执行到了End步骤。执行人员听到“嘟...嘟...”的忙音后知道你的指令说完了于是开始执行“重置一号警报器”的任务。现在想象另一种情况你说“现在去把一号警报器重置一下。”但说完后你没有挂电话紧接着又说“然后再去检查一下二号设备...”后面还有一堆其他指令。执行人员会怎么做他会等着直到你把所有指令都说完即整个序列执行完毕。因为他不知道你后面是否还有更重要的补充。在这个过程中他不会去执行重置警报器的操作。4.4部署运行在部署运行之前可以将SDF中弄好的User ChannelAlarm拖出来。拖出来后点击部署运行再在输入中修改数值就可以实现之前设计好的Alarm和Procedure。如下图所示。在工作区添加控件需要先部署运行然后打开工作区文件点击Screen中的Edit Mode。然后点击屏幕左侧就可以挑选合适的控件啦附小记1.输入/出英文Input/Output简写为 I/O是信息处理系统例如计算器与外部世界可能是人类或另一信息处理系统之间的通信。输入是系统接收的信号或数据输出则是从其发送的信号或数据。2.模拟Simulation模拟是模拟出原系统的一个抽象模型而不需要真的去做真实系统要做的事情。因此它其实不具备真实系统的功能只是当某一功能执行时通常不必输出功能执行的结果只是在 simulator 中记录下由此引发的状态变化。因此它通常用于设计初期的模型验证。3.仿真Emulation仿真是什么意思仿真是指利用模型模仿实际系统进行实验研究。仿真是以功能为基础的效仿。与模拟相比仿真则更进一步。仿真意味着使用硬件来模拟芯片如何近乎实时地运行速度。 该硬件使设计人员能够加快仿真过程的速度传统仿真软件的功能。 对于非常高性能的芯片尤其是在关键任务应用中这一点非常重要。仿真Emulation 要涉及到硬件实现的部分。4.LabVIEW和VeriStand分别是什么LabVIEW 是一个图形化的编程软件用来快速搭建和设计各种“游乐设施”和“表演项目”。它是给谁用的主要是给工程师和科学家用的。它做什么用你可以在电脑上画一个流程图LabVIEW 就能帮你创建一个真实的程序。比如你想做一个“过山车”你可以用LabVIEW来编程控制它的启动、加速、刹车、灯光和音效。它也是一个强大的数据采集和分析工具。比如你可以用它连接温度传感器实时监测并记录过山车发动机的温度或者分析采集到的振动数据看看运行是否平稳。核心特点灵活性高创造性强。你可以用它从零开始建造任何你想要的“游乐设施”。简单说LabVIEW 是用于【创造和测量】的软件你把想法用图形化的方式搭出来它就能在电脑和硬件上运行。VeriStand - 就像【主题公园的中央控制室】VeriStand 是一个现成的实时测试和仿真平台用来管理和运行整个“公园”的日常运营和压力测试。它是给谁用的主要是给测试工程师用的。它做什么用假设“过山车”已经用LabVIEW设计好了。现在你需要对它进行严格的测试比如连续运行1000次模拟各种极端天气或者突然断电的情况看看它会不会出问题。VeriStand 就是一个现成的“控制室”你不需要从零开始搭建控制界面。你可以轻松地把过山车的控制器、传感器、故障注入装置等都连接到VeriStand里。然后你可以在这个“控制室”里一键启动复杂的测试流程实时监控所有数据速度、温度、电压等并自动记录所有测试结果。核心特点开箱即用专注于实时测试。它提供了一个强大的框架让你能快速配置和执行自动化测试而不用花大量时间去编写底层控制程序。简单说VeriStand 是用于【测试和验证】的软件你把已有的东西硬件、模型接进来它帮你高效地完成各种测试任务。总结一下LabVIEW问你“你想做什么” —— 然后帮你把它做出来。VeriStand问你“你做好了东西想怎么系统地测试它” —— 然后提供一个专业的测试环境。两者都是美国国家仪器NI公司的产品在工业自动化、汽车、航空航天等测试测量领域被广泛应用5.DAQDAQData Acquisition采集卡是一种用于从传感器或其他设备中采集数据并将其转换为数字信号的硬件设备。它通常与计算机连接用于实时数据采集、处理和分析。DAQ采集卡广泛应用于工业自动化、实验室研究、医疗设备、环境监测等领域。6.通道Channel在 NI VeriStand 这个实时测试与硬件在环仿真平台上通道是最基本、最核心的数据单元。你可以把它理解为一个具有特定属性、存储单个数据值的变量。7.LabView中的VISAVISA的全称是Virtual Instrument Software Architecture即虚拟仪器软件架构。它是测量测试行业的一个标准 I/O API是 LabVIEW 乃至整个 NI 生态系统与外部仪器通信的基石。VISA 的核心作用接口无关性这是 VISA 最大的价值。无论你的仪器是通过哪种物理总线连接的你都可以使用相同的 VISA 函数VISA Write,VISA Read,VISA Configure等来进行操作。支持的接口类型包括GPIBIEEE-488串口RS-232USB以太网TCP/IP LXIPXI/CompactPCI你不需要为每种接口学习一套新的编程方法。资源抽象与管理VISA 使用一个统一的资源名称来标识每个仪器。这个名称通常看起来像GPIB0::1::INSTR、ASRL1::INSTR或TCPIP::192.168.0.10::INSTR。在 LabVIEW 中你只需要将这个资源名称传递给 VISA 函数它就会自动找到对应的硬件并完成所有底层的配置和通信。标准化编程模型VISA 提供了一套标准化的函数来处理仪器通信的完整生命周期VISA Open与仪器建立连接会话。VISA Write向仪器发送命令字符串或二进制。VISA Read从仪器读取返回的数据或测量结果。VISA Clear清空仪器的输入/输出缓冲区。VISA Close结束会话释放资源。总结来说VISA 让你无需关心仪器具体的连接方式和底层协议用一种标准化的方法就能与绝大多数测量仪器“对话”。8.上位机和下位机上位机Host Computer通常是指具有强大计算能力和数据处理能力的计算机系统。它负责整个控制系统的监控、指令下发、数据采集、处理分析以及用户交互。上位机作为系统的“大脑”能够处理复杂算法进行长期数据存储并提供图形化界面供用户操作。下位机Slave Device是指在控制系统中直接与传感器、执行器等硬件相连的设备或控制器。它负责执行上位机发出的具体控制指令如开关信号的输出、模拟量的调节、数据的采集等。下位机通常执行简单的逻辑判断和实时控制任务。核心比喻餐厅厨房你可以把整个系统想象成一家餐厅的运作下位机 后厨的厨师和学徒干什么他们在第一线负责具体的、重复性的体力活。比如切菜、炒菜、控制火候、看管烤箱。他们只管执行命令把菜做出来。特点专注、专业、反应快。你让他大火炒菜他立刻就能把火开到最大。但他们不关心今天来了多少客人也不管哪道菜最受欢迎。上位机 餐厅前台的经理/收银台干什么他面对顾客负责管理和决策。比如接收顾客的点单指令然后把“做一份宫保鸡丁”的命令下达给后厨。同时他还会看今天的销售报表数据分析哪道菜卖得好库存还够不够。特点宏观、管理、界面友好。他通过电脑或纸笔人机界面来工作能看到全局但不直接去碰锅碗瓢盆。通信 传菜员/对讲机经理上位机和厨师下位机之间需要沟通。经理通过对讲机通信线路如网线、串口喊话“5号桌宫保鸡丁一份” 这就是下达指令。厨师做完后也可能通过对讲机回复“宫保鸡丁好了” 或者报告“经理盐快用完了” 这就是上传状态和数据。总结一下角色下位机上位机身份一线员工、执行者管理者、决策者工作控制设备、采集数据、执行具体动作发送指令、监控状态、显示数据、存储分析特点实时性强、专注底层、结构简单、通常不配备豪华屏幕界面友好、功能丰富、处理复杂信息、通常是电脑/触摸屏思考方式“我该怎么把这件事做到最好”“我该让他去做什么事现在情况怎么样”