主要内容gydF4y2Ba

调试:记录信息到磁盘gydF4y2Ba

使用记录功能gydF4y2Ba

记录到磁盘信息提供了一个永久的记录仪器控制会话,并调试应用程序的一个简单方法。虽然仪器对象连接到仪器,你可以记录这些信息到一个磁盘文件:gydF4y2Ba

  • 值写入到仪器的数量,从仪器读取的值的数量,和数据类型的值gydF4y2Ba

  • 数据写入到仪器和数据读取仪器gydF4y2Ba

  • 事件信息gydF4y2Ba

你记录信息的磁盘文件gydF4y2Ba记录gydF4y2Ba函数。与记录相关的属性信息下面给出到磁盘。gydF4y2Ba

记录的属性gydF4y2Ba

属性名gydF4y2Ba

描述gydF4y2Ba

RecordDetailgydF4y2Ba

指定数量的信息保存到一个文件记录。gydF4y2Ba

语言gydF4y2Ba

指定数据和事件信息是否保存到一个文件或多个记录文件。gydF4y2Ba

RecordNamegydF4y2Ba

指定记录文件的名称。gydF4y2Ba

RecordStatusgydF4y2Ba

表明如果数据和事件信息保存到一个文件记录。gydF4y2Ba

介绍记录信息gydF4y2Ba

这个示例创建了通用接口总线对象gydF4y2BaggydF4y2Ba之间传输,记录的数量值gydF4y2BaggydF4y2Ba和仪器,并存储到文件文本的信息gydF4y2Bamyfile.txtgydF4y2Ba。gydF4y2Ba

g =通用接口总线(ni, 0,1);g。RecordName =“myfile.txt”;fopen (g)记录(g)流(g, ' * IDN ? ') = fscanf (g);gydF4y2Ba

仪器控制会话结束。gydF4y2Ba

文件关闭(g)删除(g)清晰的ggydF4y2Ba

使用gydF4y2Ba类型gydF4y2Ba命令来显示gydF4y2Bamyfile.txtgydF4y2Ba在命令行中。gydF4y2Ba

创建多个记录文件gydF4y2Ba

当你开始记录的gydF4y2Ba记录gydF4y2Ba函数,gydF4y2Ba语言gydF4y2Ba属性决定了如果创建一个新记录文件或者新信息附加到一个现有的记录文件。gydF4y2Ba

您可以配置gydF4y2Ba语言gydF4y2Ba来gydF4y2Ba覆盖gydF4y2Ba,gydF4y2Ba附加gydF4y2Ba,或gydF4y2Ba指数gydF4y2Ba。如果gydF4y2Ba语言gydF4y2Ba是gydF4y2Ba覆盖gydF4y2Ba,然后记录文件覆盖每次记录开始。如果gydF4y2Ba语言gydF4y2Ba是gydF4y2Ba附加gydF4y2Ba,那么新的信息附加到指定的文件gydF4y2BaRecordNamegydF4y2Ba。如果gydF4y2Ba语言gydF4y2Ba是gydF4y2Ba指数gydF4y2Ba,创建一个不同的磁盘文件每次记录开始。的规则指定一个文件名进行记录gydF4y2Ba指定一个文件名gydF4y2Ba。gydF4y2Ba

指定一个文件名gydF4y2Ba

您指定的名称的文件记录gydF4y2BaRecordNamegydF4y2Ba财产。你可以指定任何值gydF4y2BaRecordNamegydF4y2Ba,包括一个目录路径,提供文件的名字是由您的操作系统支持。金宝app另外,如果gydF4y2Ba语言gydF4y2Ba是gydF4y2Ba指数gydF4y2Ba遵循这些规则,那么文件名:gydF4y2Ba

  • 索引文件名字,都有一个号码。这个数字之前的文件扩展名和增加了1连续记录文件。gydF4y2Ba

  • 如果没有指定数量的初始文件名,然后第一个记录文件没有与之关联的数量。例如,如果gydF4y2BaRecordNamegydF4y2Ba是gydF4y2Bamyfile.txtgydF4y2Ba,然后gydF4y2Bamyfile.txtgydF4y2Ba是第一个记录文件的名字,gydF4y2Bamyfile01.txtgydF4y2Ba第二个记录文件的名称,等等。gydF4y2Ba

  • RecordNamegydF4y2Ba更新后的记录文件关闭。gydF4y2Ba

  • 如果指定的文件名已经存在,然后覆盖现有的文件。gydF4y2Ba

记录文件格式gydF4y2Ba

记录文件是一个ASCII文件,它包含一个记录的一个或多个仪器控制会话。您指定的信息保存到一个文件与记录gydF4y2BaRecordDetailgydF4y2Ba财产。gydF4y2Ba

RecordDetailgydF4y2Ba可以gydF4y2Ba紧凑的gydF4y2Ba或gydF4y2Ba详细的gydF4y2Ba。一个紧凑的记录文件包含值写入到仪器的数量,从仪器读取的数量值,值的数据类型和事件信息。详细记录文件包含前面的信息传输以及数据的工具。gydF4y2Ba

与精密的二进制数据gydF4y2BauchargydF4y2Ba,gydF4y2BaschargydF4y2Ba,(gydF4y2BaugydF4y2Ba)gydF4y2Baint8gydF4y2Ba,(gydF4y2BaugydF4y2Ba)gydF4y2Baint16gydF4y2Ba,或者(gydF4y2BaugydF4y2Ba)gydF4y2Baint32gydF4y2Ba记录作为十六进制值。例如,如果整数值255从仪器读取16位整数,00 ff十六进制值保存在记录文件。单-和双精度浮点数字记录使用十进制值gydF4y2Ba% ggydF4y2Ba格式,使用指定的格式IEEE十六进制值gydF4y2Ba®gydF4y2Ba二进制浮点运算的标准754 - 1985。gydF4y2Ba

IEEE浮点格式包括三个组成部分——符号位,指数领域和重要领域。单精度浮点值由32位,价值是由gydF4y2Ba

值= (1)gydF4y2Ba标志gydF4y2Ba(2gydF4y2Baexp - 127gydF4y2Ba)(1. significand)gydF4y2Ba

双精度浮点值由64位,价值是由gydF4y2Ba

值= (1)gydF4y2Ba标志gydF4y2Ba(2gydF4y2Baexp - 1023gydF4y2Ba)(1. significand)gydF4y2Ba

组件和相关的单精度和双精度浮点格式部分下面给出。gydF4y2Ba

格式组件gydF4y2Ba

单精度比特gydF4y2Ba

双精度的部分gydF4y2Ba

标志gydF4y2Ba

1gydF4y2Ba

1gydF4y2Ba

经验值gydF4y2Ba

2 - 9gydF4y2Ba

2 -gydF4y2Ba

significandgydF4y2Ba

10-32gydF4y2Ba

13 - 64gydF4y2Ba

例如,假设您使用单精度格式记录十进制值4.25。4.25记录文件存储为十六进制值40880000,从IEEE单精度浮点计算格式。重建原来的值,将十六进制值转换成十进制值使用gydF4y2Bahex2decgydF4y2Ba:gydF4y2Ba

dval = hex2dec (40880000) dval = 1.082654720000000 e + 009gydF4y2Ba

将十进制值转换成二进制值使用gydF4y2Badec2bingydF4y2Ba:gydF4y2Ba

bval = dec2bin (dval, 32) bval = 01000000100010000000000000000000gydF4y2Ba

的解释gydF4y2BabvalgydF4y2Ba由前面的桌子上。最左侧显示的值是正因为(1)gydF4y2Ba0gydF4y2Ba= 1。下一个8位对应于指数,给出的gydF4y2Ba

经验= bval(9)经验值= 10000001gydF4y2Ba

的十进制值gydF4y2Ba经验值gydF4y2Ba是2gydF4y2Ba7gydF4y2Ba+ 2gydF4y2Ba0gydF4y2Ba= 129。剩下的部分对应的重要,这是由gydF4y2Ba

significand = bval (32) significand = 00010000000000000000000gydF4y2Ba

的十进制值gydF4y2BasignificandgydF4y2Ba是2gydF4y2Ba4gydF4y2Ba= 0.0625。你重建堵的十进制值的初始值gydF4y2Ba经验值gydF4y2Ba和gydF4y2BasignificandgydF4y2BaIEEE单打的公式:gydF4y2Ba

值= (1)gydF4y2Ba0gydF4y2Ba(2gydF4y2Ba129 - 127gydF4y2Ba)= 4.25(1.0625)的价值gydF4y2Ba

信息记录到磁盘gydF4y2Ba

这个例子延伸gydF4y2Ba读写二进制数据gydF4y2Ba通过记录相关的信息记录文件。此外,给出了生成的记录文件的结构:gydF4y2Ba

  1. 创建一个工具对象gydF4y2Ba——创建通用接口总线对象gydF4y2BaggydF4y2Ba与国家相关仪器™GPIB控制器板指数0,和乐器主要地址1。gydF4y2Ba

    g =通用接口总线(ni, 0,1);gydF4y2Ba
  2. 配置属性gydF4y2Ba——配置输入缓冲区接受相当大的字节数,并配置超时时间值占数据传输慢两分钟。gydF4y2Ba

    g。InputBufferSize = 50000;g。超时= 120;gydF4y2Ba

    配置gydF4y2BaggydF4y2Ba执行回调函数gydF4y2BainstrcallbackgydF4y2Ba每次5000字节存储在输入缓冲区。gydF4y2Ba

    g。BytesAvailableFcnMode =“字节”;g。BytesAvailableFcnCount = 5000;g。BytesAvailableFcn = @instrcallback;gydF4y2Ba

    配置gydF4y2BaggydF4y2Ba使用详细信息记录到多个磁盘文件格式。第一个磁盘文件gydF4y2Ba定义为gydF4y2BaWaveForm1.txtgydF4y2Ba。gydF4y2Ba

    g。语言=“指数”;g。RecordDetail =“冗长”;g。RecordName =“WaveForm1.txt”;gydF4y2Ba
  3. 连接到仪器gydF4y2Ba- - - - - -连接gydF4y2BaggydF4y2Ba示波器。gydF4y2Ba

    fopen (g)gydF4y2Ba
  4. 读写数据gydF4y2Ba——启动记录。gydF4y2Ba

    记录(g)gydF4y2Ba

    配置范围将屏幕显示位图。gydF4y2Ba

    流(g,硬拷贝:端口GPIB)流(g,硬拷贝:格式BMP)流(g,硬拷贝开始)gydF4y2Ba

    启动异步读操作,并开始生成事件。gydF4y2Ba

    readasync (g)gydF4y2Ba

    instrcallbackgydF4y2Ba每次调用5000字节存储在输入缓冲区。结果显示如下所示。gydF4y2Ba

    BytesAvailable事件发生在09:04:33对象:GPIB0-1。BytesAvailable事件发生在09:04:42对象:GPIB0-1。BytesAvailable事件发生在09:04:51对象:GPIB0-1。BytesAvailable事件发生在09:05:00对象:GPIB0-1。BytesAvailable事件发生在09:05:10对象:GPIB0-1。BytesAvailable事件发生在09:05:19对象:GPIB0-1。BytesAvailable事件发生在09:05:28对象:GPIB0-1。gydF4y2Ba

    等到所有的数据存储在输入缓冲区,然后将数据传输到MATLABgydF4y2Ba®gydF4y2Ba工作区为unsigned 8位整数。gydF4y2Ba

    =从文件中读(g, g.BytesAvailable, uint8);gydF4y2Ba

    录音状态切换gydF4y2Ba在gydF4y2Ba来gydF4y2Ba从gydF4y2Ba。因为gydF4y2Ba语言gydF4y2Ba值是gydF4y2Ba指数gydF4y2Ba,记录文件名自动更新。gydF4y2Ba

    记录g (g)。RecordStatusans = off g.RecordName ans = WaveForm2.txt
  5. 断开和清理gydF4y2Ba当你不再需要gydF4y2BaggydF4y2Ba,你应该断开它的仪器,将它从内存和MATLAB的工作区。gydF4y2Ba

    文件关闭(g)删除(g)清晰的ggydF4y2Ba

记录文件的内容gydF4y2Ba

显示WaveForm1的内容。txt文件记录,gydF4y2Ba

类型WaveForm1.txtgydF4y2Ba

记录文件的内容如下所示。注意,返回的数据gydF4y2Ba从文件中读gydF4y2Ba函数以十六进制格式(大部分的位图数据未显示)。gydF4y2Ba

传说:* -一个事件发生。>——一个写操作发生。< -读操作发生。1在09:03:53.529记录截止2000年6月18日。小端字节格式的二进制数据。2 > 18 ascii值。硬拷贝:港口GPIB 3 > 19 ascii值。硬拷贝:格式BMP 4 > 14 ascii值。硬拷贝开始5 * BytesAvailable事件发生在18 - 2000年6月——09:04:33.334 6 * BytesAvailable事件发生在18 - 2000年6月,在09:04:41.775 7 * BytesAvailable事件发生在18 - 2000年6月- 8 09:04:50.805 * BytesAvailable事件发生在18 - 2000年6月,在09:04:00.266 9 * BytesAvailable事件发生在18 - 2000年6月- 10 09:05:10.306 * BytesAvailable事件发生在18 - 2000年6月,在09:05:18.777 11 * BytesAvailable事件发生在18 - 38462年6月在09:05:27.778 12 - 2000 < uint8值。42 4 d cf 03 00 00 00 00 00 00 3 e 00 00 00 28日00 00 00 80 02 00 00 e0 01 00 00 00 00 00 00 00 00 00 96 00 00 00 00 00 00 00 00 00 00 00 00。 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 13 Recording off.