goodtomsheng 2015-03-18 11:55 采纳率: 0%
浏览 2127

VC++,LAN远程Agilent,写ROUT:SCAN(@106)SCPI命令仪器一直报错?

// ViByte buf3[] = "ROUT:SCAN(@106)\n"; /* read 106 channels data*/
// ViByte buf4[] = "TRIG:SOUR TIMER\n"; /*set source scan interval*/
// ViByte buf5[] = "TRIG:TIM 500E-3\n"; /*scan interval is 500ms,also 0.5s*/

运行这条后报错,但是返回的status=0
status = viWrite(instr, buf3, 17, &recount);
就是通过写入配置scan list ,Agilent 34972a 显示error,
这到底是因为什么啊,其他“*IDN?\n”等命令均执行正确,也能从buf 中read data
求高手指导啊,不胜感激~

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-05-26 23:44
    关注

    该回答引用ChatGPT-3.5,仅供参考,不保证完全正确

    根据您提供的信息,您正在使用VC++编写与Agilent 34972A通信的程序。您尝试发送命令"ROUT:SCAN(@106)"来配置扫描列表,但是仪器返回错误。您还指出,通过其他命令如"*IDN?\n",您可以正确执行和读取数据。


    首先,我建议您检查一下"ROUT:SCAN(@106)"命令的正确性。确保该命令是正确的Agilent 34972A SCPI命令,并且正确地配置了扫描列表。您可以参考Agilent 34972A的用户手册或编程指南,以确保命令的正确性。


    此外,请检查以下可能导致错误的因素:

    1. 通信设置: 确保您已正确配置与Agilent 34972A的通信参数,例如波特率、数据位数、校验位和停止位等。如果通信参数设置不正确,可能导致通信错误。

    2. 通信连接: 确保您的计算机与Agilent 34972A正确连接。可以检查连接电缆、接口类型(如GPIB、LAN等)以及连接端口等。

    3. 错误处理: 在发送命令后,检查仪器返回的错误信息。您可以尝试使用viRead函数读取错误信息并打印出来,以便进一步调试。

    4. 权限和访问: 确保您具有足够的权限来执行所需的操作。有些命令可能需要管理员权限或特殊访问权限才能执行。

    如果您已经检查了以上因素,并且问题仍然存在,我建议您在代码中添加错误处理和调试输出,以获得更多的信息。例如,您可以在发送命令之后检查返回的状态和计数,并打印相关信息:

    status = viWrite(instr, buf3, 17, &recount);
    if (status == VI_SUCCESS) {
        printf("Command sent successfully.\n");
        printf("Bytes written: %d\n", recount);
    } else {
        printf("Error sending command. Status: %d\n", status);
    }
    

    通过检查错误代码和输出信息,您可能能够更好地理解问题所在,并采取相应的措施进行修复。

    评论

报告相同问题?

悬赏问题

  • ¥15 GD32H7 从存储器到外设SPI传输数据无法重复启用DMA
  • ¥25 LT码在高斯信道下的误码率仿真
  • ¥45 渲染完成之后将物体的材质贴图改变,自动化进行这个操作
  • ¥15 yolov5目标检测并显示目标出现的时间或视频帧
  • ¥15 电视版的优酷可以设置电影连续播放吗?
  • ¥50 复现论文;matlab代码编写
  • ¥30 echarts 3d地图怎么实现一进来页面散点数据和卡片一起轮播
  • ¥15 数字图像的降噪滤波增强
  • ¥15 心碎了,为啥我的神经网络训练的时候第二个批次反向传播会报错呀,第一个批次都没有问题
  • ¥15 MSR2680-XS路由器频繁卡顿问题