vTESTstudio - VT System CAPL Functions - VT7001(续1)

news2024/10/6 22:33:18

vtsSetInterconnectionMode - 设置VT7001的电源输出模式

功能:设置电源模块VT7001的三个可能电源和两个电源输出的互连模式。

注意:此函数不能在任何CAPL处理程序例程或ECU节点中调用。它只能在测试模块的MainTest方法上下文中调用;使用在测量开始时的测试模块设置初始状态。

Target:目标通道变量空间名称,例如:VTS::PowerSupply

Mode:连接模式。

Value

Enum

Short Description

0

eVTSInterconnectionModeSupInt

内部电源供电 (mode supint)

1

eVTSInterconnectionModeSup1

电源Supply 1供电 (mode sup1)

2

eVTSInterconnectionModeSup2

电源Supply 2供电 (mode sup2)

3

eVTSInterconnectionModeSupIntSup1

OUT1和OUT2的两个独立电源:内部电源和电源1(mode supint_sup1)

4

eVTSInterconnectionModeSupIntSup2

OUT1和OUT2的两个独立电源:内部电源和电源2 (mode supint_sup2)

5

eVTSInterconnectionModeSup1SupInt

OUT1和OUT2的两个独立电源:电源1和内部电源 (mode sup1_supint)

6

eVTSInterconnectionModeSup1Sup2

OUT1和OUT2的两个独立电源: power supply 1 and power supply 2 (mode sup1_sup2)

7

eVTSInterconnectionModeSup2SupInt

OUT1和OUT2的两个独立电源: power supply 2 and internal power supply (mode sup2_supint)

8

eVTSInterconnectionModeSup2Sup1

OUT1和OUT2的两个独立电源: power supply 2 and power supply 1 (mode sup2_sup1)

9

eVTSInterconnectionModeSupSeries

电源1和电源2串联连接 (sup_series)

10

eVTSInterconnectionModeSupParallel

电源1和电源2并联 (sup_parallel)

返回值:

0:成功重置目标通道最大和最小值

-1:调用错误

-2: 调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。

-3: 指定的模式无效

-4: 未在测试模块的主方法上下文中调用该函数。因此,不可能等到从VT系统接收设置。否则,呼叫成功,但不确定呼叫返回时是否已接管设置。

Demo演示

内部电源单元提供电力,并且ECU连接到OUT1(KL30)、OUT2(KL15)和GND1(KL31)。在本例中,内部电源单元的通道名为“IntSupply”,两个输出通道名为为“Clamp30”和“Clamp15”,VT7001模块名为“PowerSupply”。

InternalPowerSupply ()
{
   // 将模式设置为仅一个电源->内部电源
   vtsSetInterconnectionMode("VTS::PowerSupply", eVTSInterconnectionModeSupInt);

   // 设置电压 12.0 V
   vtsSetRefVoltageMode("VTS::IntSupply", 1);
   @sysvar::VTS::IntSupply::RefVoltage = 12.0;

   // 打开两个输出
   @sysvar::VTS::Clamp30::Active = eVTSOutputModeActive;
   @sysvar::VTS::Clamp15::Active = eVTSOutputModeActive;

   //通过卡箍15测量ECU消耗的电流
   //2秒后(结果写入写入窗口)
   TestWaitForTimeOut(2000);
   write("ECU is consuming %fmA.", @sysvar::VTS::Clamp30::AvgCurrent);
}

vtsSetMaxCurrentMode -设置控制电压输出的模式

功能:设置控制电压输出的模式,以控制电源的最大输出电流。

Target:目标通道变量空间名称,例如:VTS::ExtSupply

Mode:连接模式。

Value

Short Description

0

最大电流控制电压输出未激活

1

恒定值,由相应的输出系统变量确定

Factor:根据定义的(使用系统变量或波形)电源最大电流值确定控制电压的系数。

电源最大电流*因数=控制电压

测量开始时,该系数的默认值为1.0。如果在没有因子参数的情况下调用函数,则保留当前设置的因子。

返回值:

0:成功重置目标通道最大和最小值

-1:调用错误

-2: 调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。

-3: 指定的模式无效

-4: 未在测试模块的主方法上下文中调用该函数。因此,不可能等到从VT系统接收设置。否则,呼叫成功,但不确定呼叫返回时是否已接管设置。

Demo演示

在以下示例中,最大电流模式在VT7001模块的电源通道ExtSupply上激活。最大电流输出设置为10A。最后激活VT7001的输出Clamp30。为了设置10A的最大电流,例如,必须向电源提供5.0 V的控制电压。因此,必须使用系数0.5。

SetMaxCurrentMode ()
{
   // 将模式设置为仅一个电源->外部电源1
   vtsSetInterconnectionMode("VTS::PowerSupply", 1);

   // 用定值模式激活最大电流模式
   // 系数为0.5
   vtsSetMaxCurrentMode("VTS::ExtSupply", 1, 0.5);

   // 将电源设置为最大10A
   @sysvar::VTS::ExtSupply::MaxCurrent = 10.0;

   // 打开开关输出
   @sysvar::VTS::Clamp30::Active = 1;
}

vtsSetMinCurrentMeasurementRange -设置VT7001模块自动测量范围转换时应使用的当前测量范围

功能:设置VT7001/VT2808模块自动测量范围转换应使用的当前测量范围。将不再使用低于范围参数中设置的范围的安培范围。这防止了在专用情况下的测量范围转换。即使未使用指定安培数的测量范围,这并不意味着无法进行测量。由于在这种情况下不使用最佳分流器,因此测量精度降低到手册给定值以下。使用的测量范围与最佳值的差异越大,精度越低。因此,应谨慎设置范围。

Target:目标通道变量空间名称,例如:VTS::ECUSupplyModule

Range:确定自动测量范围转换可切换到的范围。

Value

Enum

Short Description

0

eVTSCurrentMeasurementRange100uA

将使用所有测量范围。

1

eVTSCurrentMeasurementRange1mA

最低使用范围:100µA…1mA

2

eVTSCurrentMeasurementRange10mA

最低使用范围:1mA…10mA

3

eVTSCurrentMeasurementRange100mA

最低使用范围:10mA…100mA

4

eVTSCurrentMeasurementRange1A

最低使用范围:100mA…1A

5

eVTSCurrentMeasurementRange10A

最低使用范围:1A…10A

6

eVTSCurrentMeasurementRange100A

最低使用范围:10A…100A

返回值:

0:成功重置目标通道最大和最小值

-1:调用错误

-2: 调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。

-3: 指定的模式无效

-4: 未在测试模块的主方法上下文中调用该函数。因此,不可能等到从VT系统接收设置。否则,呼叫成功,但不确定呼叫返回时是否已接管设置。

Demo演示

本示例显示了在负载接通之前,如何锁定高达100mA的测量范围进行测量

PerformMeasurementAtActivation()
{
   //准备VT7001模块(固定电压的外部电源
   //连接到PS1连接器)
   vtsSetInterconnectionMode( "VTS::ECUSupplyModule", eVTSInterconnectionModeSup1);

   //配置输出以使用大于100mA的电流测量范围
   //并等待应用设置。预期电流低于1A
   //因此不应进行测量范围转换。
   vtsSetMinCurrentMeasurementRange( "VTS::ECUSupply", eVTSCurrentMeasurementRange1A);
   TestWaitForTimeOut(50);

   // 激活电源输出
   @sysvar::VTS::ECUSupply::Active = 1;
   // 可以在不改变测量范围的情况下测量激活
}

vtsSetRefVoltageMode -设置参考电压输出的模式

功能:设设置参考电压输出的模式,以控制电源的输出电压

Target:目标通道变量空间名称,例如:VTS::ExtSupply

Mode:

Value

Enum

Short Description

0

eVTSRefVoltageModeInactive

参考电压输出未激活

1

eVTSRefVoltageModeConstant

恒定值,由相应的输出系统变量确定

2

eVTSRefVoltageModeAnalogWaveForm

模拟波形;使用LoadWFVoltage加载,然后使用StartStimulation启动

返回值:

0:成功重置目标通道最大和最小值

-1:调用错误

-2: 调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。

-3: 指定的模式无效

-4: 未在测试模块的主方法上下文中调用该函数。因此,不可能等到从VT系统接收设置。否则,呼叫成功,但不确定呼叫返回时是否已接管设置。

Demo演示

为了输出导致所需输出电压VOut的控制电压(V_Control),VT7001必须知道电源因数。

下面示例中,外部电源的因数为0.1,期望的输出电压V_Out为15V。

为了获得所需的输出电压(V_Out),VT7001自动计算并设置控制电压(V_Control)(1.5 V=15*0.1),从而产生15 V的输出电压。

SetRefVoltageMode ()
{
   // 将模式设置为仅一个电源->外部电源1
   vtsSetInterconnectionMode("VTS::PowerSupply", eVTSInterconnectionModeSup1);

   // 外部电源的因数0.1传输至VT7001
   vtsSetRefVoltageMode("VTS::ExtSupply", eVTSRefVoltageModeConstant, 0.1);

   //下面的线将输出电压设置为15V,
   //VControl(1.5 V)用给定的系数自动计算
   @sysvar::VTS::ExtSupply::RefVoltage = 15;

   // 打开输出开关
   @sysvar::VTS::Clamp30::Active = eVTSOutputModeActive;
}

vtsSerialSetOnErrorHandler -设置在发送或接收操作期间发生错误时发出通知的回调

功能:设置在发送或接收操作期间发生错误时发出通知的回调。

set回调必须具有以下签名:void<OnSerialError>(dword errorFlags)

Target:目标通道变量空间名称,例如:VTS::ExtSupply

onErrorCallback:CAPL回调函数名

返回值:

0:成功重置目标通道最大和最小值

-1:非特定错误

-2: 调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。

-3: 传递的回调没有所需的签名。

Demo演示

为了输出导致所需输出电压VOut的控制电压(V_Control),VT7001必须知道电源因数。

下面示例中,外部电源的因数为0.1,期望的输出电压V_Out为15V。

为了获得所需的输出电压(V_Out),VT7001自动计算并设置控制电压(V_Control)(1.5 V=15*0.1),从而产生15 V的输出电压。

RS232Init_Example ()
{
   //声明RS232通信的变量
   char stringToSend[20] = "Hello World !"; // 字符串发送
   byte sendBuffer[20];                     // 用于保存发送数据的字节数组
   byte receiveBuffer[20];                  // 定义接收buffer
   int i;                                   // 字符长度

   //注册RS232回调函数
   vtsSerialSetOnErrorHandler("VTS::ECUPowerSupply", "OnRS232Error");
   vtsSerialSetOnReceiveHandler("VTS::ECUPowerSupply", "OnRS232Receive");
   vtsSerialSetOnSendHandler("VTS::ECUPowerSupply", "OnRS232Sent");

   //配置串行端口,即用于与外部通信
   //ECU电源至9600波特,8个数据位,1个停止位,无奇偶校验
   vtsSerialConfigure("VTS::ECUPowerSupply", eVTSBaudRate9600, eVTSDataBitsEight, eVTSStopBitsOne, eVTSParityNone);

   // 打开串行端口,即与外部ECU电源通信
   vtsSerialOpen("VTS::ECUPowerSupply");

  // 短暂等待以确保应用了设置并且端口已就绪
   TestWaitForTimeOut(10);

   // 关闭串口
   vtsSerialClose("VTS::ECUPowerSupply");
}

VT7001作为VT系统的电源板卡,几乎所有的VT 系统都要选择该板卡,其重要性不言而喻,因此介绍的相关函数均有极大可能在自动化开发中使用,大家可以提前做个了解,后面真正使用的时候可以作为参考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/363080.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业为什么需要数据可视化报表

数据可视化报表是在商业环境、市场环境已经改变之后,发展出来为当前企业提供替代解决办法的重要方案。而且信息化、数字化时代,很多企业已经进行了初步的信息化建设,沉淀了大量业务数据,这些数据作为企业的资产,是需要…

Logstash:在 Logstash 管道中的定制的 Elasticsearch update by query

我们知道 Elasticsearch output plugin 为我们在 Logstash 的 pipeline 中向 Elasticsearch 的写入提供了可能。我们可以使用如下的格式向 Elasticsearch 写入数据: elasticsearch {hosts > ["https://localhost:9200"]index > "data-%{YYYY.M…

ROS2手写自定义点云(PointCloud2)数据并发布

目录前言实现前言 继续学习ROS2,最近把navigation2的路径规划部分学习了一遍,但是还没有进行测试,于是先把这个部分先空出来后面再总结。先写一个与避障有关系的如何自己发点云数据。 在nav2里面有一个非常重要的部分就是costmap部分&#…

Python是未来的编程语言?学Python前景如何?薪资高吗?

Python是一种强大的语言,为世界各地的开发人员提供了多种用途。根据TIOBE指数,Python的排名还在继续攀升。开发人员和技术专业人员也不断发现Python的新用途,包括数据分析和机器学习等。 Python现在有着庞大的用户基础,并且它深深…

经纬度坐标点和距离之间的转换

1.纬度相同,经度不同 在纬度相同的情况下: 经度每隔0.00001度,距离相差约1米; 每隔0.0001度,距离相差约10米; 每隔0.001度,距离相差约100米; 每隔0.01度,距离相差约1000米…

Linux 远程登录

Linux 一般作为服务器使用,而服务器一般放在机房,你不可能在机房操作你的 Linux 服务器。 这时我们就需要远程登录到Linux服务器来管理维护系统。 Linux 系统中是通过 ssh 服务实现的远程登录功能,默认 ssh 服务端口号为 22。 Window 系统…

SpringCloud+Dubbo3 = 王炸 !

前言 全链路异步化的大趋势来了 随着业务的发展,微服务应用的流量越来越大,使用到的资源也越来越多。 在微服务架构下,大量的应用都是 SpringCloud 分布式架构,这种架构总体上是全链路同步模式。 全链路同步模式不仅造成了资源…

第二章 runtime-core初始化核心流程和runtime-core更新核心流程

runtime-core初始化核心流程 1 创建app 2 进行初始化 2.1 基于组件生成虚拟节点 2.2 进行render 调用patch 根据不同的vnode类型进行不同类型的组件处理 组件 2.2.1 创建component instance对象 2.2.2 setup component 初始化props slots 各种 2.2.3 setupRenderEffect…

通过Docker部署rancher

先创建k8s集群 https://blog.csdn.net/weixin_44371237/article/details/123974335 环境准备 一台linux主机,4G内存 通过Docker部署rancher 启动rancher docker run --privileged -d --restartunless-stopped -p 80:80 -p 443:443 rancher/rancher查看本地镜像…

python基础:简单实现从网页中获取小说名单列表并存入文件中

python基础:简单实现从网页中获取小说名单列表并存入文件中1.技术储备 requests:requests是使用Apache2 licensed 许可证的HTTP库,可以用于网页数据请求 requests.get():发起网络请求的一种方式,类似的还有post、 put、 delete、…

[MySQL]基本数据类型及表的基本操作

哈喽,大家好!我是保护小周ღ,本期为大家带来的是 MySQL 数据库常用的数据类型,数据表的基本操作:创建、删除、修改表,针对修改表的结构进行了讲解,随后是如何向数据表中添加数据,浅浅…

Vulnhub_Venom

目录 一 测试 (一)信息收集 1 端口服务探测 2 目录扫描 3 前端源码信息收集 (二)漏洞发现 1 前端注释敏感信息泄露 2 CVE-2018-19422-Subrion CMS v 4.2.1任意文件上传 (三)提权 1 sudo…

4万字c++讲解+区分c和c++,不来可惜了(含代码+解析)

目录 1 C简介 1.1 起源 1.2 应用范围 1.3 C和C 2开发工具 3 基本语法 3.1 注释 3.2关键字 3.3标识符 4 数据类型 4.1基本数据类型 4.2 数据类型在不同系统中所占空间大小 4.3 typedef声明 4.4 枚举类型 5 变量 5.1 变量的声明和定义 5.2 变量的作用域 6 运算符…

面试之设计模式(简单工厂模式)

案例 在面试时,面试官让你通过面对对象语言,用Java实现计算器控制台程序,要求输入两个数和运算符号,得出结果。大家可能想到是如下: public static void main(String[] args) {Scanner scanner new Scanner(System.…

一文让你了解SpringCloud五大核心组件

🏆今日学习目标: 🍀SpringCloud五大核心组件 ✅创作者:林在闪闪发光 ⏰预计时间:30分钟 🎉个人主页:林在闪闪发光的个人主页 🍁林在闪闪发光的个人社区,欢迎你的加入: 林…

2021-08-29

服务器 主:172.17.0.2 master 备:172.17.0.3 slave1 lvs虚拟IP:172.17.0.100 #nginx下载地址 http://nginx.org/download/ 本地文件路径 1.dockerfile构建nginx FROM centos:7 ADD nginx-1.6.0.tar.gz /usr/local COPY nginx_install.sh /usr/local RUN sh …

毕业设计(1)-AFLGO的安装

AFLGO是一个模糊测试工具,在CSDN上的安装教程不多,自己在安装过程中也出现了很多教程之外的错误,最后反复安装了2天终于安装成功这里记录一下安装工程中的错误 使用的平台:Ubuntu18.04 配置: 内存:6G&…

StreamAPI

StreamAPI 最近开发用上了 Java8的StreamAPI,(咋现在才用?嗯哼,项目需要)自己也不怎么会,来总结一波吧! 别认为好抽象!!!干他就完事 一.StreamAPI介绍 就是用来处理集合的数据 其实到后面会发现和SQL的语句是差不多的~哈哈?你不信?往下面看 Stream:英文翻译叫做流 举个粟子…

华为OD机试 - 最多等和不相交连续子序列(C++) | 附带编码思路 【2023】

刷算法题之前必看 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:https://blog.csdn.net/hihell/category_12199283.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 华为OD机试题…

老学长的浙大MPA现场复试经验分享

作为一名在浙大MPA项目已经毕业的考生来说,很荣幸受到杭州达立易考周老师的邀请,给大家分享下我的复试经验,因为听周老师说是这几年浙大MPA因疫情情况,已经连续几年都是线上个人复试了,而今年疫情社会面较为平稳的情况…