Documente Academic
Documente Profesional
Documente Cultură
Îndrumător:
Autor:
Conf.Dr.Ing.
Andrei P ELIN
Nick Andrei I V ĂNESCU
Bucuresti, 2016
Cuprins
1 Introducere 2
3 Automatul programabil 5
3.1 Definiţie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Structura unui PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3 Modalitatea de funcţionare . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.4 Limbaje de programare ale unui PLC . . . . . . . . . . . . . . . . . . . . . . . 7
3.5 Condiţii şi reguli ale limbajului SFC . . . . . . . . . . . . . . . . . . . . . . . 9
3.6 Mediul de dezvoltare Codesys V3 . . . . . . . . . . . . . . . . . . . . . . . . 10
4 Programul Labview 12
4.1 Utilizarea programului Labview . . . . . . . . . . . . . . . . . . . . . . . . . 12
5 Conexiunea OPC 13
7 Implementarea software 19
7.1 Implementarea programului in Codesys . . . . . . . . . . . . . . . . . . . . . 19
7.2 Implementarea programului ı̂n Labview . . . . . . . . . . . . . . . . . . . . . 34
8 Implementarea hardware 36
10 Bibliografie 40
1
1 Introducere
În lucrarea de faţă, vom prezenta modalitatea şi paşii necesari, pentru a planifica şi
implementa o parcare automată a autovehiculelor. A-si parca maşina a devenit o adevărată
provocare pentru omul zilelor noastre, ı̂n special ı̂n oraşele ce au devenit supraaglomerate din
punctul de vedere al mijloacelor rutiere. Avantajul soluţiei alese vine din faptul că ea poate
fi implementată atât pentru o dezvoltare supraterană, cât şi ı̂n cazul unor construcţii subterane
sau parţial subterane. De asemenea, această parcare poate fi adaptată atât la construcţii special
proiectate pentru această utilizare, cât şi ı̂n construcţii deja existente, fiind posibilă adaptarea
acestei soluţii la spaţii ce au fost iniţial destinate altor activităţi.
Am ales această temă, deoarece mi se pare de o importanţă deosebită, ı̂n special ı̂n
oraşele mari din România, unde există foarte puţine locuri de parcare, comparativ cu ı̂ntregul
parc auto existent ı̂n aceste oraşe.
Acest tip de parcare poate găzdui 20 de maşini, pe o suprafaţă pe care, ı̂n mod normal,
ar fi parcate 6 maşini, ceea ce ı̂nseamnă că acest sistem reduce aria ocupată de acelaşi număr
de maşini cu aproximativ 300%. Este evident faptul că acest sistem este cu atât mai eficient din
punctul de vedere al spaţiului cu cât parcarea conţine un număr mai mare de etaje.
Un studiu realizat ı̂n 2013 arată că, anual, ı̂n lume sunt furate aproximativ 500 000 de
autovehicule. Din punctul de vedere al securităţii, acest sistem asigură atât protecţia maşinilor,
cât şi siguranţa bunurilor din interiorul autovehiculelor.
Implementarea unei astfel de soluţii tehnice are implicaţii directe ı̂n protecţia factorilor
de mediu, din mai multe puncte de vedere:
• Prin utilizarea eficientă a energiei (o parte din echipamente pot funcţiona pe baza unui
sistem de panouri solare, precum şi folosind corpuri de iluminat cu un consum redus de
energie);
• Reducerea poluării fonice şi cea datorată emisiilor de gaze, ştiindu-se că, ı̂n special ı̂n
spatiile de parcare clasice, după pornirea autovehiculului, motoarele au un nivel de emisie
foarte crescut, implicând o manevrare lentă şi laborioasă a maşinilor, din cauza spaţiilor
foarte restrânse;
Pe lânga avantajele tehnice şi de mediu ale acestui sistem de parcare automată, el oferă
si avantaje ce ţin de domeniul esteticului. Pe pereţii exteriori ai clădirii vor fi plantate flori şi
plante de toate felurile, pentru a da culoare zonei unde este amplasată.
Din punct de vedere social şi instituţional, rezolvarea nevoilor privitoare la parcare se
reflectă ı̂n creşterea gradului de civilizaţie, a confortului şi a calităţii vieţii (creşterea gradului de
securitate individuală şi colectivă ı̂n cadrul comunităţilor locale, creşterea siguranţei circulaţiei
rutiere, realizarea unei structuri edilitare moderne, funcţionarea şi exploatarea ı̂n condiţii de
siguranţă, rentabilitatea şi eficienţa economică şi financiară), făcând posibilă crearea unei per-
sonalităţi urbane ce va aduce, cu siguranţă, mari beneficii ı̂n sfera serviciilor.
Costurile, factorii de mediu descrişi mai sus, limitele de spaţiu forţează oraşul să
găsească soluţii care să reducă costurile sistemelor de parcare, ı̂mbunătăţind totodată eficienţa
şi siguranţa. Pentru municipalităţi, devine obligatorie, ca şi ı̂n cazul altor activităţi din sfera ser-
viciilor (iluminatul public, transportul urban etc.), abordarea strategică pentru implementarea
unor soluţii de monitorizare, automatizare, eficientizare, care să ducă la reducerea consumului
de energie, la micşorarea costurilor de ı̂ntreţinere şi la reducerea emisiilor de CO2 , aşa cum
2
este cerut de protocolul de la Kyoto şi de anumite iniţiative europene. Protocolul de la Kyoto
reprezintă un acord ı̂ntre 40 de state participante, prin care se impune o scădere a emisiilor de
CO2 , de la an la an.
Acest gen de sistem de parcare poate constitui o alternativă viabilă şi importantă, ı̂n
special ı̂n spaţiile urbane, ı̂n care se urmăreşte conservarea ambientului şi arhitecturii, atunci
când se recurge la dezvoltările subterane.
Sistemul de parcare este definit ca un ansamblu de elemente: automat pentru comenzi
cerere/primire tichet, rampă de acces intrare/iesire auto, lift dotat cu platformă mobilă, pen-
tru transferul autovehiculelor, platforme fixe, ce reprezintă spaţiile ı̂n care vor fi parcate au-
tovehiculele. Automatul de tichete eliberează, la solicitarea clientului, un tichet ce conţine
informaţii privitoare la data şi ora de eliberare, precum şi numărul spaţiului de parcare, acestea
fiind imprimate atât ı̂n clar, cât şi sub formă de cod de bare si cod QR. Acesul la rampă se face
prin intermediul unei bariere automate ce detectează prezenţa autovehiculului, prin intermediul
unui senzor de prezenţă. Din zona rampei de acces, după urcarea maşinii pe rampa mobilă a
liftului, şi după ce clientul a ı̂nchis maşina şi a solicitat eliberarea tichetului, rampa mobilă de-
plasează maşina, cu ajutorul liftului, ı̂n sectorul selectat de către program, unde va fi depozitată
pe rampa fixă. Platforma mobilă este alcatuită din două căi de rulare ce asigură poziţionarea ı̂n
plan orizontal a autovehiculului, ı̂n vederea efectuării operaţiunilor de plasare, ea fiind dotată
cu limitatori, care să elimine riscul manevrelor eronate ale şoferilor. Un alt element ce ţine
de poziţionarea corectă a maşinii pe platforma liftului este crearea unui mic şanţ din barele
platformei la roţile din faţă. Liftul, ce realizează transferul pe verticală, utilizează sisteme de
ghidaje (senzori), ce permit deplasarea ı̂ntre etajele clădirii. Platforma mobilă este fixată de lif-
tul destinat pentru ridicarea pe nivelul ales al autovehiculului, iar deplasarea ı̂n plan transversal
al rampei se realizează prin intermediul unui sistem acţionat de două motoare electrice.
Din punct de vedere practic, atunci când clientul ajunge cu maşina la intrarea ı̂n zona
de acces a parcării automate, PLC-ul, ı̂n cazul ı̂n care există disponibil un loc de parcare,
ridică automat bariera şi permite accesul autovehiculului ı̂n zona rampei. Conducătorul auto
poziţionează autovehiculul pe rampă, iar apoi la coborâre, după ı̂nchiderea autovehiculului,
confirmă tipărirea tichetului de parcare, eliberat la cerere. După momentul eliberării tichetului,
bariera se ı̂nchide, accesul ı̂n zona autovehiculului este restricţionat, şi ı̂ncepe procesul efectiv
de deplasare a autovehiculului spre zona ı̂n care va fi depozitat pe platforma fixă. La cererea de
livrare a maşinii, pe baza tichetului, automatul programabil va identifica, prin citirea codului de
bare imprimat pe tichet sau a codului QR, platforma fixă pe care a fost depozitată maşina şi va
executa operaţiile de preluare, transfer şi livrare a autovehiculului ı̂n zona rampei de acces, după
efectuarea operaţiunilor de plată pentru serviciile de parcare ce au fost oferite. Odată ajuns ı̂n
zona rampei de acces, după oprirea rampei mobile, se permite accesul clientului la autovehicul
şi ieşirea din parcare, prin deschiderea barierei automate.
În etapa de cercetare, timp de aproximativ 3 luni, am căutat şi am studiat tipuri de
parcări existente deja pe piaţa din ı̂ntreaga lume, cum ar fi [9], iar acest lucru ne-a ajutat să
adăugăm elemente inovatoare, ce ar face din aplicarea efectivă a acestui proiect, realizarea
unui tip de parcare revoluţionar pentru ı̂ntreaga lume. Cercetarea a mai presupus realizarea a
trei modele diferite de parcare, iar pentru modelul final am compilat cele mai bune soluţii ale
celor trei anterioare. Elementul central al modelului final, pentru economisirea spaţiului, l-a
reprezentat modul de funcţionare a liftului.
Aceasta lucrare cuprinde paşii necesari pentru analiză, planificare, implementare şi
testare a parcării.
În prima parte, vom prezenta, ı̂n linii mari, noţiunile introductive ale tehnologiilor
şi echipamentelor folosite: PLC, Codesys, Labview, Conexiune OPC. Automatul programabil
(PLC) reprezintă nucleul acestei lucrări. El a fost utilizat pentru ı̂ncărcarea programului aferent
din Codesys şi pentru conectarea senzorilor şi a motoarelor, automatizând şi punând ı̂n practică
3
procesul de parcare propriu-zis. Mediul de programare Codesys a fost utilizat pentru crearea
si testarea programului ce va fi ı̂ncărcat ı̂n memoria automatului programabil. Prin intermediul
acestui program am realizat modul de comportare a parcării, atât ı̂n cazul unei funcţionări flu-
ente şi corecte, cât şi ı̂n cazul unei funcţionări deficitare. În Labview a fost creată partea vizuală
a funcţionării elementelor hardware ale parcării. Acest program ajută administratorul de sistem
să monitorizeze funcţionarea corectă a parcării. Conexiunea prin server OPC a făcut posibilă
preluarea variabilelor globale ce erau ı̂nregistrate in programul software ı̂ncărcat pe PLC şi
utilizarea lor ı̂n proiectul din Labview.
A doua parte cuprinde implementarea efectivă a programelor necesare dezvoltării
parcării automate (program Codesys şi Labview ), dar şi implementarea hardware (alegerea
echipamentelor).
A treia parte se referă la vizualizarea rezultatelor, la prezentarea unor modalităţi de
imbunătăţire ce pot fi aduse unui astfel de tip de parcare şi la enunţarea concluziilor.
Pentru a susţine exemplificativ acest proiect, am realizat o machetă, ce simulează
ı̂ntocmai, pas cu pas, funcţionarea practică a parcării. Aceasta a fost concepută din lemn de
balsa (lemn cu o densitate mică), folosit de cei mai mulţi dintre arhitecţi pentru confecţionarea
machetelor. În proiectarea machetei, am folosit două motoare, unul de tip pas cu pas, iar celălalt
este un motor cu reductor. Motorul pas cu pas este cel folosit pentru ridicarea/coborârea liftu-
lui, iar cel de-al doilea motor este folosit pentru deplasarea platformei liftului la stânga sau
la dreapta. Pentru simularea senzorilor, am folosit contacte magnetice, plasate sub platforma
liftului, sub fiecare suport de parcare şi ı̂n dreptul fiecărui etaj.
Întreaga lucrare de licenţă a fost redactată ı̂n sistemul de creare documente LaTex
dezvoltat de Leslie Lamport ı̂n anul 1984. Lucrarea a fost scrisă cu ajutorul limbajului Tex,
creat de Donald E. Knuth (vezi [11]).
4
de bare sau cod QR.
Protecţia autovehiculelor şi a bunurilor din interiorul lor este asigurată ı̂n acest fel,
accesul către maşini nefiind posibil, decât pe baza tichetului emis. În cazul ı̂n care proprietarul
pierde tichetul, i se va returna autoturismul pe baza filmărilor realizate de camerele video.
Ceea ce aduce nou acest tip de parcare, faţă de cele existente pe piaţa din România,
este faptul că acest sistem detectează instant, ı̂n momentul prezenţei autovehiculului ı̂n faţa
barierei, platforma fixă liberă cea mai apropiată de sol. Programul software a fost conceput
astfel ı̂ncât să fie ocupate mai ı̂ntâi locurile de jos, atât pentru eficientizarea temporală cât şi
pentru minimizarea consumului de energie electrică.
Tot pentru reducerea timpului necesar şi a consumului de curent electric, am reglat
motorul liftului astfel ı̂ncât să ruleze la frecvenţe mari când liftul este gol şi să funcţioneze la
frecvenţe mici când pe platforma liftului există o maşină. Din acest punct de vedere, am luat ı̂n
considerare şi siguranţa deplasării maşinilor ı̂n interiorul parcării.
Din punct de vedere arhitectural, un avantaj fundamental al acestei parcări este acela
că poate fi amplasată parţial sau total ı̂n subteran (de exemplu, jumătate din etaje să fie sub
nivelul solului, iar cealaltă jumătate deasupra solului). Datorită spaţiului foarte mic pe care
ı̂l ocupă, ea poate fi amplasată ı̂n parcările supermarket-urilor, ale mall-urilor şi ale tuturor
instituţiilor mari, unde există o cerere considerabilă de locuri de parcare. Gândiţi-vă ce ar
ı̂nsemna să avem, de exemplu, astfel de parcări la supermarket-uri. Am reduce foarte mult din
spaţiul destinat parcărilor, iar şoferii ar beneficia de protecţia maşinilor şi de reducerea timpului
necesar pentru a găsi un loc liber de parcare.
Un avantaj puternic pentru acest tip de parcare este faptul că utilizează energie proprie,
deoarece, pe acoperişul clădirii, există panouri solare. Este bine cunoscut faptul că acestea nu
poluează mediul ı̂n timpul funcţionării, fiind eficiente, economice şi ecologice.
Un alt avantaj ı̂l constituie faptul că, pentru parcările din zonele complexelor indus-
triale, atunci când nu este necesară o arhitectura specială, costurile unei astfel de parcări pot
fi reduse foarte mult, atunci când nu este necesară o anvelopă a unei clădiri sau se pot utiliza
panouri tip ”sandwich”, specifice halelor industriale, ceea ce poate conduce la reduceri semn-
ficative ale costurilor unui astfel de sistem. Aplicarea unor astfel de sisteme se poate face chiar
ı̂n serie sau cascadă, cu mare uşurinţă, ı̂n zonele industriale, acolo unde uneori au fost prevăzute
parcări şi unde se doreşte, totuşi, extinderea anumitor zone de clădiri sau secţii de producţie. Un
alt avantaj puternic, al acestei parcări automate este acela că poate fi adaptat la diferitele gabarite
ale clădirilor şi, datorită greutăţii relativ reduse a sistemului de parcare, acesta se pretează spre
a fi amplasat chiar pe acoperişul anumitor clădiri care prezintă o structură de rezistenţă suficient
de solidă.
3 Automatul programabil
3.1 Definiţie
Automatul programabil (fig.3.1.1, fig.3.1.2), numit şi controler logic programabil
(PLC), face parte din familia de calculatoare, ce utilizează funcţii de control, fiind utilizat pentru
manipularea sistemelor automate.
Un automat programabil oferă diferite funcţii, cum ar fi: contorizare numerică, con-
torizare a timpului, comunicare şi manipulare a datelor.
5
Figura 3.1.2: Prezentare PLC din
Figura 3.1.1: Prezentare PLC din faţă spate
În unitatea centrală de procesare (CPU), se află microprocesorul care citeşte semnalele
de intrare şi efectuează acţiuni de control, conform programului stocat ı̂n memorie şi transformă
deciziile ı̂n semnale de acţiune spre ieşiri.
Unitatea de alimentare cu energie este necesară pentru a converti reţeaua de alimentare
ı̂n curent alternativ, la o tensiune mai mică.
Unitatea de memorie stochează programul, care va fi utilizat pentru acţiunile de con-
trol ce urmează să fie utilizate de către microprocesor.
Secţiunile de intrare şi de ieşire sunt folosite pentru ca procesorul să primească informaţii
de la dispozitivele externe din sloturile de intrare şi comunică informaţii către dispozitivele ex-
terne din sloturile de ieşire.
Intrările ar putea fi butoane, senzori, traductoare de presiune, debit, temperatură,
celule fotoelectrice, iar ieşirile ar putea fi o bobină, un motor, un ventil electromagnetic etc.
Portul serial este utilizat pentru a primi şi a transmite date atât de la un PLC la altul,
dar şi ı̂ntre un PLC şi un PC.
6
3.3 Modalitatea de funcţionare
Funcţionarea unui PLC (figura 3.2.1) se face printr-o scanare ciclică ce cuprinde
următorii paşi: citire, execuţie, scriere. Etapa de citire presupune ı̂ncărcarea regiştrilor de in-
trare cu informaţii binare ı̂n funcţie de starea intrărilor (active/inactive). În etapa de execuţie
a programului, PLC-ul citeşte programul stocat ı̂n memorie şi realizează o rulare secvenţială a
instrucţiunilor. Ultima etapă este etapa ı̂n care sunt actualizaţi regiştrii de ieşire, iar dispozitivele
de ieşire sunt activate sau dezactivate.
Ca prim pas, microprocesorul citeşte sloturile de intrare şi verifică starea lor. Apoi,
execută programul stocat ı̂n memorie şi, pe baza acestuia, modifică sloturile de ieşire, prin
intermediul interfeţei de ieşire. Aceste etape se realizează ciclic, pe toată durata utilizării PLC-
ului.
7
În lucrarea de faţă, am utilizat un program de tip SFC, program ce se bazează pe
operaţii secvenţiale. Programul este alcătuit din etape (paşi) şi tranziţii.
Fiecare pas conţine un număr de tranziţii, ce conduc către alţi paşi. O tranziţie este
reprezentată printr-o valoare de tip boolean şi, de cele mai multe ori, este atribuită unui semnal
de intrare. O etapă poate fi descrisă cu ajutorul celorlalte limbaje şi are ca scop activarea sau
dezactivarea unui semnal de ieşire. Atât tranziţiile, cât şi paşii, pot fi aşezate ı̂n serie sau ı̂n
paralel.
Componentele grafice ale unui program folosind limbajul SFC sunt:
• Etape
– Fiecare etapă este reprezentă printr-un pătrat ce conţine ı̂n interior numărul etapei
respective.(figura 3.4.2)
– În dreptul fiecărui pas există legat printr-o linie un dreptunghi ı̂n care sunt descrise
acţiunile ce vor fi executate.(figura 3.4.3)
• Tranziţii
– Simbolul tranziţiei este o linie orizontală care leagă ı̂ntre ele două etape. Fiecare
tranziţie conţine un număr ce reprezintă un element de identificare a tranziţiei.(figura
3.4.4)
8
• Legături orientate
– Liniile ce nu conţin un număr pentru identificare sunt utilizate pentru a da o orientare
ı̂ntre etape şi tranziţii. Implicit, orientarea se face de sus ı̂n jos.(figura 3.4.5)
9
• Dacă se activeză şi se dezactivează un pas ı̂n acelaşi timp, atunci pasul va ramâne activ.
10
Figura 3.6.2: Ramură paralelă
2. Acţiuni
Fiecare etapă din cadrul programului poate avea 4 acţiuni: acţiune de intrare,
acţiune de ieşire, acţiune activă, acţiune asociată (figura 3.6.3). Acestea pot fi, la rândul
lor, programe de tipul SFC, ST, IL, LBD sau LD. Codul existent ı̂ntr-o acţiune de intrare
este executat imediat ce etapa este activă. Acţiunea activă va fi executată atâta timp
cât etapa este ı̂n desfăşurare. Acţiunea de ieşire este executată inainte ca etapa să fie
dezactivată. Acţiunea asociată poate fi de mai multe feluri:
11
Programul ı̂n Codesys conţine o zonă de configurare a task-urilor dorite. De exemplu,
ı̂n proiectul de faţă, unde programul creat conţine două subprograme, este necesară configurarea
task-urilor, adică, adăugarea explicită a subprogramelor la task-ul existent. De asemenea, pro-
gramul conţine o secţiune unde se pot declara viariabilele globale utilizate ı̂n ı̂ntregul proiect.
Codesys oferă posibilitatea testării aplicaţiei scrise, fără existenţa unui PLC conectat,
ceea ce uşurează cu mult lucrul cu acest program. Am ales să creez programul software ı̂n acest
mediu de programare, deoarece este uşor de ı̂nvăţat şi de folosit, având o mulţime de funcţii
ajutătoare pentru utilizatorul ce ı̂l foloseşte, fiind compatibil cu PLC-ul Bosch IndraControl
L25.
4 Programul Labview
Labview este un program foarte utilizat de către inginerii automatişti, mai ales ı̂n
aplicaţii industriale. Cu ajutorul acestui program se poate crea o legătură ı̂ntre aplicaţii şi date
sau informaţii din lumea reală. Labview te ajută sa creezi o parte vizuală user-friendly, prin
care pot fi urmărite foarte uşor datele ce se modifică sau valorile indicate de către senzori sau
traductoare.
În diagrama bloc (figura 4.1.2) a unui proiect, se află o paletă de funcţii, ce pot fi
atribuite elementelor declarate deja ı̂n panoul frontal. Elementele sunt legate ı̂ntre ele prin
fire şi le pot fi atribuite constante sau variabile externe, ce sunt primite printr-un mediu de
comunicaţie, cum ar fi OPC.
Ca o regulă generală ı̂n implementarea programului, toate elementele din diagrama
bloc se află ı̂ntr-o buclă repetitivă ”while”, ceea ce conferă programului o rulare continuă, astfel
reuşindu-se actualizarea datelor ı̂n timp real. Tot aici, se poate adăuga un element de tip ”timer”,
prin care se specifică la ce momente de timp să se realizeze actualizarea informaţiilor.
12
Figura 4.1.2: Fereastră diagrama bloc
5 Conexiunea OPC
OPC (Open Platform Communications) reprezintă un program software ce presupune
o interfaţă standardizată pentru comunicarea cu dispozitive hardware industriale (figura 5.1).
Comunicarea prin OPC este destinată sistemului de operare Windows, ce oferă posibilitatea
unor programe să comunice cu elemente hardware externe. Cu ajutorul OPC, se face accesul
către datele din procesele industriale, iar interfaţa este utilizată pentru a se citi sau scrie date
către un PLC.
Această platformă de comunicare este de tip client/server. Serverul OPC este un pro-
gram executabil, ce porneşte automat, odată ce comunicarea dintre client si PLC a fost efectuată.
Serverul OPC preia variabilele disponibile ı̂n spaţiul de adrese al automatului programabil, pe
care ulterior le furnizează clientului. Pe lânga aceasta, serverul ı̂nştiinţează clientul despre
starea variabilelor şi oferă informaţii despre modificarea lor ı̂n timp real. Serverul OPC din
Codesys permite o cumunicare directă cu toate automatele programabile ce suportă proiecte
scise ı̂n Codesys.
Aşa cum este prezentat ı̂n [2], paşii pentru a conecta automatul programabil prin OPC
server sunt:
13
scrise de către clientul OPC. Următorul pas presupune configurarea simbolurilor (vari-
abilelor) prin acordarea permisiunilor.
O variabilă poate fi accesată ı̂n 3 moduri:
(a) read
(b) write
(c) read-write
Ultimul pas constă ı̂n apăsarea butonului de Login, ce se găseşte ı̂n meniul
Debug. La activarea acestui buton, programul va fi ı̂ncărcat ı̂n PLC şi apoi se pot urma
paşii pentru configurarea clientului OPC.
2. Iniţial, numele server-ului OPC este OPCserver.ini . Se poate crea un nou server OPC,
prin rularea executabilului OPCConfig.exe.
Un fişier cu extensia .ini este un fişier standard de iniţializare a fişierelor de configurare
pentru diferite platforme sau aplicaţii software. El este compus dintr-un text ce coņtine
proprietăţi, atribute şi valori.
3. După selectarea server-ului Codesys.OPC.DA, clientul are acces la simbolurile definite la
pasul 1.
Clientul OPC reprezintă un program de vizualizare a datelor, iar ı̂n cazul de faţă este
reprezentat cu ajutorul programului Labview. Pentru conectarea prin OPC a clientului, mai
ı̂ntâi este necesară adăugarea server-ului OPC ı̂n aplicaţia de client. Acest lucru se realizează in
Labview prin:
1. Crearea unui ”Blank Project” (figura 5.3).
2. Click dreapta pe ”My Computer” – ”New” – ”I/O Server”(figura 5.4)
3. Din lista vom alege OPC client, iar apoi apăsăm butonul ”Continue”. Va apărea fereastra
din figura 5.5
4. Din secţiunea ”Registered OPC servers” vom alege opţiunea OPC.IwSCP.1 şi apoi ”OK”.
După executarea acestei operaţii, ı̂n proiect va apărea o nouă librărie. Facem click dreapta
pe OPC1 – Create Bound Variables. De aici, selectăm variabilele dorite şi apoi apăsăm
butonul de ”OK”.
14
Figura 5.3: Proiect nou Labview Figura 5.4: Creare I/O Server
15
construim ceva mai mult decât o simplă parcare, şi anume o operă de artă. Exemple de acest tip
ar fi ”Gioconda” sau ”Mona Lisa” a lui Leonardo Da Vinci, Pantenonul, templu ridicat zeiţei
ı̂nţelepciunii, Atena, sau ”Marea Piramidă din Giza”. Toate aceste opere sunt ı̂n strânsă legătură
cu numărul de aur 1.618033... . Pentru a aduce un plus de viaţă clădirii, am amplasat de jur
imprejurul ei plante ornamentale. Vorbind de o eficientizare a spaţiului consumat, parcarea
ocupă de trei ori mai puţin spaţiu decât ar fi ocupat 20 de maşini parcate la sol.
Parcarea este alcătuită dintr-un lift poziţionat iniţial central, şi, de o parte şi de alta
a lui, la fiecare etaj, vor exista platforme fixate, ce vor avea rol de susţinere a maşinii parcate.
Platforma liftului şi platfomele fixate sunt alcătuite din grilaje şi construite astfel ı̂ncât platforma
liftului să se ı̂ntrepătrundă cu platformele fixate (figura 6.1).
Platforma liftului are lăţimea de 2 m şi este formată din două porţiuni compacte,
prevăzute cu axe fixate ı̂n rulmenţii din barele din fată şi din spate ale liftului şi o porţiune
cu grătare care se va ı̂ntrepătrunde cu cele ale platformelor fixate, poziţionate ı̂n stânga şi ı̂n
dreapta, la fiecare etaj.
Liftul, ı̂n sine, este cât toată parcarea şi este prevăzut cu o bară ı̂n formă de ”C”, atât
ı̂n faţă, cât şi ı̂n spate. În aceste ”bare” vor fi montaţi rulmenţii platformei liftului. Rulmentul
este o componentă mecanică ce reduce frecarea ı̂ntre elementele aflate ı̂n mişcare. Cele două
bare ale liftului sunt acţionate de fiecare parte de câte o cremalieră, ce are o siguranţă care face
ca liftul să rămână pe loc la oprirea motorului ce realizează urcarea sau coborârea liftului.
Platforma liftului pe care se află maşina va fi mişcată, atât ı̂n dreapta, cât şi ı̂n stânga,
de două motoare aflate sub platforma liftului. Platforma liftului nu va fi la nivelul solului. Pentru
a urca pe platformă este prevăzută o rampă de intrare/iesire. Este necesar ca platforma liftului sa
fie la ı̂nălţimea de 40 de cm faţă de sol deoarece sub aceasta se găsesc motoarele de platformă,
motoare care au rolul de a duce platforma liftului la dreapta sau la stânga.
De platforma liftului (şi ı̂n faţă şi ı̂n spate) sunt fixaţi, prin sudare, suporţii motoarelor
de platformă şi cele două axe de capete cu role, pentru şufele de tracţiune ale platformei maşinii.
Tot de platformă sunt fixaţi cei trei senzori de limită dreapta, limită stânga şi de mijloc (figura
6w.2).
Sub platforma liftului va fi poziţionat un senzor ce indică prezenţa liftului la parter. De
asemenea, pe platforma liftului, ı̂n faţa grătarelor metalice, va fi un senzor ce va indica prezenţa
maşinii ı̂n lift.
16
Figura 6.2: Montajul senzorilor si al
motorului la platforma liftului
La fiecare etaj se montează câte patru fotocelule, astfel: lift ı̂n poziţia X_A, lift ı̂n
poziţia X_B, maşină parcată ı̂n poziţia X_D sau maşină parcată ı̂n poziţia X_S. X ia valori de la
1 la 10, ı̂n funcţie de etaj. Pentru fiecare etaj, senzorul ce indică prezenţa liftului in pozitia X_B
este montat mai jos decât senzorul ce indică prezenţa liftului ı̂n poziţia X_A (figura 6.3).
Senzorii ce indică maşină parcată ı̂n poziţia X_D şi maşină parcată ı̂n poziţia X_S spe-
cifică ce parcări sunt ocupate pentru fiecare etaj. De exemplu, senzorul de maşină ı̂n poziţia
2_D ne spune dacă există o maşină parcată pe platforma fixă din dreapta de la etajul 2. Analog
pentru senzorul de maşina in poziţia 2_S.
(a) Există o parcare liberă şi atunci bariera se deschide şi maşina poate urca pe platforma
liftului;
(b) Nu există o parcare liberă şi atunci, după două secunde se va aprinde o lampă de
semnalizare şi va apărea un mesaj cu textul ”Parcare ocupată complet”.
În continuare, vom trata doar situaţia de la punctul a), deoarece situatia b) nu are con-
tinuitate. Odată ce maşina a urcat ı̂n lift şi senzorul indică prezenţa acesteia, automatul
programabil alocă clientului cea mai apropiată parcare faţă de parter, ı̂ncepând cu parcarea
17
1_D. Dacă aceasta este ocupată, i se alocă parcarea 1_S. Dacă şi aceasta este ocupată, se
alocă 2_D, şi aşa mai departe, până la alocarea parcării 10_S. Nu există posibilitatea ca
maşina să intre pe platforma liftului, fără să nu existe cel puţin o parcare liberă. Am ales
această metodă de alocare a parcării de jos ı̂n sus pentru a economisi timp şi energie, atât
la parcarea, cât şi la livrarea maşinii. După ce automatul a alocat o parcare pentru maşina
prezentă ı̂n lift, se aşteaptă ca şoferul să iasă din maşină şi să ceară un tichet de parcare
de la automatul de tichete. Pe tichet sunt afişate următoarele informaţii: ora şi data de
eliberare a tichetului, numărul parcării alocate şi un cod de bare sau un cod QR. În mo-
mentul eliberării tichetului, se ı̂ncepe procesul de contorizare a timpului. După eliberarea
tichetului, bariera coboară şi ı̂ncepe procesul efectiv de plasare a maşinii pe platforma fixă
alocată de către automatul programabil. Să presupunem că pe tichet a fost inscripţionat
textul ”parcarea 3, etajul 2”. Automatul programabil ştie că parcarea 3 ı̂nseamnă pentru
el parcarea 2_D.
În vederea parcării ı̂n condiţii de siguranţă, am luat măsuri de a se evita urcarea
liftului la un alt etaj decât cel la care s-a alocat parcarea pe tichet. În exemplul de faţă,
dacă unul din semnalele etajX_B sau etajX_A este activ, cu X luând valori de la 3 la 10,
atunci liftul se blochează şi porneşte un semnal de alarmă.
Parcarea maşinii ı̂n poziţia 2_D se realizează astfel: cu semnalul de maşină
ı̂n lift activ, semnalul de lift la parter activ şi cu semnal de eliberare al tichetului, se
ı̂ncepe comandă contactor de urcare lift. Liftul va urca, până când se activează semnalul
etaj2_A sau, ı̂n cazuri de defecţiune, până când o altă fotocelulă de la etajele superioare
va fi activă. La o funcţionare normală, liftul se va opri ı̂n dreptul senzorului etaj2_A.
După oprirea motorului, se aşteaptă o secundă şi se acţionează contactorul de comandă
platformă lift la dreapta. Activarea motorului va determina deplasarea platformei liftului
şi ,implicit, a maşinii ı̂n dreapta, până când se va activa senzorul de limită platformă lift la
dreapta. Imediat după activarea senzorului, motorul ce acţionează deplasarea platformei
la dreapta se opreşte. După o secundă, se comandă acţionarea contactorului ce realizează
coborârea liftului. Liftul coboară până ajunge ı̂n poziţia etaj2_B.
Dacă, dintr-o defecţiune, etaj2_ B nu devine activ şi liftul mai coboară, sub
fiecare senzor există un blocaj mecanic care blochează liftul ( blocajele sunt ı̂n dreptul
fiecărei părţi compacte a platformei liftului , sub poziţiile ETAJ X_B).
În momentul ı̂n care etaj2_B devine activ, coborârea liftului este oprită. Prin
coborârea liftului din poziţia etaj2_A ı̂n poziţia etaj2_B, s-a efectuat parcarea maşinii
ı̂n parcarea 2_D. După parcarea maşinii, platforma liftului trebuie adusă la mijloc şi apoi
coborâtă la parter. Odată ce senzorul de etaj2_B a devenit activ, peste o secundă, se
activează contactorul ce trage platforma la stânga, până când se activeaza senzorul ce in-
dică prezenţa platformei la mijloc. Cu senzorul de platformă la mijloc activ, se acţionează
contactorul de coborâre a liftului până când liftul ajunge la parter şi senzorul ce indică
prezenţa liftului la parter devine activ. Din acest moment, parcarea a fost efectuată cu
succes şi se aşteaptă o altă cerere de parcare. În acelaşi mod se efectuează fiecare parcare
cu specificaţiile aferente fiecărui etaj şi parcări alocate.
18
cerut livrarea maşinii parcate in poziţia 2_D, PLC-ul stabileşte că este ”cerere maşină din
parcarea 3”. Similar cu condiţiile impuse la parcare, aceleaşi condiţii sunt impuse şi la
livrarea maşinii. Liftul este obligat să nu urce la un alt etaj decât cel la care a fost parcată
maşina, altfel se va bloca şi va declanşa un semnal de alarmă. Dacă, dintr-o eroare, liftul
urcă mai sus de etajul doi, acesta este blocat de PLC şi va fi adus la parter sau la parcarea
unde este cerută maşina, ı̂n mod manual de către administrator. Livrarea maşinii se va
face ı̂n felul următor: dacă liftul este liber şi parcarea 2_D ocupată, atunci se face o cerere
de maşină de la parcarea 3 şi se comandă contactorul de urcare lift, până ajunge liftul ı̂n
poziţia : etaj1_B). Cu senzorul etaj1_B activ, peste o secundă, contactorul de acţionare
motor la dreapta se va activa până când ajunge ı̂n poziţia limită platformă la dreapta
şi mută platforma liftului sub maşina parcată. Cu senzorul de limită platformă dreapta
activ, peste o secundă se comandă contactorul de urcare lift până ı̂n poziţia etaj2_A. Prin
urcarea platformei ı̂n poziţia etaj2_A, a fost ridicată şi maşina parcată in parcarea 1_D.
Dacă, dintr-o eroare, senzorul din poziţia etaj2_A nu acţioneazaă, platforma
se blochează mecanic (blocajele sunt ı̂n dreptul fiecărei părţi compacte ale platformei
liftului, deasupra poziţiilor etajX_A). Cu maşina ı̂n lift şi senzorul de etaj2_A activ,
peste o secundă, contactorul de acţionare platformă la stânga este activat şi acţionează
până ce platforma liftului ajunge la mijloc. Senzorul de platformă la mijloc este dublat,
pentru evitarea mişcării platformei mai la dreapta sau mai la stânga. După ce platforma
cu maşina ı̂n lift a ajuns la mijloc, cu senzor de platformă la mijloc activ, peste o secundă
se comandă contactorul ce porneşte coborârea liftului la parter. Liftul coboară, până
ajunge la parter şi, peste o secundă, bariera se deschide şi maşina poate părăsi parcarea.
După eliberarea liftului, PLC-ul informează automatul de tichete că livrarea maşinii s-a
ı̂ncheiat, iar tonomatul dezactivează semnalul de cerere maşină.
7 Implementarea software
Implementarea software a parcării automate a fost realizată cu ajutorul programelor
Codesys V3 şi Labview 2015. În Codesys am implementat programul ce este ı̂ncărcat ı̂n PLC.
Acest program reprezintă nucleul acestui proiect. Programul Labview 2015 al celor de la Na-
tional Instruments a fost folosit pentru a crea partea vizuală a proiectului ı̂n care se pot vedea
stările componentelor hardware importante ale parcării.
19
Variabile ce sunt folosite ı̂n ambele subprograme:
• p1_D AT %IX3.1:BOOL; - semnal de intrare ce indică dacă parcarea 1_D este ocupată
• p1_S AT %IX3.2:BOOL; - semnal de intrare ce indică dacă parcarea 1_S este ocupată
• p2_D AT %IX3.3:BOOL; - semnal de intrare ce indică dacă parcarea 2_D este ocupată
• p2_S AT %IX3.4:BOOL; - semnal de intrare ce indică dacă parcarea 2_S este ocupată
• p3_D AT %IX4.1:BOOL; - semnal de intrare ce indică dacă parcarea 3_D este ocupată
• p3_S AT %IX4.2:BOOL; - semnal de intrare ce indică dacă parcarea 3_S este ocupată
• pX_D sau pX_S:BOOL; X ∈[1,10] - semnal de intrare ce indică dacă parcarea pX_D sau
pX_S este ocupată
20
• etaj1_B AT %IX4.4:BOOL; -semnal de intrare ce indică prezenţa platformei liftului la
etajul 1 senzorul din poziţia B.
Declararea variabilelor folosite explicit pentru parcare şi explicaţia rolului lor
Unele variabile au fost declarate cu o intrare sau o ieşire specifică pentru PLC, deoarece
am utilizat aceste semnale pentru macheta ce face parte din partea practică a acestui proiect. Prin
crearea acestei machete, ce este alcătuită din 3 etaje, am ı̂ncercat simularea parcării reale. Sem-
nalele utilizate pentru machetă conţin după declararea variabilei şi un text precum ”AT %IX1.1”
pentru un semnal de intrare sau ”AT %QX1.1” pentru un semnal de ieşire. În textul "%IX1.1",
”I” specifică faptul că semnalul este o intrare, iar ”1.1” specifică adresa de intrare din PLC core-
spunzătoare. Analog pentru un semnal de ieşire, singura diferenţă fiind faptul că la declararea
variabilei se ı̂nlocuieşte litera ”I” cu litera ”Q”.
21
• tichetParcare5 AT %QX4.3:BOOL; - semnal de ieşire pentru a afla dacă s-a eliberat
un tichet de parcare pentru parcarea 5, adică parcarea p3_D
Programul implementat este de tip SFC ce conţine etape şi tranziţii. Programul ı̂ncepe
cu etapa iniţială, necesară orică rui tip de program scris ı̂n limbaj SFC. După etapa iniţială,
apare o tranziţie, ce reprezintă un semnal de intrare şi anume ”masinaInFataBarierei”. Acest
semnal ia valoarea TRUE atunci când ı̂n faţa parcării apare o maşină. Următoarea tranziţie
”semnalLiftLaParter” verifică prezenţa liftului la parter(figura 7.1.1).
Dacă liftul se află la parter, atunci se verifică, pe rând, de jos ı̂n sus, toţi senzorii
ce se află la platformele fixe care oferă informaţii referitoare la prezenţa unei maşini parcate
22
Figura 7.1.2: Verificare parcare liberă
pe locul respectiv. Aceşti senzori sunt notaţi cu ”pX_D sau pX_S”, unde X reprezintă etajul,
luând valori de la 1 la 10. În figura 7.1.2 este reprezentată verificarea pentru primele 5 parcări,
dar prin analogie reiese cum se face verifiarea şi celorlalte parcări.
Se ı̂ncepe căutarea unei parcări libere pornind cu parcarea ”p1_D” şi se continuă
căutarea pâna la parcarea ”p10_S”. Acest lucru s-a realizat prin implementarea unei ramuri
alternative. De aici există două situaţii:
1. Să nu se găsească o parcare liberă
2. Să se găsească o parcare liberă
Tratând situaţia primului caz, dacă după verificarea ultimului semnal, şi anume, p10_S,
nu s-a găsit nicio parcare liberă, atunci, printr-o acţiune de intrare, peste două secunde clientul
va fi anunţat că parcarea este ocupată prin activarea semnalului ”lampaSemnalizareParcareOcu-
pata”. Acest lucru este evidenţiat ı̂n următoarea secvenţă de cod:
IF Step2.t>T#2S THEN
GVL.lampaSemnalizareParcareOcupata:=TRUE;
END_IF
După aprinderea lampei de semnalizare se sare la etapa iniţială şi se aşteaptă parcarea
sau livrarea altei maşini.
În cea de-a doua situaţie, dacă există o parcare liberă, adică automatul a găsit un
semnal pX_D sau pX_S cu valoarea FALSE, atunci se trece la etapa următoare unde, printr-o
acţiune activă am făcut ca valoarea semnalului ”tichetParcareX” sa fie TRUE, X ∈[1,20]. Ca
un exemplu, să presupunem că p1_D are valoarea FALSE. Atunci, urmărind figura 7.1.2, se va
activa pasul ”Etaj1_1” ce conţine o etapă activă având următorul cod:
IF GVL.p1_D=FALSE THEN
GVL.tichetParcare1:=TRUE;
ELSE
IF GVL.p1_S = FALSE THEN
GVL.tichetParcare2 := TRUE;
END_IF
END_IF
23
fără a exista o parcare liberă.
GVL.deschidereBariera:=TRUE;
În primul caz, se aşteaptă 10 secunde, după care prin activarea acţiunii de intrare a
etapei ”Step5” se ı̂nchide bariera, iar apoi printr-un salt se trece la starea iniţială (figura 7.1.3).
GVL.deschidereBariera:=FALSE;
În cazul al doilea, odată ce maşina a urcat ı̂n lift, semnalul ”masinaInLift” este TRUE
şi se activează etapa ”Step6”, unde cu o acţiune de intrare fac o verificare pentru toate sem-
nalele ”tichetParcareX”, cu X ∈[1,20]. Această verificare presupune că doar un semnal de tipul
”tichetParcareX” să fie TRUE, iar restul să fie FALSE. În continuarea exemplului anterior, când
am spus că semnalul ”tichetParcare1” este TRUE, se face verificarea că doar semnalul ”tichet-
Parcare1” este activ, iar restul semnalelor sunt FALSE. Am realizat acest lucru pentru a aduce
un plus de siguranţă functionalită tii parcării. După aceasta verificare semnalul ”ParcareUnica1”
este activ şi clientul are acces la tichet (semnalul ”accesLaTichet”).
24
Prin deducţie se observă imediat cum se face verificarea şi in alte situaţii ı̂n care un
alt semnal ”tichetParcareX” este activ. Tranziţia imediat următoare pasului ”Step6” presupune
ca maşina să fie ı̂n lift şi clientul să fi primit un tichet după apăsarea unui buton de la automatul
de tichete (GVL.masinaInLift AND GVL.tichetEliberat). Acest lucru se poate observa ı̂n figura
7.1.3. La activarea simultană a celor două semnale enunţate anterior, se activează pasul ”Step7”
cu următoarea ac tiune de intrare:
GVL.accesLaTichet:=FALSE;
GVL.parcare:=TRUE;
GVL.deschidereBariera:=FALSE;
Prin rularea acestei acţiuni, clientul nu mai are acces la tichet, bariera se ı̂nchide, iar
semnalul numit ”parcare” devine TRUE pentru a aduce un plus de siguranţă parcării şi pentru a
ı̂nştiinţa administratorul de sistem că se execută parcarea unei maşini. Ulterior, prin verificarea
semnalelor ”masinaInLift” şi ”parcare” se trece la faza de parcare efectivă a maşinii (figura
7.1.4).
GVL.motorUrcareLift := TRUE;
Liftul va urca până când senzorul ”etaj1_A” va fi activ (figura 7.1.5). De exem-
plu, pentru parcarea 2 liftul ar fi urcat tot până ı̂n poziţia ”etaj1_A” doarece se află la acelşi
nivel. Pentru parcările 3 şi 4 liftul ar fi urcat până la activarea senzorului ”etaj2_A”, pentru
parcările 5 si 6 până la ”etaj3_A” şi aşa mai departe pentru celelalte parcări. După ce liftul a
ajuns ı̂n pozitia "etaj1_A" se face o verificare prin activarea pasului ”VerifLiftP1” prin care
25
se interogheză toţi senzorii de etaj de deasupra ce sunt de tipul ”etajX_A” sau ”etajX_B”, cu
X ∈[2,10]. Reiese de aici că, de exemplu, pentru parcarea maşinii ı̂n poziţia 4, se verifică sen-
zorii ”etajX_A” sau ”etajX_B”, cu X ∈[3,10].
GVL.motorUrcareLift:=FALSE;
IF GVL.etaj2_A=TRUE OR GVL.etaj2_B=TRUE OR GVL.etaj3_A=TRUE
...
OR GVL.etaj10_A=TRUE OR GVL.etaj10_B=TRUE THEN
GVL.blocareLift:=TRUE;
GVL.alarma:=TRUE;
GVL.motorUrcareLift:=FALSE;
END_IF
La momentul activării senzorului ”etaj1_A”, conform codului prezentat mai sus, ur-
carea liftului se opreşte. În situaţia ı̂n care unul din senzorii de deasupra este activ, liftul se va
bloca şi va porni alarma.
Această funcţionalitate a fost implementată pentru a fi sigur că liftul nu va urca mai sus
decât este necear şi prin aceasta am reuşit să creez şi o modalitate de asigurare a corectitiudinii
parcării.
GVL.motorCoborareLift:=TRUE;
Liftul va coborı̂ până când liftul va ajunge la parter, adică semnalul ”liftLaParter” are
valoarea TRUE. După aceasta, ı̂n acţiunea de la pasul ”Step12” am oprit motorul, şi am coman-
dat deschiderea barierei.
26
Figura 7.1.6: Paşi ı̂n cazul blocării lif-
tului
GVL.motorCoborareLift:=FALSE;
GVL.deschidereBariera:=TRUE;
Clientul ı̂şi va scoate maşina de pe platformă şi prin semnalul ”masinaInLift” având
valoarea FALSE, după 5 secunde, bariera va coborı̂.Această secventă de revenire a liftului la
parter ı̂n cazul blocării acestuia, este valabilă pentru toate parcările.
IF Step13.t>5S THEN
GVL.deschidereBariera:=FALSE;
END_IF
Aici apare prima diferenţă faţă de parcarea unei maşini ı̂ntr-o poziţie pară, unde plat-
forma liftului se va deplasa la stânga. După cum am prezentat ı̂n capitolul 6 al acestei lucrări,
parcările impare se află ı̂n dreapta, iar cele pare ı̂n stânga. Prin prezenţa senzorului activ
”limitaPlatformaLiftLaDreapta” ni se spune ca platforma a ajuns ı̂n capătul din dreapta al
parcării. Având senzorii ”masinaInLift” şi ”limitaPlatformaLiftLaDreapta” activi, se trece la
etapa următoare unde, se va realiza oprirea motorului ce deplasează platforma liftului la dreapta.
Se subı̂ntelege faptul că, pentru o parcare ı̂n poziţie pară se va executa oprierea motorului ce
acţioneaza deplasarea platformei liftului la stânga.
GVL.actionareMotorPlatformaLaDreapta:=FALSE;
Prin semnalul de intrare ”Etaj1_B” inactiv se trece la urmă torul pas unde, după o
secundă, se acţionează motorul ce realizează coborârea liftului.
27
IF Verificare1_2.t>T#1S THEN
GVL.motorCoborareLift:=TRUE;
END_IF
Liftul va coborı̂ până când senzorul ce indică prezenţa maşinii ı̂n parcarea 1 este activ
(p1_D=TRUE) şi senzorul ”Etaj1_B” este TRUE (figura 7.1.8). Acest lucru este evidenţiat ı̂n
acţiunea de intrare a pasului ”Verificare1_3”:
GVL.motorUrcareLift:=FALSE;
IF Verificare1_3.t>T#1S
AND GVL.limitaPlatformaLiftLaMijloc = FALSE THEN
GVL.actionareMotorPlatformaLaStanga:=TRUE;
END_IF
GVL.actionareMotorPlatformaLaStanga:=FALSE;
Aşa cum se poate observa ı̂n figura 7.1.8, după o secundă, având semnalul p1_D ac-
tiv, semnal ce indică prezenţa maşinii parcate ı̂n parcarea 1, se acţionează motorul ce face
ca platforma liftului să coboare.Acest lucru este implementat ı̂n acţiunea de intrare a pasului
”Verificare1_4”.
GVL.motorCoborareLift:=TRUE;
28
Când liftul a ajuns la parter, şi senzorul ”liftLaParter” este TRUE, atunci se comandă
oprirea motorului.
GVL.motorCoborareLift:=FALSE;
Astfel, maşina a fost parcată cu succes şi liftul aşteaptă parcarea sau livrarea unei alte
maşini. În acest mod se realizează parcarea unei maşini ı̂n orice poziţie de la 1 la 20.
2. Livrarea maşinii
Declararea variabilelor folosite explicit pentru livrare şi explicaţia rolului lor
29
• cerereMasinaParcareX:BOOL; - semnal de ieşire care ne spune că se face livrarea
maşinii de la parcarea X, cu X ∈[1,20]
Programul este construit ı̂n acelaşi limbaj, şi anume, SFC. Programul conţine o etapă
iniţială, obligatorie pentru orice program scris ı̂n acest tip de limbaj. După această etapă se
face o verificare a semnalelor ”masinaInLift” şi a semnalului ”cerereMasina”.Asa cum se poate
vedea ı̂n figura 7.1.9, condiţia de trecere la următoarea etapă este să nu avem o maşină ı̂n lift, şi
să avem o cerere de maşină din partea unui client.
Următoarea condiţie impusă este ca liftul să fie la parter, adică semnalul de intrare
”semnalLiftLaParter” să fie TRUE. Dacă şi liftul se află la parter, atunci se activează pasul
”Step1”, unde, printr-o acţiune de intrare verifică de la ce număr de parcare s-a făcut cererea
30
de livrare (”cerereParcareX”, cu X ∈[1,20].) şi activează un semnal de tipul ”cerereMasina-
ParcareX”, cu X ∈[1,20]. De exemplu, să presupunem că se face o cerere de livrare maşina de
la parcarea 1. Clientul vine la automatul de tichete, introduce tichetul, plăteşte, iar apoi este
activat semnalul ”cerereParcare1”. Prin aţiunea de intrare de la etapa ”Step1” se activează sem-
nalul ”cerereMasinaParcare1” astfel:
IF GVL.CerereParcare1=TRUE THEN
GVL.cerereMasinaParcare1:=TRUE;
END_IF
Prin analogie se poate observa cum se vor activa şi alte semnale de tipul ”cerere-
MasinaParcareX”, ı̂n funcţie de semnalul activat de automatul de tichete. În continuare am
implementat un branch alternativ, prin care se alege ı̂n funcţie de tipul de semnal ”cerereMasi-
naParcareX”, ce paşi vor fi parcurşi. Să presupunem ca se va face livrarea maşinii de la parcarea
1, adică semnalul ”cerereMasinaParcare1” este activ. Cererea de livrare a altor maşini se va face
asemănător, dar la fel ca la programul de parcare al maşinilor, autotoruismele ce se vor afla pe
poziţii pare vor avea mici diferenţe de implementare faţă de cele aflate pe poziţii impare. Aceste
diferenţe le voi prezenta la momentul apariţiei lor.
GVL.motorUrcareLift := TRUE;
Liftul va urca până când semnalul ”Etaj1_B” va fi activ, adică liftul a ajuns ı̂n dreptul
fotocelulei ce se află jos la etajul 1, aşa cum am prezentat ı̂n capitolul 6 al acestei lucrări. Odată
ce liftul a ajuns aici, motorul de urcare se opreşte şi se face o verificare suplimentară ce include
interogarea senzorilor de deasupra ce sunt de tipul ”EtajX_A” sau ”EtajX_B”. Dacă se va găsi
un semnal superior activ, atunci liftul se va bloca, şi va porni alarma.
motorUrcareLift:=FALSE;
31
IF GVL.etaj1_A=TRUE OR GVL.etaj2_A=TRUE OR GVL.etaj2_B=TRUE
...
OR GVL.etaj10_A=TRUE OR GVL.etaj10_B=TRUE THEN
GVL.blocareLift:=TRUE;
GVL.alarma:=TRUE;
END_IF
În primul caz (figura 7.1.11), când liftul se va bloca, după trei secunde va porni mo-
torul ce deplasează platforma liftului ı̂n jos. Odată ce liftul a ajuns la parter, cu ”semnalLiftLa-
Parter” activ, motorul se va opri şi se va deschide bariera.
GVL.motorCoborareLift:=FALSE;
GVL.deschidereBariera:=TRUE;
GVL.deschidereBarierea:=FALSE;
În cel de-al doilea caz (figura 7.1.12), unde funcţionarea liftului este corectă şi plat-
forma s-a oprit ı̂n dreptul senzorului ”Etaj1_B”, prin tranziţia ce verifică faptul că semnalul
”blocareLift” este FALSE şi semnalul ”Etaj1_B” este TRUE, se trece la etapa următoare unde
printr-o acţiune activă a etapei ”Parcare1”, după o secundă, se va acţiona motorul ce deplasează
platforma liftului la dreapta. În cazul unei cereri de livrare de la o maşina parcată pe o poziţie
pară s-ar fi activat motorul ce deplasează a platforma liftului la stânga.
32
IF Parcare1.t >T#1S THEN
GVL.actionareMotorPlatformaLaDreapta := TRUE;
END_IF
Următoarea tranziţie verifică faptul că nu există nici o maşină ı̂n lift şi că senzorul
care indică prezenţa platformei liftului ı̂n limita din dreapta este activ. Dacă aceste două sem-
nale ı̂ndeplinesc condiţiile impuse de tranziţie, se va trece la pasul următor. Pentru cazul ı̂n care
maşina ar fi fost parcată pe o poziţie pară, tranziţia ar fi impus ca semnalul de ”limitaPlatfor-
maLiftLaStanga” să fie activ. Pasul următor presupune dezactivarea motorului ce acţionează
platforma liftului la dreapta.
GVL.actionareMotorPlatformaLaDreapta:=FALSE;
Printr-o tranziţie care verifică faptul că semnalul ”Etaj1_A” este FALSE, se va activa
pasul ce conţine o acţiune activă ce presupune următoarea aţiune: după o secundă, motorul ce
va urca platforma liftului se va activa.
IF Verificare1_2.t>T#1S THEN
GVL.motorUrcareLift:=TRUE;
END_IF
Platforma liftului va urca până ı̂n momentul ı̂n care semnalul ”Etaj1_A” va fi activ,
semnalul care indică prezenţa maşinii ı̂n parcarea 1 va fi dezactivat (”p1_D” este FALSE) şi
maşina se află ı̂n lift. Imediat după ce aceasta condiţie a fost ı̂ndeplinită se va opri urcarea liftu-
lui.
33
GVL.motorUrcareLift:=FALSE;
Acţiunea activă a pasului curent va face ca, peste o secundă, platforma liftului să se
deplaseze la stânga. Pentru celalalt caz, s-ar fi actţionat platforma liftului la dreapta.
IF Verificare1_3.t>T#1S THEN
GVL.actionareMotorPlatformaLaStanga:=TRUE;
END_IF
GVL.actionareMotorPlatformaLaStanga:=FALSE;
GVL.motorCoborareLift:=TRUE;
GVL.motorCoborareLift:=FALSE;
GVL.deschidereBariera:=TRUE;
După cinci secunde de la dezactivarea semnalului ce indică prezenţa unei maşini ı̂n
lift, bariera va coborı̂ şi programul va trece ı̂n starea iniţială unde se va astepta o cerere de
livrare sau de parcare a unei maşini.
IF Wait.t>T#5S THEN
GVL.deschidereBariera:=FALSE;
END_IF
În acest mod s-a realizat livrarea cu succes a unei maşini din parcarea 1. Prin analogie,
se observă uşor modalitatea de implementare şi pentru alte parcări din acest sistem automat de
parcare a maşinilor.
34
tip boolean o variabila din proiectul Codesys, am procedat astfel: am selectat mai intâi butonul,
apoi, cu click dreapta pe el, din meniu am ales opţiunea ”Create”. Din ”Create”→”Shared Vari-
able Node”→”My Computer”→”ParcareLabview.lvlib”, unde ”ParcareLabview” reprezintă nu-
mele proiectului.
35
8 Implementarea hardware
Necesarul de echipamente de automatizare, motoare, aparate electrice şi materiale
necesare construcţiei unei parcări cu zece etaje având 20 locuri de parcare:
1. Echipamente de automatizare
2. Echipamente de câmp (bariera de acces ı̂n parcare, fotocelule pentru poziţia liftului de la
etajul unu până la etajul zece, senzori de poziţie platformă, poziţie lift, maşină ı̂n lift sau
maşini parcate).
Dacă cel puţin o parcare este liberă, liftul este la parter şi ı̂n raza de acţiune
a fotocelulei barierei există o maşină (cerere de parcare masină), bariera se deschide,
permiţând accesul maşinii pe platforma liftului. Pentru poziţia liftului (la parter), maşina
ı̂n lift, poziţia platformei liftului (limita dreapta, limita stânga si poziţie mijloc) sunt nece-
sari 8 senzori. Menţionez că, pentru poziţia platformei, senzorii sunt dublaţi din motive
de siguranţă a funcţionării corecte. Pentru poziţia liftului de la etajul 1 la etajul 10, am
prevăzut fotocelule. Fiecare etaj are două poziţii ale liftului (A şi B). De exemplu la par-
carea maşinii la etajul 2 dreapta, liftul va fi comandat să urce până la etajul 2 poziţia A,
apoi va fi comandată platforma să se mişte la dreapta, până la limită platformă dreapta,
apoi este comandat liftul să coboare ı̂n poziţia B, prin această mişcare, maşina rămâne
parcată pe plaforma fixă de la etajul 2 dreapta. Pentru fiecare maşină parcată, acţionează
o fotocelulă.
• Barieră cu fotocelulă.
• Fotocelule emitător/receptor 20 de seturi pentru poziţia liftului şi 20 de seturi pentru
parcarea ocupată.
• Senzori de poziţie - 8 buc. senzori no/nc.
36
• Pentru alimentarea motoarelor de platformă, sunt necesare două convertizoare de
frecvenţă 15KW, curent nominal 32A, trifazat- Moeller
• Pentru comanda motoarelor ce mişcă platforma liftului, pe orizontală, la stânga sau
la dreapta, sunt necesare câte două contactoare pentru fiecare motor - contactor 4
poli, cu bobină 24 V / AC, 35A, 23KW / 400V. Platforma liftului e formată din două
subansamble faţă-spate, iar fiecare parte a platformei este acţionată de un motor
al cărui sens de rotaţie este modificat, prin acţionarea unui contactor ce inversează
două faze pentru a-i schimba sensul de rotaţie al motorului.
• Pentru urcarea si coborârea liftului, este necesar un motor sincron de tipul - EC
Electric Motors sincron 75kW (100HP) 3ph AC Motor - 400V/690V 4 Pole 280S
Frame B3 Foot Mount.
• Pentru mişcarea platformei liftului la stânga şi la dreapta, sunt necesare două mo-
toare sincrone de tipul motor - 15 kw AC motor sincron.
Pe lângă instalarea plantelor de jur ı̂mprejurul parcării şi utlizarea energiei solare ce
contribuie la un mediu nepoluat, s-ar putea aduce şi alte imbunătăţiri care să ajute clienţii. De
exemplu, s-ar putea crea o aplicaţie pe telefon prin care clientul să ı̂şi rezerve din timp un loc
de parcare. Rezervarea presupune alegerea unei parcări, având o interfaţă grafică cu parcările
ocupate şi cele libere, dar obligă clientul să precizeze ora la care va ajunge să parcheze maşina.
Dacă după 5 minute de la ora precizată clientul nu a ajuns şi nici nu a anunţat o ı̂ntârziere, atunci
parcarea va fi disponibilă oricui. Odată rezervat un loc de parcare, el poate fi eliberat, ı̂n cazul ı̂n
care clientul se răzgândeşte. Această aplicaţie poate să ofere şi o secţiune de comentarii, unde
clienţii să discute despre experienţa cu acest sistem de parcare. Tot ı̂n această aplicaţie poate să
existe şi posibilitatea plăţii tichetului de parcare.
37
O altă imbunătăţire ce poate fi adusă este să se implementeze un sistem de ghidare a
şoferului ı̂n momentul parcării maşinii ı̂n lift. Acest mecanism de dirijare este deja implementat
pe anumite sisteme de parcare. Un lucru important ce poate fi adus ı̂n plus este plata parcării
direct cu cardul deoarece ajută clientul să salveze timpul ı̂n care s-ar fi dus să scoată bani de la
un bancomat.
În vederea eliminării manevrelor greşite, pe rampa mobilă, se pot utiliza sisteme de
rulare pe bază de cilindri mobili, asemănător sistemelor utilizate in staţiile ITP pentru testarea
capacităţii de frânare a maşinii, ı̂n care cilindrul central permite ı̂ncastrarea roţii ı̂n sistemul de
cilindri şi nu permite depăşirea zonei de siguranţă, chiar şi dacă motorul este turat iar roţile se
ı̂nvârt ı̂n cazul unor manevre greşite. Pentru gestionarea eficientă a maşinilor, se poate utiliza
un sistem de colectare a datelor, ı̂ntr-o bază de date, a numerelor de ı̂nmatriculare, ce pot fi
identificate pe baza unor soft-uri dedicate, sistem ce poate fi utilizat ı̂n cazul ı̂n care tichetul
de parcare a fost pierdut. Astfel, personalul desemnat al parcării poate verifica, pe baza certi-
ficatului de ı̂nmatriculare şi ale sistemului de supraveghere video, identitatea clientului care a
beneficiat de serviciul de parcare, iar atunci când nu există suspiciuni, poate decide eliberarea
autovehiculului, chiar şi ı̂n condiţiile ı̂n care clientul a pierdut tichetul de parcare.
Concluzii
În urma finalizării acestui proiect de licenţă, am obţinut un sistem perfect funcţional şi
sigur pentru parcarea autoturismelor. Pentru aceasta au fost necesare crearea unui model de par-
care eficientă, implementarea software a programului pe PLC, implementarea unei părţi vizuale
de unde se pot observa stările senzorilor şi motoarelor, implementarea hardware a componen-
telor ce vor fi utilizate şi o machetă din trei etaje a parcării reale unde se poate vedea amplasarea
senzorilor şi motoarelor.
Pentru găsirea unui model de parcare, a fost necesară cercetarea pieţei, ı̂n vederea
soluţiilor deja existente, iar pentru a ajunge la acest model final, a fost nevoie de câteva săptămâni,
ı̂n care am construit alte trei modele funcţionale de parcări. M-am oprit asupra acestui sistem,
deoarece mi s-a părut cel mai eficient, din punct de vedere al spaţiului şi al timpului de par-
care/livrare a maşinii.
Avantajele sistemului propus:
• Soluţii tehnice foarte simple, ce permit adaptări la o gamă variată de tipuri de spaţii, atât
existente, cât şi special proiectate sau destinate.
• Posibilitatea de a fi implementat ı̂n situaţiile ı̂n care ambientul urban, arhitectura, necesită
să fie protejate şi conservate, putând fi folosite dezvoltări subterane sau ı̂n interiorul unor
clădiri deja existente şi care au fost destinate iniţial altor utilizări.
• Utilizarea unor echipamente simple, ieftine, dar fiabile ı̂n funcţionare.
• Sistemul poate fi adaptabil la nevoile specifice, ı̂n funcţie de condiţiile locale.
• Sistemul de management este relativ simplu, fapt ce aduce costuri de ı̂ntreţinere şi reparaţii
reduse.
• Au fost folosite echipamente, ce sunt utilizate ı̂n mai toate automatizările industriale, ceea
ce face să nu necesite un personal supraspecializat.
• Considerăm că, ı̂n funcţie de sistemele de lift şi rampă mobilă, pot fi obţinute soluţii
tehnice cu costuri foarte reduse.
• Din punct de vedere al mediului, ı̂n primul rând, se obţine eliminarea impactului vizual
negativ, generat de spaţiile de parcare ample, urbanistica şi mediul ambiant fiind conser-
vate.
38
• Din punct de vedere social, acest sistem oferă o creştere a gradului de civilizatie, a confor-
tului şi a calităţii vieţii, precum şi creşterea gradului de securitate individuală şi colectivă.
39
10 Bibliografie
[1] Andrei Nick Ivănescu. 1997. Automate şi microprogramare. Politehnica Press,pag.7-
13, 52-62
[10] W.Bolton. 2006 Programable Logic Controllers fourth edition. Elsevier Newnes,
pag. 115-120
40