1/160 - Echelle N

Le Forum consacré à l'Echelle N
 
AccueilAccueil  PortailPortail  ÉvènementsÉvènements  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
N'hésitez pas à consulter le calendrier et les événements du forum pour voir les manifestations près de chez vous !
Le Deal du moment : -55%
Friteuse sans huile – PHILIPS – Airfryer ...
Voir le deal
49.99 €

 

 Circuit logique BAL participatif

Aller en bas 
+8
Philippe 67
StrongSpirit
tking-1007
Fantasio
pn200
Yves07
DMARRION
Formalhaut
12 participants
Aller à la page : 1, 2, 3, 4  Suivant
AuteurMessage
Formalhaut
Membre
Membre



Masculin Age : 70
Localisation : 77170 Brie Comte Robert
Nombre de messages : 327
Date d'inscription : 13/03/2016

Circuit logique BAL participatif Empty
MessageSujet: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeVen 19 Aoû 2022 - 18:35

Bonjour à tous.
Un tel sujet a peut-être déjà été traité, mais je n'en ai pas trouvé trace.
La gestion de la signalisation sur nos réseaux est un sujet récurrent. J'ai trouvé à droite à gauche, soit des cartes toute faites, soit des circuits à base de relais, soit commandés par Arduino.
J'ai déjà fait des circuits à relais (qui fonctionnent très bien),sur mon réseau de test et j'avais commencé à fabriquer des cartes pour mon réseau étagère. Mais ces circuits prennent beaucoup de place (rien que pour une carte BAL de base, c'est 1 relais 2RT et 1 relais 1RT) et surtout consomment pas mal de courant.
Alors, comme somme toute, la signalisation c'est de la logique pure, je vous propose le schéma d'un circuit de gestion de BAL de base, sans carré ou ralentissement ou autre pour l'instant, à base de portes logiques.
Alors, bien sur, certains resteront dubitatifs à la vue du schéma, mais ça parlera à certains autres qui  apporteront peut-être leurre pierre à l'édifice.
Déjà, le schéma. 4 cantons dans cet exemple, mais rien ne changerait avec seulement 3 ou plus que 4, autant que nécessaire en fait, il suffit juste de rajouter des cartes.
Circuit logique BAL participatif Img_0836

Et quelques explications:
la détection est faite par un ILS au passage du train (aimant sous la loco), mais tout autre mode de détection est valable. Il faut juste envoyer un +. Comme le contact de l'ILS est intermittent, on rajoute un thyristor qui va maintenir le + (BT149D dans mon cas). Il est alimenté au travers du porte "ET" et d'une porte "OU exclusif": quand la loco passera au dessus de l'ILS du canton suivant, le + sera coupé.
La logique est effectuée par 4 portes "OU exclusif". La porte 2 pourrait être une porte "OU" seule, mais comme les CI comprennent généralement 4 portes, le compte y est.
La porte 3, en BAL simple est facultative, mais elle servira en cas de rajout d'un carré, ralent, etc, pour pouvoir inhiber le jaune.
Je n'ai pas encore monté ce circuit. Je posterai d'autres schémas avec le carré, le ralent 30 ou 60, etc.
En résumé, le matériel pour une carte est des plus limités: 1 ILS (ou autre), 1 thyristor (50 cts), 1 CI 4 portes "OU exclusif" (65cts), 1 CI portes "ET", une petite plaque cuivrée (peut-être 1€), quelques bornes de raccordement.
Merci de vos commentaires et critiques.
Revenir en haut Aller en bas
DMARRION
Membre
Membre
DMARRION


Masculin Age : 66
Localisation : THEZEY ST MARTIN (54)
Nombre de messages : 4338
Date d'inscription : 27/12/2010

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeSam 20 Aoû 2022 - 8:29

Bonne initiative que de proposer un schéma simple pour gérer les signaux de manière réaliste !

Etant personnellement un inconditionnel du BAL "décentralisé" (c'est à dire que chaque canton fonctionne en autonomie avec ses entrées-sorties, sans recours à une intelligence centrale), je ne peux qu'approuver la démarche. Pour mon réseau, je suis allé plus loin en réalisant un BAL qui gère les signaux mais aussi la tension "traction", avec démarrages et arrêts progressifs, sans sauts de vitesse aux changements de cantons. Le tout est réalisé avec des portes NAND, des portes analogiques (type 4016) et des transistors. Voir sujet ici

Une remarque :
Pour un fonctionnement réaliste, il vaut mieux écarter la détection ponctuelle et fugitive au profit d'une détection continue et en tout point ; c'est à dire une détection par consommation de courant avec graphitage des essieux du matériel roulant remorqué.

En effet, c'est le moyen le plus simple (*) de détecter TOUT le convoi et pas seulement la loco, et donc d'avoir visuellement le passage du feu rouge au feu jaune lorsque le dernier wagon quitte le canton comme dans la réalité et non lorsque la loco entre dans le canton suivant comme ce sera le cas avec des ILS ou barrières optiques.
A noter également qu'avec une détection par ILS ou barrière optique, si on coupe le courant quelques minutes et qu'on remet sous tension, tous les feux repassent au vert même avec des trains dans les cantons... Ce ne sera pas le cas avec une détection par consommation de courant.

(*) Une détection ponctuelle et fugitive peut aussi protéger tout un train, mais dans ce cas il faut compter les véhicules (locos et wagons) à l'entrée et à la sortie du canton, et ne réarmer le détecteur que si ces 2 nombres sont identiques. C'est une autre paire de manches à réaliser en N...
Revenir en haut Aller en bas
Yves07
Membre
Membre
Yves07


Masculin Age : 78
Localisation : Ardeche
Nombre de messages : 175
Date d'inscription : 18/04/2020

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeSam 20 Aoû 2022 - 10:21

Salut à vous deux.

Je crois comprendre que Formalhaut ne cherche pas à piloter automatiquement les trains mais plutôt, comme dans la réalitée, à commander les signaux en fonction de la position des trains et c'est le mécanicien qui pilote, ici en digital/DCC par exemple.
Le système est bien décentralisé: une petite carte par signal.

Concernant le schéma, parce que j'ai une mauvaise expérience avec les thyristors qui s'enclenchent/déclenchent intempestivement (parasites), et comme il ya déjà une porte NAND pourquoi ne pas l'utiliser en bascule R/S ?
Voire même un CD4013 pour deux cantons ?
D'ailleurs, si on n'utilise pas le jaune, je pense qu'il n'y a rien besoin d'autre . . . Simplissime !

Concernant le système de détection, je préfère comme DMARRION la détection de présence à la détection de passage ce qui élimine la besoin d'une "mémoire" (thyristor ou bascule ... ).

Bonnes bidouilles.
Revenir en haut Aller en bas
http://dissident-audio.com
pn200
Membre
Membre



Masculin Age : 73
Localisation : Saint Amand
Nombre de messages : 343
Date d'inscription : 24/12/2013

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeSam 20 Aoû 2022 - 21:34

Bonsoir,
1 Arduino une centaine de ligne, c'est simple.
J'avais commencé avec des nand, bascules rs, j'ai tout dégagé.
Revenir en haut Aller en bas
Fantasio
Membre
Membre
Fantasio


Masculin Age : 64
Localisation : Saint Médard en Jalles (33)
Nombre de messages : 2352
Date d'inscription : 15/11/2019

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeDim 21 Aoû 2022 - 16:08

pn200 a écrit:
Bonsoir,
1 Arduino une centaine de ligne, c'est simple.
J'avais commencé avec des nand, bascules rs, j'ai tout dégagé.
Bonjour à tous.

Je suis également partisan des systèmes décentralisés et de l'utilisation de l'Arduino. Voici à titre d'exemple un code Arduino pour gérer la signalisation d'un canton.
Il reçoit le signal du détecteur d'occupation, la situation du canton N+1 et informe le canton N-1 de son état d'occupation. 
Je l'ai simulé sur Wokwi et il est testable en utilisant ce lien. Pour ceux qui voudrait essayer je précise que:
- l'inverseur au dessus des résistances simule le détecteur d'occupation (la position gauche correspond à la détection sur le canton N)
- la led bleu allumée correspond à l'information "canton N occupé"
- le second inverseur en position gauche correspond à l'information "canton N+1 occupé"

Dernier point: Ce code n'utilise que 6 entrées/sorties et peut donc facilement tourner sur un ATtiny84.

Code:
/*attiny84 BAL
  21/08/2022
  Fantasio
  Testé sur Nano
  Simulation visible ici: https://wokwi.com/projects/340608625850450516

  si Canton N occupé alors led rouge allumée  et envoi info d'occupation vers Canton-1
  si Canton N libre et Canton N+1 libre  alors led verte allumée
  si Canton N libre et Canton N+1 occupé) alors led jaune allumée

  par convention:
  -une led s'allume si un niveau HIGH est présent en sortie
  -si un train occupe un canton le capteur d'occupation voit sa sortie passer du niveau HUGH au niveau LOW
 
                                 Brochage Attiny84

                                 VCC=|1  U 14|= GND
                                 10 =|2    13|= 0--> LedRouge
                                  9 =|3    12|= 1--> LedJaune
                              Reset =|4    11|= 2--> LedVerte
                                  8 =|5    10|= 3
       OccupationCantonSuivant -->7 =|6     9|= 4
                DetectionTrain -->6 =|7     8|= 5--> OccupationCanton
*/

// Constantes
const byte LedRouge = 0; // pin reliée à la led rouge
const byte LedJaune = 1; // pin reliée à la led jaune
const byte LedVerte = 2; // pin reliée à la led verte
const byte OccupationCanton = 5; // pin reliée à l'entrée "OccupationCantonSuivant" du circuit N+1
const byte DetectionTrain = 6; // pin reliée à la sortie du détecteur d'occupation du canton N
const byte OccupationCantonSuivant = 7;// pin reliée à la sortie "OccupationCanton" du canton N-1
/*branchement sur Nano  
  const byte LedRouge = 4; // pin reliée à la led rouge
  const byte LedJaune = 3; // pin reliée à la led jaune
  const byte LedVerte = 2; // pin reliée à la led verte
  const byte OccupationCanton = 10; // pin reliée à l'entrée "OccupationCantonSuivant" du circuit N+1
  const byte DetectionTrain = 7; // pin reliée à la sortie du détecteur d'occupation du canton N
  const byte OccupationCantonSuivant = 12;// pin reliée à la sortie "OccupationCanton" du canton N-1

*/
// Variables
bool etatLedRouge; // pour la commande d'allumage des leds
bool etatLedJaune;
bool etatLedVerte;
bool etatDetection; // HIGH si Canton N libre, LOW si Canton N occupé
bool etatOccupationCanton; // HIGH si Canton N libre, LOW si Canton N occupé
bool etatOccupationCantonSuivant; // HIGH si Canton N+1 libre, LOW si Canton N+1 occupé

void setup() { // configuration des différentes pins
  pinMode(LedRouge, OUTPUT);
  pinMode(LedJaune, OUTPUT);
  pinMode(LedVerte, OUTPUT);
  pinMode(OccupationCanton, OUTPUT);
  pinMode(OccupationCantonSuivant, INPUT_PULLUP);
  pinMode(DetectionTrain, INPUT_PULLUP);
} // fin setup

void loop() {
  etatDetection = digitalRead(DetectionTrain); // lecture de l'état du détecteur d'occupation du canton N
  etatOccupationCantonSuivant = digitalRead( OccupationCantonSuivant); // information de l'état d'occupation transmise par le canton N+1
  digitalWrite(OccupationCanton, etatOccupationCanton); // on informe le canton N-1 de l'état du canton N
  digitalWrite(LedRouge, etatLedRouge);// allumage ou non des leds fonction de leur état respectif
  digitalWrite(LedJaune, etatLedJaune);
  digitalWrite(LedVerte, etatLedVerte);

  if (etatDetection == LOW) {   // canton N occupé
    etatOccupationCanton = LOW; // information "canton N occupé" à transmettre au canton N-1
    etatLedRouge = HIGH;        // led rouge allumée
    etatLedJaune = LOW;         // led jaune éteinte
    etatLedVerte = LOW;         // led verte éteinte
  }
  else {
    if (etatOccupationCantonSuivant == LOW) { // canton N libre et canton N+1 occupé
      etatOccupationCanton = HIGH;            // information "canton N libre" à transmettre au canton N-1
      etatLedRouge = LOW;                     // led rouge éteinte
      etatLedJaune = HIGH;                    // led jaune allumée
      etatLedVerte = LOW;                     // led verte éteinte
    }
    else {                         // canton N libre et canton N+1 libre
      etatOccupationCanton = HIGH; // information "canton N libre" à transmettre au canton N-1
      etatLedRouge = LOW;          // led rouge éteinte
      etatLedJaune = LOW;          // led jaune éteinte
      etatLedVerte = HIGH;         // led verte allumée
    }
  }
} // fin loop

Amusez vous bien Very Happy


Dernière édition par Fantasio le Dim 21 Aoû 2022 - 17:11, édité 1 fois
Revenir en haut Aller en bas
Fantasio
Membre
Membre
Fantasio


Masculin Age : 64
Localisation : Saint Médard en Jalles (33)
Nombre de messages : 2352
Date d'inscription : 15/11/2019

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeDim 21 Aoû 2022 - 17:10

Le lien pour la simulation est celui -ci
Désolé... Embarassed
Revenir en haut Aller en bas
Yves07
Membre
Membre
Yves07


Masculin Age : 78
Localisation : Ardeche
Nombre de messages : 175
Date d'inscription : 18/04/2020

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeDim 21 Aoû 2022 - 17:37

Hello Fantasio !

Parfait, j'étais sûr que tu allais nous le faire ! !

Il ne manque que le détecteur d'occupation, en analogique peut être une diode en série dans l'alim du rail négatif et en utilisant une entrée analogique ? (Marche arrière interdite)
En DCC ajouter un filtrage . . . pourquoi pas logiciel  Wink

Avec un simple ILS ou autre détecteur de passage, c'est indem...dable.
Revenir en haut Aller en bas
http://dissident-audio.com
Fantasio
Membre
Membre
Fantasio


Masculin Age : 64
Localisation : Saint Médard en Jalles (33)
Nombre de messages : 2352
Date d'inscription : 15/11/2019

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeDim 21 Aoû 2022 - 18:10

Yves07 a écrit:
Hello Fantasio !

Parfait, j'étais sûr que tu allais nous le faire ! !
La tentation était trop forte et puis ça permet à mes quelques neurones de travailler un petit peu... Very Happy Et de plus c'est Formalhaut qui a fait le plus gros du travail...

Pour le détecteur d'occupation je pense comme DMARRION qu'un détecteur basé sur la consommation de courant serait le plus efficace.
Par exemple celui ci:
Circuit logique BAL participatif Dccdet10
lien: http://www.train35.fr/dcc8.html

Il est valable pour le DCC et l'analogique et ne demande pas un investissement financier important study 
Il est arduino compatible du fait que sa sortie se branche sur une entrée configurée en pull-up.
Revenir en haut Aller en bas
tking-1007
Membre
Membre
tking-1007


Masculin Age : 74
Localisation : *
Nombre de messages : 428
Date d'inscription : 27/06/2008

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeDim 21 Aoû 2022 - 21:15

Fantasio a écrit:
Yves07 a écrit:
Hello Fantasio !

Parfait, j'étais sûr que tu allais nous le faire ! !
La tentation était trop forte et puis ça permet à mes quelques neurones de travailler un petit peu... Very Happy Et de plus c'est Formalhaut qui a fait le plus gros du travail...

Pour le détecteur d'occupation je pense comme DMARRION qu'un détecteur basé sur la consommation de courant serait le plus efficace.
Par exemple celui ci:
Circuit logique BAL participatif Dccdet10
lien: http://www.train35.fr/dcc8.html

Il est valable pour le DCC et l'analogique et ne demande pas un investissement financier important study 
Il est arduino compatible du fait que sa sortie se branche sur une entrée configurée en pull-up.

Pour l'optocoupleur l'utilisation d'un TLP620 permet de détecter dans les deux sens ( enrée non polarisée , deux optos tête bêche )

A+ JL
Revenir en haut Aller en bas
Formalhaut
Membre
Membre



Masculin Age : 70
Localisation : 77170 Brie Comte Robert
Nombre de messages : 327
Date d'inscription : 13/03/2016

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeLun 22 Aoû 2022 - 0:01

Bonsoir.
Merci à vous tous pour vos suggestions.
En ce qui me concerne, il n'y aura ni Arduino, ni digital et sans doute pas d'action sur la marche des trains qui ne m'intéresse pas plus que ça...
Je note vos suggestions pour la détection que je trouve intéressantes, même si pour l'instant je continue avec mon thyristor. J'ai déjà expérimenté ce système qui est assez stable pour peu qu'on y adjoigne un petit condensateur d'une dizaine de microfarad, soudé au plus près.
J'ai commencé une variante du schéma avec un carré et donc un oeilleton blanc en plus. C'est pas beaucoup plus compliqué. Je poste ça rapidement.
Revenir en haut Aller en bas
DMARRION
Membre
Membre
DMARRION


Masculin Age : 66
Localisation : THEZEY ST MARTIN (54)
Nombre de messages : 4338
Date d'inscription : 27/12/2010

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeLun 22 Aoû 2022 - 8:01

pn200 a écrit:
Bonsoir,
1 Arduino une centaine de ligne, c'est simple.
J'avais commencé avec des nand, bascules rs, j'ai tout dégagé.
En automatisme, on considère 2 types de logiques :

- 1) la logique est dite combinatoire lorsque pour chaque combinaison de l'état des entrées correspond une et une seule combinaison de l'état des sorties

- 2) la logique est dite séquentielle lorsque l'état des sorties dépend non seulement de l'état des entrées, mais aussi de ce qui s'est passé avant. Autrement dit, pour une combinaison donnée de l'état des entrées, l'état des sorties pourra changer et dépendre des combinaisons d'états précédentes.

Lorsque j'ai appris ces notions dans les années 70, il n'y avait pas le choix : il fallait tout réaliser, y compris les ensembles à logique séquentielle, avec les technologies à disposition : circuits logiques, transistors, diodes, relais, etc. Ces circuits pouvaient vite devenir très complexes, avec en plus des portes logiques de base de nombreuses bascules, compteurs, latch, etc.

Puis l'arrivée sur le marché des composants à faible coût permettant la microprogrammation a bouleversé et simplifié la façon de concevoir les automatismes reposant sur la logique séquentielle. En effet, la programmation permet de créer des scénarios, tout à fait ce qu'il faut pour traiter des séquences.
En revanche, tout ce qui relève de la logique combinatoire n'est pas forcément traité plus simplement ou plus économiquement par la logique microprogrammée.
Des circuits simples avec des fonctions fixes (ET, OU, NON...) permettent de concevoir des automatismes reposant sur la logique combinatoire, avec un coût de revient équivalent (voir inférieur) à celui d'une solution avec microprogrammation. Ces circuits ne nécessitent aucun périphérique de dialogue avec la machine, et présentent une stabilité de fonctionnement absolue (pas de "plantage" possible).

Il se trouve qu'un block uniquement destiné à gérer les feux et s'appuyant sur une détection par consommation de courant (donc sans enregistrement - réarmement) est un pur problème de logique combinatoire.
Revenir en haut Aller en bas
StrongSpirit
Membre
Membre
StrongSpirit


Masculin Age : 59
Nombre de messages : 1654
Date d'inscription : 19/12/2007

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeLun 22 Aoû 2022 - 15:20

DMARRION a écrit:

A noter également qu'avec une détection par ILS ou barrière optique, si on coupe le courant quelques minutes et qu'on remet sous tension, tous les feux repassent au vert même avec des trains dans les cantons... Ce ne sera pas le cas avec une détection par consommation de courant.

Y a un truc qui m'interpelle...
Ceux qui ont un dispositif par détection de consommation de courant (soit fait maison, soit un truc genre Digikeijs 4088CS ou similaire d'un autre constructeur) pourront peut-être me répondre

Si une loco DCC seule sans convoi avec essieux resistifs, ou par exemple un autorail, se trouve sur un canton lors de la remise en tension, est-ce que la consommation de la loco ou de l'autorail en mode idle (à l'arrêt) est suffisante pour la/le détecter ? (bien sûr, on considère une machine non sonorisé).
Revenir en haut Aller en bas
Formalhaut
Membre
Membre



Masculin Age : 70
Localisation : 77170 Brie Comte Robert
Nombre de messages : 327
Date d'inscription : 13/03/2016

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeLun 22 Aoû 2022 - 19:11

Bonjour.
Je viens de voir qu'il y avait une erreur dans le premier schéma. La porte 3 est en trop et fait que le jaune s'allumera en même temps que le rouge. Pas glop...
Nouvelle version corrigée:
Circuit logique BAL participatif Img_0838

Et la variante avec carré et oeilleton blanc:
Circuit logique BAL participatif Img_0841


Dans mon cas, il y a 2 signaux de sortie de gare pour 2 voies à quai. Le carré est présenté pour le signal 4, voie 4, quand l'aiguille 2 est en position déviée ou pour le signal 2, voie 2, quand l'aiguille 2 est en position directe et/ou quand l'aiguille 3 est en position déviée. Un + est fourni au travers d' un contact auxiliaire des moteurs d'aiguille. Les feux de BAL des 2 signaux sont branchés en parallèle mais sont inhibés par le carré correspondant.
Circuit logique BAL participatif Img_0839


Pour l'oeilleton, ici, il ne s'allume que quand le rouge sémaphore est allumé. Je n'ai pas réussi à déterminer exactement si c'est correct ou si il doit s'allumer tout le temps sauf avec le carré. J'ai lu les 2 versions. Quelqu'un a peut-être la réponse sure? La modification n'est pas difficile à faire, juste quelques portes "OU" supplémentaires.
Revenir en haut Aller en bas
Fantasio
Membre
Membre
Fantasio


Masculin Age : 64
Localisation : Saint Médard en Jalles (33)
Nombre de messages : 2352
Date d'inscription : 15/11/2019

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeLun 22 Aoû 2022 - 19:36

Je ne suis pas un expert de la signalisation. DMARRION interviendra surement.

Par contre j'ai trouvé ceci sur le net. Peut être que cela pourra t'aider?
Revenir en haut Aller en bas
Formalhaut
Membre
Membre



Masculin Age : 70
Localisation : 77170 Brie Comte Robert
Nombre de messages : 327
Date d'inscription : 13/03/2016

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeLun 22 Aoû 2022 - 19:42

Merci.
Ouais, OK, j'avais aussi vu cette page et à la relecture, en effet, l'oeilleton doit être toujours allumé sauf avec le carré. Dans la version que j'ai faite (centralisée à relais et qui fonctionne) pour mon réseau d'essai, l'oeilleton ne s'allume qu'avec le sémaphore.
Je fais la modif du schéma.
Revenir en haut Aller en bas
Formalhaut
Membre
Membre



Masculin Age : 70
Localisation : 77170 Brie Comte Robert
Nombre de messages : 327
Date d'inscription : 13/03/2016

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeLun 22 Aoû 2022 - 19:51

Juste pour info, la carte à relais que j'ai déjà faite pour la gestion de ces 2 signaux. Ca devrait être beaucoup mieux avec des portes logiques.
Circuit logique BAL participatif Img_0842
Revenir en haut Aller en bas
Formalhaut
Membre
Membre



Masculin Age : 70
Localisation : 77170 Brie Comte Robert
Nombre de messages : 327
Date d'inscription : 13/03/2016

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeLun 22 Aoû 2022 - 23:43

La version avec oeilleton conforme.
Faudra que je le refasse. Celui-là n'est pas très clair.
Circuit logique BAL participatif Img_0843
Revenir en haut Aller en bas
Philippe 67
Membre
Membre
Philippe 67


Masculin Age : 68
Localisation : DINGSHEIM
Nombre de messages : 120
Date d'inscription : 06/10/2021

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeMar 23 Aoû 2022 - 0:22

Bonsoir à vous tous
Il faudrait que je mette au propre un de mes schémas pour le partager...
Puisque, par choix, il n'est question ni de numérique ni de système à base d'arduino-bref, comme chez moi- on peut utiliser des solutions "TTL" (transistor transistor logic) avec des résistances de tirage pour bloquer ou rendre passant un transistor qui allumera une led.
De ce que j'observe du schéma des voies, l'allumage du carré dépendra de la position de l'aiguille qu'il protège. D'où ma question : quelle est la nature du signal donnant la position de l'aiguille ?
Chez moi, comme j'utilise le signal renvoyé via les interrupteurs de fin de course de mes aiguilles Fleischmann ou Arnold, donc du 18 volts alternatif, j'ai développé un schéma à base de diodes et d'optocoupleurs qui permet de ne pas mélanger les types de courants et de créer des grilles de sélection, le nombre de positions étant par nature déterminé.
Je vais essayer de mettre ça au propre rapidement...
Revenir en haut Aller en bas
DMARRION
Membre
Membre
DMARRION


Masculin Age : 66
Localisation : THEZEY ST MARTIN (54)
Nombre de messages : 4338
Date d'inscription : 27/12/2010

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeMar 23 Aoû 2022 - 7:51

Quelques réponses en vrac à différentes questions posées plus haut :
Concernant l'oeilleton : Du strict point de vue réglementation, son utilité est de pouvoir, sur les signaux portant la plaque Nf (Non franchissable), faire la différence entre un sémaphore fermé et un carré fermé dont 1 lampe serait grillée.
Rien n'interdirait donc de ne le présenter qu'avec le sémaphore, mais le choix a été fait de le présenter dès lors que le carré n'est pas fermé. Dans les années 50 - 60, on a même poussé jusqu'à installer des oeilletons toujours allumés sur des signaux de BAL de pleine voie portant une plaque F ! Il existe encore de tels signaux en service.

Carrés et sélection par les aiguilles : C'est effectivement l'idée de base. La réalité est un peu plus complexe, car non seulement la position des aiguilles fait la sélection du signal à ouvrir, mais il y a d'autres critères, comme par exemple les contrôles d'application des lames d'aiguilles, le contrôle qu'aucun itinéraire incompatible n'est tracé et verrouillé (*), etc.
A cela s'ajoute une commande manuelle : Même si toutes les conditions techniques sont remplies (aiguilles dans les bonnes positions, etc), le carré reste fermé tant que l'aiguilleur n'autorise pas son ouverture.
(*) Parfois, la seule sélection par la position des aiguilles ne suffit pas. C'est notamment le cas d'un itinéraire qui emprunte un croisement (il n'y a pas de "position" sur un croisement, qui permet pourtant 2 itinéraires sécants !). C'est aussi le cas pour un itinéraire parcourable dans les 2 sens sur toute ou partie de son trajet. Avant d'ouvrir le carré pour un sens, il faut s'assurer qu'un autre carré ne donne pas accès à l'itinéraire dans l'autre sens

Nature du signal donnant la position de l'aiguille : Sur le réseau ferré national français, aucun signal ne donne directement la position des aiguilles.
En revanche, on renseigne les conducteurs sur la destination de l'itinéraire tracé. Par exemple ;
- par les feux de direction (feux blancs montés sur une cible horizontale au dessus du signal : 1 feu = direction géographique la plus à gauche, 2 feux = 2° direction en partant de la gauche, etc)
- par les tableaux lumineux type "D", "G" qui indiquent un itinéraire conduisant vers le dépôt ou vers une voie de garage.
Le conducteur peut aussi déduire une partie de l'itinéraire grâce aux feux présentés : un rappel de ralentissement indique qu'il y aura au moins 1 aiguille en position déviée, un feu blanc "marche en manoeuvre" indique que la destination est une voie de service, etc.

Dans les faisceaux de voies de service, il n'y a en général qu'un seul signal de sortie pour l'ensemble des voies. L'autorisation de départ sur chaque voie peut être donnée par un agent, par un tableau lumineux indiquant le n° de la voie, ou autre dispositif.
Revenir en haut Aller en bas
Formalhaut
Membre
Membre



Masculin Age : 70
Localisation : 77170 Brie Comte Robert
Nombre de messages : 327
Date d'inscription : 13/03/2016

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeMar 23 Aoû 2022 - 9:00

Bonjour.
Pour répondre à Philippe67, dans mon cas, le signal donnant le position de l'aiguille est un +12v transitant par un contact auxiliaire de fin de course du moteur d'aiguille concerné. Comme j'ai installé des moteurs qui n'ont qu'un seul contact auxiliaire, j'ai équipé chacun d'eux d'une carte à relais ayant autant de relais 2RT que nécessaire pour ce que je prévoyais d'avoir à commuter. Le contact unique de fin de course commande la bobine des relais. J'ai donc un tas de contacts auxiliaire R ou T et j'ai même prévu du rab au cas où...
Pour répondre à Dmarrion, je ne vais pas faire si compliqué, je me contenterai des carrés liés à la position des aiguilles. Quant aux oeilletons, je vois donc que le débat reste ouvert....
Enfin, pour répondre à Yves07, non je n'ai pas prévu de portes Nand dans mes schémas, juste des XOR, AND et OR. Je me suis documenté sur les bascules RS et un tel système ne me simplifierait pas la tâche. Donc, pour l'instant, jusqu'au montage d'une carte, quand j'aurai reçu les CI nécessaires (commandés), je reste avec mes thyristors et la détection ponctuelle par ILS. On verra aux essais.
Cela dit, merci à tous pour vos contributions et si vous trouvez des erreurs dans mes schémas (comme sur le premier), merci de me le faire remarquer.
Revenir en haut Aller en bas
Philippe 67
Membre
Membre
Philippe 67


Masculin Age : 68
Localisation : DINGSHEIM
Nombre de messages : 120
Date d'inscription : 06/10/2021

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeMar 23 Aoû 2022 - 10:24

Bonjour à vous tous,
Bonjour "Formalhaut"
Je n'ai pas trouvé le temps de recopier au propre mon schéma.
J'ai quand même regardé le vôtre, et un petit truc me fait un peu tiquer.
Dans le cas du carré, la led rouge "sémaphore" est alimentée en parallèle de la led "carré" via une diode. On a donc une différence de tension qui va influer sur l'éclairement des leds.
Dans mes essais, c'était très visible, mais ça peut dépendre du type des leds.
J'ai résolu le problème en alimentant mes leds rouges du carré via un "Y" de diodes, la position "sémaphore" étant alimentée via une seule diode du même type. Ça évite aussi d'avoir des tensions positives arrivant sur les sorties des portes, ou, chez moi, des transistors de commande.
Revenir en haut Aller en bas
Fantasio
Membre
Membre
Fantasio


Masculin Age : 64
Localisation : Saint Médard en Jalles (33)
Nombre de messages : 2352
Date d'inscription : 15/11/2019

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeMar 23 Aoû 2022 - 12:31

Voici le nouveau code avec gestion du carré et de l'œilleton, valable pour le signal2 et le signal4.
La seule différence fonctionnelle par rapport au schéma de Formalhaut est la masse (et non un +) au commun de chaque train de contacts des deux aiguilles.
Code:
/*attiny84 BAL2
  23/08/2022
  Fantasio
  gestion carré et oeilleton
  test: ok sur Nano
  simulation: https://wokwi.com/projects/340777383909917267

  si Canton N occupé
  alors led rouge Sémaphore allumée  et envoi info d'occupation vers Canton-1
    la led rouge Carré du Signal2 s'allume si Aiguille2 en droit  ou Aigille3 en dévié
    la led rouge Carré du signal4 s'allume si Aiguille2 en dévié  
    l'oeilleton s'allume si led rouge Carré éteinte par position différente des aiguilles
  si Canton N libre et Canton N+1 occupé alors led jaune allumée
  si Canton N libre et Canton N+1 libre  alors led verte allumée  
  
  Par convention:
  - une led s'allume si un niveau HIGH est présent en sortie
  - si un train occupe un canton le capteur d'occupation voit sa sortie passer du niveau HIGH au niveau LOW
  -si positionnement correct  une masse se retrouve sur PositionAiguilles
     pour le signal 2 on raccorde à PositionAiguilles le contact droit de l'Aiguille2  et le contact dévié de l'Aiguille3
     pour le signal 4 on raccorde à PositionAiguilles uniquement le contact dévié de l'Aiguille2

                             Brochage Attiny84

                             VCC=|1  U 14|= GND
        PositionAiguilles -->10 =|2    13|= 0--> LedRougeSemaphore
                               9=|3    12|= 1--> LedJaune
                          Reset =|4    11|= 2--> LedVerte
                              8 =|5    10|= 3--> LedRougeCarre
   OccupationCantonSuivant -->7 =|6     9|= 4--> LedOeilleton
            DetectionTrain -->6 =|7     8|= 5--> OccupationCanton
*/

// Constantes
/*Branchement sur ATtiny84
const byte LedRougeSemaphore = 0; // pin reliée à la led rouge Sémaphore
const byte LedJaune = 1; // pin reliée à la led jaune
const byte LedVerte = 2; // pin reliée à la led verte
const byte LedRougeCarre = 3; // pin reliée à la led rouge Carré
const byte LedOeilleton = 4; // pin reliée à la led blanche de l'oeilleton
const byte OccupationCanton = 5; // pin reliée à l'entrée "OccupationCantonSuivant" du circuit N+1
const byte DetectionTrain = 6; // pin reliée à la sortie du détecteur d'occupation du canton N
const byte OccupationCantonSuivant = 7; // pin reliée à la sortie "OccupationCanton" du canton N-1
const byte PositionAiguilles = 9; // pin reliée aux contacts de l'Aiguille2 et l'Aiguille3(si besoin)
*/
// Branchement sur Nano
  const byte LedRougeSemaphore = 3; // pin reliée à la led rouge Semaphore
  const byte LedJaune = 4; // pin reliée à la led jaune
  const byte LedVerte = 6; // pin reliée à la led verte
  const byte LedRougeCarre = 5; // pin reliée à la led rouge Carré
  const byte LedOeilleton = 2; // pin reliée à la led blanche de l'oeilleton
  const byte OccupationCanton = 9; // pin reliée à l'entrée "OccupationCantonSuivant" du circuit N+1
  const byte DetectionTrain = 7; // pin reliée à la sortie du détecteur d'occupation du canton N
  const byte OccupationCantonSuivant = 12; // pin reliée à la sortie "OccupationCanton" du canton N-1
  const byte PositionAiguilles = 8; // pin reliée aux contacts de l'Aiguille2 et l'Aiguille3(si besoin))

// Variables
bool etatLedRougeSemaphore; // pour la commande d'allumage des leds
bool etatLedJaune;
bool etatLedVerte;
bool etatLedRougeCarre;
bool etatLedOeilleton;
bool etatDetection; // HIGH si Canton N libre, LOW si Canton N occupé
bool etatOccupationCanton; // HIGH si Canton N libre, LOW si Canton N occupé
bool etatOccupationCantonSuivant; // HIGH si Canton N+1 libre, LOW si Canton N+1 occupé
bool etatPositionAiguilles; // LOW si positionnement correct pour l'allumage de la led rouge Carré

void setup() { // configuration des différentes pins
  pinMode(LedRougeSemaphore, OUTPUT);
  pinMode(LedJaune, OUTPUT);
  pinMode(LedVerte, OUTPUT);
  pinMode(LedRougeCarre, OUTPUT);
  pinMode(LedOeilleton, OUTPUT);
  pinMode(OccupationCanton, OUTPUT);
  pinMode(OccupationCantonSuivant, INPUT_PULLUP);
  pinMode(DetectionTrain, INPUT_PULLUP);
  pinMode(PositionAiguilles, INPUT_PULLUP);
} // fin setup

void loop() {
  etatDetection = digitalRead(DetectionTrain); // lecture de l'état du détecteur d'occupation du canton N
  etatOccupationCantonSuivant = digitalRead( OccupationCantonSuivant); // information de l'état d'occupation transmise par le canton N+1
  etatPositionAiguilles = digitalRead(PositionAiguilles); // lecture de la position des aiguilles 2 et 3
  digitalWrite(OccupationCanton, etatOccupationCanton); // on informe le canton N-1 de l'état du canton N
  digitalWrite(LedRougeSemaphore, etatLedRougeSemaphore);// allumage ou non des leds fonction de leur état respectif
  digitalWrite(LedJaune, etatLedJaune);
  digitalWrite(LedVerte, etatLedVerte);
  digitalWrite(LedRougeCarre, etatLedRougeCarre);//
  digitalWrite(LedOeilleton, etatLedOeilleton);//

  if (etatDetection == LOW) {     // canton N occupé
    etatOccupationCanton = LOW;   // information "canton N occupé" à transmettre au canton N-1
    etatLedJaune = LOW;           // led jaune éteinte
    etatLedVerte = LOW;           // led verte éteinte
    etatLedRougeSemaphore = HIGH; // led rouge Sémaphore allumé

    if (etatPositionAiguilles == LOW) { // et aiguille2 sur droit ou aiguille3 sur dévié pour signal2
      etatLedRougeCarre = HIGH;         // led rouge Carré allumé
      etatLedOeilleton = LOW;           // led oeilleton éteinte
    } // fin if

    else {                     // canton N occupé mais aiguille2 sur dévié et aiguille3 sur droit
      etatLedRougeCarre = LOW; // led rouge Carré éteinte
      etatLedOeilleton = HIGH; // led oeilleton allumé
    } // fin else
  } // fin if

  else {                         // canton N libre
    etatOccupationCanton = HIGH; // information "canton N libre" à transmettre au canton N-1
    etatLedRougeSemaphore = LOW; // led rouge Sémaphore éteinte
    etatLedRougeCarre = LOW;     // led rouge Carré éteinte
    etatLedOeilleton = LOW;      // led oeilleton éteinte

    if (etatOccupationCantonSuivant == LOW) { // canton N libre et canton N+1 occupé
      etatLedJaune = HIGH;                    // led jaune allumée
      etatLedVerte = LOW;                     // led verte éteinte
    } // fin if

    else {                 // canton N libre et canton N+1 libre
      etatLedJaune = LOW;  // led jaune éteinte
      etatLedVerte = HIGH; // led verte allumée
    } // fin else
  } // fin else
} // fin loop

Ce code comme le précédent est compatible avec un ATtiny84 et sa simulation est visible ici. (l'inverseur sous le Nano correspond aux trains de contacts des aiguilles)

Amusez vous bien  Very Happy
Revenir en haut Aller en bas
StrongSpirit
Membre
Membre
StrongSpirit


Masculin Age : 59
Nombre de messages : 1654
Date d'inscription : 19/12/2007

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeMar 23 Aoû 2022 - 14:50

Bonjour

Je ne suis absolument pas un spécialiste de la signalisation ferroviaire. Mais il me semble que le carré s'affiche si l'aiguille est dévié même s'il n'y pas de train dans le canton.

La condition du code de Fantasio :
Fantasio a écrit:
 si Canton N occupé
 alors led rouge Sémaphore allumée  et envoi info d'occupation vers Canton-1
   la led rouge Carré du Signal2 s'allume si Aiguille2 en droit  ou Aigille3 en dévié
   la led rouge Carré du signal4 s'allume si Aiguille2 en dévié  
   l'oeilleton s'allume si led rouge Carré éteinte par position différente des aiguilles

n'est donc pas bonne.
Dans la simulation, si les deux inter de droite ne montre pas d'occupation de voie, changer la position de l'aiguille laisse toujours le signal au vert.
Dans le schéma électrique de Formalhaut, l'état de LED carré ne dépend que de la position des fins de course des aiguilles (le signal passé au "carré" qu'il y ait une loco ou pas). Je n'ai pas poussé l'étude du fonctionnement pour savoir s'il ne risque pas d'y avoir d'incohérences (genre carré + vert !).
J'aime bien la logique combinatoire, mais dans ce schéma, il y un mélange circuits logiques + diodes qui modifient les états logiques pas facile à digérer... pale
Revenir en haut Aller en bas
StrongSpirit
Membre
Membre
StrongSpirit


Masculin Age : 59
Nombre de messages : 1654
Date d'inscription : 19/12/2007

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeMar 23 Aoû 2022 - 14:58

La structure du code devrait plutôt être :

Code:
si dévié
 le signal carré s'allume
 envoi d'info occupation vers canton-1 (pour le ralentissement en jaune au niveau du signal d'avant, qu'il y ai loco ou pas)

si droit
  si Canton N occupé, alors LED semaphore rouge allumé et envoi d'info d'occupation
  si Canton N libre et Canton N+1 occupé alors led jaune allumée, pas d'envoi d'info occupation vers canton-1
  si Canton N libre et Canton N+1 libre  alors led verte allumée , pas d'envoi d'info occupation vers canton-1
Revenir en haut Aller en bas
Fantasio
Membre
Membre
Fantasio


Masculin Age : 64
Localisation : Saint Médard en Jalles (33)
Nombre de messages : 2352
Date d'inscription : 15/11/2019

Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitimeMar 23 Aoû 2022 - 15:03

StrongSpirit a écrit:
La structure du code devrait plutôt être :

Code:
si dévié
 le signal carré s'allume
 envoi d'info occupation vers canton-1 (pour le ralentissement en jaune au niveau du signal d'avant, qu'il y ai loco ou pas)

si droit
  si Canton N occupé, alors LED semaphore rouge allumé et envoi d'info d'occupation
  si Canton N libre et Canton N+1 occupé alors led jaune allumée, pas d'envoi d'info occupation vers canton-1
  si Canton N libre et Canton N+1 libre  alors led verte allumée , pas d'envoi d'info occupation vers canton-1
Tu as raison, j'ai mal interpréter le schéma !
je modifierai le code en conséquence. 
Merci de ton intervention
Revenir en haut Aller en bas
Contenu sponsorisé





Circuit logique BAL participatif Empty
MessageSujet: Re: Circuit logique BAL participatif   Circuit logique BAL participatif Icon_minitime

Revenir en haut Aller en bas
 
Circuit logique BAL participatif
Revenir en haut 
Page 1 sur 4Aller à la page : 1, 2, 3, 4  Suivant
 Sujets similaires
-
» Question de logique: Devinette.
» Logique d'attribution des # DCC avec Intellibox
» Piloter solenoide aiguillage avec un niveau logique ?
» Mini analyseur logique pour nos bidouilles d'électronique numérique
» Court-circuit

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
1/160 - Echelle N :: Modèles réduits à l'echelle N :: Electricité / Electronique-
Sauter vers: