LE SSERAFIM-公孙离 2023-02-02 16:35 采纳率: 0%
浏览 77
问题最晚将于02月10日00:00点结题

使用Labwindows/CVI程控万用表时自动切换量程

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比较,但是感觉应该不是这么简单粗暴地

img


这是我的界面图,最终是想让显示值和单位随着输入电压改变而自动改变,小于1的时候是mv,大于1 的时候是v

  • 写回答

3条回答 默认 最新

  • alex_630 2023-02-02 17:28
    关注

    可以通過讀取萬用表的SCPI命令和量程標識來實現界面上顯示最精確數值的功能。

    1.啟用自動量程功能:設置“VOLT:DC:RANG:AUTO ON”,以便萬用表根據測量值自動選擇適當的量程。
    2.讀取當前量程標識:使用“VOLT:DC:RANG?”來獲取當前的量程標識。
    3.讀取測量值:使用“MEAS:VOLT:DC?”來獲取當前的測量值。
    4.轉換顯示值:根據當前的量程標識和測量值,您可以計算出顯示在界面上的最精確值,並顯示在界面上。

    關於分辨率和量程之間的關係,分辨率是指萬用表能夠分辨出的最小量程值,而量程是指萬用表測量的最大范圍。通常,分辨率與量程成正比,萬用表量程越大,分辨率就越低。因此,在選擇合適的量程時,必須考慮到分辨率的限制。

    评论

报告相同问题?

问题事件

  • 已采纳回答 2月6日
  • 修改了问题 2月6日
  • 创建了问题 2月2日

悬赏问题

  • ¥15 有人会SIRIUS 5.8.0这个软件吗
  • ¥30 comsol仿真等离激元
  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题
  • ¥15 MS中不知道高分子的构型怎么构建模型