Caracteres de terminación en NI-VISA

Información general

Varios buses basados en mensajes utilizan caracteres de terminación para indicar el final de la transmisión de un mensaje. Para los tipos de recursos VISA que corresponden a un protocolo 488.2 completo (GPIB Instr, VXI/GPIB-VXI Instr, USB Instr y TCPIP Instr), generalmente no necesita usar caracteres de terminación, ya que la implementación del protocolo también tiene un mecanismo nativo para especificar el final de un mensaje. Debe decirle a VISA cómo se terminan los mensajes únicamente cuando usa otros tipos de recursos VISA (Instr Serial, USB Raw y TCPIP Socket).

Tanto los mensajes entrantes como los salientes pueden tener caracteres de terminación. Dos caracteres de terminación comunes son Line Feed (los códigos muestran '\ n', ASCII decimal 10 o hex 0x0A) y Carriage Return (los códigos muestran '\ r', ASCII decimal 13 o hex 0x0D).

Cuatro propiedades principales de NI-VISA se ocupan de la terminación. Dos se encuentran en configuración basada en mensajes y los otros dos en configuración serial. Las propiedades basadas en mensajes son carácter de terminación y carácter de terminación habilitado, y las propiedades seriales específicas son modos finales seriales para lecturas y modos finales seriales para escrituras. Discutiremos cada propiedad en detalle y luego discutiremos consideraciones especiales.

Contenido

Carácter de terminación (TermChar)

Carácter de terminación


Esta propiedad toma un entero de 8 bits sin signo como entrada. Por lo tanto, a menos que sepa el valor ASCII para su carácter de terminación, es mejor encasillar el valor para establecer la propiedad, como se muestra arriba. Utilice este valor de propiedad como el carácter de terminación para las lecturas y escrituras. Establecer este valor de propiedad no afecta si se usa.

Aunque TermChar no está restringido a la comunicación serial, es posible que desee utilizar otros mecanismos de terminación al comunicarse en buses con un protocolo 488.2 completo, como se explica en la introducción. Por ejemplo, cuando se comunica a través de GPIB, el estándar es usar una línea de hardware, EOI, para la terminación.

Nota: VISA Configure Serial Port.vi establece esta propiedad a través del parámetro termination char, que por defecto es un Line Feed (0x0A = '\n' = LF).

Carácter de terminación habilitado (TermChar En)


Carácter de terminación habilitado

Si se establece en Verdadero, esta propiedad le indica a VISA que detenga la lectura cuando se encuentra el carácter de terminación. Tenga en cuenta que no está restringido a serial; usted puede utilizar esta propiedad para lecturas de terminación en otros buses.

Importante: Esta propiedad se ignora y no devuelve un error si los Modos Finales Seriales para Lecturas (que se explican a continuación) se configuran como Term Char.

Esta propiedad no afecta el carácter de terminación de las escrituras.

Nota: VISA Configure Serial Port.vi establece esta propiedad a través del parámetro Enable Termination Char, que por defecto es Verdadero.

Modos finales seriales para lecturas (ASRL End In)

Modos finales seriales para lecturas


Esta propiedad especifica el método utilizado para terminar una operación de lectura desde el búfer de software para comunicación serial únicamente. Los valores válidos son:

Valor
Descripción
Ninguno (0)La lectura no se detiene cuando se encuentra el carácter de terminación.
Último Bit (1)La lectura se detiene tan pronto como llega un carácter con su último bit establecido.
TermChar (2)
(Predeterminado)
La lectura se detiene cuando se encuentra el carácter de terminación. Este es el valor predeterminado.


Importante: Si el valor se establece en TermChar (2), se ignora el valor de propiedad del carácter de terminación habilitado.

Si se alcanza la cantidad de bytes (especificado por VISA Read) o el intervalo (propiedad de VISA), la lectura termina independientemente del valor que tenga esta propiedad configurado.

Esta propiedad se puede deshabilitar configurando la propiedad suprimir final habilitado (Suppress End En) en verdadero.

Nota: VISA Configure Serial Port.vi establece esta propiedad en Ninguno si la entrada Enable Termination Char se establece en falso; lo establece en TermChar si la entrada Enable Termination Cha se establece en verdadero.

Modos finales seriales para escrituras (ASRL End Out)

Modos finales seriales para escritura



Esta propiedad especifica el método utilizado para terminar las operaciones de escritura. Los valores válidos son:

Valor
Descripción
Ninguno (0)
(Predeterminado)
No se anexa ningún carácter de terminación a las escrituras.
Último Bit (1)La escritura envía todo menos el último carácter con el bit más alto libre y transmite el último carácter con el bit más alto establecido.
TermChar (2)El valor del carácter de terminación se agrega al final de todas las escrituras.
Pausa (3)Se envía una pausa serial después de cada escritura. Una pausa serial es una serie de valores de espacio continuo que a menudo se usa para indicar a un instrumento que detenga la operación en curso o descarte cualquier dato de salida. Utilice este método con precaución.


Es posible que vea los controladores de instrumentos más antiguos agregando un carácter de terminación antes de la escritura de VISA. Esto se debía a que las versiones anteriores de VISA no eran compatibles con esta propiedad, por lo que los usuarios tenían que agregar explícitamente los caracteres de terminación. Esto ya no es necesario, ya que la configuración de esta propiedad lo hace por usted.

Puede deshabilitar esta propiedad configurando la propiedad enviar final habilitado (Send End En) en false.

Nota: VISA Configure Serial Port.vi no configura esta propiedad. Debe configurarla a través de un nodo de propiedad, como se muestra en la figura anterior.

Comunicación ASCII


Al realizar la comunicación ASCII, configure sus propiedades de terminación y otras configuraciones de comunicación de bus al comienzo de su rutina de inicio de la aplicación o del controlador. La configuración de los caracteres de terminación debe coincidir con la configuración de su instrumento. Recuerde que algunos instrumentos tienen ajustes configurables. Consulte el manual del usuario para su instrumento en particular.

Recomendación: Para aplicaciones más robustas que puedan manejar múltiples buses, mantenga siempre sincronizados el carácter de terminación habilitado y los modos finales seriales para lecturas (es decir, cuando habilite/deshabilite uno, también configure el otro).

Comunicación binaria


Cuando se realiza una comunicación binaria, la lectura puede terminar prematuramente si un valor de datos binarios tiene la misma representación binaria que el carácter de terminación. Por lo tanto, deshabilite el carácter de terminación configurando el carácter de terminación habilitado en falso y los modos finales seriales para lecturas en ninguno (0), como se muestra a continuación. Debe confiar en un método diferente para terminar la lectura, como una línea de hardware o una cantidad de bytes.

realizar comunicación binaria


Nota: Cuando se usan tipos de recursos VISA que corresponden a un protocolo 488.2 completo (GPIB Instr, VXI/GPIB-VXI Instr, USB Instr y TCPIP Instr), ya que para empezar, por lo general, no es necesario habilitar los caracteres de terminación, la comunicación binaria es más fácil porque no tiene que preocuparse por deshabilitar primero la configuración del carácter de terminación.

Instrumentos que utilizan múltiples caracteres de terminación


Algunos instrumentos envían múltiples caracteres de terminación, como Carriage Return Line Feed (los códigos muestran '\r\n' o ASCII hex 0x0D0A). Debido a que VISA solo permite un carácter de terminación, debe encontrar una solución alternativa. Primero, verifique si la secuencia de terminación del instrumento es configurable. De lo contrario, puede configurar VISA para que termine en el último carácter y usar Scan from String para analizar los otros caracteres del mensaje actual. La siguiente figura muestra el código que funciona para la terminación '\r\n' o '\n'.

múltiples caracteres de terminación


Nota: Para poder utilizar esta configuración la propiedad Display Style debe establecerse en códigos de barra invertida ('\'). Para obtener más información sobre la visualización de códigos de barra invertida ('\'), consulte Backslash ('\') Codes Display - LabVIEW Help.

 

Was this information helpful?

Yes

No