Labwindows/CVI来控制万用表,怎么利用scpi指令完成量程的自动转换让测得值显示在界面上,也就是当测量值为0.05v时界面显示50mv,测量值为3v时界面显示3v,此外分辨率和量程的关系是怎样的
目前是使用VOLT:DC:RANG:AUTO ON只能让万用表的面板呈现自动切换量程的效果,而在界面上仍然是以v为单位显示着
我希望随着测量值的改变,界面的数值会呈现最精确的效果
下面是我现在的代码
double measuredVoltage;
char range[15]="0";
switch (event)
{
case EVENT_COMMIT:
viPrintf (viDefaultRM, "VOLT:DC:RANG:AUTO ON\n");
// viQueryf (viDefaultRM, "VOLT:DC:RANG?\n", "%s", &range);
// range[14]=0;
viPrintf (viDefaultRM, "MEASure:VOLTage:DC?\n");
viScanf (viDefaultRM, "%lf", &measuredVoltage);
// printf("%s",range);
SetCtrlVal (sinPANEL, sinPANEL_TOGGLEBUTTON, 1);
if(measuredVoltage <1)
{
measuredVoltage *= 1000;
SetCtrlVal (sinPANEL, sinPANEL_TOGGLEBUTTON, 0);
}
SetCtrlVal (sinPANEL, sinPANEL_NUMERIC_2, measuredVoltage);
按照一个回答写的,这个range应该是查询万用表现在的量程,然后再跟给定的数值进行比较,但是实际操作过程中我发现在输入电压改变时屏幕上的示值并不能随着大于1和小于1 做v和mv的改变
我现在是用示值直接和1比较,但是感觉应该不是这么简单粗暴地
这是我的界面图,最终是想让显示值和单位随着输入电压改变而自动改变,小于1的时候是mv,大于1 的时候是v