今天我们主要介绍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秒的时间内没有施加。然后,内部负载与高电阻连接。如果输入电压恢复,内部负载必须首先调整到设定电流,这从电流的缓慢上升可以明显看出。
原文始发于微信公众号(车载网络测试):vTESTstudio - VT System CAPL Functions - VT1004/VT1104