Commande du Fil à mémoire en numérique

Explication, schéma, typon

Réalisation et Mise en page : GuY - ToutenN

16 septembre 2004

Avant propos

Depuis l'apparition de ce fabuleux produit qu'est le "Fil à mémoire", nombreuses sont les stratégies qui ont été élaborées et mises en place pour l'utiliser afin de commander les aiguillages. Chacun à sa méthode : On trouve les fervents adeptes du monofil et les accros du bistable... C'est quoi la différence??? je vais essayer de résumer les techniques(si je ne l'ai pas déjà fait autre part..).

La commande monofil :
C'est sa simplicité de mise en oeuvre qui séduit apparemment le plus grand nombre. On utilise une seule longueur de fil, mis sous tension, pour faire dévier les aiguilles à une seule position choisie. Le retour de position s'effectue par l'utilisation d'un simple ressort après avoir coupé l'alimentation du fil.
Avantages : Facilité de mise en oeuvre par un montage simple (exemple : platine de JLP ou J Jugnon), encombrement limité (peut être dissimulé dans le ballast), coût réduit...
Inconvénients : Demande une alimentation soutenue et peut engendrer des problèmes de dispersion de la chaleur(déformation des matériaux alentour..) ou d'une consommation de courant importante quand un grand nombre de fil sont utilisés en même temps... En numérique, leur commande pose des problèmes et j'ai peut être une solution....

La commande bistable :
A la vue des inconvénients de la commande monofil et soucieux de garder l'action des moteurs traditionnels, on cherche encore la solution idéale : Comment assurer la position des aiguilles lorsque qu'il n'y a pas de ressort de rappel ou de soutien lorsque que l'on va couper l'alimentation du ou des fils????  Si vous avez lu la page "FAM ça bouge" et plus particulièrement les liens se rapportant au bistable, on est encore assez loin de résoudre le problème... mais quelqu'un l'a peut être trouvé... 
Les données sont là : Utiliser un fil pour chaque position, ou un seul fil avec un système mécanique bistable(monofil bistable..).
Avantages : Durée d'alimentation limitée, commande très facile en numérique en sortie d'un décodeur...
Inconvénients : Il faut impérativement réaliser un montage pouvant assurer le positionnement des aiguilles tout en limitant les problèmes de frottement... J'avais essayé en gardant le ressort de rappel des appareils de voie PECO, les réglages sont pas toujours évidents...

MA PETITE IDEE

Revoyons maintenant notre objectif : Commander le fil à mémoire avec notre système numérique(digital)

 

Qu'avons nous en stock pour piloter ce fil et quelles sont les contraintes des décodeurs :
1) Les décodeurs classiques permettent généralement d'obtenir une tension continue durant un temps très court (idéal pour les  solénoïdes). Ce temps de commutation(max 13s) peut très bien commander un fil à mémoire. Il est donc réservé pour une commande en bistable(un fil pour chaque position de l'aiguillage) et une solution très simple a déjà été proposée.  
2) A partir de ce même type de décodeur, nous pouvons aussi commander un aiguillage avec un seul fil (commande en monofil + ressort de rappel). Cette solution fait intervenir un relais bistable placé entre le décodeur et le fil (voir liens FAM2, FAM3). On peut, bien sur, trouver des montages tout fait ou des décodeurs intégrant ce principe. 


Techniquement que peut on déduire de ces deux cas???
Dans le premier cas, nous utilisons une sortie d'un décodeur(deux états) pour piloter un aiguillage comme pour un moteur classique. Dans le deuxième cas, une sortie d'un décodeur(deux états) est réservé à la commande d'un seul fil.
C'est ce deuxième cas qui m'avait un peu dérangé : On utilise les deux états d'une sortie pour commander un seul fil, "c'est comme utiliser deux marteaux pour planter un clou". Il fallait trouver un moyen de commander un fil par état comme un moteur traditionnel.

  

Comment commander un fil  avec un seul état d'une sortie :
Voici les points qu'il va falloir étudier :
1) Est-ce que le changement d'un état affecte l'autre état d'une sortie d'un décodeur.
2) Comment à partir d'une impulsion de courant, on peut obtenir deux états : Ici un état repos et un état actif constant
3) Est-ce que les logiciels de pilotage accepteront cette possibilité.
Si tout est ok, on pourra donc commander 8 fils à mémoire à partir d'un décodeur classique. Intéressant non???

  

Tests et recherche pour y arriver
A) Gestion des états

Utilisant l'IB d'uhlenbrock, je me suis penché sur les commandes du protocole de communication P50 qui permet de dialoguer avec l'IB à partir d'un PC via le port série. Pour essayer de vous faire comprendre le fonctionnement des commandes de pilotage des adresses d'un décodeur j'ai repris le code de programmation (simplifié) en visual basic :

1) Les appels des fonctions Turn(5, 128) et  Turn(5, 0) demandent à l'adresse 5 que l'on active soit l'état 128(Vert ou 1) soit l'état 0(rouge ou 0).

2) Ici la fonction Turn traite les appels et envoie l'ordre. Cette fonction envoie en fait deux ordres(P50Xcmd) séparés d'un delay de 0,2 s. Le premier ordre met l'état de l'adresse à une position neutre puis demande l'ordre d'action.

Function Turn(adress, direction)

P50XCmd  Chr(adress ) + Chr(adress \ 256 + direction + 64)
Delay 0.2
P50XCmd  + Chr(adress) + Chr(adress \ 256 + direction)

End Function

3) La fonction P50Xcmd suivante, traite les appels et envoie l'ordre à l'IB à partir d'un composant(MSComm1) gérant le port série

Function P50XCmd(action As String)

MSComm1.Output = action

End Function

Tout cela pour vérifier que l'on puisse activer un état d'une sortie sans que l'autre soit affecté. Néanmoins il sera impossible activer en même temps les deux états en même temps. De toute façon, il n'est jamais possible de le faire quelque soit le programme de pilotage.

  

B) Trouver un montage qui puisse transformer une impulsion en état constant :

Pour expliquer cela prenons un cas simple : Je veux allumer ou éteindre une lampe en appuyant successivement sur un bouton poussoir. J'appuie une fois la lampe s'allume et reste allumée, j'appuie une seconde fois la lampe s'éteint et reste éteinte. Pour notre idée, on activera un état d'une adresse, le décodeur enverra une impulsion à un montage qui alimentera un fil à mémoire. Ceux qui connaissent l'électricité domestique ou professionnelle, ce montage s'appelle un "télérupteur". A la recherche du produit déjà fait, on se rend vite compte que le coût d'achat est énorme surtout qu'il fait intervenir des tensions disproportionnées à celles que nous sommes habitués pour notre Hobby. Je me suis donc dirigé vers l'électronique : Manque de chance ce n'est pas vraiment ma tasse de thé... Mais je me lance quand même à l'assaut de sites, forum, liste, NG à la recherche de toutes informations. Tout doucement, les choses se mettent en place et je remercie ALBAN et Alain qui ont vraiment été d'un grand secours. C'est une bascule 4013 qui jouera le rôle du télérupteur, pour le piloter on est obligé de passer par un optocoupleur car le commun en sortie du décodeur est en positif. A la sortie du 4013, un ULN se chargera de l'alimentation du FAM. Un premier montage avait fait en avril mais abandonné du a des problèmes de stabilité. Le temps me manquant j'avais tout abandonné. Ce n'est que récemment qu'une conversation m'a réveillé et repris mon idée avec le soutien du schéma de Daniel R. : Visitez ce lien il vous expliquera tout sur le fonctionnement du télérupteur.

  

Voici le schéma du montage final

  

TYPON et FICHIER d'implantation pour huit commande de fil

Typon     fichier d'implantation

Pour ma part, j'utilise une alimentation de PC(fiche 5v) pour alimenter le montage.

  

C) La commande par TCO manuel

Rien de plus simple, mettez le + de cette tension du TCO à la borne 1 du montage et intercaler un bouton poussoir entre le - de la tension et les bornes R et V du montage.
 

D) La commande par TCO d'un programme

Je vous le dis tout de suite, très peu de programmes peuvent commander ce montage. Le mien en l'occurrence, mais il n'est pas encore proposé au public(ça viendra) et RR&CO par l'intervention de macros. Peut être y en a t-il d'autres mais je n'en suis pas au courant. Avec Windigipet, on ne dispose pas de macros et autres pour piloter avec la souris mais dans les événements de contact des tables horaires, on peut y arriver en utilisant les articles magnétiques.

Pour le branchement, pas de problème, on relie des entrées du montage aux connecteurs d'une sortie d'un décodeur. Pour le pilotage sur RR&CO, voici la démarche :

a) Dans votre projet, passez d'abord en mode complet (View/esay mode / oui)

b) Paramétrage de l'aiguillage : Il ne doit pas être affecté d'une adresse d'un décodeur existant. Mettez une adresse fictive(100, 200....) supérieure aux nombres d'adresses totales existantes. (Edit/properties/Connection)

c) Créer un Push button pas loin de l'aiguillage. Nommez-le par exemple PM1. Il va nous permettre de piloter l'aiguillage à partir du TCO sans cliquer sur l'aiguillage.

d) Créer un On-OFF switch pas loin de l'aiguillage.  Nommez-le par exemple OO1. C'est lui qui va changer à l'affichage l'état des aiguilles sur le TCO.

e)  Créer un Push button pas loin de l'aiguillage. Nommez-le par exemple PA1. C'est lui qui servira à commander l'état d'une des sorties d'un décodeur.

f) Paramétrage de PM1 : Allez dans ses propriétés, activez l'onglet Opérations.

Cliquez sur macros puis sur news puis sur properties. Activez l'onglet Opérations, double cliquez sur OO1 et changer son état pour qu'il soit appuyé (rouge jaune à l'intérieur). Double cliquez sur PA1 et changer son état pour obtenir la troisième possibilité. Vous devriez à la fin avoir ceci ==>>
Activez l'onglet Restrictions, double cliquez sur OO1 et changer son état pour qu'il soit relâché (trait jaune à l'intérieur). Double cliquez sur le nom de l'aiguillage et changer son état pour obtenir la déviation opposée.
Vous devriez à la fin avoir ceci ===>>
Faites OK, puis close et double cliquez sur le nom de la macro que vous venez de créer.

Il faut créer une deuxième macros : Cliquez sur macros puis sur news puis sur properties. Activez l'onglet Opérations, double cliquez sur OO1 et changer son état pour qu'il soit relâché (trait jaune à l'intérieur), double cliquez sur PA1 et changer son état pour obtenir la troisième possibilité. Vous devriez à la fin avoir ceci ==>>
Activez l'onglet Restrictions, double cliquez sur OO1 et changer son état pour qu'il soit appuyé (rond jaune à l'intérieur). Double cliquez sur le nom de l'aiguillage et changer son état pour obtenir l'autre déviation.
Vous devriez à la fin avoir ceci ===>>
Faites OK, puis close et double cliquez sur le nom de la macro que vous venez de créer.

Dans la zone des propriétés de PA1 vous devriez avoir deux macros.     exemple===>>
Vous pouvez cliquez sur OK pour valider

g) Paramétrage de OO1 : Allez dans ses propriétés, activez l'onglet Opérations. Double cliquez sur l'aiguillage à piloter. A coté de Opérating state, utilisez la liste déroulante pour choisir un état du bouton puis cliquez sur l'aiguillage (zone de droite) et choisissez un état de position de l'aiguillage. A coté de Opérating state, utilisez la liste déroulante pour définir l'autre état du bouton puis cliquez sur l'aiguillage (zone de droite) et choisissez l'autre état de position de l'aiguillage. Faites OK.

h) Paramétrage de PA1 : Allez dans ses propriétés, activez l'onglet Connection, affectez l'adresse réelle à commander et choisissez un des contacts : 1 ou 2 selon l'état du décodeur à piloter.

Voilà, en mode "Operate" un clic sur PM1 va faire dévier graphiquement l'aiguillage et activer PA1 pour piloter le décodeur. Vous pouvez aussi cacher OO1 et PA1 pendant l'utilisation du réseau. Cochez leur propriété "Visible in edit mode only", puis passez en "edit mode" (view/edit mode).

 

Pour mon programme c'est plus facile : Je rentre dans les propriétés de l'aiguillage, je sélectionne l'adresse, je définie 1 seul contact à utiliser et je choisis un des états ou celui restant disponible (ce cas-ci)

 

J'espère que cette page suscitera des réactions, des tests plus poussés... et qui sait... donnera des idées aux créateurs de décodeur et de logiciel....

Remonté