Soluzioni semplici

Torna alla pagina CONTROLLO

 

Introduzione

Si propongono alcune soluzioni esemplificative dei temi che stiamo affrontando. Si tratta di casi semplici e in alcuni di essi ci siamo certamente imbattuti quando abbiamo iniziato a lavorare sui nostri plastici:

  1. l'aspetto combinato dei segnali;

  2. comando completo per deviatoio;

  3. comandare un deviatoio triplo;

  4. la racchetta;

  5. il blocco automatico;

  6. regolare la velocità in modo analogico per via digitale.


L'aspetto combinato dei segnali

Nei favolosi anni '60, di particolarmente favoloso ci fu il boom del treno elettrico. Ogni bambino di allora lo desiderava. Le grandi marche di modelli producevano anche la manualistica necessaria per suggerire le soluzioni tecniche agli appassionati. Tra i tanti, prendiamo come spunto il manuale dei tracciati della Fleischmann, dove erano mostrate tante meraviglie disegnate a china con una qualità grafica fenomenale per quei tempi.

La Fleischmann produceva un tipo di deviatoio dal funzionamento impeccabile. L'elettromagnete che muoveva gli aghi era abbastanza grosso ed era collocato a lato del deviatoio stesso coperto da una scatoletta protettiva altrettanto voluminosa. I progettisti avevano escogitato anche un ingegnoso accorgimento. L'ancoretta muoveva oltre agli aghi anche una coppia di mollette connesse da una parte una alla rotaia interna, l'altra a quella esterna. All'altra estremità le mollette toccavano ciascuna, a seconda della posizione degli aghi, un contatto o l'altro di una coppia. Si collegava alla rotaia esterna, senza interruzioni, una fase dell'alimentazione alternata. Le interruzioni e i sezionamenti erano tutti per convenzione sul binario interno. Era così possibile comandare da questi contatti i segnali con interruzione dell'alimentazione per la tratta interessata. Lo schema che segue illustra una parte di un tracciato in cui si vedono bene i collegamenti adottati:

I contatti 1 e 2 sono collegati alla rotaia esterna, mentre il 3 e il 4 al quella interna. In questo modo era sufficiente muovere lo scambio per avere la linea corrispondente all'istradamento al verde, l'altra al rosso. Le connessioni ai contatti 3 e 4 dello schema vanno ad alimentare le tratte di interruzione dei due binari convergenti.

Tutto bene, ma i modellisti sono esigenti. Questo schema non prevede il rosso per entrambe le linee. Non prevede neanche il verde, ma questo è un caso impossibile. Avere tutti i segnali di partenza al rosso è invece la regola. Come fare?

Riferendosi a quanto detto nei capitoli precedenti, dovremmo separare l'idea di tratta alimentata dall'aspetto dei segnali. Per questo esempio invece si propone una soluzione che mantiene l'uso tradizionale, ma che lo migliora permettendo l'aspetto rosso di entrambi i segnali.

Escludendo il doppio verde che non ha senso, ci troviamo a dover gestire tre casi:

  SEZ 1 SEZ 2 SGN 1 SGN 1 DEV 1
riposo APERTO APERTO ROSSO ROSSO NORMALE
verde al binario 1 CHIUSO APERTO VERDE ROSSO DEVIATO
verde al binario 2 APERTO CHIUSO ROSSO VERDE NORMALE

Nell'esempio l'alimentazione della linea è analogica. I numeri in colore nello schema indicano gli indirizzi assegnati ai commutatori dei decoder. Il deviatoio è di tipo recente con il dispositivo di fine corsa. In questo modo i decoder sono tutti uguali. Nel caso invece di un deviatoio di vecchio tipo o di segnali con braccio meccanico dovremmo usare dei decoder a contatto di impulso.

I tre casi possibili si traducono in altrettante procedure software. Il comando 33 connette il centrale di ogni commutatore al contatto di sinistra (Left); il comando 34 il contatto di destra (Right):

Sub Riposo
'sez 1:
Me.MSComm1.Output = Chr$(33)
Me.MSComm1.Output = Chr$(1)
Me.MSComm1.Output = Chr$(32)
'sez 2:
Me.MSComm1.Output = Chr$(33)
Me.MSComm1.Output = Chr$(2)
Me.MSComm1.Output = Chr$(32)
'sgn 1:
Me.MSComm1.Output = Chr$(34)
Me.MSComm1.Output = Chr$(3)
Me.MSComm1.Output = Chr$(32)
'sgn 2:
Me.MSComm1.Output = Chr$(34)
Me.MSComm1.Output = Chr$(4)
Me.MSComm1.Output = Chr$(32)
'dev 1:
Me.MSComm1.Output = Chr$(33)
Me.MSComm1.Output = Chr$(6)
Me.MSComm1.Output = Chr$(32)
End Sub 

Sub VerdeBinario1
'sez 1:
Me.MSComm1.Output = Chr$(34)
Me.MSComm1.Output = Chr$(1)
Me.MSComm1.Output = Chr$(32)
'sez 2:
Me.MSComm1.Output = Chr$(33)
Me.MSComm1.Output = Chr$(2)
Me.MSComm1.Output = Chr$(32)
'sgn 1:
Me.MSComm1.Output = Chr$(33)
Me.MSComm1.Output = Chr$(3)
Me.MSComm1.Output = Chr$(32)
'sgn 2:
Me.MSComm1.Output = Chr$(34)
Me.MSComm1.Output = Chr$(4)
Me.MSComm1.Output = Chr$(32)
'dev 1:
Me.MSComm1.Output = Chr$(34)
Me.MSComm1.Output = Chr$(6)
Me.MSComm1.Output = Chr$(32)
End Sub 

Sub VerdeBinario2
'sez 1:
Me.MSComm1.Output = Chr$(33)
Me.MSComm1.Output = Chr$(1)
Me.MSComm1.Output = Chr$(32)
'sez 2:
Me.MSComm1.Output = Chr$(34)
Me.MSComm1.Output = Chr$(2)
Me.MSComm1.Output = Chr$(32)
'sgn 1:
Me.MSComm1.Output = Chr$(34)
Me.MSComm1.Output = Chr$(3)
Me.MSComm1.Output = Chr$(32)
'sgn 2:
Me.MSComm1.Output = Chr$(33)
Me.MSComm1.Output = Chr$(4)
Me.MSComm1.Output = Chr$(32)
'dev 1:
Me.MSComm1.Output = Chr$(33)
Me.MSComm1.Output = Chr$(6)
Me.MSComm1.Output = Chr$(32)
End Sub 

Le procedure possono essere scritte anche in maniera più sintetica. Per esempio nel primo caso avremo:

Sub Riposo
    With Me.MSComm1
        'sez 1:
        .Output = Chr$(33)
        .Output = Chr$(1)
        .Output = Chr$(32)
        'sez 2:
        .Output = Chr$(33)
        .Output = Chr$(2)
        .Output = Chr$(32)
        'sgn 1:
        .Output = Chr$(34)
        .Output = Chr$(3)
        .Output = Chr$(32)
        'sgn 2:
        .Output = Chr$(34)
        .Output = Chr$(4)
        .Output = Chr$(32)
        'dev 1:
        .Output = Chr$(33)
        .Output = Chr$(6)
        .Output = Chr$(32)
    End with
End Sub
 

I valori 33 e 34 possono essere poco evocativi e possiamo impiegare al loro posto delle costanti indicative della posizione dei commutatori di riferimento; anche il comando 32, il terminatore può essere evocato con una costante:

Sub Riposo

    Const Fine = 32
    Const L = 33
    Const R = 34

    With Me.MSComm1
        'sez 1:
        .Output = Chr$(L)
        .Output = Chr$(1)
        .Output = Chr$(Fine)
        'sez 2:
        .Output = Chr$(L)
        .Output = Chr$(2)
        .Output = Chr$(Fine)
        'sgn 1:
        .Output = Chr$(R)
        .Output = Chr$(3)
        .Output = Chr$(Fine)
        'sgn 2:
        .Output = Chr$(R)
        .Output = Chr$(4)
        .Output = Chr$(Fine)
        'dev 1:
        .Output = Chr$(L)
        .Output = Chr$(6)
        .Output = Chr$(Fine)
    End with
End Sub 

Possiamo estendere le stesse modifiche alle altre due procedure. La sostanza rimane la stessa. Per completare il nostro procedimento occorre ora determinare chi manda in esecuzione i tre script appena definiti. Possiamo inserire nella nostra scheda di progetto tre bottoni (cmd1, cmd2 e cmd3) in corrispondenza di una figura sinottica che possiamo inserire nella scheda stessa tramite il controllo image:

Ad ogni bottone possiamo assegnare una delle tre procedure. Così al bottone di comando 1 possiamo evocare la nostra procedura di riposo:

Private Sub cmd1_Click
    Call Riposo
End Sub

Potremmo anche inserire in un quadro a parte tre pulsanti e ad essi collegare i contatti di retroazione. Il software in questo caso non richiede l'uso delle form, ma è strettamente procedurale. Si veda l'esempio dello scambio triplo.


Comando completo per deviatoio

Come funzionano nella realtà i deviatoi? Gli aghi sono di acciaio più tenero rispetto alle rotaie e sono mossi da motori elettrici potenti. Quando l'operatore muove un deviatoio tramite gli apparati il motore entra in moto, un ronzio di controllo è trasmesso alla cabina degli apparati mentre il motore gira; al termine il ronzio si ferma e cambiano aspetto le spie indicative della posizione se tutto va bene. In caso contrario si attivano gli allarmi opportuni.

Cosa avviene nei nostri plastici? la gestione è molto più semplice, ma possiamo affinarla. Nel caso più elementare ci troviamo ad avere una coppia di pulsanti. Ognuno eccita una parte del relé bistabile muovendo alternativamente gli aghi nelle due possibili posizioni:

I deviatoi dell'ultima generazione sono dotati di fine corsa, pertanto non restano eccitati una volta terminato il movimento. In questo modo non si corre il rischio di bruciare gli avvolgimenti del solenoide. Possono essere allora comandati da un commutatore. Se esso ha altri contatti possiamo avere sul quadro le spie indicative della posizione assunta:

Sarebbe meglio averne almeno due alimentazioni alternate distinte, la prima deputata al movimento dei deviatoi e motori vari (power), la seconda destinata alle sole luci (light); in questo modo il sovraccarico dei motori non abbassa l'intensità delle luci:

 

Si può fare ancora di meglio; ci sono in commercio infatti motori a corrente continua (Bemo, Fulgurex, il famoso Tortoise della Circuitron, ecc...) da collocare sottoplancia che muovono lentamente gli aghi in modo realistico; inoltre tali motori, dotati anch'essi di fine corsa, hanno normalmente due coppie di contatti associati. Ad una di esse si collega di solito il cuore che risulta così polarizzato, il secondo commutatore può essere usato per indicare la posizione raggiunta dal deviatoio. Ci avviciniamo pertanto di molto alla realtà: le spie indicative si accendono solo al termine del movimento dei motori dando quindi non solo l'indicazione della posizione, ma anche un riscontro di movimento andato a buon fine:

Si noti il doppio deviatore impiegato ad alimentare il motore elettrico; infatti questi motori invertono la rotazione in corrispondenza dell'inversione di polarità. Un ponte raddrizzatore è collocato a monte. L'alimentazione power  si occupa così di tutti i dispositivi in movimento, anche quelli in corrente continua. La polarizzazione del cuore ha il vantaggio di permettere movimenti di locomotive corte da manovra sul deviatoio, ma ha lo svantaggio di andare in corto se il deviatoio è tallonato.

Che vantaggi ci possono essere con l'adozione dell'alimentazione digitale in questo caso? Il vantaggio principale sta in una razionalizzazione del cablaggio. Per esempio, lo schema appena illustrato potrebbe essere oneroso da allestire se il quadro si trovasse lontano dal binario con il deviatoio relativo. Le spie possono essere sostituite da simboli grafici sullo schermo del pc. Per fare questo occorre introdurre il modulo di retroazione a cui assegneremo due ingressi. Il doppio deviatore può essere sostituito da un relé comandato da un indirizzo di un decoder a contatti temporanei. Lo schema si trasforma allora così:

Anche se il decoder è di natura diversa e trasmette ai contatti la posizione in modo temporaneo, il suo comando è del tutto simile a quanto visto per i segnali precedentemente (secondo lo schema proposto l'indirizzo usato è il 2):

Sub PosizioneNormale

    Const Fine = 32
    Const L = 33

    With Me.MSComm1
        .Output = Chr$(L)
        .Output = Chr$(2)
        .Output = Chr$(Fine)
    End with
End Sub 

Sub PosizioneRovescia

    Const Fine = 32
    Const R = 34

    With Me.MSComm1
        .Output = Chr$(R)
        .Output = Chr$(2)
        .Output = Chr$(Fine)
    End with
End Sub 

Per completare l'argomento resta da chiarire come fare a leggere via software i valori degli ingressi del dispositivo di retroazione. Qui le cose si complicano un po' perchè occorre leggere il valore degli ingressi in modo asincrono rispetto agli effetti.


Conclusione

A conclusione del progetto appena generato vale la pena di evidenziare:

  1. la facilità di programmazione della centralina Intellibox;
  2. la possibilità di eseguire comandi direttamente dalla centralina e parallelamente da software;
  3. la verifica incrociata degli esiti;
  4. la possibilità di estendere i comandi imparati in corrispondenza di un’architettura più complessa;
  5. il considerare il progetto COMDEV come un mattone base per costruzioni molto più complesse.

Torna all'inizio pagina

Torna alla pagina CONTROLLO