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.
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.
01-25-2020 09:44 AM - modifié 01-25-2020 09:47 AM
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
Résolu ! Accéder à la solution.
le 01-27-2020 01:53 AM
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)
le 01-28-2020 01:37 AM
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.
.