Red de conocimiento informático - Material del sitio web - Cómo utilizar VS2010 para llamar a visa para el control del programa

Cómo utilizar VS2010 para llamar a visa para el control del programa

1. Primero instale la biblioteca de controladores proporcionada por NI en la computadora y luego busque los archivos de biblioteca y encabezados correspondientes en la computadora

Directorio de archivos: C:\Program Files ( x86) \IVI Foundation\VISA\WinNT

?Los archivos lib están en: lib\msc\visa32.lib y ivi.lib

?Los archivos de encabezado están en: include

2. Agregar la biblioteca al proyecto

El blogger copió directamente el archivo de la biblioteca y el archivo de encabezado correspondiente al directorio del proyecto y luego agregó una referencia a la biblioteca lib en el proyecto. Se hace referencia a la operación de la biblioteca de Visa en vs2010 de la siguiente manera:

1 Menú?Proyecto—gt; Propiedades de configuración—gt; , como: visa32.lib;

p>

? O use el código #pragma comment(lib, "visa32.lib") en el archivo fuente cpp. En este momento, se realizará la recompilación. muestra un error: fatal

error LNK1104: no se puede abrir el archivo "my_API.lib",? La razón debería ser que el compilador no sabe dónde encontrar nuestra biblioteca, resolvámoslo a continuación

?

2 Luego agregue la ruta del archivo de la biblioteca al proyecto, agregue una ruta de biblioteca adicional:

?"Project-gt; Properties-gt; Configuration properties-gt; Connector-gt; General-gt; Directorio de biblioteca adicional" Haga clic en la flecha hacia abajo a la derecha y agregue aquí La ruta donde se encuentra nuestra biblioteca.

F:\my_program\meiyong\PPPP_Decode_ETIM; o ../ ../PPPP_Decode_ETIM, ?

Y después de probar, el archivo del proyecto .vcxproj El directorio es el directorio actual. Es mejor configurarlo en el directorio actual. Esto está bien.

3. Utilice la biblioteca de visa en el proyecto

En el siguiente código, en VS2010, consulte la identificación del instrumento llamando a la biblioteca de visa y enviando *IDN?#include?"visa/include/visa.h "

#include?"visa/include/ivi.h"

#pragma?comment(lib, "visa32.lib")

#pragma? comentario(lib, "ivi.lib")

/*----- -------------------------- ------------------------ ----------------------*/

/*?Declaración de definición de macro?*/

/*-- -------------------------- ------------------------ -------------------------- */

#define?MAX_SCPI_LENGTH?255?//?Comando SCPI máximo?

#define?DEFAULT_TIMEOUT?5000//?Tiempo de espera: 5000 ms

int ?main(void)

{

ViStatus?nReturnStatus?= ?0;?//?Guardar el valor devuelto

ViSession?rmSession?=?0 , pnInstrHandle;

ViUInt32?retCnt

?=?0;

ViByte?wrtBuf[MAX_SCPI_LENGTH];?//?Búfer de escritura

ViByte?rdBuf[MAX_SCPI_LENGTH];?//?Búfer de lectura

int?Return_Count;

nReturnStatus?=?viOpenDefaultRM?(amp;rmSession);

nReturnStatus?=?viOpen?(rmSession,?"TCPIP0::172.141. 114.6: :5001::SOCKET",?VI_NULL,?VI_NULL,?amp;pnInstrHandle);

/*-?Configure?VISA?Formatted?I/O?-------- -- ---------------------*/

nReturnStatus?=?viSetAttribute?(pnInstrHandle, ?VI_ATTR_TMO_VALUE , ?DEFAULT_TIMEOUT); //Establecer tiempo de espera

nReturnStatus?=?viSetAttribute?(pnInstrHandle, ?VI_ATTR_SUPPRESS_END_EN, ?VI_FALSE); //No enviar terminador

nReturnStatus ?= ?viSetAttribute?(pnInstrHandle, ?VI_ATTR_SEND_END_EN, ?VI_FALSE); //No recibe el terminador

nReturnStatus?=?viQueryf?(pnInstrHandle, ?"*IDN?\n", ?"s ", ?rdBuf);

viClose?(pnInstrHandle);

viClose?(rmSession);

return?0;

}