Caractères de terminaison dans NI-VISA

Aperçu

Différents bus basés sur des messages utilisent des caractères de terminaison pour indiquer la fin d’une transmission de message. Pour les types de ressources VISA qui correspondent à un protocole 488.2 complet (GPIB Instr, VXI/GPIB-VXI Instr, USB Instr et TCPIP Instr), il n’est généralement pas nécessaire d’utiliser des caractères de terminaison car l’implémentation du protocole dispose également d’un mécanisme natif permettant de spécifier la fin d’un message. Vous devez indiquer à VISA comment les messages se terminent uniquement lorsque vous utilisez d’autres types de ressources VISA (Serial Instr, USB Raw et TCPIP Socket).

Les messages entrants et sortants peuvent présenter des caractères de terminaison. Deux caractères de terminaison courants sont le retour à la ligne (les codes affichent '\n', ASCII décimal 10 ou hex 0x0A) et le retour chariot (les codes affichent '\r', ASCII décimal 13 ou hex 0x0D).

Quatre propriétés NI-VISA principales concernent la terminaison. Deux des propriétés relèvent des Paramètres basés sur les messages et les deux autres des Paramètres série. Les propriétés basées sur les messages sont Caractère de terminaison et Caractère de terminaison activé. Les propriétés spécifiques à la série sont Modes de fin pour lectures et Modes de fin pour écriture. Nous allons passer en revue chaque propriété et les dispositions particulières s’y rattachant.

Contenu

Caractère de terminaison (TermChar)

Caractère de terminaison


Cette propriété prend un nombre entier de 8 bits non signé comme entrée. Par conséquent, à moins de connaître la valeur ASCII de votre caractère de terminaison, il est préférable d’adapter le type de la valeur pour définir la propriété, comme illustré ci-dessus. Utilisez cette valeur de propriété comme caractère de terminaison pour les lectures et les écritures. La définition de cette valeur de propriété n’a aucune incidence sur son utilisation.

Bien que TermChar ne soit pas limité à la communication série, vous pouvez utiliser d’autres mécanismes de terminaison lors de la communication sur des bus avec un protocole 488.2 complet, comme mentionné dans l’introduction. Par exemple, lors de la communication via GPIB, la norme est d’utiliser une ligne matérielle (EOI) pour la terminaison.

Remarque : Le VI VISA Configure Serial Port définit cette propriété avec le paramètre caractère de terminaison, qui est par défaut le retour à la ligne (0x0A = ’\n’ = LF).

Caractère de terminaison activé (TermChar En)


Caractère de terminaison activé

Si défini sur Vrai, cette propriété demande à VISA d’arrêter la lecture lorsque le caractère de terminaison est rencontré. Notez qu’elle n’est pas limitée aux communications série ; vous pouvez utiliser cette propriété pour terminer des lectures sur d’autres bus.

Important : Cette propriété est ignorée et ne renvoie pas d’erreur si Modes de fin pour lectures (abordé ci-dessous) est défini sur TermChar.

Cette propriété n’affecte pas le caractère de terminaison des écritures.

Remarque : Le VI VISA Configure Serial Port définit cette propriété avec le paramètre Caractère de terminaison activé, qui est par défaut Vrai.

Modes de fin pour lectures (ASRL End In)

Modes de fin pour lectures


Cette propriété spécifie la méthode utilisée pour mettre fin à une opération de lecture à partir du buffer logiciel pour la communication série uniquement. Les valeurs valides sont :

Valeur
Description
None (0)La lecture ne s’arrête pas lorsque le caractère de terminaison est rencontré.
Last Bit (1)La lecture se termine dès réception d’un caractère dont le dernier bit est défini.
TermChar (2)
(Par défaut)
La lecture s’arrête lorsque le caractère de terminaison est rencontré. Il s’agit de la valeur par défaut.


Important : Si la valeur est définie sur TermChar (2), la valeur de propriété Caractère de terminaison activé est ignorée.

Si le nombre d’octets (spécifié par VISA Read) ou le timeout (propriété VISA) est atteint, la lecture se termine quelle que soit la valeur sur laquelle cette propriété est définie.

Cette propriété peut être désactivée en définissant la propriété Supprimer fin activé (Suppress End En) sur Vrai.

Remarque : Le VI VISA Configure Serial Port définit cette propriété sur None si l’entrée Caractère de terminaison activé est False. Le VI la définit sur TermChar si l’entrée Caractère de terminaison activé est True.

Modes de fin pour écriture (ASRL End Out)

Modes de fin pour écriture



Cette propriété spécifie la méthode utilisée pour terminer les opérations d’écriture. Les valeurs valides sont :

Valeur
Description
None (0)
(Par défaut)
Aucun caractère de terminaison n’est ajouté à l’écriture.
Last Bit (1)L’écriture envoie tous les caractères à l’exception du dernier en effaçant le bit supérieur, puis transmet le dernier caractère avec le bit supérieur défini.
TermChar (2)La valeur de caractère de terminaison est ajoutée à la fin de toutes les écritures.
Break (3)Une pause série est envoyée après chaque écriture. Une pause série est une série de valeurs d’espace continu souvent utilisées pour demander à un instrument d’arrêter l’opération en cours ou d’évacuer toute donnée figurant dans le buffer de sortie. Utilisez cette méthode avec précaution.


Des drivers d’instruments plus anciens peuvent ajouter un caractère de terminaison avant l’écriture VISA. En effet, les anciennes versions de VISA ne prenaient pas en charge cette propriété et les utilisateurs devaient explicitement ajouter des caractères de terminaison. Cela n’est plus nécessaire, car la définition de cette propriété le fait pour vous.

Vous pouvez désactiver cette propriété en définissant la propriété Envoyer fin activé (Send End En) sur Faux.

Remarque : Le VI VISA Configure Serial Port ne définit pas cette propriété. Vous devez la définir via un nœud de propriété, comme indiqué dans la figure ci-dessus.

Communication ASCII


Lorsque vous effectuez une communication ASCII, définissez vos propriétés de terminaison et d’autres paramètres de communication de bus au début de votre routine d’initialisation d’application ou de driver. Les paramètres de caractère de terminaison doivent correspondre à la configuration de votre instrument. N’oubliez pas que certains instruments disposent de paramètres configurables. Consultez le manuel utilisateur de votre instrument.

Recommandation : Pour bénéficier d’applications plus robustes qui peuvent traiter plusieurs bus, synchronisez toujours les modes Caractère de terminaison activé et Modes de fin pour lectures (c’est-à-dire, lorsque vous activez ou désactivez l’un, faites-en de même pour l’autre).

Communication binaire


Lors d’une communication binaire, la lecture peut se terminer prématurément si une valeur de données binaires a la même représentation binaire que le caractère de terminaison. Par conséquent, désactivez le caractère de terminaison en définissant Caractère de terminaison activé sur Faux et Modes de fin pour lectures sur None (0), comme indiqué ci-dessous. Vous devez utiliser une méthode différente pour terminer la lecture, telle qu’une ligne de matériel ou un nombre d’octets.

communication binaire


Remarque : Lorsque vous utilisez des types de ressources VISA correspondant à un protocole 488.2 complet (GPIB Instr, VXI/GPIB-VXI Instr, USB Instr et TCPIP Instr), vous n’avez généralement pas besoin d’activer les caractères de terminaison. La communication binaire est plus facile car vous n’avez pas à vous soucier de la désactivation préalable des paramètres de caractère de terminaison.

Instruments utilisant plusieurs caractères de terminaison


Certains instruments envoient plusieurs caractères de terminaison tels que le retour à la ligne de retour chariot (les codes affichent ’\r\n’ ou ASCII hex 0x0D0A). Comme VISA n’autorise qu’un seul caractère de terminaison, vous devez trouver une autre solution. Tout d’abord, vérifiez si la séquence de terminaison de l’instrument est configurable. Sinon, vous pouvez configurer VISA pour terminer sur le dernier caractère et utiliser Balayer une chaîne pour analyser le ou les autres caractères du message. La figure suivante montre le code qui fonctionne pour les terminaisons '\r\n' ou '\n'.

plusieurs caractères de terminaison


Remarque : Pour utiliser cette configuration, la propriété Style d’affichage doit être définie sur Codes à barre oblique inverse ('\'). Pour plus d’informations sur l’affichage des codes de barre oblique inverse ('\'), reportez-vous à la section Affichage des codes à barre oblique inverse ('\') - Aide LabVIEW.

 

Was this information helpful?

Yes

No