Bonjour Remy,
Je n'ai pas de mesures récentes concernant le temps d'acheminement des commandes et de scrutation des évènements. J'avais réalisé des mesures dans le passé, mais c'était encore avec la version 16 bits de CATrain, où le PC envoyait directement les ordres aux modules sur la sortie RS232. Si je me rappelle bien, je n'avais pas constaté de délai supérieur à 100ms sur un réseau contrôlant 5 trains avec 3 modules PWM et un module détecteur.
Avec la version 32 bits/USB la réactivité est moins bonne. Le module USB fait de son mieux pour gérer les deux lignes RS232 (envoi des commandes en "pipe-line" et gestion parallèle des deux lignes), mais la mise en paquets "USB" et surtout l'envoi et la collecte de ces paquets par le PC n'est guère performante. Le bus USB est très rapide pour envoyer de longues trames de données mais pas pour l'envoi fréquent de petits paquets. Les fonctions "temps réel" sont tributaires du bon-vouloir du noyau "multi-thread" de Windows...
En théorie, les "timers" de CATrain sont dimensionnés à 50ms maximum, mais lorsque le noyau a de nombreuses tâches "prioritaires" à gérer, on peut "encaisser" un délai supplémentaire de plus de 100ms. Dans des cas exceptionnels (ex: modification de la zone de "swap" sur disque, ou installation d'une publicité venant du réseau), cette latence peut dépasser la seconde.
On a tous constaté un écran qui ne se rafraîchit pas, ou la souris qui ne répond plus et d'autres joyeusetés. Utiliser un PC plus puissant n'arrange rien, au contraire: le système passe encore plus de temps à gérer sa propre complexité!
Rien à faire contre cela, et ça ne s'arrangera certainement pas avec les futures versions de Windows. Les fabricants de périphériques "temps réel", comme l'audio et la video, contournent le problème en utilisant des "bufffers" de plus en plus longs pour permettre de longs écarts de désynchronisation....plusieurs secondes d'audio ou de video! Avec CATrain ce n'est pas possible, il faut un minimum de réactivité immédiate, surtout pour de petits réseaux très denses.
Le module USB "garde aux chaud" les évènements de détection (ex: entrée d'un train sur un tronçon ou détection à l'approche d'un signal) jusqu'à ce que le PC soit venu chercher le paquet de données, mais pendant ce temps les trains roulent sans contrôle... C'est pour cala que je conseille toujours d'avoir des signaux "actifs", coupant l'alimentation à leur pied pour éviter qu'un train ne franchisse un signal rouge avant d'avoir pu être arrêté par le PC.
Le remède serait de porter CATrain sur Linux ou sur Androïde mais c'est une autre histoire!
Voici quelques conseils pour tirer le meilleur parti de CATrain:
Coté PC:
- Utilisez un PC dédié au pilotage du réseau de trains et à rien d'autre. Ce PC peut être un ancien modèle.
- Ne pas mettre les fonctions Wifi et réseau en route.
- Ne pas installer d'anti-virus.
- Ne pas avoir de périphériques "temps réel" installés et encore moins connectés (cartes audio, vidéo, web-cam, ...).
- Eliminez toutes les tâches de fond inutiles (mises à jour, surveillance, sécurité, gadgets, ...).
- Au démarrage, laissez le PC effectuer "sa cuisine" interne avant de lancer CATrain (attendre que toute activité disque semble suspendue).
Coté CATrain:
- Optimisez les courbes de vitesse des locos avec soin: de nombreux essais sont nécessaires.
- Modifiez le dessin du réseau à l'écran pour optimiser le trafic et non pas pour "faire joli" ou coller au mieux à la topologie réelle.
- Utilisez un "arrondi de vitesse" important: 10 kmh (au lieu de 1 kmh rend le trafic moins joli à l'écran mais moins de commandes sont envoyées aux modules PWM et cela évite de saturer les "bus" série RS232).
- N'utilisez pas abusivement des limites de vitesse différentes par tronçon: cela provoque des accélérations et des décélérations permanentes des convois et multiplie les commandes PWM qui engorgent les "bus" série. (Vous n'êtes pas l'Etat, et n'avez pas intérêt à maximiser la consommation des véhicules et la pollution qui s'en suit!).
- Adaptez le trafic à la topologie de votre réseau. Optimisez les itinéraires: plutôt que ne faire démarrer un train automatiquement dès que la voie est libre, il vaut parfois mieux attendre l'arrivée d'un autre convoi pour synchroniser le trafic et éviter les engorgements.
Coté réseau et locos:
- Placez des signaux actifs sur l'alimentation (comme indiqué plus haut).
- Bien entretenir et nettoyer les voies pour éviter les pertes de contact, surtout près des signaux.
- Evitez les aiguilles "talonnées" sans contrôle électrique. Même lorsqu'elles sont munies d'un ressort de relâchement, ce sont des sources de déraillement.
- Evitez les sections trop pentues, surtout à l'échelle "z" où les roues des locos n'ont pas de bandages caoutchouc et patinent de plus en plus entre deux nettoyages (d'où perte de synchronisation).
- Attention à la phase de démarrage, surtout à froid! C'est le moment le plus critique.
Faire démarrer tout en même temps en mettant brutalement le bouton sur "ON" c'est courir à la "perte de synchronisation" immédiate ou même à l'accident. Un nombre impressionnant de commandes vont être envoyées simultanément et les délais de communication seront maximaux alors que les moteurs sont encore froids et répondent très mal (ou pas du tout!). Mettez d'abord toutes les consignes de vitesse à zéro avant de mettre sur "On". A l'activation, une fois toutes les commandes des articles (signaux et aiguilles) transmises et appliqués, mettez en route "intelligemment" train par train avec beaucoup d'attention visuelle!
- Utilisez des moteurs 5 pôles... C'est regrettable lorsque, comme moi, on possède de nombreuses machines à moteur 3 pôles, certaines ayant beaucoup de valeur (sentimentale
, mais en pratique les "nouveaux" moteurs 5 pôles ont un comportement bien plus fiable lorsqu'ils sont contrôlés en douceur par les modules "PWM". Les moteurs 3 pôles convenaient bien aux brutales commandes à relais en "tout ou rien", mais lorsque la tension électrique est appliquée progressivement ils démarrent "en retard" ou pas du tout! La double courbe de contrôle de vitesse de CATrain permet de remédier à ce phénomène mais pas toujours intégralement.
L'utilisation de moteurs à 5 pôles n'est quand même pas une obligation absolue. Je connais un antique réseau Jouef, à moteurs 3 poles, qui fonctionne parfaitement sous CATrain!
Ces conseils sont le fruit de mon expérience bien plus que de ma connaissance du logiciel et rejoignent ceux que François a déjà diffusés.
Cordialement,
Joël