LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

BOUCLE CADENCEE

Bonjour,
J'utilise une boucle cadencée à 20ms sous Labview 7.1 pour envoyer une trame CAN.
Par un dispositif à compteur d'impulsions d'horloge je mesure le temps d'excecution de la boucle cadencée.
En règle générale le temps de cadencement et bien respecté, par contre si j'utilise la sourie ou/et iconise des fenêtres
(en fait utilise des resources du PC) le temps de cadencement est multiplié par 5 à 6 et passe entre 100ms et 120ms.
Comment faire pour respecter ce cadencement quelque soit la charge du PC ?
Merci d'avance pour vos sugestions.
 
 
Fabrice MAUROUX
Conception et Développement MICHELIN SA
Suisse
0 Kudos
Message 1 of 4
(4,161 Views)
Je crains que ce comportement soit inévitable avec un OS non temps réel !

J'ignore si vous avez connaissance de cette fonctionnalité, mais l'interface CAN est à même d'envoyer un message périodiquement. En procédant ainsi, la période d'envoi dépend non plus du système d'exploitation mais de l'interface CAN. CAN Transmit - periodic.vi qui se trouve dans les exemples LabVIEW pourra vous servir de base pour réaliser cette tâche, du moins si vous utilisez le Frame API. Je joins un VI que j'avais réalisé qui est une adaptation de cet exemple.

Marche à suivre :
  1. Exécuter une fois en mode Démarrer et en spécifiant la période. L'interface envoie alors périodiquement le message. 00 par défaut dans mon cas.
  2. Exécuter en mode Actualiser chaque fois que le message envoyé périodiquement doit être modifié. Dans ce cas le contenu du message est défini par Position.
  3. A la fin, exécuter en mode Arrêter pour stopper l'envoi.

Ceci vous permettra d'obtenir une période beaucoup plus régulière.


Download All
0 Kudos
Message 2 of 4
(4,150 Views)
Voici pour terminer l'exemple en LV 7.1.

Message Edité par JB le 08-22-2007 11:23 AM

Download All
0 Kudos
Message 3 of 4
(4,150 Views)
Merci pour votre rapide réponse,
En réalité j'utilise "CConfig CAN NET" qui ne peux être cadencé.
Comme je débute dans CAN sur LabView, je ne connais pas la différence entre NET et OBJ.
Puis-je utiliser les VI NET?
Dans mon appli je désire communiquer (écrire et lire) entre un PC(master) et 2 chargeurs(slaves).
Je dois écrire un PDO de consigne aux 2 chargeurs par contre les chargeurs envoient respectivement 5 PDOs de status par chargeurs.
Pour ne pas tomber en Watchdog les chargeurs doivent recevoir un PDO de consigne toutes les 50ms.
Aurriez-vous un exemple pour ce genre d'appli?
Merci d'avance et bonne journée.
 
Fabrice MAUROUX
Conception et Développement MICHELIN SA
Suisse
 
0 Kudos
Message 4 of 4
(4,135 Views)