Utilizzo di PIC per riattivazione Banco di Comando Stazione
Buongiorno,
sono uno dei collaboratori del reparto infrastruttura di un museo ferroviario italiano. Tra i nostri salvataggi, abbiamo qualche vecchio banco di comando di alcune Stazioni, disinstallati a suo tempo per passare a Computer.
Ci stiamo accingendo a progettare una riattivazione museale e io sono il responsabile dell'operazione.
Essendo abbastanza inesperto in elettronica ed essendo un ragazzo del 1984, che quando si è approcciato al mondo dell'elettronica ormai si faceva tutto o quasi tutto già via software, ho pensato di sviluppare un'elettronica minima, lasciando tutto il "cervellone" (che nella realtà corrispondeva alla sala relè) alla programmazione di un'applicativo da collocare su server e che si occuperebbe di qualsiasi cosa.
In estrema sintesi, ci sono due "componenti" da riattivare: il Quadro Luminoso e il Banco di Manovra. Per quanto riguarda il primo, l'unica cosa da fare è riattivare le indicazioni luminose banalmente spegnendone una e accendendone un'altra, mentre per quanto riguarda il secondo, vi è ovviamente anche l'interazione umana di cui tenere conto e quindi oltre alle spie presenti sui pulsanti e levette, anche la manipolazione dei medesimi.
Quadro Luminoso:
La mia idea è quella di creare una micro-scheda talmente modulare, da poter essere utilizzata per qualsiasi indicazione luminosa, sia che essa preveda tre differenti indicazioni, sia che ne preveda due, sia che ne preveda una.
L'idea è di programmare i PIC tutti sulla stessa linea (RS485) dotandoli ciascuno di un codice univoco. In questo modo il PC trasmetterà il messaggio a tutti i PIC contemporaneamente, ma solo quello il cui codice coincide con quello del messaggio agirà, gli altri ignoreranno il messaggio. In caso questo non sia possibile, può anche andare bene il fatto che ogni PIC sia su un indirizzo diverso, ma il medesimo deve essere già codificato nel PIC in fase di programmazione, in modo che in caso di guasto del PIC sia sufficiente sostituirlo e cambiare sul software di simulazione presente sul PC l'indirizzo dell'ente di cui è stato sostituito il PIC.
Per quanto riguarda la programmazione interna, vorrei mantenerla molto molto semplice, con pochissime istruzioni tra cui il comando di tre relè (o di transistor...devo capire se ci sono transistor che riescono a pilotare un array di 10 lampadine da 24 V 3W ciascuna senza fondere), sia in modalità on/off sia variando lo stato ogni secondo per simulare il lampeggiamento e una funzione di polling (utile per capire lo stato della micro-scheda in caso il PC vada in shutdown per qualche motivo).
Per quanto riguarda l'hardware, prevederei l'alimentazione per il PIC e il positivo dei 24 V, il PIC stesso, ie i transistor/relè per il pilotaggio.
Banco di Manovra:
In questo caso, essendo enti "manipolabili", oltre al controllo delle lampade eventualmente presenti nel pulsante/maniglia, è necessario prevedere che il pulsante/maniglia sia in grado di trasmettere al PC l'interazione con l'utente, in modo che lo stesso sappia cosa fare.
Gli stati della lampada restano uguali a quelli del Quadro Luminoso, mentre per quanto riguarda pulsanti e maniglie, ci sono pulsante premuto/pulsante neutro/pulsante estratto, maniglia neutra/maniglia ruotata destra/maniglia ruotata a sinistra/controllo spiombamento/maniglia aggiuntiva ruotata (non tutti hanno tutti gli stati).
Anche in questo caso l'idea è di realizzare un circuito unico per tutti, tanto i comandi sono vincolati fisicamente per cui se una maniglia non può essere ruotata a sinistra semplicemente non gira.
Per quanto riguarda l'hardware, potrebbe essere identico a quello del Quadro Luminoso, con l'aggiunta di un circuito a 3V (o comunque alla tensione di lavoro del PIC) che si inserisca sulle maniglie/pulsanti e che vada ad interrompere o collegare le porte I/O del PIC il quale agirà di conseguenza, inviando i messaggi all'elaboratore.
In questo modo dovrei riuscire a realizzare due soli circuiti da riutilizzare in modo praticamente infinito su tutti gli enti di ogni singolo banco/quadro di tutti gli impianti di cui abbiamo intenzione di attivare la simulazione.
Il blocco "logico" di funzionamento dovrebbe essere pressappoco così:
-APPARATO A RIPOSO
-UTENTE PREME PULSANTE PER COMANDARE ITINERARIO 1-I (da provenienza a binario I)
-IL PIC con codice (o su indirizzo) 0x1234 invia PU_PRESSED al PC.
-IL PC verifica che, nello stato attuale dell'impianto, quel comando abbia senso (in caso contrario non fa nulla), indi in sequenza:
- manda al PIC (con codice o su indirizzo) 0x1234 (pulsante) il comando LIG_01_FLASH (il PIC esegue e mette l'indicazione luminosa 01 in lampeggio)
- manda al PIC (con codice o su indirizzo) 0x2345 (passaggio a livello) il comando LIG_01_FLASH (il PIC esegue e mette l'indicazione luminosa 01 in lampeggio)
...
(vari altri comandi ai vari enti di QL e BM)
...
(termine predisposizione itinerario del treno)
...
(simulazione transito del treno con riporto a riposo degli enti)
...
-APPARATO NUOVAMENTE A RIPOSO
In questo modo, il PC è l'unico a ricevere e impartire i comandi, e l'elettronica di fatto è passiva in quanto è solamente un'interfaccia per trasmettere stati, ma non conosce l'intero sistema che è pilotato unicamente dal software.
So che la soluzione è decisamente più costosa (servono tante componenti per tutti gli enti), ma una volta progettata, va bene per qualsiasi altra simulazione ci serva e non serve soffermarsi più sull'elettronica.
Qualcuno con maggiore esperienza di me nota dei possibili problemi, cose che mi sono perso o altro?
Grazie a tutti!!!
sono uno dei collaboratori del reparto infrastruttura di un museo ferroviario italiano. Tra i nostri salvataggi, abbiamo qualche vecchio banco di comando di alcune Stazioni, disinstallati a suo tempo per passare a Computer.
Ci stiamo accingendo a progettare una riattivazione museale e io sono il responsabile dell'operazione.
Essendo abbastanza inesperto in elettronica ed essendo un ragazzo del 1984, che quando si è approcciato al mondo dell'elettronica ormai si faceva tutto o quasi tutto già via software, ho pensato di sviluppare un'elettronica minima, lasciando tutto il "cervellone" (che nella realtà corrispondeva alla sala relè) alla programmazione di un'applicativo da collocare su server e che si occuperebbe di qualsiasi cosa.
In estrema sintesi, ci sono due "componenti" da riattivare: il Quadro Luminoso e il Banco di Manovra. Per quanto riguarda il primo, l'unica cosa da fare è riattivare le indicazioni luminose banalmente spegnendone una e accendendone un'altra, mentre per quanto riguarda il secondo, vi è ovviamente anche l'interazione umana di cui tenere conto e quindi oltre alle spie presenti sui pulsanti e levette, anche la manipolazione dei medesimi.
Quadro Luminoso:
La mia idea è quella di creare una micro-scheda talmente modulare, da poter essere utilizzata per qualsiasi indicazione luminosa, sia che essa preveda tre differenti indicazioni, sia che ne preveda due, sia che ne preveda una.
L'idea è di programmare i PIC tutti sulla stessa linea (RS485) dotandoli ciascuno di un codice univoco. In questo modo il PC trasmetterà il messaggio a tutti i PIC contemporaneamente, ma solo quello il cui codice coincide con quello del messaggio agirà, gli altri ignoreranno il messaggio. In caso questo non sia possibile, può anche andare bene il fatto che ogni PIC sia su un indirizzo diverso, ma il medesimo deve essere già codificato nel PIC in fase di programmazione, in modo che in caso di guasto del PIC sia sufficiente sostituirlo e cambiare sul software di simulazione presente sul PC l'indirizzo dell'ente di cui è stato sostituito il PIC.
Per quanto riguarda la programmazione interna, vorrei mantenerla molto molto semplice, con pochissime istruzioni tra cui il comando di tre relè (o di transistor...devo capire se ci sono transistor che riescono a pilotare un array di 10 lampadine da 24 V 3W ciascuna senza fondere), sia in modalità on/off sia variando lo stato ogni secondo per simulare il lampeggiamento e una funzione di polling (utile per capire lo stato della micro-scheda in caso il PC vada in shutdown per qualche motivo).
Per quanto riguarda l'hardware, prevederei l'alimentazione per il PIC e il positivo dei 24 V, il PIC stesso, ie i transistor/relè per il pilotaggio.
Banco di Manovra:
In questo caso, essendo enti "manipolabili", oltre al controllo delle lampade eventualmente presenti nel pulsante/maniglia, è necessario prevedere che il pulsante/maniglia sia in grado di trasmettere al PC l'interazione con l'utente, in modo che lo stesso sappia cosa fare.
Gli stati della lampada restano uguali a quelli del Quadro Luminoso, mentre per quanto riguarda pulsanti e maniglie, ci sono pulsante premuto/pulsante neutro/pulsante estratto, maniglia neutra/maniglia ruotata destra/maniglia ruotata a sinistra/controllo spiombamento/maniglia aggiuntiva ruotata (non tutti hanno tutti gli stati).
Anche in questo caso l'idea è di realizzare un circuito unico per tutti, tanto i comandi sono vincolati fisicamente per cui se una maniglia non può essere ruotata a sinistra semplicemente non gira.
Per quanto riguarda l'hardware, potrebbe essere identico a quello del Quadro Luminoso, con l'aggiunta di un circuito a 3V (o comunque alla tensione di lavoro del PIC) che si inserisca sulle maniglie/pulsanti e che vada ad interrompere o collegare le porte I/O del PIC il quale agirà di conseguenza, inviando i messaggi all'elaboratore.
In questo modo dovrei riuscire a realizzare due soli circuiti da riutilizzare in modo praticamente infinito su tutti gli enti di ogni singolo banco/quadro di tutti gli impianti di cui abbiamo intenzione di attivare la simulazione.
Il blocco "logico" di funzionamento dovrebbe essere pressappoco così:
-APPARATO A RIPOSO
-UTENTE PREME PULSANTE PER COMANDARE ITINERARIO 1-I (da provenienza a binario I)
-IL PIC con codice (o su indirizzo) 0x1234 invia PU_PRESSED al PC.
-IL PC verifica che, nello stato attuale dell'impianto, quel comando abbia senso (in caso contrario non fa nulla), indi in sequenza:
- manda al PIC (con codice o su indirizzo) 0x1234 (pulsante) il comando LIG_01_FLASH (il PIC esegue e mette l'indicazione luminosa 01 in lampeggio)
- manda al PIC (con codice o su indirizzo) 0x2345 (passaggio a livello) il comando LIG_01_FLASH (il PIC esegue e mette l'indicazione luminosa 01 in lampeggio)
...
(vari altri comandi ai vari enti di QL e BM)
...
(termine predisposizione itinerario del treno)
...
(simulazione transito del treno con riporto a riposo degli enti)
...
-APPARATO NUOVAMENTE A RIPOSO
In questo modo, il PC è l'unico a ricevere e impartire i comandi, e l'elettronica di fatto è passiva in quanto è solamente un'interfaccia per trasmettere stati, ma non conosce l'intero sistema che è pilotato unicamente dal software.
So che la soluzione è decisamente più costosa (servono tante componenti per tutti gli enti), ma una volta progettata, va bene per qualsiasi altra simulazione ci serva e non serve soffermarsi più sull'elettronica.
Qualcuno con maggiore esperienza di me nota dei possibili problemi, cose che mi sono perso o altro?
Grazie a tutti!!!
