LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1...

39
Universitatea Politehnica Bucureşti Facultatea de Automatică şi Calculatoare Departamentul de Automatică şi Ingineria Sistemelor LUCRARE DE LICENŢĂ Mon itorizarea şi controlul automat al unei machete feroviare Coordonator Absolvent As.Dr.Ing. Adrian-Bogdan HANCHEVICI Călin-Răzvan GHIŢESCU Bucureşti, 2013

Transcript of LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1...

Page 1: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 2: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 3: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 4: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 5: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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.

Page 6: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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.

Page 7: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 8: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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)

Page 9: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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ă.

Page 10: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 11: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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ă

Page 12: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 13: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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.

Page 14: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 15: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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.

Page 16: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

16

Figura 6.1: Structura constructivă a soluţiei de control

Page 17: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 18: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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ă

Page 19: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 20: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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.

Page 21: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 22: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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.

Page 23: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 24: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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.

Page 25: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 26: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 27: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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ţă

Page 28: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 29: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 30: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 31: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 32: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 33: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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

Page 34: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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.

Page 35: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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ă.

Page 36: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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ă

Page 37: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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.

Page 38: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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ă.

Page 39: LUCRARE DE LICENŢĂacse.pub.ro/.../2013/07/LicentaGhitescu341B2-FINAL.pdf · 2017-01-07 · 5 1 Introducere Cel mai puternic motor al creaţiei este pasiunea, şi pentru că sunt

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