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