Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Universitatea Politehnica Bucureşti
Facultatea de Automatică şi Calculatoare
Departamentul de Automatică şi Ingineria Sistemelor
LUCRARE DE LICENŢĂ
M onitorizarea şi controlul automat
al unei machete feroviare
Coordonator Absolvent
As.Dr.Ing. Adrian-Bogdan HANCHEVICI Călin-Răzvan GHIŢESCU
Bucureşti, 2013
2
Cuprins
1 Introducere .................................................................................................................5
2 Sistemul feroviar real. Cum funcţionează? ..................................................................6
3 Sistemul feroviar modelist. Cum funcţionează? ...........................................................7
4 Standardul DCC şi protocolul de comunicaţie digitală ...............................................8
5 Descrierea machetei: traseul şi modul de exploatare ................................................. 11
5.1 Zona blocurilor de linie automate ...................................................................... 11
5.2 Zona gării .......................................................................................................... 12
6 Proiectarea şi implementarea soluţiei de control ....................................................... 14
6.1 Caracteristicile urmărite .................................................................................... 14
6.2 Translatarea sistemului real într-un sistem implementabil ................................ 14
6.3 Descrierea soluţiei de control ............................................................................. 15
6.3.1 Modulul de comunicaţie NMRA – staţia de comandă ................................... 17
6.3.2 Modulul de control al semnalelor de intrare .................................................. 19
6.3.3 Modulul de comandă al semnalelor de ieşire ................................................. 20
6.3.4 Modulul de control al macazurilor ................................................................ 22
6.3.5 Modulul de centralizare a senzorilor de prezenţă .......................................... 27
7 Utilizarea soluţiei de control ..................................................................................... 31
7.1 Construirea traseului şi asignarea resurselor ...................................................... 31
7.2 Execuţia aplicaţiei de monitorizare şi control .................................................... 35
8 Concluzii .................................................................................................................. 38
9 Bibliografie ............................................................................................................... 39
3
Lista de figuri
Figura 4.1: Forma de undă a unui semnal de comandă DCC .......................................................8
Figura 4.2: Un pachet NMRA, cu evidenţierea componentelor din care este alcătuit ................. 10
Figura 6.1: Structura constructivă a soluţiei de control .............................................................. 16
Figura 6.2: Structura funcţională a modulului de comunicaţie NMRA ....................................... 17
Figura 6.3: Structura funcţională a modulului de control a semnalelor de intrare ...................... 20
Figura 6.4: Structura funcţională a modulului de comandă a semnalelor de ieşire ...................... 21
Figura 6.5: Semnificaţiile aspectelor luminoase pentru cele două tipuri de semnale .................... 22
Figura 6.6: Structura funcţională a modulului de comandă a macazurilor .................................. 24
Figura 6.7: Structura funcţională a satelitului conectat la modulul de comandă al macazurilor . 26
Figura 6.8: Structura funcţională a modulului de centralizare a senzorilor de prezenţă .............. 27
Figura 6.9: Schema electrică a unui foto-senzor cu infraroşu ...................................................... 28
Figura 6.10: Montajul foto-senzorilor; secţiune transversală prin şină ........................................ 29
Figura 6.11: Structura funcţională a modulului de achiziţie pentru foto-senzori ......................... 30
Figura 7.1: Fereastra principală a interfeţei la pornirea aplicaţiei .............................................. 32
Figura 7.2: Traseul machetei, construit şi configurat .................................................................. 33
Figura 7.3: Fereastra de definire a unui tren pentru traseul configurat ...................................... 34
Figura 7.4: Fereastra de configurare a unui element de tip “Macaz dreapta” .............................. 35
Figura 7.5: Interfaţa de control a aplicaţiei în modul de exploatare ........................................... 36
4
Lista de tabele
Tabelul 6.1: Setul de comenzi al modulului de comunicaţie NMRA ........................................... 19
Tabelul 6.2: Setul de comenzi al modulului de control al semnalelor de intrare .......................... 21
Tabelul 6.3: Setul de comenzi al modulului de comandă al macazurilor ..................................... 26
Tabelul 6.4: Setul de comenzi al modulului de centralizare a senzorilor de prezenţă .................. 28
5
1 Introducere
Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt foarte pasionat de
trenuri şi de modelism, am ales ca lucrarea mea de licenţă să reflecte exact acest lucru. Şi nu
oricum, ci într-o manieră demnă de un modelist. Asta înseamnă că felul în care este construit
sistemul care supraveghează macheta este inspirat din felul în care funcţionează un sistem
feroviar real. Majoritatea regulilor după care acest sistem funcţionează le-am descoperit din
observaţii personale foarte atente, de-a lungul anilor de călătorie cu trenul sau le-am aflat de la
diverse comunităţi si forumuri de pasionaţi.
În această lucrare voi prezenta mai întâi modul în care funcţionează sistemului feroviar
pentru înţelegerea acestuia – principiul de funcţionare este chiar simplu – şi modelul pe care eu
l-am atribuit acestui sistem pentru a-l putea implementa fizic. Apoi vă voi prezenta macheta –
structura traseului şi modul în care este exploatată –, apoi soluţia software şi hardware pe care
eu am considerat-o cea mai potrivită pentru automatizarea machetei. Vom intra în detalii acolo
unde este nevoie şi veţi înţelege de ce această lucrare – deşi nu este singura din comunitatea de
modelişti – este atât de importantă mai ales pentru cei care au această pasiune, însă şi pentru
alţii – vă veţi da seama la momentul respectiv.
6
2 Sistemul feroviar real. Cum funcţionează?
Atunci când am înţeles modul în care funcţionează sistemul feroviar am fost foarte
surprins să constat că acest sistem este foarte simplu, el este format din trei componente
majore, fiecare dintre ele având mai multă sau mai puţină putere de decizie. Aceste trei
componente sunt structurate ierarhic1.
Prima componentă, şi cea mai evidentă, este trenul – sau mecanicul de locomotivă,
căci el este cel care controlează trenul. Mecanicul locomotivei execută comenzile pe care le
primeşte de la semnalele mecanice sau luminoase de lângă calea ferată sau de la şeful gării în
care se află. Această componentă a sistemului se află ierarhic pe nivelul cel mai de jos.
A doua componentă este alcătuită din segmentele de cale ferată din afara gărilor sau
depourilor, care formează aşa-numitele blocuri de linie automate . Aceste blocuri de linie sunt
de fapt acele porţiuni de cale ferată care leagă gările şi depourile între ele şi care – un aspect
foarte important – sunt împărţite în segmente logice, unul în continuarea celuilalt, delimitate de
senzori2. Un bloc de linie automat are capacitatea de a-şi seta singur (automat) poziţia sau
culoarea semnalulor care îi aparţin, în funcţie de starea în care se alfă blocul respectiv (ocupat
sau liber) şi de starea în care se află blocurile vecine. În structura ierarhică, blocurile de linie
automate ocupă poziţia de mijloc pentru că posedă un anumit grad de autonomie; însă acestea
sunt subordonate ultimei componente.
A treia componentă este şeful de gară. Fiecare gară are o persoană care este
responsabilă de toate mişcările care se petrec aici. Această persoană este cea care permite
intrarea şi ieşirea trenurilor în şi din gară; şi tranzitarea gării trebuie să fie aprobată. În plus,
şeful de gară este cel care stabileşte pe ce linie ies sau intră trenurile, deci are controlul asupra
macazurilor. Desigur, el îşi poate exercita toate aceste puteri doar dacă nu pune în pericol
siguranţa trenurilor3.
În afară de componentele sistemului este important şi modul în care ele interacţionează.
Rutele trenurilor sunt fixe şi stabilite pentru perioade îndelungate; acest lucru implică faptul că
traseul de la staţia de plecare la staţia destinaţie nu se schimbă de la o zi la alta şi nici în timpul
călătoriei, deci timpul călătoriei depinde de traficul rutei respective şi de disponibilitatea gărilor.
Deci, cu alte cuvinte, avansarea trenului pe traseu depinde de şefii gărilor prin care trece – care
1 Această caracteristică a fost definitorie pentru soluţia de automatizare aleasă. Vom vedea de ce.
2 Există mai multe variante constructive de senzori; cele mai folosite sunt cele care folosesc osiile trenului
2 Există mai multe variante constructive de senzori; cele mai folosite sunt cele care folosesc osiile trenului
pentru a închide un circuit electric şi cele care numără câte osii intră şi ies din blocul respectiv; vezi
https://en.wikipedia.org/wiki/Railway_signalling, secţiunea “Train detection” 3 Pentru evitarea situaţiilor periculoase sunt instalate diverse sisteme de blocare şi interblocare care nu
permit trimiterea a două trenuri pe aceeaşi linie, mişcarea acului unui macaz în timp ce este parcurs, etc.
7
îi permit să intre/iasă/parcurgă gările respective – şi de stările blocurilor de linie pe care le
parcurge şi pe care urmează să le parcurgă.
3 Sistemul feroviar modelist. Cum funcţionează?
Până nu demult4, oricine îşi dorea să realizeze o machetă ferovară cu un traseu pentru
mai multe trenuri îşi făcea, în primul rând, viaţa un pic mai grea. Trenurile erau comandate în
tensiune analogică (continuă) direct de la şine; pentru a comanda un tren să meargă înainte
trebuia alimentat cu o tensiune pozitivă în domeniul 0...+16V, iar pentru a-l comanda să meargă
înapoi trebuia alimentat cu o tensiune negativă în domeniul 0...-16V; cu cât tensiunea de
alimentare era mai mare (în modul), cu atât erau viteza trenului şi intensiatea luminilor; în plus,
dacă erau mai multe trenuri pe circuit, toate mergeau cu aceeaşi viteză şi în acelaşi sens. Pentru
a putea controla mai multe trenuri, circuitul trebuia împărţit în blocuri izolate electric,
alimentate separat; practic nu erau controlate trenurile, ci blocurile de linie. Pentru fiecare bloc
trebuia prevăzut un sistem întreg de circuite electrice care să comute alimentarea de la blocul în
care se afla trenul la blocul în care urma să treacă. Modificarea traseului sau adăugarea unui nou
tren însemna de cele mai multe ori reproiectarea integrală a circuitelor electrice.
De aceea, la începutul anilor ’90, Asociaţia Naţională a Modelismului Feroviar din Statele
Unite (NMRA – National Model Railroad Association) propune un nou mod de a controla
machetele feroviare: unul digital. Această nouă variantă de control poartă numele de Digital
Command Control (DCC) şi propune ca fiecare tren să aibă ataşat în interior un circuit
electronic integrat, numit decodor, care să interpreteze şi să execute comenzile primite de la
staţia de comandă printr-un protocol de comunicaţie de tip modulaţie în frecvenţă. DCC devine
foarte repede un standard dotarită avantajului major pe care îl are faţă de sistemul analogic:
fiecare tren poate fi controlat separat fără a fi nevoie ca traseul să fie împărţit în blocuri
separate electric, ceea ce reduce şi simplifică semnificativ partea electrică. Fiecare tren de pe
traseu poate fi comandat independent de celelalte, luminile poti fi aprinse atunci când trenul
staţionează sau chiar în timpul deplăsării.
Această lucrare prezintă o variantă de implementare a unui sistem de control care se
aliniază standardului de control DCC în termeni de protocol de comunicaţie.
4 Primele discuţii privind introducerea unui nou sistem de comandă au început în anul 1994; prima
implementare a noului sistem a fost făcută publică în anul 1996; vezi
http://www.nmra.org/beginner/dccbasic.html
8
4 Standardul DCC şi protocolul de comunicaţie digitală
Trecerea de la sistemul de comandă analogic la cel digital s-a făcut cu câteva modificări
majore. În primul rând, şinele nu mai poartă o tensiune de alimentare continuă analogică în
domeniul ±16V, ci o tensiune continuă de amplitudine constantă, ceea ce înseamnă că toate
trenurile sunt alimentate de către aceeaşi sursă în orice moment de timp. Informaţiile se
transmit printr-o inşiruire de tranziţii a tensiunii de alimentare între două niveluri de
amplitudine egală şi polaritate opusă, deci pentru a transmite un bit de informaţie, mai întâi
şina stângă este alimentată şi şina dreaptă este legată la masă, iar apoi şina dreaptă este
alimentată şi şina stângă este legată la masă. Prin urmare, fiecare bit de informaţie este compus
din două părţi5. Pentru a diferenţia între ei biţii de informaţie aceste pulsuri dreptunghiulare
sunt modulate în frecvenţă.
Dacă trebuie transmis un bit ‘1’, atunci cele două părţi ale bitului trebuie să fie egale ca
durată, iar durata nominală este de 58µs, obţinând un bit de durată totală de 116µs. Staţia de
comandă trebuie să emită biţi de ‘1’ care au părţile de durată cuprinsă între 55µs şi 61µs, iar
decodoarele trebuie să fie capabile să recepţioneze tranziţii de durată cuprinsă între 52µs şi 64µs
ca aparţinând unui bit ‘1’. În plus, decodoarele trebuie să accepte doar acei biţi de ‘1’ ale cărui
părţi diferă prin cel mult 6µs.
Figura 4.1: Forma de undă a unui semnal de comandă DCC
Dacă trebuie transmis un bit ‘0’, atunci cele două părţi ale bitului trebuie să aibă durata
nominală mai mare de 100µs. Pentru a menţine componenta continuă a semnalului rezultat la
nivelul de 0V ca în cazul biţilor ‘1’, cele două părţi ale bitului ‘0’ sunt de regulă egale, deşi
această dispunere nu este obligatorie. Staţia de comandă va emite biţi de ‘0’ ale căror părţi vor
avea durate cuprinse între 95µs şi 9900µs, cu condiţia ca durata totală a unui bit să nu
5 Pentru că locomotiva unui tren poate fi aşezată pe şine în oricare dintre direcţii, este imposibil pentru
circuitul integrat din interiorul acesteia să-şi dea seama dacă prima parte are polaritate pozitivă sau
negativă; deci nu contează ordinea de transmisie a polarităţilor (negativ-pozitiv, pozitiv-negativ)
9
depăşească 12000µs. Decodoarele trebuie să accepte tranziţii ale căror durată este cuprinsă între
90µs şi 10000µs ca făcând parte dintr-un bit ‘0’.
Informaţiile care trebuie transmise decodoarelor sunt încapsulate în pachete compuse
dintr-un preambul şi trei octeţi de date. Preambulul este alcătuit din cel puţin 14 biţi de ‘1’
urmaţi de un bit de start ‘0’ care semnalizează inceputul primului octet. După transmiterea
primului octet se transmite din nou un bit ‘0’ care semnalizează sfârşitul primului octet şi
începutul celui de-al doilea; după ce a fost transmis şi acesta, din nou este transmis un bit ‘0’,
apoi al treilea octet de date. Pentru a semnaliza sfârşitul pachetului de date se transmite un bit
de stop ‘1’, apoi se reia procedura de transmitere a unui nou pachet, începând cu preambulul.
Transmiterea octeţilor de date se face începând cu bitul cel mai semnificativ. Cei trei octeţi au
fiecare semnificaţii diferite. Primul octet de date se numeşte octet de adresă pentru că el conţine
adresa decodorului căruia îi este destinat acest pachet. Fiecare decodor verifică adresa pachetului
după recepţia acestuia; dacă pachetul îi este adresat, atunci execută comenzile conţinute în el;
dacă nu îi este adresat, comenzile vor fi ignorate iar decodorul nu îşi va modifica starea (viteza,
sensul, luminile). Octetul de adresă are structura 0AAAAAAA, unde prin ‘A’ am marcat biţii pe
care decodorul îi ia în considerare pentru calculul adresei. Al doilea octet de date se numeşte
octet instrucţiune şi conţine comanda pe care decodorul cu adresa conţinută în primul octet
trebuie să o execute. Instrucţiunile sunt clasificate în funcţie rezultatul pe care îl au asupra
decodorului şi sunt codificate utilizând biţii cei mai semnificativi ai acestui octet. Instrucţiunile
destinate controlului vitezei şi sensului pentru decodoarele montate în interiorul locomotivelor au
structura 01DCSSSS. Bitul ‘D’ este folosit pentru a comanda sensul locomotivei: dacă acest bit
este ‘1’, atunci locomotiva se va deplasa în direcţia înainte, iar pentru valoarea ‘0’, înapoi.
Grupul de biţi “SSSS” sunt folosiţi pentru a defini treapta de viteză a locomotivei, iar bitul ‘C’
este folosit în calitate de bit cel mai puţin semnificativ pentru calculul treptei de viteză6. Al
treilea octet de date este folosit pentru detectarea erorilor de transmisie, biţii acestui octet
reprezentând rezultatul operaţiei logice SAU EXCLUSIV dintre octetul de adresă şi octetul
instrucţiune. La recepţia completă a unui pachet, decodorul calculează acest octet şi apoi îl
compară cu octetul de eroare conţinut de pachet. În cazul unei nepotriviri, pachetul este ignorat.
Standardul DCC stabileşte şi alte caracteristici ale semnalului de comandă, cum ar fi
tensiunile minime şi maxime pe care trebuie să le furnizeze staţia de comandă şi să le accepte
decodorul, viteza de schimbare a polarităţii a staţiei de comandă, aberaţiile maxime acceptate
ale formei de undă, capacitatea decodorului de a recepţiona semnalul de comandă în condiţii de
zgomot, etc. Şi deşi mi-am dorit să construiesc un sistem de comandă complet care să lucreze cu
standardul DCC, am ales să proiectez şi să implementez toate elementele necesare controlului
6 În variantele mai vechi ale protocolului DCC, bitul ‘C’ era cel care controla luminile locomotivei; în
varianta actuală există o instrucţiune separată pentru aprinderea şi stingerea luminilor. În acest mod, din
cele 32 de combinaţii posibile, 4 sunt folosite pentru a transmite comenzi de oprire de urgenţă, iar restul
28 sunt trepte efective de viteză.
10
machetei mai puţin decodorul, deoarece nivelul de miniaturizare necesar construirii unui astfel de
circuit a fost peste nivelul meu posibil de lucru la momentul realizării acestei lucrări.
Figura 4.2: Un pachet NMRA, cu evidenţierea componentelor din care este alcătuit
În concluzie, a trebuit să ţin cont de urmatoarele constrângeri ale caracteristicilor
semnalului de comandă:
- domeniul tensiunii de alimentare a circuitului: 7÷22V; tensiunea de
alimentare aleasă: 20V
- viteza minimă de comutare (schimbarea polarităţii) a alimentării în
domeniul ±4V: 2.5V/µs; am ales un circuit specializat care să asigure
această performaţă
- duratele părţilor biţilor ‘1’: 55÷61µs; am ales perioade egale de 58µs
- duratele părţilor biţilor ‘0’: 95÷10000µs, cu suma totală mai mică de
12000µs; am ales perioade egale de 116µs
11
5 Descrierea machetei: traseul şi modul de exploatare
Pentru această lucrare am ales cea mai simplă configuraţie posibilă a unui traseu care să
pună în evidenţă modul de funcţionare al sistemului feroviar real. De aceea, traseul machetei
este împărţit intr-o zonă cu două blocuri de linie automate şi o zonă de gară cu două linii. Liniile
gării vor fi ocupate de două trenuri, orentate în sens opus unul faţă de celălalt. Scopul trenurilor
este să ajungă din staţia de plecare în staţia de destinaţie; în cazul machetei noastre, cele două
gări sunt aceleaşi, deci trenurile vor trebui să parcurgă ruta de la linia de gară de la care pleacă
până la aceeaşi linie a gării parcurgând zona blocurilor de linie automate, bineînţeles respectând
regulile de circulaţie feroviare. Cu alte cuvinte, pentru parcurgerea acestei rute, trenurile vor
trebui să primească permisiunea utilizatorului de a părăsi gara şi să aibă cale liberă către
intrarea din capătul opus al aceleaşi linii; ajuns în acel punct, trenul va aştepta din nou
permisiunea utilizatorului, de data aceasta pentru a intra in zona gării. Toate acestea fiind
stabilite, am ajuns în momentul potrivit pentru a discuta despre câteva detalii constructive ale
fiecărei zone.
5.1 Zona blocurilor de linie automate
Pentru ca o porţiune a traseului de cale ferată să poată fi un bloc de linie automat, ea
trebuie neapărat să aibă:
- senzori care să delimiteze porţiunea de traseu care se doreşte a fi
considerată un bloc de linie automat
- semnale, fie mecanice fie luminoase, care afişează starea în care se află
porţiunea de cale ferată care urmează în continuarea blocului respectiv; în
cazul semnalelor luminoase, există variante constructive care afişează două
culori şi variante constructive care afişează trei culori, ultimele având
posibilitatea de a transmite mecanicului de locomotivă informaţii
suplimentare şi despre ceea ce urmează după porţiunea de traseu imediat
următoare; indiferent de construcţia sau complexitatea semnalelor, sunt
necesare şi
- interconexiuni ce realizează legături logice care asigură influenţa reciprocă
dintre starea unei porţiuni de traseu şi starea celorlalte porţiuni de traseu
care sunt legate în mod fizic
În consecinţă, zona blocurilor de linie automate de pe machetă va avea patru senzori de
prezenţă (câte unul la fiecare capăt al celor două blocuri) şi patru semnale luminoase de bloc7
7 Deşi există anumite diferenţe între semnalele de la capetele unui bloc de linie automat (de “bloc”) şi cele
de la intrările unei gări (de “intrare”), pentru simplitate, mă voi referi în această lucrare la amândouă
12
(câte unul pentru fiecare direcţie la graniţa dintre cele două blocuri şi câte unul la fiecare din
intrările gării), acestea fiind resurse fizice (hardware). Conexiunea fizică (ordinea) dintre cele
două blocuri va fi modelată în mod conceptual în aplicaţia care va comanda macheta (resursă
software).
5.2 Zona gării
Gările au în structura lor două zone distincte din punct de vedere al modului în care sunt
folosite. Zona cea mai evidentă este zona de peron, sau liniile de “tragere”, adică acele porţiuni de
cale ferată din gari unde trenurile staţionează voit. Aceste zone de garare sunt din punct de
vedere funcţional tot blocuri de linie automate, deci au la capete senzori, semnale8 şi legături
logice cu elementele de cale ferată de care sunt fizic conectate. A doua caterogie de zonă este mai
puţin evidentă, însă din punct de vedere funcţional se comportă complet diferit faţă de un bloc
de linie automat: desigur, este vorba de macazuri. Macazurile fac legătura între capetele a mai
mult de două blocuri de linie, deci sunt o resursă partajată a acestor blocuri, ceea ce face ca
operarea lor să fie delicată. În funcţie de poziţia acului macazului, acesta poate fi tranzitat doar
într-o anumită direcţie; mai mult, ele pot fi operate doar dacă nu sunt tranzitate, altfel
rezultatul ar fi evident deraierea unui tren (o situaţie periculoasă). Tocmai de aceea macazurile
nu sunt incluse in niciun bloc de linie automat, ci sunt lăsate în afară; în consecinţă, pentru ca
un tren să părăsească gara şi să pătrundă în primul bloc de linie automat trebuie ca şeful gării să
îi acorde permisiunea de plecare, macazul să nu fie tranzitat de alt tren, acul macazului să fie în
poziţia potrivită pentru parcurgere pe această direcţie iar blocul de linie să fie liber. Observăm
din nou că regulile de care se ţine cont pentru ca semnalul de ieşire al gării să afişeze “liber
pentru parcurgere” sunt suprapuse, dintre “straturi” fiind extrasă varianta cea mai restrictivă.
Este absolut evident că un sistem automat care ar trebui să aplice aceste reguli are doar de
calculat o expresie logică de tip “ŞI”; acesta este un semn foarte bun pentru lucrarea de faţă, care
îşi propune exact realizarea unui astfel de sistem (din nou se văd avantajele modelului ierarhic al
sistemului în procesul de decizie).
Ca să închei, mai menţionez doar resursele de care dispune zona gării: patru senzori de
prezenţă pentru cele două linii de garare, patru semnale luminoase de ieşire9, două macazuri
tipuri prin termenul de semnal de “intrare”; asta pentru a se afla în opoziţia termenului de semnal de
“ieşire” care se referă la semnalele de la ieşirile unei gări 8 Aceste semnale poartă numele de semnale de ieşire şi sunt cele mai complexe dintre toate tipurile de
semnale din punct de vedere al informaţiilor pe care le afişează 9 Semnalele montate pe machetă au, pe lângă cele trei lămpi de culori bine cunoscute, şi o lampă de
culoare albă, folosită pentru a semnaliza unui tren garat că are permisiunea de executa manevre în zona
macazurilor, până la semnalul de intrare al blocului de linie adiacent; deşi acestă lucrare nu
implementează această funcţionalitate, semnalele au fost dotate cu această lampă pentru a putea fi folosite
în cazul unei îmbunătăţiri ulterioare
13
pentru bifurcaţia blocurilor de linie de la intrarea în gară – acestea sunt resursele hardware. Ca
şi pentru zona blocurilor de linie automată, legăturile dintre elementele de cale ferată care
alcătuiesc zona gării vor fi modelate în aplicaţia de comandă a machetei.
14
6 Proiectarea şi implementarea soluţiei de control
6.1 Caracteristicile urmărite
Atunci când mi-am pus problema implementării unui sistem de comandă pentru
machetă, am vrut neapărat să aibă urmatoarele caracteristici:
- modularitate : am vrut să existe o delimitare clară între entităţile care se
ocupă sarcini distincte şi tocmai de aceea am ales să rezolv anumite
probleme de control cu module hardware şi software specializate; în
consecinţă, distribuirea responsabilităţii către entităţi specializate aduce
de la sine o simplificare a procedurii de depistare si corecţie a erorilor şi
defecţiunilor
- scalabilitate : o caracteristică pe care eu o consider extraordinar de
valoroasă pentru un sistem de comandă destinat unei machete feroviare
pentru că foarte des se întâmplă ca traseul să fie mărit sau îmbunătăţit
- conectare printr-o interfaţă populară: pentru că pentru interfeţele
populare (Ethernet, USB, RS232) se găsesc foarte uşor echipamente de
conectare; mai mult, pentru protocoalele asociate interfeţelor comune
există foarte mult unelte care facilitează dezvoltarea aplicaţiilor care
folosesc aceste interfeţe pentru cumunicare
- control extins pentru utilizator: am vrut ca utilizatorul să aibă cât
mai mult control asupra sistemului atât în timpul rulării cât şi în timpul
configurării modulelor specializate printr-o interfaţă grafică prietenoasă şi
intuitivă
6.2 Translatarea sistemului real într-un sistem implementabil
Când am vorbit despre sistemul feroviar real şi despre cum este structurat am menţionat
faptul că este alcătuit din trei componente dispuse în structură ierarhică: mecanicul de
locomotivă, ansamblul blocurilor de linie automate şi şeful de gară. Am ales să păstrez această
structură de decizie pentru sistemul de comandă pe care l-am proiectat, iar soluţia de control
care a rezultat are următoarea formă:
- rolul mecanicului de locomotivă va fi preluat de căte utilizator, care are
acum control asupra întregului tren prin intermediul unui anumit modul
din aplicaţia care rulează; acesta va putea controla viteza şi direcţia unui
tren prin prescrierea comenzilor cu ajutorul interfeţei grafice
- deasupra nivelului mecanicului de locomotivă vine nivelul blocurilor de
linie automate care vor fi controlate şi gestionate de către un modul
specializat al aplicaţiei care rulează; comenzile utilizatorului (cu rol de
mecanic de locomotivă) sunt suprascrise de către acest modul în cazul în
15
care sunt mai restrictive; câteva exemple semnificative sunt: viteza
maximă a blocului de linie în care se află trenul este mai mică decât cea
prescrisă de către utilizator, sensul de parcurgere al blocului de linie este
altul decât cel în care se deplaseaza trenul (caz în care este oprit)
- cel mai înalt nivel, cel al şefului de gară, va fi preluat tot de către
utilizator care va decide căror trenuri permite să intre/iasă/parcurgă
gările machetei şi în ce sens vor putea fi parcurse blocurile de linie
automate, însă doar în condiţiile în care nu sunt incălcate anumite reguli
de siguranţă cum ar fi: nu poate schimba sensul unul bloc de linie automat
care este ocupat, nu poate mişca acul unui macaz care este parcurs, nu
poate refuza accesul unui tren de a intra în gară dupa ce a fost declanşată
procedura de intrare
Implementarea în structură ierarhică simplifică semnificativ regulile de care trebuie să
ţină cont fiecare modul, iar comenzile generate vor fi elaborate printr-o suprapunere a
comenzilor intermediare, la fiecare nivel fiind aleasă comanda cea mai restrictivă.
6.3 Descrierea soluţiei de control
Ţinând cont de caracteristicile dorite, soluţia de control obţinută se prezintă sub forma
unei aplicaţii software supervizor care acţionează asupra machetei (sistemul fizic) prin
intermediul unor module specializate, astfel obţind una din caracteristicile dorite, modularitatea;
fiecare dintre aceste module are doar o singură sarcină şi deci sistemul de control este dotat cu
un modul de citire a senzorilor, un modul de comandă a servomecanismelor pentru macazuri, un
modul de comandă pentru semnalele de intrare şi unul pentru semnalele de ieşire, şi un modul de
comandă a trenurilor. Majoritatea acestor module au în subordine mai mulţi sateliţi; aceşti
sateliţi fac parte din macheta în sine; este vorba aici despre servomecanismele care acţionează
acele macazurilor, semnalele de intrare şi de ieşire de-a lungul şinei, senzorii implantaţi în traseu.
În plus, unele dintre modulele conectate la aplicaţie au capacitatea de a detecta automat câţi
sateliţi sunt conectaţi pentru ca utilizatorul să vadă în interfaţa principală care sunt resursele pe
care le are la dispoziţie fără niciun efort. Am obţinut în acest mod simplu o simplificare
semnificativă a procedurii de configurare a traseului machetei în cadrul aplicaţiei de control. Mai
este de menţionat faptul că pentru comunicaţia dintre sateliţi şi modulele de comandă am folosit
semnale digitale (intrări şi ieşiri logice), iar pentru comunicaţia dintre aplicaţia de control şi
modulele de comandă am apelat la interfaţa Ethernet şi la protocolul UDP (User Datagram
Protocol), care, împreună cu faptul că toate modulele se conectează la aplicaţia de control prin
intermediul unui echipament de tip switch, bifează şi ultimele două caracteristici dorite,
scalabilitate şi conectare printr-o interfaţă comună.
În continuare voi descrie în detaliu fiecare modul şi sateliţii care se leagă la acesta,
pentru a înţelege în profunzime atribuţiile fiecărei componente hardware şi software.
16
Figura 6.1: Structura constructivă a soluţiei de control
17
6.3.1 M odulul de comunicaţie NM RA – staţia de comandă
Modulul de comunicaţie NMRA – staţi de comandă – este componenta care transmite
comenzile sistemului de control către trenuri. Comenzile care ajung la acest modul sunt
rezultatul algoritmului de decizie implementat în aplicaţia de control şi sunt preluate de
componenta care implementează interfaţa Ethernet. Odată preluate, ele sunt transmise prin
comunicaţie serială SPI (Serial Peripheral Interface) la microntroller-ul modulului care
controlează circuitul integrat specializat – puntea H – care realizează forma de undă descrisă în
standardul de comunicaţie.
Figura 6.2: Structura funcţională a modulului de comunicaţie NMRA
Pusă la punct de către Guido Socher10, procedura de comunicare11 a microcontroller-ului
ATMEL ATmega88A cu circuitul integrat produs de către Microchip – ENC28J60 – pentru
stabilirea unei conexiuni Ethernet începe cu configurarea interfeţei de comunicare prin
configurarea manuală a adresei MAC, a adresei IP şi a portului de comunicaţie. Fiecare modul
are o adresă IP şi MAC unică; adresele IP au fost alese de clasă C în reţeaua 192.168.0, cu
numere de identificare a gazdelor începând cu adresa 11. Adresele MAC au fost calculate în aşa
fel încât primii trei octeţi ai adresei convertiţi în cod ASCII să reprezinte iniţialele numelui meu
(“RGH”), iar următorii trei octeţi ai adresei convertiţi în bază zecimală să reprezinte ordinea în
10
Lucrarea sa, “An AVR microcontroller based Ethernet device”, a fost piatra de temelie a modulelor de
comandă descrise în această lucrare şi este, cu adevărat, o adevărată comoară pentru orice student care
doreşte să conecteze un sistem embedded cu o reţea de dispozitive care foloseşte interfaţa Ethernet. 11
Pentru că toate modulele construite pentru acest proiect implementează o interfaţă Ethernet bazându-se
pe aceeeaşi lucrare mai sus menţionată, descrierea funcţionării acesteia nu va fi reluată la fiecare modul
18
care au fost realizate modulele12
. Configurarea portului de comunicaţie asigură două aspecte:
primul este legat de pachetele de informaţii trimise de către microcontroller aplicaţiei de control,
care “ascultă” un anumit port pentru informaţii provenite de la machetă; al doilea este legat de
pachetele de informaţii recepţionate de către modul, mesaje care ar putea fi de la orice dispozitiv
conectat la reţeaua aplicaţiei de control – acum portul de comunicaţie se comportă ca un filtru
de pachete care fereşte microcontroller-ul de executarea unor comenzi false şi, în acelaşi timp, îl
degrevează de procesările suplimentare necesare analizării pachetelor. După configurarea
interfeţei se verifică funcţionalitatea LED-urilor conectorului RJ45 printr-o dublă clipire cu
frecvenţa de 1Hz.
Pentru generarea semnalului DCC, microcontroller-ul utilizează un timer configurat să
funcţioneze în regim CTC (Clear Timer On Compare Macth) la frecvenţa de 1MHz. Această
frecvenţă a fost aleasă special ca fiecare unitate de timp pe care o numără timer-ul să dureze
1µs, rezoluţie temporală foarte convenabilă pentru generarea pulsurilor de durate 58µs şi 116µs.
În funcţie de biţii care trebuie transmişi, rezoluţia timer-ului13 este setată la valoarea de 58
pentru generarea celor două jumătăţi ale unui bit ‘1’, sau la valoarea 116 pentru generarea celor
două jumătăţi ale unui bit ‘0’. Timer-ul generarează o întrerupere de fiecare dată când termină
de numărat şi se resetează, şi tot atunci calculează bitul care trebuie transmis în continuare, sau
dacă a terminat de transmis un pachet şi trebuie să treacă la urmatorul. Pentru a determina ce
bit trebuie transmis, întregul pachet este stocat într-o variabilă de tip vector iar procedura de
tratare a întreruperii parcurge acest vector pe măsură ce transmite biţii pachetului.
Una din problemele mai delicate ale transmisiei este faptul că transmisia unui pachet
durează destul de mult comparativ cu timpul de execuţie al buclei principale a programului din
microcontroller. Apare astfel riscul de a primi mai repede comenzi de la aplicaţia de control
decât se transmite un pachet către trenuri. Am rezolvat această problemă implementând o coadă
tampon care să permită primirea mai multor comenzi care apoi să fie transmise în ordinea în
care au fost primite. O altă problemă este actualizarea vectorului folosit de către procedura de
întreprupere pentru generarea semnalului DCC. Actualizarea la un moment nepotrivit poate
duce la coruperea datelor din pachet şi deci la funcţionarea incorectă a trenurilor. Pentru
rezolvarea acestei probleme am exclus din vectorul în care este conţinut pachetul secvenţa de
biţi care corespunde preambulului şi am realizat transmiterea acestei părţi folosind contori şi
condiţii suplimentare în interiorul procedurii de întrerupere. Această abordare mi-a oferit
garanţia că procedura de tratare a întreruperii nu are acces la vectorul pachetului pe perioada
transmiterii preambulului, putând să fac actualizarea în acest interval.
12
Pentru că a fost realizat primul, modulul de comandă a semnalelor de intrare are adresa MAC
hexazecimală 52.47.48.00.00.01 (“R.G.H.0.0.1”), modulul de comunicaţie are adresa MAC hexazecimală
52. 47.48.00.00.02 (“R.G.H.0.0.2”), şi aşa mai departe; aceeaşi regulă a fost aplicată şi adreselor IP ale
modulelor, începând cu adresa de gazdă numărul 11. 13
Numărul de intervale temporale de 1µs pe care le numără până se resetează
19
La punerea în funcţiune a modulului microcontroller-ul configurează şi iniţializează
interfaţa Ethernet, apoi rulează procedura de iniţializare a tuturor trenurilor conectate prin
trimiterea a 30 de pachete de RESET urmate de 15 pachete IDLE. Acestea au rolul de a anula
comenzile anterioare ale decodoarelor conectate la traseu. Programul intră apoi în bucla
principală fiind pregătit pentru a primi comenzile de la aplicaţia de control. Tabelul 6.1 prezintă
setul de comenzi pe care acest modul le recunoaşte şi reacţia acestuia la ele. În plus faţă de
comenzile definite, modulul poate răspunde pachetelor protocolului ICMP (pachete PING).
Comanda Descrierea comenzii Rezultatul comenzii
I Cerere de identificare a
tipului dispozitivului şi a
configuraţiei acestuia
Modulul va trimite ca răspuns un mesaj
care conţine IP-ul dispozitivului, tipul
“Staţie de comandă” şi curentul maxim pe
care îl poate furniza la bornele de ieşire
C,pachetDCC Transmisie instrucţiuni către
trenurile machetei
Pachetul de date “pachetDCC” trimis
împreună cu comanda va fi adăugat la
coada tampon de pachete DCC care trebuie
transmise
Tabelul 6.1: Setul de comenzi al modulului de comunicaţie NMRA
6.3.2 M odulul de control al semnalelor de intrare
În schema funcţională a acestui modul din Figura 6.3 se poate identifica interfaţa
Ethernet, identică cu cea descrisă la Modulul de comunicaţie NMRA – staţia de comandă. De
aceea nu voi mai descrie modul în care este implementată şi funcţionează această interfaţă.
Rolul acestui modul este de a alimenta şi anima semnalele luminoase ale blocurilor de
linie automate. Semnalele controlate de acest modul interacţionează indirect cu sistemul condus,
întrucât nu semnalele sunt cele care comandă trenurile – aşa cum se întâmplă la sistemul real –
ci un alt modul de comandă. La cele cinci porturi ale modulului pot fi conectate patru semnale
de intrare sau de bloc (SIGNAL0 ÷ SIGNAL3) cu trei aspecte luminoase, şi adiţional, un semnal
de ieşire cu patru aspecte luminoase (SIGNAL4). Configuraţia de lumini afişate nu este
multiplexată şi deci fiecare aspect al semnalelor poate fi comandat individual prin comandă
digitală: un semnal ‘0’ – 0V – menţine LED-ul asociat stins, iar un semnal ‘1’ – 3.3V – aprinde
LED-ul asociat. Tensiunea de alimentare a sateliţilor este cuplată la borna de 12V.
La punerea în funcţiune a modulului microcontroller-ul configurează şi iniţializează
interfaţa Ethernet apoi intră în bucla principală a programului. Configuraţia aspectelor fiecărui
semnal se face prin comanda specifică, prezentată în Tabelul 6.2. În plus faţă de configuraţiile
luminoase simple (roşu, galben, verde), semnalele de intrare şi de bloc pot afişa configuraţii
alternative (galben intermitent, verde intermitent), iar semnalul de ieşire poate afişa o
20
configuraţie compusă (verde-galben) şi o configuraţie simplă suplimentară, specifică acestui tip
de semnal (alb). Semnificaţiile acestor configuraţii sunt prezentate în Figura 6.5.
Figura 6.3: Structura funcţională a modulului de control a semnalelor de intrare
6.3.3 M odulul de comandă al semnalelor de ieşire
Schema funcţională este prezentată în Figura 6.4. Acest modul nu diferă de cel prezentat
anterior decât prin faptul că cele patru porturi sunt destinate exclusiv semnalelor de ieşire, cu
patru aspecte luminioase.
21
Comanda Descrierea comenzii Rezultatul comenzii
I Cerere de identificare a
tipului dispozitivului şi a
configuraţiei acestuia
Modulul va trimite ca răspuns un mesaj
care conţine IP-ul dispozitivului, tipul
“Semnale luminoase” şi configuraţia celor
cinci porturi
OFF Stingerea tuturor aspectelor
semnalelor
LED-urile tuturor semnalelor vor fi stinse
STOP Setarea tutror semnalelor în
starea “Opreşte”
Toate semnalele vor avea afişa configuraţia
luminoasă care simbolizează comanda
“Opreşte”, adică vor fi aprinse LED-urile de
culoare roşie
nX Setează semnalul n să afişeze
comanda X
LED-urile semnalului n vor fi aprinse în
configuraţia necesară afişării aspectului
indicat de caracterul X; o astfel de
comandă poate conţine indicaţii pentru mai
multe semnale, în acest caz instrucţiunile
fiecărui semnal se concatenează
Tabelul 6.2: Setul de comenzi al modulului de control al semnalelor de intrare
Figura 6.4: Structura funcţională a modulului de comandă a semnalelor de ieşire
22
Figura 6.5: Semnificaţiile aspectelor luminoase pentru cele două tipuri de semnale
6.3.4 M odulul de control al macazurilor
În schema funcţională a acestui modul din Figura 6.6 se poate identifica interfaa
Ethernet, identică cu cea descrisă la Modulul de comunicaţie NMRA – staţia de comandă. De
aceea nu voi mai descrie modul în care este implementată şi funcţionează această interfaţă.
Aşa cum ne putem da seama din nume, acest modul are sarcina specifică de a controla
macazuri, adică de a poziţiona corect acul macazului pentru a închide sau deschide circuitul.
23
Macazurile bipoziţionale au două căi de ieşire, calea directă şi calea abătută. Calea directă este
definită de acea poziţie a acului în care trenul îşi păstrează ruta prin parcurgerea macazului
(circuitul este “închis”). Calea abătută este definită de acea poziţie a macazului în care trenul nu
îşi păstrează ruta, ci “schimbă linia” atunci când parcurge macazul (circuitul este “deschis”).
Pentru a putea acţionara şi controla macazurile am ales să folosesc servomecanisme.
Servomecanismele sunt foarte populare în rândul modeliştilor pentru că au dimensiuni şi
masă reduse, sunt ieftine şi foarte uşor de folosit. Indiferent de varianta constructivă, liniare sau
rotative, acestea au în componenţă un mic motor electric care deplasează sau roteşte axul
conectat la elementul acţionat printr-un sistem de roţi dinţate (reductor). În plus faţă de
elementele mecanice, servomecanismele au un potenţiometru conectat la axul de acţionare.
Semnalul de la potenţiometru este comparat în mod continuu cu comanda aplicată
servomecanismului de la sistemul care îl controlează; diferenţa dintre aceste semnale reprezintă
eroarea de poziţie a servomecanismului şi este folosită pentru a comanda motorul să compenseze
poziţia axului în direcţia potrivită. Implementarea acestui sistem automat de reglare a poziţiei
stabileşte natura acestor servomecanisme, care pot fi analogice sau digitale. Diferenţa dintre cele
două tipuri constă în felul în care semnalul de comandă este procesat şi cum este folosită această
informaţie pentru alimentarea motorului. În cazul celor analogice, motorul servomecanismului
este comandat de un semnal în pulsuri dreptunghiulare cu frecvenţa de 50Hz, adică pulsuri de
perioadă 20ms. Cu cât acest pulsuri au factorul de umplere mai mare, cu atât viteza de rotaţie a
motorului va fi mai mare. Asta înseamnă că dacă axul servomecanismului este forţat în afara
poziţiei comandate, semnalul de eroare va comanda motorul să compenseze deviaţia, tot în
pulsuri de perioadă 20ms, cu un factor de umplere direct proporţional cu deviaţia (eroarea de
poziţie) a axului. Aşasar, în cazul servomecanismelor analogice, pentru erori de poziţie foarte
mici, şi forţa de compensare a motorului va fi slabă. În contrast, servomecanismele digitale
primesc comenzi sub forma unor pulsuri dreptunghiulare de frecvenţă cel puţin 300Hz, rezolvând
astfel problema insensibilităţii pentru deviaţii mici.
Pentru acţionarea macazurilor de pe machetă am folosit servomecanisme rotative
analogice pentru că parcurgerea macazurilor de către trenuri nu forţează axul de acţionare şi
deci nu apar deviaţii pentru care să fie necesar timpul şi forţa de răspuns a celor digitale. Aşa
cum am menţionat, aceste servomecanisme se comandă prin semnale dreptunghiulare de
perioadă 20ms, iar poziţia axului este dată de factorul de umplere al semnalului, adică raportul
dintre perioada activă şi perioada totală a semnalului. Pentru a poziţiona axul în poziţia maximă
la stânga, semnalul trebuie să aibă perioada activă de 1ms, adică un factor de umplere de 5%,
iar pentru a poziţiona axul în poziţia maximă la dreapta, semnalul trebuie să aibă perioada
activă de 2ms, sau factor de umplere 10%. Caracteristica statică a servomecanismului asigură un
calcul foarte uşor pentru orice poziţie dorită între limitele maxime. Un astfel de semnal de
comandă se obţine foarte uşor cu ajutorul unui microcotroller configurat să genereze un semnal
PWM (Pulse Width Modulation), însă pentru această aplicaţie în mod particular m-am lovit de
o problemă legată de frecvenţa la care lucrează microcontroller-ul şi rezoluţia semnalului PWM.
Pe de-o parte, faptul că microcontroller-ul comunică cu aplicaţia de control printr-o interfaţă
Ethernet m-a determinat să configurez frecvenţa de lucru a acestui modul la 8MHz, pentru a
24
reduce timpul de comunicare şi pentru a creşte viteza de reacţie în cazul în care trebuie aplicată
o comandă nouă către macazuri. Pe de altă parte, servomecanismele analogice au nevoie de un
semnal PWM de frecvenţă foarte joasă14
. Această frecvenţă joasă poate fi obţinută prin mai
multe metode: folosirea unui timer cu rezoluţia de 16 biţi pentru generarea semnalului PWM,
micşorarea frecvenţei de lucru a microcontroller-ului şi folosirea unui timer de 8 biţi pentru
generarea semnalului PWM, păstrarea frecvenţei de lucru a microcontroller-ului şi folosirea unui
timer de 8 biţi cu prescalarea semnalului de ceas pentru generarea semnalului PWM. A doua
variantă a fost exclusă din start pentru că presupunea micşorarea frecvenţei de lucru care mi s-a
părut prea importantă pentru a o compormite. Folosirea unui timer de 8 biţi cu prescalarea
semnalului de ceas ar fi cauzat poziţionarea servomecanismului în trepte sesizabile şi nu printr-o
mişcare lină şi cursivă. Singura variantă rezonabilă ar fi fost folosirea timer-ului de 16 biţi al
microcontroller-ului, însă asta ar fi însemnat că un modul ar fi putut acţiona cel mult două
servomecanisme – o soluţie scumpă datorită circuitelor de implementare a interfeţei Ethernet.
Figura 6.6: Structura funcţională a modulului de comandă a macazurilor
Varianta pe care am ales-o pentru rezolvarea acestei probleme a fost ca acest modul să
genereze comenzi binare pentru până la cinci servomecanisme şi proiectarea unui satelit mai mic
şi mai simplu care să transforme comenzile binare ale modulului principal în semnale PWM.
Astfel, printr-un semnal digital ‘0’ se comandă acul macazului în poziţia “cale directă” şi printr-
14
Raportată la frecvenţa de lucru a microcontroller-ului.
25
un semnal digital ‘1’ se comandă acul macazului în poziţia “cale abătută”. Microcontroller-ul din
familia AVR folosit este Attiny2313A şi are la dispoziţie tot un singur timer de 16 biţi, având
capacitatea de a controla cel mult două servomecanisme.
Comanda acului macazului este doar o parte a manipulării acestor sectoare de cale ferată.
Deschiderea unui culoar care presupune parcurgerea unui macaz este o problemă care necesită
multă atenţie din partea şefului de gară. Deşi un macaz poate fi întotdeauna parcurs de la
rădăcină către ramificaţie, în sens invers lucrurile stau diferit. Există pericolul ca la parcurgerea
macazului dinspre ramificaţie spre rădăcină pe calea directă acul să fie în poziţie abătută, sau
invers, acul să fie în poziţie directă la parcurgerea pe cale abătută. Pentru a evita această
situaţie periculoasă am implementat un sistem de verificare în buclă deschisă. Satelitul conectat
trimite înapoi către modul un semnal de confirmare în momentul în care acul macazului a fost
deplasat la poziţia comandată de către modul. Nu este necesar un sistem de verificare în buclă
închisă – adică verificarea faptului că eroarea de poziţionare a servomecanismului este nulă –
pentru că deplasarea se face lent, oferind suficient timp axului servomecanismului să urmărească
semnalul de comandă, iar poziţia finală comandată depăşeşte poziţia necesară, surplusul fiind
preluat de tija de acţionare ce leagă braţul servomecanismului de acul macazului – sârmă de
cupru, Ø0,5mm – realizată într-o formă specială care să îi ofere elasticitate – practic, acţionează
ca un amortizor.
Pe lângă cei doi pini deja menţionaţi (de comandă şi de confirmare), porturile modulului
au un al treilea pin: de identificare a sateliţilor conectaţi. Acest pin oferă modulului de comandă
capacitatea de a transmite aplicaţiei de control care dintre porturi sunt conectate la
servomecanisme; avantajul major al acestui aspect este sesizabil la configurarea traseului în
cadrul aplicaţiei de control, utilizatorul nefiind nevoit să verifice configuraţia hardware a acestui
modul – în interfaţa grafică sunt afişate doar resursele cu adevărat disponibile. Porturile care au
conexiune către un satelit vor primi pe pinul de identificare un semnal digital de 5V de la satelit,
iar porturile care nu au conexiune către un satelit vor fi dotate cu un conector de tip jumper
care conectează pinul de comandă la pinul de identificare; vom vedea în continuare de ce au fost
aleşi aceşti doi pini.
La punerea în funcţiune a modulului, microcontroller-ul configurează şi iniţializează
interfaţa Ethernet, resetează toţi pinii de comandă ai porturilor prin transmiterea unui semnal
digital ‘0’, apoi intră în bucla principală a programului unde procesează comenzile aplicaţiei de
control. Tabelul 6.3 conţine setul de comenzi pe care acest modul le recunoaşte şi la care ştie să
răspundă.
Comanda Descriere Rezultatul comenzii
I Cerere de identificare a
tipului dispozitivului şi a
configuraţiei acestuia
Modulul va citi pinii de identificare ai
tuturor porturilor de comandă, va
identifica porturile care sunt conectate la
sateliţi de comandă, apoi va trimite ca
26
răspuns un mesaj care conţine IP-ul
dispozitivului, tipul “Macazuri” şi
configuraţia celor cinci porturi
C,nX Comandă servomecanismul de
pe portul n în poziţia X
Pe pinul de comandă al portului n va fi
setat un semnal digital de ‘1’ sau ‘0’, în
funcţie de caracterul de comandă X
Q,n Transmite înapoi starea
servomecanismului de pe
portul n
Modulul va citi pinul de confirmare al
portului n şi în funcţie de acesta va trimite
un mesaj către aplicaţia de control care va
conţine starea servomecanismului
Tabelul 6.3: Setul de comenzi al modulului de comandă al macazurilor
Satelitul care se conectează la acest modul este prezentat schematic în Figura 6.7.
Fiecărui port de intrare îi corespunde un servomecanism; poziţia fiecărui servomecanism este
controlată prin pinul de comandă. Semnalul de identificare necesar modulului de comoandă este
asigurat prin conectarea pinilor aferenţi la borna de alimentare (5V) iar semnalul de confirmare
care comunică modulului faptul că servomecanismul este în poziţia comandată este amplificat
folosind un tranzistor NPN pentru a putea fi transmis la distanţe mari. Ca măsură de siguranţă,
semnalul de confirmare este activ pe ‘1’ (5V) pentru a evita o falsă confirmare în cazul în care
alimentarea satelitului este întreruptă sau nu mai poate fi asigurată funcţionarea corectă a
microcontroller-ului.
Figura 6.7: Structura funcţională a satelitului conectat la modulul de comandă al macazurilor
27
6.3.5 M odulul de centralizare a senzorilor de prezenţă
În schema funcţională a acestui modul din Figura 6.8 se poate identifica interfaţa
Ethernet, identică cu cea descrisă la Modulul de comunicaţie NMRA – staţia de comandă. De
aceea nu voi mai descrie modul în care este implementată şi funcţionează această interfaţă.
Acest modul are scopul de a prelua stările senzorilor care sunt conectaţi şi de a le
transmite aplicaţiei de control care le va prelucra şi le va folosi în procesul de decizie
implementat. Pot fi conectaţi un număr total de şaisprezece senzori activi pe semnal digital ‘1’;
adică un semnal digital ‘1’ pe un pin de intrare al modulului inseamnă că senzorul respectiv a
fost declanşat şi are un tren deasupra lui. Modulul transmite stările tuturor senzorilor către
aplicaţia de control la fiecare aproximativ 1 secundă.
La punerea în funcţiune a modulului, microcontroller-ul configurează şi iniţializează
interfaţa Ethernet, apoi intră în bucla principală a programului, moment în care poate procesa
comenzile venite de la aplicaţia de control. Tabelul 6.4 conţine setul de comenzi pe care acest
modul le recunoaşte şi la care ştie să răspundă.
Figura 6.8: Structura funcţională a modulului de centralizare a senzorilor de prezenţă
28
Comanda Descriere Rezultatul comenzii
I Cerere de identificare a
tipului dispozitivului şi a
configuraţiei acestuia
Modulul va trimite ca răspuns un mesaj
care conţine IP-ul dispozitivului, tipul
“Senzori” şi numărul de senzori centralizaţi
START Începe transmisia continuă a
stărilor senzorilor
După primirea comenzii modulul va trimite
mesaje cu stările senzorilor la fiecare
aproximativ 1 secundă
STOP Opreşte transmisia continuă a
stărilor senzorilor
După primirea comenzii nu vor mai fi
trimise mesaje cu stările senzorilor
Tabelul 6.4: Setul de comenzi al modulului de centralizare a senzorilor de prezenţă
Detecţia trenurilor se realizează cu ajutorul foto-senzorilor care semnalizează modulului
centralizator trecerea unui tren peste sectorul de şină sub care sunt montaţi. Ca şi
servomecanismele acţionate de sateliţii modulului de comandă al macazurilor, foto-senzorii
interacţionează direct cu sistemul condus. Schema electrică a acestor elemente sensibile este
prezentată în Figura 6.9, iar principiul de funcţionare este ilustrat în Figura 6.10.
Figura 6.9: Schema electrică a unui foto-senzor cu infraroşu
29
Figura 6.10: Montajul foto-senzorilor; secţiune transversală prin şină
Aşa cum arată şi Figura 6.10, atunci când un tren trece pe deasupra foto-senzorului15,
lumina infraroşu (IR) emisă de dioda luminescentă se reflectă şi deschide foto-tranzistorul
montat adiacent. În consecinţă, joncţiunea colector-emitor a foto-tranzistorului se deschide iar pe
pinul de stare al foto-senzorului va fi prezent un semnal digial ‘0’, tereminat de potenţialul
pinului GND. În lipsa unui tren care să reflecte lumina LED-ului, joncţiunea colector-emitor este
blocată, deci pe pinul de stare al senzorului va fi prezent un semnal digital ‘1’ determinat de
borna de alimentare (5V). Pentru a reduce riscul ca trenul să nu fie detectat la vitezei foarte
mari au fost plasaţi trei foto-senzori unul în continuarea celuilalt; astfel, intervalul de timp în
care modulul de centralizare poate detecta o schimbare de stare a foto-senzorului a fost mărit de
aproximativ 2,5 ori. Semnalul de stare al fiecărei celule sensibile este conectat la porturile de
intrare ale unui modul de achiziţie (prezentat schematic în Figura 6.11) care foloseşte un circuit
integrat de tip poartă logică NAND pentru a stabili dacă vreuna dintre celule a fost declanşată
de prezenţa unui tren. Semnalul rezultat este conectat la unul din porturile de intrare ale
modulului centralizator.
La oricare dintre cele două porţi logice ale modulului de achiziţie pot fi conectate până la
patru semnale de stare în funcţie de modul de exploatare al segmentului de linie pe care sunt
montate elementele sensibile: pentru zonele depourilor sau a liniilor de gară secundare16 (unde
viteza trenurilor va fi întotdeauna redusă) poate fi instalat şi conectat un singur element sensibil,
iar pentru zonele cu blocuri de linie automate (zone parcurse cu viteză ridicată) pot fi instalate
şi conectate elemente sensibile la toate cele patru intrări ale circuitului logic. Aşa cum am
15
Din nevoia de a alege componente electronice care să poată fi montate între traversele şinei şi din cauza
naturii materialului plastic din care sunt realizate locomotivele şi vagoanele, cantitatea de lumină IR
reflectată către baza foto-tranzisoturlui a fost insuficientă pentru a-l deschide; pentru a rezolva această
problemă au fost montate suprafeţe reflectorizante (tăbliţă de aluminiu lustruită) care să reflecte
suficientă lumină IR necesară detecţiei; aceste suprafeţe au fost montate în capetele trenurilor. 16
Aceste tipuri de zone de exploatare nu fac subiectul acestei lucrări; ceea ce doresc să punctez aici este
faptul că modulul de achiziţie nu condiţionează numărul de elemente sensibile conectate la el
30
menţionat mai sus, prezenţa unui tren este semnalizată de către foto-senzor printr-un semnal
digital ‘0’, deci pentru acele intrări ale circuitul logic care nu sunt conectate la un foto-senzor
trebuie furnizat un semnal digital ‘1’, ca şi cum ar fi conectat un foto-senzor care nu se va
declanşa niciodată. De aceea porturile de intrare ale modulului de achiziţie care nu sunt
conectate la elemente sensibile au prevăzut un conector de tip jumper care conectează pinul de
alimentare al senzorului (5V) la pinul de stare.
Figura 6.11: Structura funcţională a modulului de achiziţie pentru foto-senzori
31
7 Utilizarea soluţiei de control
Tot efortul de control este lăsat în seama aplicaţiei. Aici ajung toate datele necesare
procesului de decizie şi de aici sunt transmise către modulele de pe machetă pentru a fi
executate. Însă înainte de a-şi putea arăta forţa, apicaţia trebuie să cunoască sistemul pe care
trebuie să îl conducă. Această sarcină este lăsată în seama utilizatorului, care are libertatea de a
defini orice traseu prin construirea liniilor (blocuri de linie automate sau gări) şi a macazurilor,
configurând apoi fiecare element al traseului prin alocarea resurselor disponibile. Pentru această
operaţie, interfaţa grafică se dovedeşte foarte valoroasă. Simbolurile grafice folosite o fac intuitiv
de folosit
Utilizarea aplicaţiei în modul de exploatare necesită şi mai puţin efort, interfaţa grafică
cuprinzând toate informaţiile necesare urmăririi şi acţionării asupra trenurilor de pe machetă.
Utilizatorul îşi exercită şi o parte a rolului de mecanic de locomotivă, stabilind direcţia şi viteza
trenurilor, şi rolul de şef de gară folosind aceeaşi interfaţă; desigur că atât comenzile cât şi
informaţiile care ţin de cele două roluri sunt afişate separat pentru a nu crea confuzie.
7.1 Construirea traseului şi asignarea resurselor
La pornirea aplicaţiei se activează automat modul de configurare a traseului.
Configurarea traseului presupune definirea segmentelor de şină care îl alcătuiesc, legăturile
dintre aceste elemente şi asignarea resurselor disponibile pentru fiecare segment. Prezentată în
Figura 7.1, interfaţa grafică în modul de configurare are doar câteva componente, foarte uşor de
folosit.
Zona care este marcată “Structura circuitului” oferă utilizatorului un spaţiu grafic pe care
să plaseze elementele de cale ferată din care se compune traseul machetei, pătrăţelele încadrând
diverse elemente de traseu disponibile pentru construcţie; motivul pentru care această zonă are o
întindere foarte mare este că aici se concentrează interesul utilizatorului.
Zona care este marcată “Elemente constructive” este destinată construcţiei structurii
circuitului şi definirii trenurilor pe care le va deservi. Partea superioară este marcată cu eticheta
“Cale ferată” şi conţine o listă cu toate tipurile de segmente de cale ferată pe care utilizatorul le
poate folosi pentru a construi efectiv traseul; lista conţine un bloc de linie automat (“Linie
simplă”), o linie de gară (“Linie simplă de gară”), un macaz bipoziţional cu calea abătută spre
stânga (“Macaz stâng”) şi unul cu calea abătută spre dreapta (“Macaz dreapta”). Partea
inferioară este marcată cu eticheta “Trenuri” şi oferă utilizatorului o interfaţă simplă pentru
definirea trenurilor care vor circula pe traseu.
Zona care este marcată “Resurse” afişează toate modulele conectate la calculatorul pe care
este instalată aplicaţia. Modulele sunt afişate in structură de arbore, fiecare ramură afişând
numărul de identificare – înscris între paranteze drepte, acest număr foloseşte utilizatorului la
32
identificarea mai uşoară a modulelor –, IP-ul şi tipul dispozitivului conectat. Dacă un dispozitiv
dispune de resurse (semnale, macazuri, senzori, etc.) acestea sunt trecute cu numele de
identificare sub ramura dispozitivului.
Figura 7.1: Fereastra principală a interfeţei la pornirea aplicaţiei
Zona care este marcată “Rulare” conţine butonul de pornire a execuţiei algoritmului şi
interfeţei de control a machetei. Vom discuta în detaliu despre aceasta în secţiunea 7.2, destinată
exploatării aplicaţiei.
Configurarea unui traseu începe cu adăugarea elementelor de cale ferată în zona grafică a
structurii circuitului (zona careului). Pentru a adăuga un element, utilizatorul trebuie să execute
dublu-click pe elementul pe care doreşte să îl adauge din lista de elemente constructive. După
execuţia unui dublu-click, dacă mouse-ului este poziţionat deasupra careului, simbolul grafic al
elementului selectat va fi afişat cu culoarea gri, legat de vârful mouse-ului. Pentru plasarea
efectivă a unui element trebuie executat un click în careu, în poziţia în care se doreşte plasarea
elementului. Simbolul va fi acum desenat cu culorile specifice şi va avea ataşată în colţul din
stânga-sus o etichetă cu numărul de identificare al elementului. Numerele de identificare folosesc
utilizatorului pentru a putea distinge elementele între ele în etapa de configurare. În plus faţă de
simbolul grafic şi de etichetă va fi desenat un chenar roşu care înconjoară simbolul şi care îi
arată utilizatorului faptul că acest element nu este încă configurat în întregime; adică, nu i-au
fost alocate toate resursele necesare pentru a putea fi un element valid. Configurarea elementelor
va fi discutată în paragraful următor. După plasarea elementului prin click, utilizatorul poate să
se oprească din adăugarea de elemente prin apăsarea tastei ESC sau poate să adauge elemente în
33
continuare. Dacă doreşte să adauge încă un element de tipul celui dinainte trebuie doar să indice
poziţia noului element cu ajutorul mouse-ului. Dacă doreşte să adauge un alt tip de element
atunci trebuie mai întâi să selecteze (click) tipul dorit din lista de elemente constructive şi apoi
să repete procedura de plasare a noului element. Adăugarea unui nou element se poate face doar
în zonele care sunt libere – nu poate fi plasat peste alt element – şi care sunt suficient de mari
pentru ca elementul să încapă integral. Structura reală a traseului nu trebuie să fie reprodusă cu
exactitate în careul grafic, în sensul că înlănţuirea elementelor din careu conform cu poziţia lor
de pe machetă nu este necesară; legaturile dintre elementele din careu vor fi construite în etapa
de configurare individuală, care poate fi efectuată oricând: fie după plasarea tuturor elementelor,
fie după plasarea câtorva elemente, etc. Structura machetei acestei lucrări este prezentată în
Figura 7.2. Definirea trenurilor care vor circula pe traseu se face apăsând butonul “Adaugă tren”
din partea inferioară a secţiunii “Elemente constructive”. La apăsarea butonului va fi afişată
fereastra de definire a trenului în care utilizatorul trebuie să definească adresa DCC a
locomotivei trenului, poziţia şi direcţia iniţială a trenului – relativ la momentul lansării în
execuţie a aplcaţiei de control – şi opţional, numele trenului. În plus, trebuie definit şi sensul de
deplasare înainte al trenului relativ la segmentul de cale ferată pe care se află. De menţionat este
faptul că poziţia iniţială a trenului poate fi setată doar în elemente de tip “Linie simplă” sau
“Linie simplă de gară”. Pentru salvarea configuraţiei trebuie apăsat butonul OK; închiderea
ferestrei prin orice altă metodă duce la pierderea configuraţiei. Fereastra de definire a trenurilor
este prezentată în Figura 7.3.
Figura 7.2: Traseul machetei, construit şi configurat
Pentru a configura un element al traseului utilizatorul trebuie mai întâi să iasă din
modul de adăugare prin apăsarea tastei ESC. Apoi trebuie să execute dublu-click pe elementul
din careu pe care doreşte să îl configureze; aceasta are ca rezultat deschiderea unei ferestre care
34
prezintă un simbol detaliat al elementului selectat împreună cu toţi parametrii care trebuie
configuraţi, adică: senzorii de la capete (valabil doar pentru “Linie simplă” şi “Linie simplă de
gară”), semnalele de la capete (valabil doar pentru “Linie simplă” şi “Linie simplă de gară” cu
filtrarea tipurilor de semnale pentru fiecare tip de element), servomecanismul de poziţionare a
acului (valabil doar pentru “Macaz stâng” şi “Macaz drept”); în plus, pentru toate tipurile de
elemente trebuie configurate legăturile către acele elemente care vin în continuarea capetelor
elementului configurat (vecinii acestuia). În funcţie de tipul elementului, anumiţi parametri pot
fi indisponibili pentru configurare. Figura 7.4 prezintă fereastra de configurare şi parametrii
activi ai acesteia în funcţie de tipul elementului care se configurează, în acest caz un element de
tip “Macaz dreapta”. Observaţi faptul că acestui element nu îi putem atribui nici senzori şi nici
semnale, aşa cum am punctat şi în secţiunea 5.2.
Figura 7.3: Fereastra de definire a unui tren pentru traseul configurat
Detaliile grafice ale ferestrei de configurare sunt menite să vină în ajutorul utilizatorului
iar listele de selecţie a parametrilor asigură o configurare uşoară şi rapidă. Pentru ca un element
să fie complet configurat el trebuie să aibă o selecţie validă pentru toţi parametrii activi. Listele
de selecţie conţin resursele disponibile nealocate la momentul configurării într-un format care
include numărul de identificare al dispozitivului de care aparţine resursa şi numele de
identificare al resursei în cadrul dispozitivului de care aparţine. De asemenea, listele conţin doar
resursele relevante tipului de element configurat; de exemplu, pentru elementele de tip “Linie
simplă” listele de semnale vor conţine doar acele semnale de bloc sau de intrare care nu sunt încă
alocate, iar pentru elementele de tip “Linie simplă de gară” doar semnalele de ieşire care sunt
încă nealocate. Elementele adiacente reprezintă vecinii elementului configurat; aici sunt stabilite
legăturile fizice care există între elementele circuitului. Pentru a salva selecţiile efectuate,
utilizatorul trebuie să apese butonul OK; configuraţia selecţiilor va fi pierdută la închiderea
ferestrei prin orice altă metodă. Mai mult, pentru ca operaţia de configurare să nu fie
constrictivă, apăsarea butonului OK după o configurare parţială duce la salvarea modificărilor
efectuate; elementul nu trebuie configurat integral dintr-o dată. Pentru ştergerea unei resurse
sau a unei legături către un alt element trebuie doar selectată opţiunea “-”, ca în Figura 7.4. O
altă funcţinalitate care vine în ajutorul utilizatorului este crearea conexiunilor încrucişate la
salvarea unei configuraţii. Legăturile create către vecini vor apărea şi la aceştia la momentul
configurării lor; şi ştergerea unei legături va avea efect pentru ambele elemente implicate.
35
Configuraţiile complete vor determina dispariţia chenarului roşu apărut la crearea elementului,
însă acesta va reapărea dacă elementului i se salvează o configuraţie incompletă.
Figura 7.4: Fereastra de configurare a unui element de tip “Macaz dreapta”
Dacă toate elemenetele din careu sunt configurate complet, atunci poate fi apăsat
butonul “Porneşte!” din colţul dreapta-sus al interfeţei care determină execuţia aplicaţiei de
control – scopul acestei lucrări.
7.2 Execuţia aplicaţiei de monitorizare şi control
Aşa cum am menţionat la începutul capitolului, interfaţa de control a machetei este
împărţită în două zone funcţionale cu roluri diferite: zona “Mecanicului de locomotivă” şi zona
“Şefului de gară”.
În zona mecanicului de locomotivă sunt prezente principalele comenzi de care este nevoie
pentru a conduce trenul. Lista din partea inferioară a acestei zone conţine toate trenurile
configurate la etapa anterioară. Caracteristicile afişate în listă sunt actualizate la fiecare
aproximativ 1 secundă. Pentru a putea prelua efectiv controlul asupra unui tren, utilizatorulul
trebuie să selecteze trenul dorit din listă.
36
Figura 7.5: Interfaţa de control a aplicaţiei în modul de exploatare
Partea superioară a zonei “Mecanicului” este acum completată cu informaţiile trenului
selectat. Aşa cum am menţionat la începutul lucrării, viteza cu care se deplasează trenul – sau
mişcarea trenului depe loc – este posibilă doar dacă sunt respectate regulile de circulaţie
feroviară. Aşadar, valoarea numerică a câmpului “Viteza trenului” este viteza care rezultă din
procesul de decizie al sistemului de comandă ţinând cont de comenzile date de utilizator şi de
datele pe care le primeşte aplicaţia de la machetă. Această viteză este viteza reală de deplasare a
trenului la orice moment de timp şi nu poate fi modificată decât inferior prin intervenţia
utilizatorului (în rolul mecanicului de locomotivă). În cazul în care utilizatorul doreşte totuşi să
modifice viteza de deplasare a trenului, el are la îndemână o comandă glisantă pentru a selecta
viteza; de menţionat este faptul că această comandă glisantă nu este continuă, ci are 28 de
trepte fixe. Numărul de trepte a fost special ales să se potrivească la număr cu sistemul de
comandă al vitezelor descris în standardul DCC. În afară de viteză, utilizatorul poate comanda şi
sensul de deplasare al trenului prin selectarea manuală a direcţiei. Modificările pe care le aduce
utilizatorul nu trebuie confirmate, ele sunt introduse instantaneu în mecanismul de luare a
deciziilor iar rezultatul este transmis către modulul de comunicaţie NMRA. Pentru a accentua
senzaţia de control a trenului în mod manual, în partea dreaptă a zonei “Mecanicului” este
plasată o zonă grafică în care este desenat simbolul grafic al următorului semnal de pe treaseu
prin faţa căruia va trece trenul. Simbolul grafic prezintă cu acurateţe atât aspectul semnalului
(informaţia pe care o transmite semnalul prin poziţia braţelor sau configuraţia luminoasă afişată)
şi tipul acestuia (semnal de intrare sau de ieşire, de manevră, de macaz, etc.).
În afară de manipularea directă a trenurilor (nivelul ierarhic ce mai jos al sistemului),
utilizatorul are responsabilitatea unui şef de gară care decide ce trenuri au voie să intre sau să
iasă din gările traseului. Zona interfeţei destinată indeplinirii acestei responsabilităţi este dotată
37
cu o listă de situaţii pe care utilizatorul, în calitate de şef de gară, trebuie să le rezolve. Lista
este populată cu evenimente ce necesită atenţie pe măsură ce apar, evenimente a căror rezolvare
depinde de răspunsul afirmativ la utilizatorului. Manipularea macazurilor nu este lăsată în
sarcina utilizatorului ci a algoritmului de comandă care stabileşte poziţiile macazurilor şi
efectuează mişcările lor, însă numai după ce utilizatorul îşi dă acceptul în acest sens. Pentru a
înţelege mai bine cum este îndeplinit rolul de şef de gară, să vedem ce evenimente trebuie
rezolvate penru ca un tren să plece din gara A către gara B:
- algoritmul va cere utilizatorului să mute macazurile care sunt necesare
ieşirii trenului din gara A pe o linie care să ducă la gara B; dacă
utilizatorul este de acord, atunci macazurile vor fi mutate în poziţie şi
rezervate până ce vor fi tranzitate de trenul implicat
- după mutarea macazurilor, algoritmul va cere utilizatorului permisiunea
de cale liberă pentru a ieşi din gară; daca utilizatorul (în calitate de şef de
gară) este de acord şi a setat viteza şi direcţia trenului în mod
corespunzător (în calitate de mecanic de locomotivă), atunci algoritmul va
comanda trenul să se pună în mişcare către blocul de linie automat care îl
va duce către gara B; traversarea blocurilor de linie automate nu necesită
intervenţia utilizatorului
- la apropierea de gara B, algoritmul va cere din nou permisiunea
utilizatorului, de această dată pentru crearea unui culoar de inrare pentru
trenul implecat, adică pentru a muta macazurile necesare ajungerii
trenului la unul din peroanele gării
- dacă utilizatorul a fost de acord, următorul pas este obţinerea permisiunii
de a pătrunde în gară şi de a opri la peronul stabilit
Utilizatorul poate să rezolve evenimentele17 în orice ordine doreşte şi poate amâna luarea
unei decizii oricât de mult. Pentru stabilirea unui culoare de intrare sau de ieşire din gară,
macazurile şi liniile cu peron sunt rezervate utilizării trenului implicat pentru a permite
desfăşurarea în siguranţă a manevrelor; resursele sunt rezervate doar după ce utilizatorul acordă
permisiunea desfăşurării evenimentului de care are nevoie.
17
Este vorba aici de evenimentele de la trenuri diferite; pentru un singur tren, evenimentele sunt generate
unul câte unul, fiecare apărând după rezolvarea celui dinainte.
38
8 Concluzii
Unul din cele mai importante aspecte ale acestei lucrări este capacitatea algoritmului de
control de a manipula resursele fizice, materiale, ale sistemului condus. Capacitatea unor
concepte şi reguli implementate sub formă de cod de a manipula obiectele care ne înconjoară este
absolut fantastică; şi din ce în ce mai răspândită în viaţa de zi cu zi. Această lucrare este încă o
dovadă a utlităţii calculatorului în a îndeplini aproape orice sarcină. Bineînţeles, componenta de
luare a deciziilor nu ne ajută cu nimic dacă nu avem căile necesare transmiterii comenzilor
rezultate şi echipamente de acţionare care să le execute. Interfaţa de comunicaţie între aplicaţie
şi modulele hardware a jucat un rol esenţial aici şi o consider cea mai valoroasă lecţie pe care am
învăţat-o în timpul elaborării acestei lucrări. În opinia mea, fiecărui student care se pregăteşte să
devină inginer automatist ar trebui să i se ofere ocazia să înveţe cum se implementează o astfel
de interfaţă de comunicaţie. Ideea de a avea la îndemână o modalitate de a intra în contact cu
un calculator sau cu un grup de calculatoare m-a făcut să gândesc “mai mare”; dintr-o dată,
lumea înconjurătoare a echipamentelor electronice a devenit mai prietenoasă şi mai incitantă.
Deşi lucrarea prezentată este simplă, mai mult demonstrativă, ea ţine seama de regulile
de bază ale sistemului feroviar. Această caracteristică este, în opinia mea, cea care asigură din
start robusteţea aplicaţiei de control şi pentru trasee complexe. În fond, regulile de bază sunt
aceleaşi indiferent de modul în care sunt aranjate şinele. Şi sistemul feroviar real a pornit acum
200 de ani de la câteva linii între câteva gări, circulate de câteva trenuri, şi iată unde a ajuns în
zilele noastre, respectând nişte reguli de bază.
39
9 Bibliografie
Guido Socher 2008. An AVR microcontroller based Ethernet device.
http://tuxgraphics.org/electronics/200606/article06061.shtml, accesat la data de 01.03.2013
National Model Railroad Association 1994. DCC Electrical Standard.
http://www.nmra.org/standards/DCC/standards_rps/S-91-2004-07.pdf, accesat la data de
15.05.2013
National Model Raildroad Association 1994. DCC Communications Standard.
http://www.nmra.org/standards/DCC/standards_rps/S-92-2004-07.pdf, accesat la data de
20.05.2013
National Model Railroad Association 1995. Extended Packet Format.
http://www.nmra.org/standards/DCC/standards_rps/RP-921%202006%20Aug%2021.pdf,
accesat la data de 29.05.2013