From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Réception de trames RS232 et stockage sous forme de string

Résolu !
Accéder à la solution

Bonjour,

 

Je réalise l'acquisition de différents capteurs via une liaison RS232. Les trames reçues (hexadécimales) et affichée dans l'affichage "Donnée brute capteur 1" du programme "hydrogenerateur.vi" sont de la forme suivante :

 

\r\00\07\00\00\00\00\FF\00\00\n
\r\01\07\0B\1A\00\00\01\00\00\n
\r\05\b\01\BAmV\00\00\00\00\n

 

Je désire donc ensuite séparer les différentes trames en utilisant la fonction "match pattern" de Labview avec le séparateur "\" mais ça ne fonctionne pas.

En fait ça fonctionne si je copie l'affichage "Donnée brute capteur 1" du programme "hydrogenerateur.vi" dans le programme "Test sans connection.vi" composé des mêmes blocs que le premier programme sans l'acquisition RS232.

Mais ça ne fonctionne pas directement dans le programme "hydrogenerateur.vi". C'est comme-ci l'affichage "Donnée brute capteur 1" ne correspondait pas à ce qui est réellement contenu et la fonction "match pattern" ne fonctionne donc pas.

 

Avez-vous une solution à proposer?

 

Merci d'avance,

Pierre

Tout télécharger
0 Compliments
Message 1 sur 3
2 445 Visites

Bonjour,

Il faut que tu regardes les propriétés de ton affichages Chaine. Vu ce que tu écrit il est surement en mode Affihchage des code, cela veux donc dire que la chaine de valeur contenue dans le stockage ne contient pas \r mais le caractère "cariage return"

C'est pour cela que le match pattern ne trouve pas de correspondance.

La solution est de mettre le on caractère en entrée du match Pattern.

Assures toi que tout les affichages sont dans le même mode ( clic droit affichage sur une indicateur chaine)

Message 2 sur 3
2 310 Visites
Solution
Accepté par pierre1325

Tout d'abord, concernant le fait que ça fonctionne dans un VI et pas dans l'autre, c'est à cause du mode d'affichage qui n'est pas le même. Si tu fais un click-droit sur le champ "Données brutes capteurs" tu verras dans le menu la possibilité d'afficher le texte de manière standard ou en mode "Code display". En mode "code display", le retour à la ligne est représenté par "\r" par exemple. Voir image1. Ensuite, la même remarque s'applique à la constante "\" de que tu recherches. Voir image 2. D'ailleurs tu remarqueras qu'en mode "code dysplay", tu ne peux pas rechercher un "\", ce qui est logique, car dans ce mode, le "\" est un élément de codage.

 

 

 

.ps.jpg

ps2.jpg

 

 

Message 3 sur 3
2 031 Visites