Documente Academic
Documente Profesional
Documente Cultură
Laborator 2 PDF
Laborator 2 PDF
Descrierea aplicaţiei
două uşi, fiecare dintre ele mişcată cu ajutorul unui motor cu două sensuri de rotaţie
(mişcare stânga – dreapta pentru fiecare uşă);
câte doi senzori de capăt cursa (deschis – închis) pentru fiecare uşă;
un senzor de prezenţă persoană în dreptul uşii.
Iniţial uşile sunt închise. Dacă o persoană apare în dreptul uşilor, ele se vor deschide.
Mişcarea de deschidere este menţinută atât timp cât, pentru fiecare uşă în parte, senzorul respectiv
de deschidere este inactiv.
Dacă ambele uşi sunt deschise şi nu mai există nicio persoană în dreptul uşii timp de 2
secunde, uşile încep simultan să se închidă. Închiderea uşilor se opreşte când ambele ajung la capăt
de cursă sau apare o persoană în dreptul uşilor, în timp ce acestea se închideau. Ele îşi vor opri
închiderea şi vor începe să se redeschidă.
1
Soluţia de automatizare
Pentru automatizarea procesului, este indicat ca într-o primă etapă să se realizeze diagrama Grafcet
pe baza căreia va funcționa automatul programabil.
Etapa 1: Diagrama Grafcet (Graphe de Contrôle Etape-Transition)/ SFC (Sequential Function Chart)
2
Fig.2. Diagrama Grafcet a aplicației
Observaţii:
3
Etapa 2: Proiectul în IndraLogic
VAR_GLOBAL
(*motoare*)
M1_deschidere: BOOL:=FALSE; (*cu inițializare*)
M1_inchidere: BOOL; (*fără inițializare*)
(*timer*)
t0: TIME;
(*etc.*)
END_VAR
Pentru simulare, este nevoie de 2 variabile interne care să stabilească deschiderea sau închiderea
ușilor. Acestea vor avea valori în intervalul 0-100 și vor fi incrementate sau decrementate după caz
cu o valoare constantă pentru a sugera mișcarea elementului grafic tip ușă. Cele 2 variabile vor fi
declarate tot cu atributul global.
Primul program va reda procesul de automatizare a ușilor, iar celălalt va fi editat pentru partea de
simulare. Ambele vor fi scrise în SFC.
4
Pasul 3: Editarea programelor
Fiecare din aceste tipuri de acţiuni are propriul ei ecran de editare; prima şi ultima pot fi create prin
selectarea click dreapta Add Entry Action sau Add Exit Action; tipul Action va fi creat prin dublu-click
în interiorul chenarului etapei respective.
Programul care va gestiona grafic procesul trebuie editat și el în SFC. El va trebui să creeze legătura
între pornirea/oprirea motoarelor și variabilele interne de incrementare/decrementare. În plus,
aceste variabile interne trebuie să facă legătura și cu limitatorii de cursă existenți.
5
Exemplu:
IF m1_deschidere THEN
pas1:=pas1+3;
END_IF;
l1_deschis:=(pas1>100);
l1_inchis:=(pas1<=0);
(*etc.*)
Se vor activa senzorii deschidere/închidere a ușilor atunci când pasul de incrementare va avea o
valoare extremă (fie 0, fie 100), urmând ca apoi, datorită celuilalt program din cadrul proiectului care
rulează în paralel, motoarele aferente să fie oprite.
Elementele grafice ce pot apărea în cadrul proiectului sunt redate mai jos.
6
Pentru activarea senzorilor de limită de cursă a ușilor va fi nevoie să fie completate câmpurile
Colors și Variables->Change Color.
Același lucru (de colorare a elementului în concordanță cu variabila definită) va fi necesar și elementului senzor
de prezență pentru a reda faptul că este activ sau nu. În plus, acestă acțiune va trebui generată de către
operatorul uman pentru a simula realitatea. De aceea este nevoie să fie bifat în câmpul Input opțiunea Toggle
Variable.
În mod similar, pentru redarea pornirii motoarelor, se va folosi opțiune Toggle Variable.
7
Pasul 5: Configurarea taskurilor
Înainte de rularea proiectului, trebuie configurate două taskuri care vor apela simultan cele două
programe editate. Acest lucru se va face în tabul Resouces.
Opțiunea Task Configuration – click dreapta Append Task – click dreapta pe iconița taskului – Append
Program Call. Selectarea programului din fereatra care apare, conform figurii de mai jos.
Fig.8.Asignarea taskurilor
Alte observații:
În cazul în care aveți nevoie să ștergeți un element, acest lucru se va face doar dacă există o selecție
a unui bloc de genul etapă-tranziție sau tranziție- etapă. Elementele nu pot fi șterse în mod singular.
Gestionarea timpului se va face prin definirea unei variabile de tip TIME în cadrul variabilelor
globale. În cadrul etapei unde trebuie facută inițializatea timerului, va fi inserat linia de cod:
t0:=TIME();
Deasemenea, condiționarea din cadrul tranziției în ceea ce privește timpul va fi realizată prin
condiția: TIME() – t0 > t#2s.