03-27-2012 07:36 AM - modifié 03-27-2012 07:38 AM
Je souhaite faire communiquer en UDP Multicast plusieurs CompactRIO équipés de CPU 9022. Je suis sur LV 2011 SP1.
Pour le moment je fais des essais avec les VI d'example "UDP Multicast Receiver.vi" et "UDP Multicast Sender.vi"
Ces deux VIs fonctionnent très bien sur mon PC mais le VI Receiver semble ne pas fonctionner correctement sur les CRIO. Je m'explique :
Je ne sais pas si c'est lié, mais lors de mes premiers essais j'ai eu l'erreur 54 renvoyée par le vi UDP Multicast Open dans le Receiver lorsque j'exécutais celui-ci sur ma cible CRIO alors que cette erreur ne se produisait pas sur mon PC. J'ai fait disparaitre cette erreur en cablant la sortie de la fonction "String to IP" à l'entrée "net address".
Je ne trouve pas d'info sur le site NI sur ce type de problème, qqu'un aurait il déjà rencontré ça ou une idée à me soumettre ?
Résolu ! Accéder à la solution.
le 03-27-2012 08:53 AM
Bon, bin je viens de trouver la solution, un peu par hasard.
Apparemment le problème venait du fait que j'avais mis 0.0.0.0 comme adresse de Gateway dans la config réseau de mes CRIO. En mettant dans Gateway la même adresse que dans "Adresse IPv4" l'erreur 54 dont je parle plus haut disparait, et mes CRIO reçoivent bien les messages UDP.
je ne comprend pas trop pourquoi mais bon ...
le 03-28-2012 01:45 AM
Bonjour Yohann,
Les sender et receiver sont-ils sur les mêmes sous-réseaux ? Si non, il faut spécifier une adresse de passerelle de telle façon à ce que l'UDP Multicast puisse "traverser" les sous-réseaux et émettre correctement sur ces derniers. Le paramètre de TTL (Time To Live) permet de savoir combien de réseau l'UDP traverse.
Cdt,
Eric
Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.
03-28-2012 02:28 AM - modifié 03-28-2012 02:31 AM
Merci pour l'info Eric
Actuellement je suis sur une plateforme de développement, mes CRIO sont connectés sur un switch et je les ai configuré avec des IP fixes qui sont sur le même sous-réseau. Mais à terme le système sera déployé sur un réseau assez vaste avec des sous-réseaux différents, mais il y aura des passerelles.
Je ne suis pas très calé en ce qui concerne les réseaux, je m'inquietais un peu a cause de ces sous-réseaux différents, je n'avais pas bien saisi le role des passerelles. Est-ce que la passerelle permet aussi de faire "traverser" les communications TCP entre les sous-réseau ?
J'ai toujours lu que les cibles RT devaient être sur le même sous-réseau que le poste sur lequel on développe le logiciel, mais dans le cas contraire si on a une passerelle ça fonctionnera aussi ?
le 03-29-2012 03:04 AM
Bonjour Yohann,
Le TCP est bien pratique avec son système de requête, mais a besoin d'un routeur (en plus d'une simple passerelle) pour acheminer les données entre différents sous-réseaux. L'UDP n'a besoin que d'une passerelle pour avoir un point d'entrée dans les divers sous-réseaux.
Pour ce qui est des cibles RT, elles doivent effectivement être sur le même sous-réseau pendant le développement (impossible d'ajouter/déployer quoi que ce soit sinon), mais les cibles supportant le multicast peuvent éventuellement être à terme sur un sous-réseau différent lorsque l'appli est terminée (et est sous forme de .rtexe autonome).
Cdt,
Eric
Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.