Auteur Sujet: Réseau Dominique  (Lu 263338 fois)

Juan

  • Full Member
  • ***
  • Messages: 125
    • Voir le profil
Re : Réseau Dominique
« Réponse #105 le: avril 05, 2022, 12:52:22 pm »
Bonjour Dominique,
Je suis très intéressé par votre  module de programmation des locos.
Pourriez-vous m'envoyer plus d'informations ? Pourrait-il être envoyé directement à mon courrier électronique ?
Merci beaucoup.
Juan.




Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : Réseau Dominique
« Réponse #106 le: avril 05, 2022, 01:21:37 pm »
Oui, bien-sur.
Envoyez moi votre e-mail en MP.

Ce module a été fait il y a longtemps et je dois regarder s’il y a des mises à jour à faire.
Ça va prendre un peu de temps
Cordialement,
Dominique

Juan

  • Full Member
  • ***
  • Messages: 125
    • Voir le profil
Re : Réseau Dominique
« Réponse #107 le: avril 05, 2022, 05:30:01 pm »
Bonjour Dominique, je pense vous avoir envoyé un message à votre MP, mais je ne suis pas sûr de l'avoir fait correctement. Pouvez-vous confirmer si vous l'avez reçu ou non ?
Merci encore.

christian maccaire

  • Newbie
  • *
  • Messages: 16
  • Débutant au ras des paquerettes
    • Voir le profil
Re : Réseau Dominique
« Réponse #108 le: juin 14, 2022, 01:17:41 pm »
Bonjour Dominique
Je suis a la recherche d'un spécialiste des boucles, j'ai conçu mon circuit un peu avec ce que j'avais sous main je me retrouve avec un passage surélevé et une boucle, je n'arrive pas a voir  l'entré et la sortie afin d'intégrer un module de gestion.
Ci joint la vue du circuit avec des repères numérique.
Cordialemant

jeanmi67

  • Newbie
  • *
  • Messages: 30
    • Voir le profil
Re : Réseau Dominique
« Réponse #109 le: juin 14, 2022, 01:41:21 pm »
 
Bonjour,

A priori, un module de gestion de boucle (si c'est ça la question) avec les coupures de rails qui vont bien doivent être positionnés entre les aiguilles repérées 1 et 2.

Jean-Michel
jeaNmi

christian maccaire

  • Newbie
  • *
  • Messages: 16
  • Débutant au ras des paquerettes
    • Voir le profil
Re : Réseau Dominique
« Réponse #110 le: juin 14, 2022, 08:43:17 pm »
Merci de votre éclaircissement mais ne faut il pas inclure un aiguillage dans le dispositif avec une gestion des polarités sur cœur de l'aiguille
Cordialemant

jeanmi67

  • Newbie
  • *
  • Messages: 30
    • Voir le profil
Re : Réseau Dominique
« Réponse #111 le: juin 14, 2022, 10:44:13 pm »
 
Bonsoir,

Pourquoi voulez-vous compliquer les choses ? La gestion de la polarité du cœur d'une aiguille est une chose, la gestion d'une boucle de retournement est autre chose. Un module de gestion de boucle de retournement détectera une éventuelle inversion de polarité (à l'intérieur de la boucle) quand il le faudra, c'est à dire lors du passage d'une circulation, indépendamment de la position des aiguilles menant à cette boucle, et donc indépendamment de la polarité du cœur de ces aiguilles.

Jean-Michel
jeaNmi

CATPLUS

  • Sr. Member
  • ****
  • Messages: 435
    • Voir le profil
Best Regards

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Réseau Dominique
« Réponse #113 le: juin 15, 2022, 10:18:06 am »
Bonjour,

à votre place, je ferais les coupures (les deux rails) au niveau des flèches jaunes. Ou n'importe où entre ces deux points.
Cette partie du circuit doit être alimentée directement et c'est le reste du circuit qui est inversé par le module à détection de court-circuit.

Cordialement

christian maccaire

  • Newbie
  • *
  • Messages: 16
  • Débutant au ras des paquerettes
    • Voir le profil
Re : Réseau Dominique
« Réponse #114 le: juin 16, 2022, 07:39:21 pm »
Bonjour
Je retiens le montage
rudysmodelrailway mais peut on utiliser sur un même arduino UNO le montage de boucle  plus mes commandes d'aiguillage le tout piloté par JMRI ?

Cordialemant

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Cordialement

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : Re : Réseau Dominique
« Réponse #116 le: janvier 25, 2023, 06:02:16 pm »
Merci les Amis !
J’ai encore plein de choses à faire donc il y aura des suites  :P

Que le temps passe vite  ::)
Dans ce sujet, il n'est question que de mon réseau.
Merci de ne pas poser de questions relatives à votre propre projet, il est simple de créer votre propre sujet.

Bon, je vais essayer de décrire la partie GESTIONNAIRE du réseau : gros morceau qui se fera par petits bouts.

Mais auparavant il faut se rappeler l'architecture globale du réseau :


L'idée simple que j'ai suivi depuis le début et qui marche toujours est que tous les modules communiquent entre eux sur un bus CAN.

Ainsi, chaque module est développé indépendamment des autres et sa mise à jour éventuelle est aussi indépendante.
A cette époque je ne connaissais pas l'ESP32 et le wifi : je n'ai donc pas hésité. Toutefois le bus CAN est tellement pratique (il y en a dans toutes les voitures et les avions, ce n'est pas par Hazard). Je ne remercierai jamais assez Jean-Luc qui m'a présenté cette technologie.

Pour que tous ces modules échangent entre eux des messages qui signifient des événements sur le réseau, j'ai conçu un protocole personnel, le plus simple possible avec comme intention de ne rien changer pour éviter de modifier tous les modules en cas de changement. Ce qui ne m'empêche pas d'ajouter des nouveaux modules avec de nouveaux messages.

Je vais donc présenter les messages CAN qui concernent chaque module, ce qui permettra de comprendre facilement comment ça marche.

Petit rappel sur les messages CAN :
On relira si nécessaire l'article de base : Mise en oeuvre du Bus CAN entre modules Arduino (1)
https://www.locoduino.org/spip.php?article130

Chaque message est contient un identifiant Id et jusqu'à 8 octets de données

L'identifiant Id est unique. Il définit qui l'envoie (un seul émetteur car pas de doublons qui se promènent sur le réseau) et ce qu'il contient (ce qui est décrit dans le protocole CAN exposé par la suite.
Les octets suivants contiennent les détails du message. Parfois je n'en utilise qu'un seul, parfois plus. C'est aussi décrit dans le protocole.

« Modifié: janvier 25, 2023, 06:54:06 pm par Dominique »
Cordialement,
Dominique

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : Réseau Dominique
« Réponse #117 le: janvier 25, 2023, 06:30:38 pm »
Le premier module que j'ai réalisé après la découpe des plans de voies et la pose des rails avec les coupures des zones et la pose des détecteurs d'occupation est le TCO "manuel" décrit ici :
https://forum.locoduino.org/index.php?topic=290.msg3405#msg3405

Les messages CAN du TCO sont :
TCO capteurs :
- occupations et libérations des zones z0 à z39 (40 zones) : emis par le TCO
- Id = 0x10
 Les états d'occupation des zones sont émises vers le CENTRAL sur 1 octet avec l'Id = 10H :
 * ->  bit 7,6 -> 0,0 = libre ou 0,1 = occupe, bits 5..0 = numéro de zone 0.. MaxZONES (42)

- demande de commutation d’aiguilles par clé manuelle : emis par le TCO
- Id = 0x11

TCO actionneurs :
- affichage de la Led verte correspondant à la position d’aiguille réelle (indépendant de la clé)
- Id = 0x20
- Id = 0x21 (demande d'état de toutes les clefs)
* La demande d’états de toutes les clés par le central (MaxAIG réponses) Id=21H, Data=0xFF

Principe des commandes d’aiguilles
 TCO clefs -> Id=11H -> Central -> Id=40H -> Aiguilles cmde
 Aiguilles etat -> Id=12H -> Central -> Id=20H -> TCO
* ->  bit 7,6 -> 1,0 = dévié ou 1,1 = droit, bits 5..0 = numéro aiguille 0.. MaxAIG (20)
 * Les réponses d’états des aiguilles vers le central et le TCO Id = 20H:
 * ->  bit 7,6 -> 0,0 = dévié ou 0,1 = droit, bits 5..0 = numéro aiguille 0.. MaxAIG (20)


On comprend donc que :
- tous les détecteurs d'occupation par consommation de courant sont connectés au TCO (ce n'est pas ce qui réduit la masse de câbles sous le réseau). Chaque état détecteur est visualisé sur le TCO par une led rouge (allumée = occupé) installée dans le dessin du réseau.
- chaque aiguille est agrémentée d'une clé inverseur et 2 leds vertes qui représentent la position droite ou déviée de l'aiguille.
A ce stade da la réalisation, il fallait que je puisse commander les éléments du réseau manuellement.


... à suivre.. ;)
« Modifié: janvier 25, 2023, 06:38:20 pm par Dominique »
Cordialement,
Dominique

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : Réseau Dominique
« Réponse #118 le: janvier 25, 2023, 06:37:30 pm »
Le deuxième module réalisé après le TCO est le module de commande des aiguilles décrit ici :
https://forum.locoduino.org/index.php?topic=290.msg3412#msg3412



Il reçoit des ordres venant du TCO en commande manuelle (en fait la commande manuelle reste toujours possible quoi qu'il arrive ☺️) et aussi du gestionnaire quand il forme des itinéraires.
Après avoir reçu une commande il répond que le boulot est bien fait.

AIGUILLES (en tant que capteurs) : emis par module Aiguilles
- état aiguille après commande pour positionner la Led verte du TCO
- Id = 0x12
- confirmation d’enregistrement des états courant d’aiguille en EEPROM
- Id = 0x19
- AIGUILLES (en tant qu'actionneurs) : reçu par periphérique Aiguilles
- commandes d’aiguilles a0 à a18 (19 aiguilles)
- Id = 0x40
->  bit 7,6 -> 1,0 = devie ou 1,1 = droit, bits 5..0 = numero aiguille 0.. MaxAIG (20)
- réponse Id = 0x20 vers central ET TCO
*     COMMANDE RId = 40H          REPONSE TId = 12H et 20H               
 * 0xC0 à 0xD2 position DROIT     0x40 à 0x52
 * 0x80 à 0x92 position DEVIE      0x00 à 0x12
 * 0xD3 = deteleur T1              pas de reponse
 * 0x93 = deteleur T2              pas de reponse
- Id = 0x43
La demande d'etats de toutes les aiguilles par le central (MaxAIG reponses) RId =0x43
 * ->  bit 7,6 -> 1,1 , bits 5..0 = 1,1,1,1,1,1 (numero d'aiguille = 63 / 0x3F) = 0xFF
 * 0xFF = demande d'etat de toutes les aiguilles
- Id = 0x42
 * La  demande de sauvegarde des etats des aiguilles dans l'EEPROM avant extinction du reseau RId = 0x42
 * ->  bit 7,6 -> 1,0 , bits 5..0 = 1,1,1,1,1,1 (numero d'aiguille = 63 / 0x3F) = 0xBF
 * 0xBF = demande de sauvegarde EEPROM de l'etat de toutes les aiguilles
- Id = 0x19
 * La confirmation de mémorisation EEPROM vers le central TiD = 0x19
 * ->  bit 7,6 -> 0,0 , bits 5..0 = 1,1,1,1,1,1 (numero d'aiguille = 63 / 0x3F) = 0x3F
 * 0x3F = confirmation de sauvegarde EEPROM

Il peut donc revevoir des commandes venant du TCO mais aussi du gestionnaire.
Ce dernier en fait reçoit les commandes d'aiguilles du TCO et les retransmet au module de commande d'aiguilles selon le principe suivant :




Le TCO envoie une demande de commande d'aiguille avec l'ID 0x11. Si le gestionnaire accepte il transmet cette commande avec l'ID 0x40.

Quand le gestionnaire n'était pas là, le programme du module d'aiguille acceptait les commandes avec l'ID 0x11 pour un fonctionnement totalement manuel.
« Modifié: janvier 25, 2023, 07:28:02 pm par Dominique »
Cordialement,
Dominique

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : Réseau Dominique
« Réponse #119 le: janvier 25, 2023, 07:18:17 pm »
Naturellement vient ensuite le module de traction, il fallait bien jouer aux trains !

https://forum.locoduino.org/index.php?topic=290.msg4005#msg4005


et les messages CAN qui le concernent :

TRACTION
Adresses Id CAN = Reception (en tant qu'actionneurs, reçoit des ordres) :
* Id = 30H commande d'un train (Index, Vit, Dir, F0): 2 octets
data[0] = bits 0..5 = index loco
data[1] = bits 0..6 = vitesse, bit 7 = direction
* Id = 31H commande de lumière F0
data[0] = bits 7 = lumière
* Id = 32H arrêt d'urgence DCCet reprise
data[0] = 0x8F = arrêt urgence : stop DCC
data[0] = 0x0F = reprise : start DCC
* Id = 33H paramètres de configuration
* Id = 38H commande poste de conduite

Adresses Id CAN = Emission (en tant que capteurs, envoie des messages d'évènements) :
* Id = 13H envoi des paramètres de conduite (Index, Vit, Dir, F0) : 2 octets  (ni)
* Id = 14H envoi de F0 seul
* Id = 15H envoi état DCC on/off (0x80 = on; 0x00 = off)
data[0] = 0x80 ON
data[0] = 0c00 OFF
* Id = 16H envoi Intensité et CC (mA/16) et alarme CC (bit 7)
* Id = 17H consignes de vitesse V&V
* Id = 18H mesure de vitesse d'un train

Il y a là une plus grande richesse de messages CAN :
Au démarrage, après les initialisations de la centrale, celle-ci envoie un message de l'état DCC (Id 0x15), On en principe qui permet au gestionnaire de savoir qu'il est prêt à commander des trains.
A chaque changement manuel de la position d'un potentiomètre, la centrale envoie un message de conduite (Id 0x13) qui permet au gestionnaire de savoir quels trains sont en mouvement avec leurs paramètres de conduite (vitesse, direction, feux).
Il y a d'autres informations utiles qui sont envoyées comme la mesure de vitesse d'un train au passage dans les 2 zones prévues à cette effet et l'intensité de traction DCC fournie par le module de traction aux rails.

En échange, le module de traction doit obéir aux ordres tels que la commande d'un train (0x30 et 0x31), l'arrêt d'urgence (stop DCC) et la reprise (0x32), et des commandes de configuration (0x33) et de poste de conduite (0x38) pas encore utilisé  actuellement.

Il y a encore de la place pour ajouter d'autres commandes !

« Modifié: janvier 25, 2023, 07:44:46 pm par Dominique »
Cordialement,
Dominique