vTESTstudio - VT System CAPL Functions - VT1004/VT1104

今天我们主要介绍VT板卡VT1004和VT1104相关的函数

vtsResetMinMax - 重置最大最小值

功能:重置最小值和最大值的测量值。

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

返回值:

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

-1:调用函数错误

-2:参数target不存在映射到CANoe工程中的通道,或者不是有效的名称,抑或这个通道不支持重置

-4:调用成功,但不确定调用返回值是否已经被重置;或者在特定时间内没有接收到重置成功的返回信息

Demo演示

demo中展示如何测量VT1004通道的最小电压和最大电压。测试开始,旧的最大和最小值被重置,然后分析输入电压5秒钟,最后在CANoe的Write测试窗口(或者测试报告中,示例为Write窗口)中输出新的最小电压和最大电压。

PerformMinMaxMeasurement ()
{
   // Initialize and wait for 5 seconds
    long returnv;
   if((vtsResetMinMax("VTS::TempSensor")=returnv) == 0)
    {
        TestWaitForTimeOut(5000);

        // Print measurement results to Write Window
        write("Measured voltage minimum: %0.2fV", @sysvar::VTS::TempSensor::Min);
        write("Measured voltage maximum: %0.2fV", @sysvar::VTS::TempSensor::Max);
    }
    else
    {
        switch (returnv){
        case -1: write("调用失败"); break;
        case -2: write("VTS::TempSensor不存在");break;
        case -4: write("没有在测试模块中使用,未被调用");break;
        default: break;}
    } 
}
/*同类型调用方法*/
sysvar::VTS::TempSensor.ResetMinMax();

vtsSetLoadMode - 切换内部负载模式

功能:切换VT1004内部负载到特定模式

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

Mode:切换到特定的模式,可选模式如下表:

Value

Enum

Short Description

0

eVTSLoadModeInactive

内部负载未激活

1

eVTSLoadModeCurrentControl

电流控制

2

eVTSLoadModeResistanceControl

电阻控制

返回值:

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

-1:调用函数错误

-2:参数target不存在映射到CANoe工程中的通道,或者不是有效的名称,抑或这个通道不支持重置

-4:调用成功,但不确定调用返回值是否已经被重置;或者在特定时间内没有接收到重置成功的返回信息

Demo演示

以下示例演示VT1004通道内部负载的使用。在本例中,通道称为LowBeamLeft。内部负载配置为电阻控制模式,电阻为120欧姆。因此,电子负载的作用是作为一个对输入的恒定电阻器。

InternalLoad_ResistanceControl ()
{
   // 内部负载的电阻设置为120欧姆
   @sysvar::VTS::LowBeamLeft::IntLoadResistor = 120;
   // 内部负载模式设置为电阻控制
   vtsSetLoadMode("VTS::LowBeamLeft", eVTSLoadModeResistanceControl);
   // 连接ECU与内部负载
   @sysvar::VTS::LowBeamLeft::RelayIntLoadA = 1;
   @sysvar::VTS::LowBeamLeft::RelayIntLoadB = 1;
}
//同功能另外做法
sysvar::VTS::LowBeamLeft.SetLoadMode(eVTSLoadModeResistanceControl);

此处示例的第二部分显示了如何使用电流控制模式。这里调节电子负载,使两条ECU线路之间流过恒定电流。

InternalLoad_CurrentControl ()
{
  // 内部负载的电流设置为1A
  @sysvar::VTS::LowBeamLeft::IntLoadCurrent = 1;
  // 内部负载模式设置为电流控制
  vtsSetLoadMode("VTS::LowBeamLeft", eVTSLoadModeResistanceControl);
  // 连接ECU与内部负载
  @sysvar::VTS::LowBeamLeft::RelayIntLoadA = 1;
  @sysvar::VTS::LowBeamLeft::RelayIntLoadB = 1;
}
//同功能另外做法
sysvar::VTS::LowBeamLeft.SetLoadMode(eVTSLoadModeResistanceControl);

vtsSetMeasurementMode - 控制内部测量仪器

功能:该函数可以同时在板卡VT1004、VT1104、VT2816上面使用,不过在VT1004、VT1104上面使用时可以直接和滤波差分电压测量以及引脚a或b到参考地(AGND)的测量之间切换。而在VT2816上面使用则是可以在12个测量通道的每个通道上进行不同的电压测量模式和电流测量模式之间切换。

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

Mode:切换到特定的模式,可选模式如下表:

VT1004和VT2004可用模式:

Value

Enum

Short Description

0

eVTSMeasurementModeDirect

差分电压,未滤波

1

eVTSMeasurementModeFiltered

差分电压,10 kHz滤波器激活

2

eVTSMeasurementModeLineAToGnd

电压线A接地

3

eVTSMeasurementModeLineBToGnd

电压线B接地

VT2816可用模式:

Value

Enum

Short Description

0

eVTS2808CurrentMeasurementRange50mA

将使用所有测量范围

1

eVTS2808CurrentMeasurementRange1A

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

2

eVTS2808CurrentMeasurementRange20A

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

返回值:

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

-1:调用函数错误

-2:参数target不存在映射到CANoe工程中的通道,或者不是有效的名称,抑或这个通道不支持重置

-4:调用成功,但不确定调用返回值是否已经被重置;或者在特定时间内没有接收到重置成功的返回信息

Demo演示

示例展示如何更改VT1004信道的测量模式。在默认情况下,在两条输入线A和B之间测量电压;示例显示了如何配置输入线A与VT1004模块的AGND之间的测量。

MeasurementAToAGnd ()
{
    //从差分改变测量模式
    //至A线对地(AGND)
   vtsSetMeasurementMode("VTS::TempSensor", eVTSMeasurementModeLineAToGnd);
   //同功能使用方法
   sysvar::VTS::TempSensor.SetMeasurementMode(eVTSMeasurementModeLineAToGnd);
    //测量线路A和AGND之间的电压
   write("Current voltage: %0.2fV", @sysvar::VTS::TempSensor::Cur);
}

vtsSetLoadControlTimeout - 设置控制响应时间

当产生具有短暂中断的信号(特别是PWM信号)时,可以设置保持时间(控制超时),以便电子负载不必在每个信号边缘再次被校正。因此,如果在超时期满之前输入电压再次升高,则电子负载仍然被调整到旧值,并且如果需要的话,只需要最小程度地校正。因为消除了稳定时间,所以也可以用电子负载操作非常快速变化的PWM信号。

所选择的超时时间应该比控制单元输出信号的频率高大约10到100倍。对于频率从10 Hz开始的PWM信号,1到10秒的超时时间就足够了。如果不需要此功能,则超时时间应设置为0,可以降低更新速度。

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

Timeout:定义内部加载的超时时间,单位是秒。允许的值范围:1…255秒,分辨率1秒,0:无超时(默认值)。

返回值:

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

-1:调用函数错误

-2:参数target不存在映射到CANoe工程中的通道,或者不是有效的名称,抑或这个通道不支持重置

-4:调用成功,但不确定调用返回值是否已经被重置;或者在特定时间内没有接收到重置成功的返回信息

Demo演示

vtsSetLoadControlTimeout (sysvar::VTS::LowBeamRight, 10.0);
//同功能使用方法
sysvar::VTS::LowBeamRight.SetLoadControlTimeout (10.0);

此处设置了2秒的超时。定性地显示了输入电压(黄色)和在输入端流动的电流(红色)。在第一脉冲处,输入电压仅在大约1秒内未被施加。在这种情况下,不会发生超时,并且当再次施加输入电压时,设定电流继续流动。在第二个脉冲处,发生超时。在这种情况下,输入电压在持续超过2秒的时间内没有施加。然后,内部负载与高电阻连接。如果输入电压恢复,内部负载必须首先调整到设定电流,这从电流的缓慢上升可以明显看出。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

车载网络测试

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

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

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

打赏作者

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

抵扣说明:

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

余额充值