le 01-26-2017 05:22 AM
Bonjour la communautée meilleurs voeux à vous,
je suis actuellement entrain de travailler sur un projet de communication entre un calculateur et un compact Rio. Pour mes essais je me sers d'un module 9862, j'arrive à faire communiquer mes deux éléments sans probléme. Mais je souhaiterai ajouter un second calculateur sachant que chacun aura des rôles différents. Je souhaiterai donc filtrer les trames de retour de mes calcultateur en utilisant leurs identifiants. Avec le VI ci-dessous, je peux envoyer et recevoir mes trames.
Au niveau de la réception je me sers d'une indexation de tableau le zéro concerne ma premiére trame.Aprés cela je récupére son identifiant et pour terminer récupérer les données. J'aimerai savoir si il y a une maniére plus simple de filtrer les trames sachant que j'aurais plusieurs calculateur.
Voici également un screenshot de ce que j'obtiens.
Ce que je trouve bizarre c'est que aprés mon indexation je regarde mon identifiant voir si cela correspond hors ce n'est pas le cas. Alors que que précédement l'identité de la trame était "182" la je trouve "386" ? Pourquoi cette différence ?
Merci de votre aide.
Bonne journée à vous.
Baba59
le 01-26-2017 06:56 AM
Je viens de trouver la solution pour mon probléme d'affichage cela venait du faite que mon indicateur ne l'afficher pas en Hexadecimal. Je reste néanmoins interesser par une meilleur facon de faire pour filtrer mes trames CAN selon l'identifiant.
01-26-2017 09:44 AM - modifié 01-26-2017 09:45 AM
As-tu essayé l'instance Frame In Single-point (le vi est polymorphe), je crois qu'il est là pour ça 😉
01-26-2017 09:53 AM - modifié 01-26-2017 09:53 AM
Bonjour,
Je n'ai jamais utilisé de Frame en Single Point. Je vais aller essayer ce que vous m'avez conseillé voir si cela peut fonctionner.
Cordialement.
Baba59
le 01-30-2017 04:39 AM
Pour ajouter à la réponse de Nico:
Ou Frame Input Queued.
Le single-point est adapté pour filtrer plusieurs trames, sans pouvoir les bufferiser (les trames sont écrasées - chaque trame est associée à un buffer à un élément).
Le mode Queued convient pour une seule trame que l'on souhaite superviser. Si 10 trames ont été lues par l'émetteur/récepteur, on pourra lire les 10 en un seul XNET Read.
Il faut choisir si la but est de faire une lecture ponctuelle (à une fréquence définie), ou si l'on souhaite lire toutes les informations émises sur le bus pour une trame particulière.
--Eric
Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.
le 02-06-2017 03:05 AM
Bonjour et merci pour vos réponses.
En faite je dois lire plusieurs trames sur mon réseau. Pour cela que je pensais utilisé ma structure que je vous ai proposés. Car j'ai compter j'aurai 8 trames différentes que je recevrais au Compact Rio. Donc le mieux serai d'utiliser le single point ?
le 02-06-2017 08:23 AM
Bonjour
Le Frame In Single-point te permet de sélectionner plusieurs trames, mais après, il faut les trier.
Tu doit aussi pouvoir faire plusieurs instance du single-point, un pour chaque trame.
Après, tu fais comme ça t'arange ![]()
02-08-2017 04:59 AM - modifié 02-08-2017 05:00 AM
D'accord merci beaucoup pour les informations. Je viens de commencer à voir le single point cela fonctionne bien. Mais j'ai du mal à comprendre le fonctionnement du DataBase.
Voici ce que j'ai créé ma frame.
Avec ma donnée que je souhaite récupérer. Mais quand je fais mes essais, je remarque que je recois rien et la mise à jour du Timestamps ne se fait pas. Donc est ce que j'ai loupé quelque chose ?
DIagrame :
J'ai essayé plusieurs chose du genre, mettre que les frames en espérant reception toute les données par rapport à la trame, cela ne fonctionne pas. J'ai créé ensuite mes trames avec les bons emplacements de mes données sans succés également.
J'ai cherché sur le site de National Instrument, mais je ne trouve pas l'explication et mon erreur.