使用IO Trace分析程序问题 #
打开IO Trace,这是在下载NI4882_1850f1后自带的,在运行程序前,点击如下图所示的绿色箭头,则开始捕捉,下图显示的是我在操作 使用NI MAX实现程控测试时捕捉到的。在以后的程控中,我们可以参考捕捉到的调用过程进行程序的编写,在编写程序的过程中也可以通过NI IO Trace,找到出错的地方:
其中:
viOpenDefaultRM (0x07886088)是打开VISA资源管理器句柄;
viOpen (0x07886088, “TCPIP0::127.0.0.1::5025::SOCKET”, 0 (0x0), 0 (0x0), 0x078AE6F8)是打开仪器句柄;
viSetAttribute (TCPIP0::127.0.0.1::5025::SOCKET (0x078AE6F8), 0x3FFF0038 (VI_ATTR_TERMCHAR_EN), VI_TRUE)是启用结束符;
viWrite (TCPIP0::127.0.0.1::5025::SOCKET (0x078AE6F8), “*IDN?.”, 6 (0x6), 6 (0x6))是将数据同步写入到器件中;
viRead (TCPIP0::127.0.0.1::5025::SOCKET (0x078AE6F8), ““Ceyear Technologies,3672A,,2.1.2”.”, 1024 (0x400), 35 (0x23))是从器件同步读取数据;
viClose (TCPIP0::127.0.0.1::5025::SOCKET (0x078AE6F8))是关闭仪器;
viClose (0x07886088)是关闭VISA资源管理器;
以上是接下来我们用代码实现程控经常用到的。
用VISA函数编程的步骤
(1)打开VISA资源管理器句柄。
用到的函数:viOpenDefaultRM;
(2)打开仪器句柄。
用到的函数:viFindRsrc、viFindNext、viOpen等;
(3)若仪器由多个用户共享,则加锁。
用到的函数: viLock
(4)设置仪器状态、控制仪器操作、读取测量数据、处理仪器事件。
用到的函数: viGetAttribute、viSetAttribute、viInstallHandler、viUninstallHandler、viEnableEvent、viDisableEvent、viWaitOnEvent 、viIn16、viOut16、viPrintf、viScanf等;
(5)若已对仪器加锁,则关闭前应解锁。
用到的函数:viUnlock
(6)释放仪器句柄。
用到的函数:viClose;
(7)释放VISA资源管理器句柄。
用到的函数:viClose。