不要沮丧,不必惊慌,做努力爬的蜗牛或坚持飞的笨鸟,我们试着长大,一路跌跌撞撞,哪怕遍体鳞伤。
vtsSetPWMVoltageLow - 设置PWM输出上的低电压
功能:指定数字输出信号(尤其是PWM信号)输出的低电平。
Target:目标通道变量空间名称,例如:VTS::RPM_Sensor
Voltage:低电平电压设置值,单位伏特;范围:0V--27 V(VT2004);0V -- 25V(VT2516)。
返回值:
0:成功重置目标通道最大和最小值
-1:调用错误
-2:调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。
-3:指定的电压无效
-4:未在测试模块的主方法上下文中调用该函数。因此,不可能等到从VT系统接收设置。否则,呼叫成功,但不确定呼叫返回时是否已接管设置。
Demo演示
参考vtsSetPWMVoltageLow示例
vtsSetPWMVoltageLow - 设置PWM输出上的高电压
功能:指定数字输出信号(尤其是PWM信号)输出的高电平。
Target:目标通道变量空间名称,例如:VTS::RPM_Sensor
Voltage:低电平电压设置值,单位伏特;范围:0V--27 V(VT2004);0V -- 25V(VT2516)。
返回值:
0:成功重置目标通道最大和最小值
-1:调用错误
-2:调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。
-3:指定的电压无效
-4:未在测试模块的主方法上下文中调用该函数。因此,不可能等到从VT系统接收设置。否则,呼叫成功,但不确定呼叫返回时是否已接管设置。
Demo演示
以下示例演示了如何使用VT2004通道的PWM输出来模拟基于PWM的传感器(例如RPM传感器)。本例中使用的通道称为RPM_Sensor。
SimulateSensorPWM ()
{
// 频率设置 (100Hz)
float currentFrequency = 100.0;
// 选择电压刺激和PWM曲线类型
vtsSetStimulationMode("VTS::RPM_Sensor", eVTSStimulationModeVoltage);
vtsSetCurveType("VTS::RPM_Sensor", eVTSCurveTypePWM);
// PWM信号将在0V和5V之间切换
vtsSetPWMVoltageLow("VTS::RPM_Sensor", 0.0);
vtsSetPWMVoltageHigh("VTS::RPM_Sensor", 5.0);
// 将重复次数设置为无限
vtsSetPWMRepeats("VTS::RPM_Sensor", 0);
// 设置初始频率(100Hz)和占空比(50%)值
@sysvar::VTS::RPM_Sensor::PWMFreq = currentFrequency;
@sysvar::VTS::RPM_Sensor::PWMDC = 50.0;
// 开始仿真
vtsStartStimulation("VTS::RPM_Sensor");
// To stimulate different sensor readings increase
// frequency of the PWM signal over time
//使用不同的激励传感器
//PWM信号随时间的频率
while(currentFrequency < 200)
{
// 每100ms将频率增加1Hz
TestWaitForTimeOut(100);
currentFrequency += 1;
@sysvar::VTS::RPM_Sensor::PWMFreq = currentFrequency;
}
//停止仿真
vtsStopStimulation("VTS::RPM_Sensor");
}
//同功能不同实现方法
sysvar::VTS::RPM_Sensor.SetPWMVoltageLow(0.0);
sysvar::VTS::RPM_Sensor.SetPWMVoltageHigh(5.0);
vtsSetPWMRepeats - 设置激励开始后的激励PWM周期数
功能:函数功能为设置激励开始后的激励PWM周期数。如果想要一直输出PWM波型的激励,将参数numOfRepeats设置为0就可以了。
Target:目标通道变量空间名称,例如:VTS::RPM_Sensor
numOfRepeats:要使用PWM激励的周期数。有效值范围为:0 -- 65535。
返回值:
0:成功重置目标通道最大和最小值
-1:调用错误
-2:调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。
-3:指定的重复次数无效。
Demo演示
以下示例演示了如何使用VT2004通道的PWM输出来模拟基于PWM的传感器(例如RPM传感器)。本例中使用的通道称为RPM_Sensor。
SimulateSensorPWM ()
{
// 频率设置 (100Hz)
float currentFrequency = 100.0;
// 选择电压刺激和PWM曲线类型
vtsSetStimulationMode("VTS::RPM_Sensor", eVTSStimulationModeVoltage);
vtsSetCurveType("VTS::RPM_Sensor", eVTSCurveTypePWM);
// PWM信号将在0V和5V之间切换
vtsSetPWMVoltageLow("VTS::RPM_Sensor", 0.0);
vtsSetPWMVoltageHigh("VTS::RPM_Sensor", 5.0);
// 将重复次数设置为无限
vtsSetPWMRepeats("VTS::RPM_Sensor", 0);
// 设置初始频率(100Hz)和占空比(50%)值
@sysvar::VTS::RPM_Sensor::PWMFreq = currentFrequency;
@sysvar::VTS::RPM_Sensor::PWMDC = 50.0;
// 开始仿真
vtsStartStimulation("VTS::RPM_Sensor");
// To stimulate different sensor readings increase
// frequency of the PWM signal over time
//使用不同的激励传感器
//PWM信号随时间的频率
while(currentFrequency < 200)
{
// 每100ms将频率增加1Hz
TestWaitForTimeOut(100);
currentFrequency += 1;
@sysvar::VTS::RPM_Sensor::PWMFreq = currentFrequency;
}
//停止仿真
vtsStopStimulation("VTS::RPM_Sensor");
}
//同功能不同实现方法
sysvar::VTS::RPM_Sensor.SetPWMRepeats(0);
vtsSetWFParams - 配置电压或电阻曲线输出的参数
功能:该函数功能为电压或电阻曲线或位流的输出配置参数。
Target:目标通道变量空间名称,例如:VTS::Temp_Sensor
timeIncrement:指定在转换到下一个插值点之前,指定插值点的值将被激发多长时间。
根据模块和波形,时间增量的不同范围有效值范围:
VT7001模块上的电压曲线:时间增量:0.000001s(1µs)-- 0.065s(65 ms),传输至VT系统的分辨率为微秒级。
VT2816或VT2004模块上的电压曲线:时间增量:-0.065s(-65 ms)-- 0.065s(65 ms)。如果该值为负值,则波形向后输出,传输至VT系统的分辨率为纳秒级。
电阻曲线:R>模式下为0.0005(500µs)-- 0.065(65 ms),R<模式下为0.001(1 ms)-- 0.06 5(65毫秒),传输至VT系统的分辨率为纳秒。
VT2516模块上的BitStreams:时间增量可以是0.000002(2µs)-- 0.065(65 ms),传输至VT系统的分辨率为微秒。
VT2848模块上的BitStreams:timeIncrement可以是-0.065(-65毫秒)-- 0.065(65毫秒)。如果该值为负,则向后输出比特流,传输至VT系统的分辨率为纳秒。
注意:10微秒以内的值主要依赖环境条件,并不一定都能够达到。
pause:指定波形两次重复之间的激励的中断时间,有效值范围:0.0s -- 4294s,传输至VT系统的分辨率为纳秒。
numOfRepeats:要使用PWM激励的周期数。有效值范围为:0 -- 65535。
startDelay:指定刺激开始的延迟时间(秒),通过这样们就可以顺序启动多条激励曲线,支持该函数的模块:VT2004、VT2816、VT2848模块;有效值范围:0s - 4s
传输至VT系统的分辨率为纳秒。
startPoint:指定激励应开始的曲线的点,通过这里我们可以在一条曲线的不同未知开始多个激励,支持该函数的模块:VT2004、VT2816、VT2848模块;有效值:0 -- 4096
返回值:
0:成功重置目标通道最大和最小值
-1:错误
-2: 调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。
-3: 指定的参数中存在至少一条是无效值。
Demo演示
以下示例演示了如何使用VT2004通道的波形电阻输出来模拟传感器。在本例中,名为waveform.TXT的波形加载并在Temp_Sensor通道上回放。
SimulateSensorResistanceWF ()
{
//选择电阻刺激和波形曲线类型
vtsSetStimulationMode("VTS::Temp_Sensor", 3);
vtsSetCurveType("VTS::Temp_Sensor", 2);
// 负载波形(WaveForm形.TXT的内容)
vtsLoadWFResistance("VTS::Temp_Sensor", "C:\\WaveForm.TXT");
//配置波形、参数:
//TimeIncrement(保存每个样本的时间)=65ms
//暂停(两次波形重复之间暂停)=2s
//重复次数(重复次数)=3
vtsSetWFParams("VTS::Temp_Sensor", 0.065, 2.0, 3);
// 使用配置好的波形启动激励
vtsStartStimulation("VTS::Temp_Sensor");
}
//同功能不同实现方法
sysvar::VTS::Temp_Sensor.SetWFParams(0.065, 2.0, 3);