le 04-27-2017 09:32 AM
Slt tout le monde,
j'ai quelques souci avec la communication (RS232) entre un PC et une centrale d'acquisition.
Matériels:
PC: Dell, win10 64bit, avec LabVIEW 2016
Central d'acquisition : AOIP SA70 ( elle doit avoir au moins 20 ans ).
convertisseur: USB-Serial ATEN, (drivers installés)
Avant d'ouvrir LabVIEW:
-je lance NI-MAX, la centrale est détecté
-je lance NI-VISA Control interfaces et rentre les paramètres de communication: Bauds 9600, 8 bits data,1 bit Start, 1bit stop, pas de parité.
- sur la fenêtre INPUT/OUTPUT, j'écris dans l'invite de commande, les commandes définies dans la doc de ma centrale.
- TOUT Fonctionne nickel, elle réponds positivement à mes "avances".
Le problème:
Après avoir effectuer les étapes précédentes, j'ouvrir tout heureux LabVIEW avec l'espoir de construire un VI assez facilement. MAIS en faisait un serial W/R rien ne fonctionne : AUCUNE COMMUNICATION. la fonction Read me renvoi qu'un "pauvre" TIMEOUT.
Recherche de solution ??
Pour essayer de solutionner mon problème, j'ai repris tout les étapes depuis le début, et j'ai lancé le NI-IO traces pour suivre l'évolution de la communication.
Avec "NI-VISA Control Interfaces":
commandes envoyées: RUN\r ( \r : CR: retour chariot) et STOP\r .Dans la deux cas la réponse est "@" : ce qui est satisfaisant
Avec LabVIEW:
Avec mon VI LabVIEW, j'obtient ceci de IO Trace:
Question :
Une idée d'où le problème peut venir ? ( Perso j'ai passé du temps dessus et sa casser la tête 😞 )
PS: Le VI que j'utilise en PJ
Bonne journée à vous
Cordialement
le 04-27-2017 09:43 AM
Bonjour,
Je ne peux pas ouvrir le VI, je n'ai pas LV2016.
As tu mis une temporisation entre le VI write ,et le Read.
Il convient de manière "classique" de mettre une temporisation d'au moins 50 ms entre les deux, afin de laisser le temps à ton équipement de recevoir la requête et de la traiter.
Cdt,
Michael
le 04-28-2017 01:41 AM
Slt a tous
et Merci Michael.C pour ta réponse. je vais tester avec une tempo.
ps: a default de pouvoir ouvrir mon VI je laisse un Capture.
05-19-2017 07:33 AM - modifié 05-19-2017 07:33 AM
Bonjour,
essaie dans un 1er temps de supprimer ta constance byte count et met un noeud de propriété qui prendra en entrée le VISA ressource name out de la fonction Write et tu t'en sert pour indiquer à la fonction Read le nombre de byte du port série.
Il se pourrait qu'avec ton code la fonction Read attende de lire 1024 bytes avant de sortir et comme elle reçoit pas elle sort en timeout.
Ajoute également une temporisation dans ta boucle while !!!