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

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

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

车载网络测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值