Scopul acestei lucrari a fost dezvoltarea unui sistem de control industrial ce are la baza [612164]

INTRODUCERE

Scopul acestei lucrari a fost dezvoltarea unui sistem de control industrial ce are la baza
automatul programabil SIEMENS S7 -1500.
Caracteristicile sistemului proiectat sunt urmatoarele:
• Sistemul a fost contstruit astfel incat sa indeplineasca diferite cic luri;
• Dispune de o afisare HMI simulate si pregatita pentru a fi implementata pe un dispozitiv
de tip TP1200 Comfort (HUMAN -MACHINE INTERFACE);
• Structurat in felul urmator:
➢ Automat programabil, SIEMENS, S7 -1500;
➢ Diferiti senzori conectati direct la automa t;
➢ Actuatori, elementele de executie ale sistemului;
➢ Diferite piese electropneumatice necesare functionarii sistemului;
• Interconectarea dintre automatul programabil si HMI se realizeaza prin intermediul
magistralei de comunicatii PROFINET;
• Din punct de ved ere software, sistemul a fost contruit bazandu -se pe blocuri functionale:
➢ Un bloc principal care gestioneaza ciclurile;
➢ Cate un bloc pentru fiecare ciclu;
➢ Un bloc special construit pentru simularea sistemului de afisare HMI;
Sistemul de afisare HMI trimite live date referitoare la starea sistemului si prin
intermediul comenzilor create se pot efectua interventii asupra procesului:
➢ Schimbari de ciclu;
➢ Oprire de urgenta;
➢ Redemarare instalatie;
➢ Vizualizarea live a starii fiecarui element de executie;
➢ Afisarea de avertizari aferente ciclului ales;
Pentru realizarea sistemului sunt necesare cunostinte de programare a automatelor,
implrmrntare a afisoarelor de tip HMI si un bagaj de cunostinte de proiectare electrica,
pneumatica si mecanica.

Capitol ul 1. Sistem de control industrial

1.1 Introducere

Evolutia tehnologica uimitoare din ultima perioada a condus la modificarea tuturor lucrurilor
care ne inconjoara. Astfel procesele industriale se bucura de o evolutie continua ce conduce la
optimizarea acest ora astfel reducandu -se consumul de combustibil, materie prima si personal.
Asadar aceasta dezvoltare a condus la necesitatea adunarii, stocarii si procesarii unui numar foarte
mare de date, a operarii instalatiei de la distanta, a monitorizarii in direct, functiile necesare
procesului devenind din ce in ce mai numeroase si complexe fapt ce a condus la dezvoltarea unor
echipamente capabile sa execute toate aceste operatii. Toate aceste lucruri au ca effect
imbunatatirea procesului fie prin scaderea costului pentru fabricatie, fie prin reducerea timpului de
fabricatie, fie prin imbunatatirea conditiilor de munca.
1.2 Structura tipica a unui sistem de control

Un sistem este un un model fizic al unui ansamblu de obiecte in care unele marimi
reprezinta cauze iar al te marimi reprezinta efectele. Sistemul are un terminal de intrare (aduce
cauzele) si unul de iesire (arata efectele sistemuului). Aceste doua terminale pot fi associate cu
un dispozitiv de automatizare si cu procesul tehnologic, instalatia industriala.

Sisteme mecanice
Sisteme mecanice
actionate electric
Motorul de c.c.
Motorul de c.a.
Sisteme mecanice
actionate electric
Relee electrice
Amplificatoare
Regulatoare
Sisteme mecanice cu control
electronic analogic,secvential,
numeric
Tranzistor
Tiristor
Circuit integrat
Microprocesor
Sisteme mecatronice
Mecanica&electronica
comandate software
Microcontrolerul
PC-ul
Senzori
Actuatori

Elementele representative ale unui sistem:
• CPU -central processing unit , entitatea responsabila pentru luarea
deciziilor pe baza informatiei primate din cadrul procesului si pe baza
programului de lucru;
• Senzori, de diferite tipuri, responsabili cu conversia datelor in semnale
electrice necesare luarii deciziilor;
• Elemente de executie, sistemele electrice, pneumatice, mecanice care
indeplinesc diferite actiuni pe baza comenzilor trimise de unitatea central a;
• Comunicatia, magistrale de date necesare transmiterii informatiilor catre si
dinspre CPU;
• Human -machine interface, permit operarea instalatiei, vizualizarea in timp
real a procesului executarea diferitelor comenzi necesare;

1.3 Schema bloc a unui sistem de control

1.4 Clasificarea sistemelor de control

1.4.1 Dupa complexiatatea sistemului:

• Sistem individual:
➢ Controleaza o singura instalatie;
➢ Nu necesita comunicatie cu alta instalatie:
➢ Programul de lucru poate fi selectat de catre operator prin intermediul unei
interfete Human -Machine Interface;
• Sistem ce poate comanda mai multe instalatii:
➢ Folosit pentru instalatii complexe unde este necesara comanda multipla;
➢ Este necesar un singur system de calcul;
➢ Nu este necesar schimbul de date;

• Sistem de control distribuit:
➢ Alcatuite din doua sau mai multe automate conectate intre ele printr -o
magistrala de date;
➢ Functiile instalatiei sunt distribuite automatelor;
➢ Monitorizarea instalatiei se face prin intermediul unui PC care gestioneaza
toate automatele;
➢ Exista schimb de date intre toate automatele dar si intre PC si automate;
➢ Nivel inalt de performanta;

1.4.2 Dupa criteriul decizional:

• Sisteme bazate pe logica cu relee:
➢ Nu se foloseste unitate de control, deciziile se iau in functie de releele
sistemului;
➢ Costuri de dezvoltare mari;
➢ Necesita mult spatiu;
➢ Nu pot gestiona sisteme complexe;

• Sisteme bazate pe logica cu Automat programabil:
➢ Ofera controlul instalatiilor cu o complexitate ridicata;
➢ Fiabilitate;
➢ Ofera posibilitatea modificarii programului de executie fara a face
modificari hardware;
➢ Ocupa spatiu putin:
➢ Capabile sa gestioneze mai multe instalatii;

Capitolul 2. Automatul programabil

2.1 Generalitati.

Automatul programabil este un dispozitiv electronic capabil sa gestioneze procesele
industrial. Denumit si PLC (Programmable Logic Controller) este de fapt un computer digital cu
mai multe intrari si iesiri, bazat pe arhitectura RISC ( Reduced Instructio n Set Computer ),
avand o constructie ce poate rezista in condi ti dificile de utilizare: umezeala, fluctuatii de
temperature, socuri mecanice, praf etc.

Deoarece dispun de imbunatatiri substantiale din punct de vedere tehnologic, cum ar fi
circuitele logice integrate, elementele semiconductoare de putere si logica programata, fata de
vechiile sisteme de control, bazate pe logica secventiala si logica cablata, se disting un numar
semnificativ de avantaje:
• Reducerea costurilor de dezvoltare;
• Consum redus de energie;
• Reducerea spatiului necesar;
• Dezvoltarea de f unctii complexe;
• Facilitarea dezvoltarii cu usorinta a softului si modificarea acestuia fara sa fie
necesara modificarea hardware a proiectului;
• Consum redus de materiale;
• Posibilitatea monitorizarii live a procesului;
• Facilitarea depanarii;
Automatele pro gramabile prezinta anumite avantaje si in favoarea PC -urilor:
• Viteza de raspuns mai mare;
• Din cauza constructiei specific mediului industrial rezistenta la conditiile
nefavorabile este sporita;
• Rezistenta mai mare la perturbatii;
• Limbaj de programare relat ive simplu si intuitiv;
• Pret de dezvoltare redus;
Principalele functii caracteristice ale PLC -urilor:
• Pe baza programului de lucru stocat in memorie se emit semnale de comanda
specifice;
• Valorile semnalelor de pe intrari si iesiri sunt reprezentate optic p rin intermediul
unor LED -uri, aprinse la valoarea 1 logic a semnalului corespunzator;
• Pe baza programului stocat se prelucreaza datele primate pe modulul de intrari;
• Detecteaza orice schimbare a valorii de adevar ale semnalelor de intrare;

2.2 Diferenta dintre Automatele programabile si Logica cu relee.

In acest subcapitol voi prezenta putin mai detaliat motivele pentru care automatele
programabile sunt un substitute net superior pentru logica cu relee.
REFERINTA AUTOMAT
PROGRAMABIL LOGICA CU RELEE
VITEZA Mare, dependenta de
marimea programului de
lucru insa nu depaseste cateva
milisecunde . Limitata.

COST
Datorita cresterii nivelului
tehnologic preturile au
inceput sa scada.
Depinde de complexitatea
procesului.

FLEXIBILITATE Ridicata deoarece schemele
de comanda sunt
implementate prin programul
de lucru iar modificarea
acestuia nu impune
modificari hardware, se pot
simula programele inainte de
a fi implementate. Redusa, impune modificari
hadware.

FIABILITATE Ridicata, poa te realiza
functiile mai multo elemente
din instalatie; dimensiuni
reduse; consum mic; Scazuta, putere disipata mare,
dimensiuni mari, numar
foarte mari de conexiuni
electrice, posibilitatea mare
de a aparea defecte.

LIMBAJ DE
PROGRAMARE Da, diversificate, “Ladder”
asemanator cu schemele cu
relee iar “STL” asemanator
C++; Nu.

2.3 Clasificarea automatelor programabile.

Se evidentiaza urmatoarele criterii:
1) După corelarea în timp a variabilelor de intrare și de stare ale automatului avem :
• Automate sincrone, modificarea starii automatului se face sincron cu tactul
extern;
• Automate asincrone, modificarea starii se face odata cu schimbarea palierului
variabilelor de intrare;
2) Dupa tehnologia folosita pentru realizarea automatu lui:
• Automate cu tehnologie integrate;
• Automate cu contacte si relee;
• Automate cu componente electronice discrete;
• Automate realizate cu logica cablata;
• Automate cu logica microprogramata;
3) Dupa nivelele logice:
• Cu logica binara (“0” si “1” )
• Cu logică tern ară (-1, 0, 1) sau ( -1/2, 0, 1/2);
• Cu logică multivariabilă care depinde de modul de organizare al spațiilor X si
Z.
4) Dupa complexitatea circuitului de reactie:
• automate de gradul 0 – A0 – degenerate (simple fără circuit de reacție). Acestea
se mai numesc circuite logice combinaționale la care ieșirea depinde numai de
intrare.
5) Din punct de vedere constructiv:
• Automat programabil monobloc, au un numar redus de intrari in mod usual
intre 10 -16 si 8 -10 iesiri, sunt incadreate in clasa Pico/Nano sau Micro/Mini
AP.

• Automat programabil modular, se remarca prin faptul ca au o putere de calcul
foarte mare, numar mar e de intrari iesiri sit imp de procesare mic. Se
incadreaza in categoria PAC (Programmable automation controller ).

Avantaje privind utilizarea automatelor programabile in sistemele industriale:
• Deoarece unui automat programabil I se pot conecta multe intrari si iesiri,
costurile instalatiei se reduc considerabil;
• Numarl cablajelor se reduce semnificativ;
• Diagnosticarea unui system cu automat este foarte facila;
• Necesita un numar mic de piese care se pot uza;
• Consumul de energie electrica este redus;
• In cazul unei defectiuni repunerea in functiune este mult mai usoara in cazul
instalatiilor ce folosesc ca system de control un automat programabil;

Din punct de vedere al structurii interne a automatului programabil se remarca 3
componente principale ce s e regasesc la nivel general:
• Unitatea centrala , este creierul intregului system, la nivelul acestei
componente se iau deciziile si este alcatuita la randul ei din 3
subcomponente: processor, memorie si sursa de alimentare.
• Modulele de intrare/iesire , rolul acestora este de a receptiona/trimite
semnalele din si catre restul sistemului.
• Unitatea de programare , reprezentata de un Personal Computer, Laptop
sau Consola ce are instalat softul necesar programarii automatului.

Arhitectura generala a unui automat programabil este construita in jurul unei magistrale
de date la care sunt conectate intrarile, iesirile, memoria si unitatea centrala. Variabilele de
intrare pot fi de mai multe tipuri, sisteme de masurare analogica impr euna cu un convertor
analogic -digital, limitatoare de pozitie, traductoare de deplasare, semnale de la fotocelule si
senzori inductive, etc. Variabilele de iesire se refera la elementele de executie cum ar fi
electrovane, contactoare, afisoare, etc.

2.4 Modul de functionare al automatului programabil.

Una dintre cele mai importante functii ale automatului este cea de verificare (scanare) in
mod constant a variabilelor de intrare. Aceasta functie are la baza 3 faze:
• Input Scan (Testarea intrarilor), este efectuat o scanare ce are drept scop
detectia tuturor elementelor conectate ca si intrari si valoarea acestora,
urmand memorarea lor pentru folosirea ulterioara.
• Program Scan (Executia programului), bazandu -se pe valorile memor ate
in faza anterioara, se implementeaza programul instructiune cu
instructiune astfel activandu -se anumite iesiri in functie de logica
implementata de programator.
• Output Scan (Verificare/corectarea starii iesirilor), avand la baza logica
programata se ex ecuta corecturile valorilor iesirilor, asta daca sunt
necesare.

2.5 Automatul SIEMENS S7 -1500.

Acest automat reprezinta o imbunatatire semnificativa a modelului precedent S7 -400. Pe
langa imbunatatirile performantei se remarca faprul ca are integrate lo gica de safety care permite
implementarea reglemetarilor de Securitate fara adaugarea altor elemente hardware.
Ca si protocol de comunicare se foloseste PROFINET iar ca software de programare este
necesar TIA Portal, un mediu intelligent care inglobeaza to ate programele necesare dezvoltarii
unui proiect intreg.
Codul de catalog al acestuia este CPU 1512C -1 PN (6ES7512 -1CK00 -0AB0) si dispune
de 3 module de intrari/iesiri dintre care unul analogic cu 5 intrari analogice si 2 iesiri analogice
ce suporta recon figurare in timp ce automatul este in modul RUN si doua module de intrari/iesiri
digitale cu 32 de intrari fiecare, de viteza mare, pana la 100kHz, si 32 de iesri digitale dintre care
8 pot fi folosite la viteza mare. Ca si in cazul celui analogic si acest ea se pot reconfigure in timp
ce automatul este in modul RUN.
Proprietati ale CPU 1512C -1 PN:
• Comunicare: interfata PROFINET
• Server web integrat care ofera urmatoarele informatii:
➢ Pagina de start cu indormatii despre processor
➢ Informatii de identificare
➢ Diagnostic
➢ Statusul intrarolor analogice sau digitale
➢ Statusul iesirilor analogice sau digitale
➢ Alarme
➢ Informatii despre comunicare
➢ Utilizarea memoriei

• Tehnologie suportata:
➢ Numarare
➢ Masurare
➢ Detectarea pozitiei
➢ Controlul miscarii
➢ Trace functionality
➢ System de diagnoza integrat
• Securitate integrata:
➢ Protectia copierii
➢ Protectia impotriva utilizatorilor neautorizati
➢ Protectia impotriva accesarii de catre utilizatori neautorizati
➢ Protectia integritatii

1- LED -uri ce indica modul current de operare si diagnostic;
2- Status si afisarea erori pentru modulul I/O analogic;
3- Status si afisarea erori pentru modulul I/O digital;
4- Tastatura pentru control;
5- Display ;

Datorita faptului ca este unul dintre cele mai avansate automate program abile din punct
de vedere tehnologic la momentul de fata, S7 -1500 poate fi programat prin intermediul
urmatoarelor limbaje specifice:
• Ladder -LAD;
• Statement list -STL;
• Graph;
• Structured control language -SCL;
• Function block diagram -FBD;
In cadrul aceluiasi pr oiect se pot folosi diverse limbaje de programare fara probleme, in
functie de necesitatile si de dificultate sarcinii ce trebuie indeplinita.

Capitolul 3. Descrierea limbajelor de programare.

Ca si in cazul celorlalte dispositive lectronice, Comisia Europeana de Electricitate a emis un
document care exemplifica metodele de programare ale automatelor programabile si anume
“Standardul IEC 1131 -3” care are in vedere urmatoarele aspect:
• Crearea de programe independente din toate puncte le de vedere;
• Standardizarea limbajelor de programare;
• Mobilitatea programelor;
• Dezvoltarea interfetelor in mediul de programare;

Limbajele de programare dfinite de Standardul IEC 1131 -3:
• Ladder Diagram LD, un limbaj de programare ce are la baza grafica s chemelor cu
relee si contacte, foarte usor si intuitiv;
• Instruction List IL, acest limbaj este asemanator cu cel folosit pentru programarea
microprocesoarelor;
• Sequential Function Chart SFC, bazat pe organigramele functionale, prin
programarea grafica secv entiala permite crearea de procedure si functii complexe;
• Function Block Diagram FBD, are la baza limbajul Ladder insa se pot folosi blocuri
functionale;
• Structured Text ST, este un limbaj de programare asemanator limbajelor avansate,
C++, C#, Java Script, ce foloseste instructiunile de selectie, control si atribuire a
subprogramelor;

3.1 Limbajul Ladder -LD.

Avand la baza grafica schemelor electrice alcatuite din relee si contacte, diagramele ladder
sunt elemente grafice alcatuite dintr -o linie verticala ce reprezinta “Bus Bar -ul”, pe aceasta linie
verticala avand mereu semnal “High” iar, atasate pe ea avem linii orizontale pe care se plaseaza
diferite elemente de program, de exemplu: contacte, timere, countere, elemente de intrare in
partrea stanga iar in partea dreapta a liniei orizontale elementele de executie, “bobinele” folosite.
Fiind un limbaj de programare graphic, Ladder are doua elemte principale, contactele si
spirele (bobinele). Aceste elemente sunt interconectate prin intermediul traseelor (run gs sau
branch) similar cu cele din schemele electrice.Pentru realizarea instrunctiunilor se pot folosi una
sau mai multe conditii, reprezentate de contacte normal deschise sau normal inchise, care
reprezinta elementele de intrare ale sistemului. Atunci can d aceste conditii sunt indeplinite, se
activeaza bobina caruia ii este atribuit un element de executie sau chiar o memorie folosita tot ca
si conditie in program.

Programul se executa in felul urmator, de sus in jos si de la stanga la dreapta, pe barele
vertical avnd mereu conexiune la barele de putere conectate la o sursa de alimentare.

In figura prezentata mai sus putem observa ca avem ca si conditii urmatoarele elemente:
• Un comparator, ce are ca scop verificarea faptului ca variabila %MW50 are
valoarea 7;
• Un contact Normal Inchis ce are atribuita o memorie “Var_Globale.MSTOP”;
• Un contact Normal Deschis ce are atribuit semnalul de intrare de la un senzor de
pozitie al unui cilindru;
• Un contor, “IEC_Counter_0_DB” ce are ca scop setarea unei memor ii atunci cand
valoarea memorata pe bitul CU este egala cu valoarea setata la parametrul PV,
resetarea acestuia facandu -se odata cu validarea memoriei “Tag_3”;
Bobinele in cazul de fata sunt urmatoarele:
• Pe prima linie avem o functie, “MOVE” ce are ca scop mutarea variabilei
prestabilite a parametrului “IN” in variabila “OUT1”, care in cazul de fata este o
memorie de tip cuvant, “Stari”;
• Pe a doua linie avem o bobina ce are asociata o memorie,”Tag_2” ce este setata
odata cu validarea conditiilor;

Princ ipalele elemente grafice ale limbajului Ladder :
• Contactul normal deschis , reprezinta contactul care in starea sa naturala are
valoarea “0” logic. In cazul actionarii acestuia valoarea devine “1” logic. Acestuia
i se poate atribuii orice element de intrare sau chiar o memorie folosita in cadrul
programului, este simbolizat de doua linii vertical, paralele cu scopul de a
evidentia lipsa contactului electric in starea naturala;

• Contactul normal inchsis , reprezinta contactul care in starea sa naturala are
valoarea “1” logic. In cazul actionarii acestuia valoarea devine “0” logic. Ca si in
cazul contactului normal deschis acestuia I se poate atribuii orice element de
intrare sau memorie, simbolul acestuia fiind alcatuit din doua linii vertical,
paralele, unit e printr -o linie oblica. Acest lucru evidentiaza faptul ca in conditii
normale, nefiind actionat acest tip de contact conduce din punct de vedere
electric;

• Bobina directa , obiect grafic de programare reaspunzator pentru elementele de
executie ale sistemului, i se pot asociat pe langa iesirile necesare sistemului si
memorii ce se pot utiliza ca si contacte ulterior. Atunci cand conditiile precedente
acesteia sunt indeplinit e, bobina activeaza elementul care i -a fost atribuit pana
cand nu se mai indeplinesc conditiile. O regula foarte importanta de care trebuie
sa se tina cont in cazul programarii este ca sa nu se implementeze aceasi bobina
cu doua conditii diferite, in rungu ri diferite deoarece sistemul nu v -a functiona sau
v-a functiona defectuos.

• Bobina inversa, are acelasi scop cu bobina directa, singura diferenta fiind ca se
tine cont de conditiile precedente acesteia in mod negat, astfel toate conditiile
trebuiesc sa aive valoarea inversa fata de modul normal de lucru;

• Bobina set, prin intermediul acestei comenzi, iesirea sau memoria atribuita ei,
odata cu indeplinirea conditiilor pre cedente ramane setata cu valoarea”1” chiar
daca conditiile nu mai sunt indeplinite, asadar este necesara o singura activare a
tuturor conditiilor in mod simultan pentru a se seta. Resetarea acesteia se face cu
o bobina reset.

• Bobina reset, aceasta reseteaza o bobina setata anterior atunci cand conditiile au
fost indeplinite simultan. Este putin diferita de bobina set deoarece aceasta
reseteaza respective memorie o singura data cand conditiile precedente sunt
indeplinite sim ultan, astfel se Evita riscul de a nu mai putea seta din nou memoria
sau elemental de executie atribuit.

Pe langa aceste elemente principale, in functie de software -ul folosite se pot implementa
diferite functii presta bilite:
• Countere;
• Timere;
• Comparatoare;
• Operatii algebrice;
• Operatii de mutare a valorilor variabilelor;
• Operatii de conversie;
• Operatii de siftare;
• Functii matematice;

3.2 Limbajul Structured Text -ST.

Este un limbaj de programare de nivel inalt asemanator cu C++, C#, Java Script, etc.,
bazat pe instructiuni si expresi:
• IF- instructiune de selectie;
• FOR -instructiune de repetitie;
• WHILE -instructiune de repetitie;
• Instructiuni de atribuire;

INSTRUCTIUNEA SIMBOLUL

INMULTIRE

*
IMPARTIRE /

MODULO

ADUNARE

SCADERE MOD

+

COMPARATIE

COMPLEMENT

EGALITATE

INEGALITATE <,> <=,>=,=

NOT

=

<>

SI

SAU

SAU EXCLUSIV &, AND

OR

XOR

Programul dezvoltat in figura de mai sus este o conversie a unui semnal binar primit de la
driverul ului motor electric convertit in sitem zecimal pentru a usura monitorizarea si folosirea
acestuia si o conversie din zecimal in binar cu scopul de a fi trimis inapoi la driver. Am folosit
acest tip de programare deoarece aceasta functie se realizeaza foarte usor si nu necesita mult
timp pentru dezvoltare.

3.3 Limbajul Sequential Function Chart.

Acest limbaj de programare este alcatuit din mai multe elemnte:
• Pasi, contine actiunile ce trebuiesc indeplinite in aceasta etapa, pot fi activi, daca
actiunile se indeplinesc in timpul specificat sau inactiv;
• Tranzitii, reprezinta trecerea de la un pas la urmatorul, aici se pun conditiile
necesare trecerii la urmatorul pas;
• Ramificatii, sunt elemente folosite in parallel cu pasii, dar ca re tin cont de alte
conditii de tranzitie;
Este un limbaj de programare foarte util in cazul depanarii, este foarte usor de descoperit
eroarea in cazul aparitiei acesteia.

In figura prezentata mai sus avem o secventa din programul creat pentru unul di ntre
ciclurile aplicatiei cu scopul de a evidentia diferentele dintre limbajele Ladder si Sequential
Function chart. Se pot oberva pasii, denumiti Step in cadrul softului TIA Portal, actiunile si
tranzitiile. De exemplu, stepului 1 ii sunt atribuite doua a ctiuni, activarea bobinei “A -“, si
resetarea variabilei “Var_Globale.Var”. Tranzitia catre stepul numarul 2 se executa atunci cand
senzorul “a0” este validat. In urma acestei instructiuni se activeaza stepul 2 care actioneaza
bobina “A+”. in momentul in ca re se activeaza “SENZ2” se trece la stepul 3. Astfel se urmeaza
pas cu pas fiecare instructiune a programului.

Capitolul 5 Proiectarea parți software a sistemului de control

5 Obiective.
In acest capitol se urmareste realizarea programului de lucru al automatului programabil.
Deoarece sistemul a fost realizat astfel incat sa execute 4 cicluri diferite, acestea urmeaza sa fie
exemplificate in cele ce urmeaza.
Primul ciclu implementat presupune manipularea unei piese dintr -un loc in altul, folosind
doi ci lindri pneumatici si un sistem de vacuum. Manipularea se face din pozitia de home cu
extindere catre cealalta pozitie si mutarea piesei in pozitia home.

Ciclul 2, are ca scop operatia inversa primului ciclu, astfel, acesta muta piesa din pozitia
home, in pozitia din dreapta sistemului.
Ciclul numarul 3, simuleaza operatiunea de introduce si extractie a unei piese in celula
unui robot, astaptand pana cand robotul isi termina de executat actiunea. Acest ciclu poate elimina
problema securitatii operatorilor in cadrul unei instalatii de acest tip. Pentru exemplificarea
modului de programare „grafcet” , acest ciclu a fost implementat in mod paralel si cu acest limbaj
de programare.
Al 4-lea ciclu, este folosit pentru mentenanta utilajului si pentru situatiile de urgenta in care
este necesarea efectuarea de comenzi manuale, astfel, prin intermediul acestui ciclu se pot efectua
toate operatiunile posibile, in mod manual, acest lucru sporind siguranta sistemului.
Aceste cicluri se selecteaza in mod individual, f olosind o combinatie a butoanelor fizice de
pe macheta si a celor virtuale, din simularea HMI.

5.1 Proiectarea sistemului de control

5.1.1 Specificații

Primul pas este reprezentat de crearea unui proiect nou in softul TIA Portal. Acest lucru
se realizeaza din ferestra principala cu „Create new project”.

Dupa crearea unui nou proiect in TIA Portal, urmatorul past este adaugarea automatului
cu care se lucreaza. Se selecteaza optiunea „Configure a device”, Add new device, se
selecteaza Controlle rs si se alege tipul de automat folosit, pe baza codului sau de identificare.
Codul automatului folosit pentru acest proiect este CPU -1512C -1 PN, 6ES7 512 -1CK01 –
0AB0 , versiunea 2.6.

Pasul urmator este declararea Intrarilor si a Iesirilor din automat in functie de legaturile
fizice ale acestora in modulele automatului. Acest lucru trebuie facut cu mare atentie
deoarece o singura greseala, neobservata, conduce la o functionare incorecta.
Se acceseaza tab -ul Properties, IO tags si se declara variabilele, numele acestora este ales
de catre programator, ideal este sa fie cat mai sugestiv. Adresele care au ramas necompletate
nu sunt folosite, sau nu au fost efectuate legaturi fizice.
Pasul urmator este declararea Intrarilor si a Iesirilor din automat in funct ie de legaturile
fizice ale acestora in modulele automatului. Acest lucru trebuie facut cu mare atentie

In continuare, aceste variabile trebuiesc declarate, tinandu -se cont de adresele lor si in
PLC Tags, acolo unde se declara si variabilele globale folosite in proiect. Pentru intelegerea
softului creat si pentru eventuala mentenanta a sistemului, este indu cat sa se foloseasca
aceleasi denumire si sa se scrie explicit ceea ce reprezinta fiecare intrare \iesire sau variabila
declarata in comentarrii.

5.2 Logica folosita pentru blocul Main

Am ales sa folosesc acest bloc cu scopul de a crea programul principal de lucru in
care vor fi introduse functiile create pentru fiecare ciclu si va fi implementata logica
pentru anumite memorii folosite pentru dezvoltarea programului.
Astfel, prima linie de cod scrisa reprezinta validarea unei memori i,
"Var_Globale".Var, folosita cu scopul de a realiza initializarea in fiecare ciclu, aceasta
actiune realizandu -se prin activarea bitului „First Scan” la pornirea automatului
programabil.
Pentru a putea utiliza acest bit trebuie setat parametrul „Enable t he use of system
memory byte”. Acest lucru se face prin accesarea „Device configuration”, „Properties”,
„General”, „System and clock memory”.

Variabila setata in acest Network, urmeaza sa fie resetata in prima actiune din FB -ul
ciclului care se select eaza.
Network -ul numarul 2 gestioneaza selectarea ciclului „Stanga -Dreapta” sau
„Ciclu3_Move” , ciclu care executa manipularea piesei din suportul amplasat in partea
stanga catre suportul amplasat in partea dreapta, de 3 ori, consecutiv, respectand
conditii le de asteptare in cazul in care suportul in care trebuie amplasata piesa este plin si
in cazul in care suportul de unde trebuie mutata piesa este gol.
Conditii necesare activarii functiei „Ciclu3_Move”:
– Selectoul fizic de pe macheta sa fie in pozitia MA N;
– Butonul virtual din HMI, „Activare comenzi manuale” sa fie dezactivat;
– Butonul virtual din HMI, „Activare comenzi manuale safety” sa fie dezactivat;
– Butonul virtual din HMI, „Start ciclu move” sa fie activat;
– Butonul virtual din HMI, „Start ciclu invers ” sa fie dezactivat;
– Memoria "Var_Globale".MCIO sa fie „0” ;
– Memoria "Var_Globale".MCI sa fie „0”.

Dupa indeplinirea conditiilor si activarea blocului functional, pe linia acestuia de
Enable Output (ENO) am folosit o memorie, "Var_Globale".MCM ce are ca sc op
punerea in evidenta a faptului ca ciclul este activ si interblocarea celorlalte cicluri,
astfel riscul de a se activa doua cicluri simultan este eliminat.

Network -ul „C clul dreapta -stanga ” este raspunzator pentru activarea functiei
„ciclu_inv”, ciclul care are ca scop mutarea piesei din suportul amplasat in partea dreapta
in cel amplasat in partea stanga de 3 ori, consecutiv, respectand conditiile de securitate,
astfel in cazul in care suportul din partea stanga nu a fost el iberat sistemul asteapta pana
la eliberarea acestuia, iar in cazul in care piesa din suportul din dreapta lipseste, sistemul
asteapta plasarea acesteia, iar dupa trecerea a 1.5 secunde, sistemul isi reia activitatea.
Conditii necesare activarii functiei "ciclu_inv" :
– Selectoul fizic de pe macheta sa fie in pozitia AUTO ;
– Butonul virtual din HMI, „Activare comenzi manuale” sa fie dezactivat;
– Butonul virtual din HMI, „Activare comenzi manuale safety” sa fie dezactivat;
– Butonul virtual din HMI, „Start ciclu inve rs” sa fie activat;
– Butonul virtual din HMI, „Start ciclu move” sa fie dezactivat;
– Memoria "Var_Globale".MCIO sa fie „0”.
– Memoria "Var_Globale".MC M sa fie „0”.

Daca aceste conditii vor fi indeplinite, blocul v -a fi activat, activarea lui
conducand la acti varea memoriei "Var_Globale".MCI care este responsabila pentru
interblocarea celorlalte cicluri ale sistemului, astfel este asigurat din nou faptul ca nu
vor lucra simultan doua sau mai multe cicluri. Consecinta acestui fapt ar fi
functionarea necorespunza toare a sistemului.

„Ciclu in_out” este urmatoarea functie implementata in cadrul programului
principal. Aceasta functie a fost gandita astfel incat sa reproduca actiuniile necesare
insertiei si extractiei unei piese in si din celula unui robot. Astfel , sistemul a fost
conceput astfel incat sa manipuleze piesa din siuportul din partea deapta , o aduce in
suportul din partea stanga, si se retrage in pozitia initiala, acest lucru reprezentand
introducerea piesei si parasirea celulei pentru a astepta final izarea procesului executat
de robot asupra piesei. Dupa ce robotul si -a finalizat actiunea, sistemul intervine, ia

piesa din partea dreapta si o transporta inapoi in partea stanga, acest lucru
reprezentand extractia piesei dupa proces. Acest ciclu este foa rte eficient deoarece, in
primul rand, reduce foarte mult riscurile la care se supun operatorii in caz ca nu
respecta procedurile de securitate, iar, in al doilea rand, in cazul in care avem de a
face cu piese cu o greutate destul de mare, acest sistem red uce foarte mult dificultatea
operatiei pe care o face operatorul.

Conditii necesare activarii functiei "ciclu_in _out":
– Selectoul fizic de pe macheta sa fie in pozitia MAN;
– Butonul virtual din HMI, „Activare comenzi manuale” sa fie dezactivat;
– Butonul virtual din HMI, „Activare comenzi manuale safety” sa fie dezactivat;
– Butonul virtual din HMI, „Incepere ciclu in -out” sa fie activat;
– Memoria "Var_Globale".MCIO sa fie „0” ;
– Memoria "Var_Globale".MC M sa fie „0”.

Ca si in cazul celorlalte cicluri, exceptie facand ciclul manual, si acest ciclu, odata
cu activarea sa, valideaza o memorie, "Var_Globale".MCIO , folosita la interblocarea
celorlalte cicluri.

Deoarece fiecare sistem necesita mentenanta, urmatorul ciclu este destinat in mod
special aces tui lucru. Astfel, am creat un program , care, atunci cand este activat sa poata
sa execute orice miscare, in mod individual, dupa cum doreste responsabilul mentenantei.

Conditii necesare activarii functiei "ciclu_in _out":
– Selectoul fizic de pe macheta sa fie in pozitia MAN;
– Butonul virtual din HMI, „Activare comenzi manuale” sa fie activat;
– Butonul virtual din HMI, „Activare comenzi manuale safety” sa fie activat;

In mod diferit fata de celelalte cicluri, acesta nu are memorie individuala care sa
se va lideze odata cu activarea lui, deoarece interblocarea acestui ciclu se face prin
butoanele din interfata HMI pentru activarea comenzilor manuale.

Un alt lucru deosebit de important in cadrul sistemului este siguranta. Tot in
intermediul Main -ului am implementat o logica de „safety”. Astfel, la apasarea
butonului fizic de pe macheta, STOP, sau la apasarea celui de pe HMI, „STOP
CICLU”, se activeaza o memorie, "Var_Globale".MSTOP , folosita in interiorul
logicii fiecarui bloc functional in p arte. Deoarece sistemul trebuie sa ramana oprit
pana cand este remediata situatia de urgenta, bobina memoriei
"Var_Globale".MSTO P este de tip „SET”.

Resetarea acestei memorii este conditionata de apasarea in mod continuu timp de
3 secunde a buton ului fizic „START” sau a celui de pe simularea HMI, „START
CICLU”, acest lucru facandu -se doar dupa ce pericolul a fost indepartat si sistemul isi
poate relua activitatea in conditii optime de siguranta.
Pentru a realiza acest tip de conditionare, am folo sit un timer de tip
TON, "IEC_Timer_0_DB_2" , caruia i -am setat baza de timp la 3 secunde.

Ultima linie a programului principal de lucru este o secventa de program ce
realizeaza animatia cilindrilor. Astfel pe afisajul HMI, in partea din dreapta jos, a m
implementat o animatie a cilindrilor, iar in functie de senzorii de pozitie A0, A1, B0,
B1si senzorul de vacuum se aprind si se sting dreptunghiurile galbene de pe animatie.

Din punct de vedere software, fiecarui senzor i s -a atribuit o memorie care se
valideaza atunci cand senzorul este activ. Aceasta memorie este corelata cu o
memorie din Data Block -ul HMI -ului, iar prin intermediul memoriei din HMI se
creaza animatia.

5.3 Loagica folosita pentru „ Ciclu3_Move”.

Ciclul presupune mutarea piesei din suportul amplasat in pozitia extins a cilindrului A
catre suportul amplasat in pozitia retras a cilindrului A. Ciclul a fost realizat astfel incat sa
execute aceasta miscare de 3 ori, consecutiv, asteptand plasarea piese i in suport si eliberarea
suportului in care trebuie mutata.
Logica folosita pentru a crea programul de lucru:
• starea 0 (inițializare) – pozitia “HOME”: Cilindrul A, retras, Cilindrul B,
retras, Mecanismul vacuum, dezactivat;;
• starea 1 : Extindere: Cilindrul A, extins, Cilindrul B, retras, Mecanismul
vacuum, dezactivat;
• starea 2 : Coborare fara piesa: Cilindrul A, extins, Cilindrul B, extins,
Mecanismul vacuum, dezactivat;

• starea 3 : Prindere piesa: Cilindrul A, extins, Cilindrul B, extin s,
Mecanismul vacuum, activat;
• starea 4 : Urcare cu piesa: Cilindrul A, extins, Cilindrul B, retras,
Mecanismul vacuum, activat;
• starea 5 : Retragere: Cilindrul A, retras: Cilindrul B, retras, Mecanismul
vacuum, activat;
• starea 6 : Coborare cu piesa: Cilin drul A, retras, Cilindrul B, extins,
Mecanismul vacuum, activat;
• starea 7 : Eliberare piesa: Cilindrul A, retras, Cilindrul B, extins,
Mecanismul vacuum, dezactivat;
• starea 8: Urcare : Cilindrul A, retras , Cilindrul B, retras , Mecanismul
vacuum, dezactivat;

5.3.1 Reprezentarea grafica a sistemului:

Cilindrul A,
Retras, pozitia A0Cilindrul A
Extins, Pozitia,A1Cilindrul B,
Retras, B0
Cilindrul B,
Extins, B1
PiesaCilindrul B,
Retras, B0
Cilindrul B,
Extins, B1
PiesaSenzor
A0Senzor
A1Senzor
B0
Senzor
B1
Senzor
SVACCSenzor
SVACCSenzor
B1Senzor
B0Extindere
Retragere
Coborare cu
piesaUrcare fara
piesaCoborare
fara piesaUrcare cu
piesa
Prindere
piesaEliberare
piesa1
2
345
6
780
Home

5.3.2 Proiectarea diagramei de tranziție a stărilor

Pentru proiectarea cat mai rapida si corecta a sistemului, este recomandat sa se construiasca
diagrama de tranzitie a starilor.
Astfel, p entru „ Ciclu3_Move”, diagrama de tranzitie a starilor este:

Stare Trecere in stare Iesire din stare Acțiune
1 Validarea starii se face prin
intermediul modificarii
memoriei
„Var_Globale.Var”, din
starea „0” in starea „1”
aceasta facandu -se odata cu
FirstScan Actionarea
butonului START
sau a butonului
virtual "HMI TO
PLC".STARTC. Resetare contor si
"Var_Globale".Var
2 Actionarea butonului
START sau a butonului
virtual "HMI TO
PLC".STARTC. Deplasarea
cilindrului A pana la
capatul cursei, lucru
care activeaza
senzorul A1 Extinderea cilindrului A,
cilindru amplasat in pozitia
orizontala
3 Validarea senzorului A1 Deplasarea
cilindrului B pana la
capatul cursei, lucru
care activeaza
senzorul B1 Extinderea cilindrului B,
cilind ru amplasat in pozitia
verticala
4 Validarea senzorului B1 Validarea faptului
ca sistemul de
vacuum
functionaza, acest
lucru fiind
confirmat de un
senzor de vacuum,
SVACC Actionare sistem de vacuum
5 Senzorul SVACC activ Deplasarea
cilindrului B inapoi
in pozitia initiala,
lucru care activeaza
senzorul B0 Retragerea cilindrului
amplasat in pozitia verticala
6 Validare senzor B0 Deplasarea
cilindrului A inapoi
in pozitia initiala,
lucru care activeaza
senzorul A0 Retragerea cilindrului A,
cilindru amplasat in pozitia
orizontala
7 Activare senzor A0 Deplasarea
cilindrului B pana la
capatul cursei, lucru
care activeaza
senzorul B1 Extinderea cilindrului B,
cilindru amplasat in pozitia
verticala si incrementarea
contorului
8 Validarea senzo rului B1 Modificarea valorii
de adevar a
senzorului SVACC Dezactivare sistem de
vacuum

9 Valoarea logica a senzorului
de vacuum este „0” Deplasarea
cilindrului B inapoi
in pozitia initiala,
lucru care activeaza
senzorul B0 Retragerea cilindrului
amplasat in pozitia verticala
10 Deplasarea cilindrului B
inapoi in pozitia initiala,
lucru care activeaza senzorul
B0 Luarea deciziei in
functie de contor Trecere in starea 2 sau in
starea 1

Programul a fost dezvoltat dupa multe incercari si teste, asfel au fost rezolvate
majoritatea problemelor care ar putea aparea. Deoarece securitatea este pe primul loc, programul
are implementata si o logica de safety, astfel, in caz de urgenta, prin apasarea butonului fizic de
pe macheta „STOP” sau a c elui virtual de pe HMI, „S TOP CICLU ” sistemul se opreste complet.

5.4 Proiectarea software. Definirea starilor.

Din punct de vedere software , am gandit programul de lucru structurat pe starile in care
se afla sistemul si pe actiunile care se iau in functie de starea acestuia. Astfel, am folosit o
memorie globala, de tip cuvant, %MW50, denumita sugestiv, „Stari”, declarata in tabelul de
memorii .

Memoria este de tip „cuvant” din cauza faptului ca ciclul are mai multe stari, fiecarei
stare corespunzandui un numar. Acest mod de lucru este foarte rapid si eficient deoarece in loc
sa folosesc cate o memorie de tip „bit” pentru fiecare stare, cu a jutorul unei functi de tip
„MOVE” schimb valoarea starii prin simpla scriere a valorii acesteia in memoria „Stari”.

Prin acest mod de lucru am economisit 9 locatii de memorie de tip „bit” si multe secvente
de cod pentru setarea si resetarea acestora.
Astfe l, programul de lucru incepe cu secventa in care, daca ciclul este activat, variabila
"Var_Globale".Var , activata in prealabil la pornirea automatului, va efectua scrierea valorii „1”
in "Stari" deoarece sistemul se afla in Starea 1 si anume asteaptare.

Folosind un comparator ce are ca scop parcurgerea tuturor starilor in ordinea naturala,
trecerea in starea a doua este restrictionata de conditia principala de securitate, memoria
"Var_Globale".MSTOP sa aive valoare „0”si operatorul sistemului sa apese b utonul fizic,
START, de pe macheta sau butonul „START CICLU” din simularea HMI. Daca aceste conditii
sunt indeplinite, prin intermediul functiei „move” se trece valoarea „2” in „Stari”.

Trecerea in starea 3 se face in cazul in care memoria de securitate este inca in stare „0” si
cilindrul A a ajuns la capat de cursa, astfel validand senzorul „a1”, senzor ce este folosit ca si
conditie pentru aceasta trecere in stare.

Aceasi conditie de safety este necesara si pentru trecerea in starea a 4 -a insa, pe langa
aceasta este necesar si ca cilindrul B sa ajunga in capat si sa valideze senzorul „b1”.

Trecerea in starea numarul 5 se face atunci cand, pe manga memoria de securitate, se
valideaza senzorul de vacuum.

Starea 6 este conditio nata, de altfel ca toate starile, de memoria de securitate inseriata cu
senzorul de pozitie „b0” al cilindrului B. Acest senzor se valideaza cand cilindrul atinge capatul
de cursa in pozitia retras.

A 7-a stare este conditionata de punerea in serie a memoriei de securitate si a senzorului
de pozitie al cilindrului A, „a0”, senzor care indica faptul ca cilindrul este complet retras.

Starea 8, conditionata de memoria de securitate si de validarea senzorului „b1”, senzor
care atunci cand este v alidat indica faptul ca cilindrul B este avansat, este starea in care se face
incrementarea numarului de repetitii al ciclului.
Acesta numarare se face folosind un contor, "IEC_Counter_0_DB" , de tip CTU (Counter
UP) care, atunci cand primeste semnal pe int rarea CU incrementeaza cu 1 valoarea pe care o
avea inainte. Intratea PV reprezinta numarul la care, atunci cand este atins, se activeaza iesirea
acestei functi si anume Q, care seteaza memoria "Tag_2" , memorie folosita pentru luarea deciziei
de repetare a ciclului. Intrarea denumita cu R este intrarea care reseteaza valoarea contorului (
valoarea dupa resetare va fi „0”), aici fiind folosita memoria de tip „bit” "Tag_3" .

Daca sistemul se afla in starea 8, memoria de securitate este inactiva si senzoru l de
vacuum are valoarea „0” se executa trecerea sistemului in starea numarul 9.

Starea numarul 10 este validata de aceasi memorie de securitate inseriata de aceasta data
cu senzorul de pozitie al cilindrului B, „b0”.

Urmeaza cea mai importanta lini e de program a sistemului, luarea deciziei de repetitie a
ciclului. Daca sistemul se afla in starea 10 intervine memoria folosita la counter pe iesirea
acestuia, si anume „ Tag_2" . Daca aceasta memorie are valoare „0” inseamna ca sistemul nu a
efectuat mani pularea piesei de 3 ori, situatie in care din starea 10 sistemul este trimis in starea 2,
stare in care asteapta sa fie plasata piesa in suport pentru manipularea ei. Daca memoria are
valoarea „1” inseamna ca sistemul a efectuat ciclul de 3 ori, fapt ce du ce la trecerea in starea
numarul 1, stare ce presupune asteptarea sistemului pana cand operatorul decide sa se inceapa alt
ciclu. Acest lucru activeaza memoria „Tag_3”, memorie responsabila pentru resetarea
counterului.

Dupa ce au fost definite staril e sistemului, urmeaza denifirea actiunilor fizice care
trebuiesc efectuate in fiecare stare. Astfel, in cele ce urmeaza voi prezenta liniile de
program necesare pentru actionarea fizica a elementelor de executie.
Realizarea definirii actiunilor pentru fiec are stare este conditionata de un
comparator, astfel se clarifica actiunea corespunzatoare starii. In limbaj natural, acest
lucru s -ar traduce ca si cum am pune intrebarea „In ce stare fac actiunea respectiva?”

Starea 1 . In aceasta stare nu sunte necesare actionari ale unor elemente de
executie ci doar resetarea a doua memorii. Prima este memoria "Tag_2" , folosita la
iesirea din counterul responsabil cu numararea, astfel ne asiguram ca ciclul se desfasoara
normal, eliminand posibilitatea de a se tine cont de valori eronate. A doua memorie este
"Var_Globale".Var , variabila folosita pentru trecerea in starea 1, astfel sistemul poate
trece prin fiecare stare, in mod natural. Daca aceasta valoare nu ar fi resetata in starea 1
sistemul nu ar putea trece in stare a viitoare, ar ramane mereu in starea 1.

Starea 2 . Deoarece in aceasta stare cilindrul A trebuie sa se extinda, aici trebuie
actionata electrovalva cilindrului. ( in termeni populari „bobina acestuia”), declarata in
PLC Tags, Default tag table ca si „A+”.

Starile 3 si 7. Aceste stari sunt cele in care cilindrul B coboara cu si fara piesa,
astfel trebuie comandata iesirea specifica acestuia si anume „B”. Deoarece cilindrul B nu
este cu 2 pozitii, aceasta comanda trebuie setata si resetata ulterior.
Insa, sistemul a fost conceput astfel incat, in caz ul in care in suportul din pozitia
extins a cilindrului A, pozitia de unde trebuie sa fie manipulata piesa in acest ciclu, nu
este plasata piesa de manipulat, sistemul asteapta pana la plasarea acesteia si pentru a
evita riscul plasarii pieselor una peste cealalta, lucru care ar putea conduce la defectiuni
grave ale sistemului sistemul nu executa manipularea piesei pana cand suportul unde
trebuie plasata piesa nu este eliberat. Pentru a realiza acest lucru am folosit cei doi
senzori de detectie a piesei, am plasati in dreptul fiecarui suport, in felul urmator: daca
senzorul 1(„SENZ1”), cel amplasat langa suportul unde trebuie mutata piesa are valoarea
„0”(nu detecteaza piesa in suport) si senzorul 2(„SENZ2”), cel amplasat langa suportul
de unde se preia piesa are valoarea „1”( detecteaza piesa in suport), printr -o intarziere de
1.5 secunde, folosita ca masura de singuranta (astfel se evita situatia in care cilindrul ar
putea prinde mana operatorului in timp ce aseaza piesa) se seteaza bobina cilindrului B;

daca ambii senzori sunt validati, sistemul asteapta pana la indepartarea piesei din suportul
unde trebuie adusa cealalta piesa.
Referitor la starea 7, aceasta nu executa decat coborarea cu piesa catre suport deci
nu este nevoie de inca o logica de luare a de ciziei deoarece aceasta se face anterior in
starea 3.

Starea 4. Este necesara setarea vacuumuluipentru a realiza prinderea piesei.
Deoarece aceasta comanda trebuie mentinuta mai mult timp, bobina pentru vacuum
(„V+” ) va fi setata si resetata ulterior.

Starile 5 si 9. Sunt starile in care cilindrul B urca cu si fara piesa. Astfel, pentru
acest lucru este necesara resetarea bobinei.

Starea 6. Raspunzatoare pentru retragerea cilindrului A, aici se va executa
comanda de retragere a acest uia prin activarea bobinei sale. Se va executa si in starea 1
pentru a adue sistemul in pozitia de home in cazul in care in prealabil se alfa in alt ciclu.

Starea 8. Este starea in care se desprinde piesa din sistemul de vacuum astfel
fiind necesara resetarea bobinei „V+”.

Ultimele linii de program sunt realizate pentru afisarea HMI si vor fi tratate intr –
un capitol destinat acestui sistem de afisare.

5.5 Loagica folosita pentru „ C iclu_inv ”.

Acest ciclu presupune operatia inversa ciclului anterior si anume mutarea piesei din
suportul amplasat in pozitia retras a cilindrului A catre suportul amplasat in pozitia extins a
cilindrului A. Ciclul a fost realizat astfel incat sa execute aceasta miscare de 3 ori, consecutiv,
asteptand plasarea pies ei in suport si eliberarea suportului in care trebuie mutata.
Logica folosita pentru a crea programul de lucru:
• starea 0 (inițializare) – pozitia “HOME”: Cilindrul A, retras, Cilindrul B,
retras, Mecanismul vacuum, dezactivat;;
• starea 1 : Coborare fara piesa: Cilindrul A, retras , Cilindrul B, extins,
Mecanismul vacuum, dezactivat;
• starea 2 : Prindere piesa: Cilindrul A, retras , Cilindrul B, extins,
Mecanismul vacuum, activat;
• starea 3 : Urcare cu piesa: Cilindrul A, retras , Cilindrul B, re tras,
Mecanismul vacuum, activat;
• starea 4 : Extindere : Cilindrul A, extins : Cilindrul B, retras, Mecanismul
vacuum, activat;
• starea 5 : Coborare cu piesa: Cilindrul A, extins , Cilindrul B, extins,
Mecanismul vacuum, activat;
• starea 6 : Eliberare piesa: Ci lindrul A, extins , Cilindrul B, extins,
Mecanismul vacuum, dezactivat;
• starea 7: Eliberare piesa: Cilindrul A, extins , Cilindrul B, extins,
Mecanismul vacuum, dezactivat;
• starea 8: Urcare : Cilindrul A, extins , Cilindrul B, retras , Mecanismul
vacuum, dezact ivat;

• starea 9: Retragere : Cilindrul A, retras , Cilindrul B, retras , Mecanismul
vacuum, dezactivat (se ajunge din nou in pozitia initiala);
5.5.1 Reprezentarea grafica a sistemului:

Cilindrul A,
Retras, pozitia A0Cilindrul A
Extins, Pozitia,A1Cilindrul B,
Retras, B0
Cilindrul B,
Extins, B1
PiesaCilindrul B,
Retras, B0
Cilindrul B,
Extins, B1
PiesaSenzor
A0Senzor
A1Senzor
B0
Senzor
B1
Senzor
SVACCSenzor
SVACCSenzor
B1Senzor
B0Extindere
Retragere
Coborare
fara piesaUrcare cu
piesaCoborare cu
piesaUrcare fara
piesa
Eliberare
piesaPrindere
piesa4
5
678
1
230
Home

5.5.2 Proiectarea diagramei de tranziție a stărilor

Pentru a crea un sistem cat mai fiabil si pentru mentenanta usoara a acestuia este
recomandata crearea diagramei de tranzitie a starilor.

Stare Trecere in stare Iesire din stare Acțiune
1 Validarea starii se face prin
intermediul modificarii
memoriei
„Var_Globale.Var”, din
starea „0” in starea „1”
aceasta facandu -se odata cu
FirstScan Actionarea
butonului START
sau a butonului
virtual "HMI TO
PLC".STARTC. Resetare contor si
"Var_Globale".Var

2 Actionarea butonului
START sau a butonului
virtual "HMI TO
PLC".STARTC. Deplasarea
cilindrului B pana la
capatul cursei, lucru
care activeaza
senzorul B1 Extinderea cilindrului B,
cilindru amplasat in pozitia
verticala
3 Validarea senzorului B1 Validarea faptului
ca sistemul de
vacuum
functionaza, acest
lucru fiind
confirmat de un
senzor de vacuum,
SVACC Actionare sistem de vacuum
4 Senzorul SVACC activ Deplasarea
cilindrului B inapoi
in pozitia initiala,
lucru care activeaza
senzorul B0 Retragerea cilindrului
amplasat in pozitia verticala
5 Validare senzor B0 Deplasarea
cilindrului A , in
pozitia extins, lucru
care activeaza
senzorul A 1 Extinderea cilindrului A,
cilindru amplasat in pozitia
orizontala
6 Activare senzor A 1 Deplasarea
cilindrului B pana la
capatul cursei, lucru
care activeaza
senzorul B1 Extinderea cilindrului B,
cilindru amplasat in pozitia
verticala si incrementarea
contorului
7 Validarea senzorului B1 Modificarea valorii
de adevar a
senzorului SVACC
care activeaza
senzorul B1 Dezactivare sistem de
vacuum
8 Valoarea logica a senzorului
de vacuum este „0” Deplasarea
cilindrului B inapoi
in pozitia initiala,
lucru care activeaza
senzorul B0 Retragerea cilindrului
amplasat in pozitia verticala
9 Validare senzor B0 Retragerea
cilindrului A , in
pozitia initiala,
lucru care activeaza
senzorul A 0 Retragerea cilindrului
amplasat in pozitia orizontala
10 Retragerea cilindrului A , in
pozitia initiala, lucru care
activeaza senzorul A 0 Luarea deciziei in
functie de contor Trecere in starea 2 sau in
starea 1

Cu ajutorul acestor explicatii se poate urmarii foarte usor procesul si se pot face
modificari in cazul in care se doreste schimbarea functionari.

5.6 Proiectarea software. Definirea starilor.

Cicilu acesta este simular cu precedentul, am ales sa folosesc aceasi memorie
pentru trecerea prin fiecare stare si sa pastrez aceasi logica pentru implementarea
securitatii. Asadar, programul de lucru va fi similar, pastrand structura definita pe stari si
actiuni ale acestora.
Trecerea sistemului in stare 1 se face, similar cu primul ciclu, atunci cand variabila
"Var_Globale".Var este validata, odata cu pornirea automatului si cand se indeplinesc conditiile
pentru selectarea ciclului respectiv.

Trecerea in starea numarul 2 se va face atunci cand memoria de stop,
"Var_Globale".MSTOP , nu va fi validata si se vor apasa ori butonul fizic de pe macheta,
START, ori butonul virtual din simularea HMI, "HMI TO PLC".STARTC (START CICLU).
De mentionat faptul ca mem oria de stop nevalidata este conditie necesara fiecarei
tranzitii.

Mutarea sistemului in starea 3 se face atunci cand senzorul B1 aeste validat, adica cilindul
B, plasat vertical a ajuns la capat de cursa.

Sistemul va ajunge in starea 4 atunci cand piesa va fi prinsa complet de catre sistemul de
vacuum, lucru care conduce la validarea senzorului „SVCC”.

Trecerea in starea 5 este conditionata de retragerea cilindrului B cu piesa atasata.
Transpus in cod, inseamna validarea senzorului B0.

Starea 6 se valideaza atunci cand cilindrul a se extinde si ajunge in capatul de cursa, lucru
care valideaza senzorul A1, folosit ca si conditie pentru tranzitia starii.

Starea 7, situatie in care sistemul coboara pentru a plasa piesa in suport, se valideaza
atunci cand cilindrul B a ajuns in capat de cursa si a activat senzorul B1.

In starea 8 se ajunge atunci cand sistemul elibereaza piesa, deci senzorul SVACC este
devalidat. Tot aici se realizeaza si contorizarea numarului de prepetitii efectuat e de
sistem. Logica este aceasi cu cea de la ciclul anterior, am pastrat si aceleasi variabile
folosite pentru contor pentru reducerea complexitatii programului. Astfel, cand se
valideaza conditiile pentru trecerea in starea 8, contorul primeste semnal pe intrarea
CU(COUNT UP) si incrementeaza valoarea initiala cu o unitate. Cand sistemul executa
ciclul de 3 ori, se seteaza variabila "Tag_2" , variabila folosita pentru decizie si se
reseteaza counterul prin variabila "Tag_ 3".

In starea 9 se ajunge atunci cand sistemul urca fara piesa, astfel, validandu -se senzorul
B0, folosit ca si conditie de validare.

Urmeaza ca sistemul sa se retraga, adica sa ajunga in starea 10, lucru care se efectueaza
odata cu validarea senzorului de pozitie al cili ndrului A.

Starea 10 este foarte importanta deoarece la nivel ei se ia decizia pentru repetarea
ciclului. Astfel, daca valoarea memoriei "Tag_2" este „0”, sistemul trece in starea 2,
adica nu s -au efectuat 3 repetari ale miscarii. In caz contrar , daca variabila mentionata are
valoare „1” atunci sistemul trece in starea 1 si asteapta din nou inceperea altui ciclu. Tot
aici se si reseteaza counterul prin activarea memoriei "Tag_ 3".

Odata definite starile sistemului, urmeaza sa fie programate actiunile care trebuiesc
indeplinite in functie de fiecare stare.
Starea 1. In aceasta stare, se reseteaza doua memorii, "Tag_2" , memorie raspunzatoare
de luarea deciziei de executie a repetitie i ciclului si "Var_Globale".Var , memorie
raspunzatoare pentru intrarea in prima stare. Prin resetarea acestei memorii ne asiguram
ca sistemul nu intra intr -o bucla infinita si ramane in starea 1.

Starile 2 si 6. Stari respunzatoare pentru coborarea cilin drului B. Astfel se realizeaza
activarea bobinei cilindrului, insa in starea 2, acest lucru se face respectand urmatoarele
conditii:
-senzorul din suportul unde trebuie mutata piesa(SENZ2) sa fie nevalidat, suportul sa fie
gol;
-senzorul din suportul de un de se ia piesa(SENZ1) sa fie validat, suportul sa aive piesa;

Daca ambii senzori au valoarea „0”, sistemul ramane in starea 2 pana cand se indeplinesc
conditiile.

Starea 3. Raspunzatoare pentru activarea vacuumului. Se realizeaza prin setarea
electroval vei „V+”.

Starile 4 si 8. Starile in care sistemul retrage cilindrul B in pozitia initiala.

Starea 5. Stare in care sistemul trebuie sa extinda cilindul A, astfel se activeaza
electrovalva pentru aceasta miscare si anume „A+”.

Starea 7. Resp onsabila pentru oprirea sistemului de vacuum, aici se face resetarea
bobinei acestuia, setata anterior in starea 3.

Starea 9. Raspunzatoare pentru revenirea cilindrului A in pozitia initiala, se va executa
activarea bobinei „A -”. Pentru ca sistemul sa r evina in pozitia initiala in cazul in care a
ramas intr o alta pozitie cand s -a efectuat schimbarea ciclului aceasta miscare se va
efectua si in starea 1.

Urmatoarele linii de program vor fi descrise ulterior in tratarea capitolului destinat afisarii
HMI.

5.7 Loagica folosita pentru „ Ciclu_in -out”.

Ciclul ce urmeaza a fi prezentat este diferit de primele doua prin prisma faptului ca
simuleaza o instalatie care introduce si extrage piese in si din cusaca unui robot industrial. Astfel
se poate optimiza procesul destul de mult iar siguranta operatorului este sporita semnificativ

deoarece acesta nu mai intra in contact cu robotul si se evita riscul unei loviri accidentale. Astfel,
sistemul muta piesa din pozitia extins a cilindrului A, in suportul din pozitia retras, asteapta in
pozitia in care ambii cili ndri sunt retrasi un anumit timp, eu am ales 10 secunde ca fiind timpul in
care robotul executa operatia pe care o are de efectuat iar apoi sistemul duce piesa inapoi in
suportul din care a preluat -o.
Logica folosita pentru a crea programul de lucru:
• stare a 1 – pozitia “HOME”: Cilindrul A, retras, Cilindrul B, retras,
Mecanismul vacuum, dezactivat;
• starea 2 – pozitia “HOME”: Cilindrul A, retras, Cilindrul B, retras,
Mecanismul vacuum, dezactivat;
• starea 3 : Extindere: Cilindrul A, extins, Cilindrul B, retra s, Mecanismul
vacuum, dezactivat;
• starea 4 : Coborare fara piesa: Cilindrul A, extins, Cilindrul B, extins,
Mecanismul vacuum, dezactivat;
• starea 5 : Prindere piesa: Cilindrul A, extins, Cilindrul B, extins,
Mecanismul vacuum, activat;
• starea 6 : Urcare cu piesa: Cilindrul A, extins, Cilindrul B, retras,
Mecanismul vacuum, activat;
• starea 7 : Retragere: Cilindrul A, retras: Cilindrul B, retras, Mecanismul
vacuum, activat;
• starea 8 : Coborare cu piesa: Cilindrul A, retras, Cilindrul B, extins,
Mecanismul vac uum, activat;
• starea 9 : Eliberare piesa: Cilindrul A, retras, Cilindrul B, extins,
Mecanismul vacuum, dezactivat;
• starea 10: Urcare : Cilindrul A, retras , Cilindrul B, retras , Mecanismul
vacuum, dezactivat;
• starea 11 : Coborare cu fara: Cilindrul A, retras , Cilindrul B, extins,
Mecanismul vacuum, dezactivat ;
• starea 12 : Prindere piesa: Cilindrul A, extins, Cilindrul B, extins,
Mecanismul vacuum, activat;
• starea 13: Urcare : Cilindrul A, retras , Cilindrul B, retras , Mecanismul
vacuum, activat ;
• starea 14 : Extindere: Cilindrul A, extins, Cilindrul B, retras, Mecanismul
vacuum, activat ;
• starea 15 : Coborare cu piesa: Cilindrul A, extins, Cilindrul B, extins,
Mecanismul vacuum, activat ;
• starea 16 : Eliberare piesa: Cilindrul A, retras, Cilindrul B, extins,
Mecanismul vacuum, dezactivat;
• starea 17 : Urcare fara piesa : Cilindrul A, extins, Cilindrul B, retras,
Mecanismul vacuum, dezactivat ;
• Revenire in starea 1 ;

5.7.1 Reprezentarea grafica a sistemului:

Cilindrul A,
Retras, pozitia A0Cilindrul A
Extins, Pozitia,A1Cilindrul B,
Retras, B0
Cilindrul B,
Extins, B1
PiesaCilindrul B,
Retras, B0
Cilindrul B,
Extins, B1
PiesaSenzor
A0Senzor
A1Senzor
B0
Senzor
B1
Senzor
SVACCSenzor
SVACCSenzor
B1Senzor
B0Extindere
Retragere
Coborare
fara piesaUrcare fara
piesa
Coborare cu
piesaUrcare fara
piesa
Eliberare
piesaPrindere
piesa2&14
15
4176&18
11
12131
Home
Coborare
fara piesa 3
Prindere
piesa16Urcare cu
piesa5 Coborare cu
piesa 7
Desprindere
piesa8Urcare cu
piesa9Asteptare
10s 10

5.7.2 Proiectarea diagramei de tranziție a stărilor :

5.8 Proiectarea software. Definirea starilor.

Logica de programare ramane aceasi, am folosit aceasi metoda pentru declararea starilor,
cu aceasi memorie de tip cuvant, "Stari -%MW50", sistemul bazandu -se pe aceasi strategie de
impartire a programului in doua parti, definirea starilor si actiunile ce trebuiesc executate in
functie de fiecare stare.

Asadar, dupa ce sunt indeplinite conditiile de activare ale ciclului sistemul trece in
starea1.

Ca si in cazul celorlalte cicluri, starea 2 este conditionata tot de apasarea butonului
„START” sau a unui buton creat in afisajul HMI, „INCEPERE CICLU IN -OUT”.

Umeaza deci, trecerea in starea a 3 a care se face cand sistemul ajunge in pozitia avansat
a cilindrului A s i activeaza senzorul „A1”.

Starea a 4 -a este cea in care sistemul coboara prin intermediul cilindrului B cu scopul de
a prinde piesa, astfel activandu -se senzorul „B1”.

Dupa ce sistemul a prin piesa, deci s -a activat senzorul de vacuum, se trece in st area 5.

Starea 6 se activeaza atunci cand sistemul retrage complet cilindrul B si automat, se
activeaza senzorul „B0”.

Tranzitia catre starea 7 se face imediat dupa ce sistemul a retras cilindrula A si s -a activat
senzorul „A0”.

Starea 8 este stare a in care sistemul coboara cu piesa, cu scopul de a o plasa pentru a fi
preluata si prelucrata de robot.

Starea 9 reprezinta faza in care sistemul opreste mecanismul de vacuum, astfel piesa
ramane in suportul in care trebuia adusa.

Starea 10, starea in care sistemul „paraseste cusca robotului”, cilindrul B se retrage, astfel
ajungand in pozitia de „home”.

Odata ajuns in starea 10, prin intermediul unui timer ce are baza de timp setata la 10s,
sistemul asteapta terminarea operatiei pe care o executa robotul. Dupa cele 10 secunde sistemul
trece automat in starea 11.

Pentru ca sistemul sa treaca la starea 12 este necesara coborarea cu scopul de a prinde
piesa. Astfel, odata activat senzorul „B1” acest lucru se valideaza.

Dupa coborare este n ecesara prinderea piesei, astfel, este activat sistemul vacuum si dupa
prinderea piesei senzorul „SVACC” este validat, rezultand trecerea in starea 13.

Urmeaza ridicarea cu piesa, lucru reprezentat de intoarcerea cilindrului B in origine.
Starea 14 este cea care urmeaza.

Starea 15 este reprezentata de extinderea cilindrului A catre pozitia unde trebuie plasata
piesa.

Starea 16, se valideaza dupa ce sistemul a coborat cu piesa, activandu -se astfel senzorul
„B0”.

Cea de -a 17-a stare se activeaza dupa ce sistemul opreste vacuumul astfel dezprinzandu –
se piesa.

Urmeaza ca cilindrul B sa se trtraga, lucru care conduce sistemul in starea 18.

Dupa toate acestea urmeaza retragerea cilindrului A in pozitia initiala, astfel sistemul
ajungand in starea 1, p entru a se incepe un nou ciclu.

In continuare vor fi prezentate actiunile care sunt necesare fiecarei stari. Ca si in ciclurile
anterioare, s -a tinut cont de conditia de securitate in fiecare stare.
Starea 1. Se reseteaza variabila folosita pentru valid area starii cu scopul de a evita o
bucla infinita.

Starile 2 si 4. Sunt starile in care cilindrul A se extinde.

Starile 3, 7, 11, 15. Starile in care cilindrul B trebuie sa coboare. Astfel, in starea 3 daca
senzorul ce detecteaza prezenta piesei in suportul de unde se muta piesa este activat si celalat,
din suportul unde trebuie dusa piesa este nevalidat, printr -o intarziere de 2 secunde se efectueaza
comanda de extindere a cilindrului B. Cu alte cuvinte, daca avem piesa de manipulat si locul
unde trebuie mutata piesa este liber, dupa 2 secunde sistemul executa miscarea, acest timp fiind o
metoda de prevenire a accidentelor. Restrictiile pentru starea 11 au fost gandite pe acelasi
principiu, diferenta fiind data doar de s chimbarea conditiei senzorilor. Starile 7 si 15 nu au
nevoie de restrictii deoarece din starile anterioare lor (3 respectiv 11) se stie cu certitudine daca
se poate continua.

Starile 4 si 12. Sunt starile in care se seteaza bobina pentru sistemul de vacuum. Astfel
acesta ramane activ pana la resetarea bobinei sale.

Starile 5, 9, 13, 17. Sunt actiunile care reseteaza bobina cilindrului B, astfel cilindrul se
retrage in pozitia initiala.

Starile 1, 6,18. Starile in care cilindrul A se r etrage. Am folosit aceasta comanda si in
starea 1 pentru cazul in care se intra in ciclu si cilindrul este in pozitia extins. Astfel, sistemul
lucreaza in mod normal.

Starile 8 si 16. Starile in care nu mai este necesara mentinerea piesei in sistemul vac uum.

5.9 Loagica folosita pentru „ Ciclu_in -out Grafcet”.

Pe tot parcursul programului, am folosit limbajul de programare „Ladder”. Prin
intermediul ciclului ce urmeaza vreau sa prezint vreau sa prezint modul de programare
„Grafcet”. Ciclul este acelasi cu cel anterior singura diferenta fiind limbajul de programare.

Asadar, acest limbaj de programare se bazeaza foarte mult pe diagrama de tranzitie a
starilor. Practic, programul de lucru este construit pe baza acesteia declarand conditiile necesare
tranzi tiilor si actiunile care se iau in fiecare stare.

In partea din stanga a figurii se declara conditiile necesare sistemului pentru a trece dintr –
o stare in urmatoarea. In partea dreapta avem actiunile, tot aici se scriu si functiile necesare,
timere, c omparatoare, operatii numerice.
Sistemul a fost construit cu 15 „Step -uri”, adica ceea ce am folosit anteriori ca si stari ale
sistemului si pentru fiecare trecere avem cate o tranzitie.
Step 1. Echivalent cu starea 1 din ciclul anterior, aici se comanda bobina „A -” si se
reseteaza variabila ce permite inrearea in pas. Activarea bobinei cilindrului A, pentru retragerea
acestuia se face cu scopul eliminarii riscului ca sistemul sa inceapa ciclul din alta pozitie decat
cea initiala. Trecerea in urmatorul ste p se face cand senzorul „A0” este validat.

Step 2. Ca actiune se va executa avansarea cilindrului A. Conditiile pentru tranzitia catre
Step-ul 3 sunt ca senzorul 1 sa fie validat, senzorul 2, devalidat si sa se apese butonul „START”.
Astfel, trebuie sa avem piesa in suportul de unde se manevreaza iar suportul unde trebuie
manipulata piesa sa fie gol.

Step 3. Singura actiune care se executa aici este activarea bobinei cilindrului B, astfel se
executa avansarea acestuia cu scopul de a prinde piesa. Tranzitia catre urmatorul pas este
conditionata doar de validarea senzorului „B1”, fapt ce atesta avansarea completa a cilindrului.

Step 4. In acest pas se executa doua actiuni simultan, setarea bobinei pentru vacuum si
resetarea bobinei cilind rului B, astfel sistemul prinde piesa si imediat dupa se retrage cilindrul B.
Tranzitia catre urmatorul step se face odata cu validarea senzorului „SVACC”.

Step 5. Pasul in care cilindrul A trebuie sa se retraga, astfel se activeaza electrovalva
„A-”. Tranzitia se efectueaza odata cu activarea senzorului „A0”.

Step 6. Se seteaza „B” cu scopul coborarii cilindrului B pentru a plasa piesa in celalalt
suport. Tranzitia se realizeaza atunci cand se activeaza senzorul „B1”.

Step 7 . Se reseteaza bobina „V+” pentru a se desprinde piesa. Acest lucru devalideaza
senzorul „SVACC”, lucru care conduce la tranzitia catre urmatorul pas.

Step 8. Stepul in care sistemul reseteaza bobina cilindrului B astfel ajungand in pozitia
home unde tr ebuie sa astepte cele 10 secunde, timp in care robotul sa execute operatia asupra
piesei. Pentru aceasta am folosit un timer, "IEC_Timer_0_DB_5" , caruia i -am setat baza de timp
la 10 secunde.( PT := T#10S ). Tranzitia catre urmatorul pas este conditionata de activarea

senzotului „B0” si a iesirii timerului "IEC_Timer_0_DB_5".Q ; cele doua conditii sunt puse in
serie, astfel sistemul va trece in urmatorul pas dupa cele 10 secunde.

Step 9. Se seteaza bobina cilindrului B pentru coborarea cu scopul de a prin de piesa.
Tranzitia catre urmatorul pas fe face atunci cand sunt indeplinite, simultan, urmatoarele 3
conditii: sa fie validat senzorul „B1”, adica cilindrul sa fi avansat complet, „SENZ1” sa fie
validat, piesa sa fie in suport si „SENZ2” sa fie nevalidat, suportul unde trebuie dusa piesa sa fie
gol.

Step 10. Se porneste din nou sistemul de vacuum, momentul in care piesa este prinsa
corespunzator activeasa senzorul „SVACC” care este singura conditie pentru urmatoarea
tranzitie.

Step 11. Se reseteza bobina cilindrului B. Ajungerea acestuia in capat de cursa activeaza
tranzitia catre urmatorul pas.

Step 12. Se actioneaza bobina „A+” a cilindrului A pentru a ajunge deasupra suportului
unde trebuie plasata piesa.

Step 13. In urma setar ii comenzii „B”, cilindrul B coboara, validand senzorul „B1”, lucru
care activeaza tranzitia catre step -ul 14.

Step 14. Urmeaza desprinderea piesei prin resetarea comenzii „V+”. Dupa validarea
senzorului „SVACC” se va face urmatoarea tranzitie.

Step 15. Ultimul pas al sistemului, acesta este raspunzator pentru repunerea cilindrului B
in origine prin resetarea bobinei sale. Tranzitia se face dupa activarea senzorului „B0”. Sis temul
v-a fi tranzitat catre step -ul numarul 2 unde va astepta din nou inceperea ciclului.

Acest tip de programare se face foarte facil, bazat pe diagrama de tranzitie a starilor insa nu
este foarte practic pentru dezvoltarea programelor de o complexi tate mult mai mare.
5.7 Logica folosita pentru „Comenzi manuale”.

In timpul executiei procesului industrial pot aparea diferite situatii care presupun oprirea
siatemului si executarea anumitor miscari pentru a rezolva defecte mecanice sau pentru a
remedia erori de operare a sistemului. Astfel, am creat acest bloc, cu scopul de a se putea
realiza mentenanta sistemului cat mai usor si de a putea rezolva in cel mai scurt timp orice
problema de ordin mecanic sau de ordin de securitate care poate aparea .
Astfel,dupa ce se valideaza blocul de comenzi manuale, vom avea:
-comanda pentru cilindrul B; la actionarea butonului virtual, creat in HMI, „CILINDRUL
B” se va activa bobina acestuia, facandu -l asfel sa coboare. Pentru ca cilindrul sa revina in
pozitia initiala nu este necesara decat intreruperea actionarii buronului.

-comanda pentru avansarea cilindrului A. Se face prin apasarea, o singura data, a
butonului „AVANS CILINDRU A”, care va actiona bobina „A+”. Cand cilindrul A este
avansat complet, adica senzorul „A1” este validat, butonul apasat anterior se reseteaza, astfel
eliminandu -se cazul in care butonul ar ramane setat cu valoarea „1”, caz in care cilindrul ar
ramane avansat chiar daca primeste comanda de retragere.

-comanda pentru retragerea c ilindrului A. Prin apasarea butonului „RETRAGERE
CILINDRU A” se activeaza bobina „A -”, lucru care conduce la retragerea acstuia in pozitia
initiala, activand astfel senzorul „A0” care, ca si in cazul anterior, reseteaza butonul apasat
pentru a evita aceasi situatie in care nu ar mai fi posibila manevrarea cilindrului.

-comanda pentru vacuum. Se apasa butonul „SETARE VACUUM”, lucru care conduce
la activarea bobinei „V+”. Oprirea sistemului se face prin apasarea butonului „RESETARE
VACUUM”. Pentru a difere ntia putin, am folosit aceste doua butoane pentru aceasi memorie,
astfel, primul seteaza memoria iar cel de -al 2 lea o reseteaza.

Capitolul 6. Afisarea HMI (Human -Machine Interface).
6.1 Generalitati.

HMI -ul este o interfata care permite conectarea utilizatorului cu o masina sau cu un system.
Practice, este un ecran tactil, programabil, care permite colectarea de date, executarea de
comenzi, afisarea informatiilor, tot cee ace are nevoie operatorul uman pentru a putea lucre
efficient cu sistemul. Acesta poate fi in diferite forme, integrate in system, integrate pe o tableta
sau chiar pe un computer. In momentul de fata, acest tip de dispozitiv este folosit foarte mult in
domeniul industrial pentru buna d esfasurare a procesului si pentru optimizarea acestuia.
Principali utilizatori de hmi -uri sunt operatorii, integratorii de system si inginerii, deoarece este
foarte usor sa monitorizezi sis a oferi diagnoza in cadrul procesului.
Pentru ca toate aceste luc ruri sa fie posibile este necesara o conexiune cu un PLC si cu
diferiti senzori. Afisoarele pot fi folosite pentru functii simple, cum ar fi monitorizarea unei
reserve de apa, sau pentru functii dezvoltate, cum ar fi interschimbarea a doua instalatii,
gestionand intregul process cu afisare si colectare de date in timp real.
Un avantaj enorm, datorat evolutiei tehnologiei, este faptul ca acest tip de afisare poate fi
dezvoltat si pentru aplicatii mobile, direct pe smartphone, astfel se pot verifica parametri i si
executa comenzi de la distanta, lucru ce poate fi foarte util in anumite situati.

6.2 Proiectarea simularii HMI.

Am ales pentru simularea sistemulu, un afisaj de tip Siemens TP 1200 Comfort, ce are un
ecran TFT, cu o diagonala de 12,1 inch, 16 milioane d e culori, interfata PROFINET si 12 mb
memorie configurabila.

Adaugarea afisajului in proiect se face accesand feresatra “Add new device”, se
selecteaza HMI si se cauta produsul droit.

Conectarea afisajului la PLC se face prin PROFINET, conectandu -se intre ele cele 2 slot –
uri.

Odata adaugat, se creaza un ecran nou unde, ulterior se dezvolta aplicatiile necesare.

Ca si in cazul automatului programabil, afisorul vine cu propria lista de taguri, unde se
vor declara memoriile folosite pentru butoan e, elemente de afisare, etc.
Astfel, in programul principal am creat un DB (data block), “HMI TO PLC”, in care am
adaugat toate memoriile folosite in cadrul afisajului, pentru a realiza corelarea automatului cu
afisajul.

6.3 Descrierea sistemului.

Pentru usurinta operarii am ales sa folosesc o singura pagina in care am inglobat toate
functiile necesare sistemului. Am impartit afisarea in 6 categorii.
Securitate.
Prima categorie este cea pentru Securitate, astfel, aici am creat 4 butoane, grupate doua
cate doua. Primul grup, “ACTIVARE COMENZI MANUALE” si “DEZACTIVARE
COMENZI MANUALE” reprezinta prima conditie de Securitate, necesara activarii ciclului
“COMENZI MANUALE”. Cele doua butoane au fost create avand la baza o singura memor ie,
“HMI TO PLC_ACM ”, momorie ce are asociat tag -ul din DB -ul PLC -ului "HMI TO
PLC".ACM . Astfel, cand se apasa pe butonul pentru activarea comenzilor manual, bit -ul “HMI
TO PLC_ACM ” se seteaza, implicit setandu -se si "HMI TO PLC".ACM , resetarea acestuia
facandu -se odata cu apasarea butonului pentru dezactivarea comenzilor manuale.
Pentru a sti mereu in ce stare sunt butoanele, am atasat fiecaruia un mic patratel galben
care este aprins atunci cand butonul este actionat.

Al doilea set de butoan e l-am creat pentru a evita riscul apasarii din greseala a butonului
pentru activarea comenzilor manual. Astfel, “ACTIVARE COMENZI MANUALE SAFETY” si
“DEZACTIVARE COMENZI MANUALE SAFETY” au fost create respectand acelasi principiu
ca in cazul celor anterio are, memoriile fiind diferite, “ HMI TO PLC_ACMS ” pentru afisor
respectiv "HMI TO PLC".ACMS pentru PLC.

Aceste 4 butoane sunt folosite ca si conditii de validare pentru cele 4 cicluri ale
sistemului. Astfel, daca una dintre cele doua butoane pent ru activarea comenzilor vor fi apasate,
sistemul nu va valida decat ciclul pentru comenzi manuale.

Comenzi manuale.
Urmeaza butoanele create pentru comenzile manuale. Sunt 5 ca si numar, 2 pentru
cilindrul A, unul pentru cilindrul B si 2 pentru vacuum.
Butonul “AVANS CILINDRU A”, avand la baza memoria “ HMI TO PLC_CILAAV ”,
asociata cu "HMI TO PLC".CILAAV , atunci cand este apasat activeaza bobina “A+”, lucru care
conduce la extinderea cilindrului, resetarea acestuia facandu -se odata cu validarea senzorului
“A1”.
Butonul “RETRAGERE CILINDRU A”, schimba valoarea memoriei “ HMI TO
PLC_CILART ” si implicit a memoriei associate, "HMI TO PLC".CILART , astfel actionandu -se
bobina “A -“, cilindrul retragandu -se pana in capatul de cursa, activand astfel senzorul “A0” ca re
reseteaza valoarea memoriilor.

Cilindrulului B, avand o singura bobina, pentru avans deoarece retragerea se face pe baza
mecanismului cu arc cand bobina nu mai este activate, i -am asociat un singur buton si anume
“CILINDRUL B”. astfel, la apasarea acestui buton, prin intermediul memoriilor “ HMI TO
PLC_CILB ” si "HMI TO PLC".CILB se activeaza bobina “B”. cat timpe este actionat butonul
cilindrul coboara sis ta coborat. Cand butonul nu mai este apasat cilindrul se retrage.

Ultimele doua butoane din aceasta categorie sunt “SETARE VACUUM” si “RESETARE
VACUUM”, construite pe logica setarii si resetarii memoriei “ HMI TO PLC_VACCUM ”
asociata cu "HMI TO PLC".VACCUM . Astfel la apasarea butonului de setare se porneste
vacuumul si se opreste la apasarea celui de resetare.

Selectare ciclu.
Sase butoa ne fac parte din aceasta categorie, grupate doua cate doua, avand la baza aceasi
logica de setare si resetare a unei memorii ce are ca scop interblocarea intre cicluri, astfel
evitand u-se riscul de a se seleca doua cicluri simultan.
Primele doua sunt folosite pentru “Ciclu3_Move”, pentru validarea ciclului, butonul
“START CICLU MOVE” trebuie sa fie actionat, deci memoriile “ HMI TO PLC_STCMV ” si
"HMI TO PLC".STMV vor fi setate, resetare a lor facandu -se cand se apasa “SFARSIT CICLU
MOVE”. In cazul in care ciclul a fost efectuat si se doreste inceperea altui ciclu, trebuie apasat
butonul “SFARSIT CICLU MOVE” pentru ca ciclul ales sa poata fi validat.

Pentru ciclul “CICLU_INV” s -au folosit butoanele “START CICLU INVERS” si
“SFARSIT CICLU INVERS”. Memoria folosita pentru interblocare este “ HMI TO
PLC_STCINV ” respective memoria asociata, "HMI TO PLC".STCINV . Se pastreaza principiul
folosit anterior.

Setul urmator de butoane este folosit pentru “CICLUL IN -OUT”, ciclu ce simuleaza
instalatia de insertie -extractie piesa din cadrul custii unui robot. Memoria alocata acestor butoane
este “ HMI TO PLC_ACIO ” ce are asociata memoria din Data Block -ul plc -ului, "HMI TO
PLC".ACI O, aceste memorii setandu -se odata cu apasarea butonului de start ciclu si resetandu -se
la apasarea butonului de sfarsit ciclu. Este foarte importand ca dupa terminarea ciclului, in cazul
in care se doreste schimbarea ciclului, sa se apese “SFARSIT CICLU I N-OUT”, altfel ciclul ales
nu se va valida.

Comenzi principale macheta.
Pentru a putea controla sistemul in totalitate prin intermediul HMI -ului, am simulat si
cele doua butoane fizice de pe machete, “START” si “STOP”. Rolul acestora este exact ace lasi
cu cele fizice, ele find raspunzatoare pentru inceperea fiecarui ciclu, butonul “START”
respective pentru oprirea in caz de urgenta in timpul ciclului “STOP”.
Logica folosita pentru cele doua butoane este aceasi cu logical or fizica si anume Normal Op en,
adica in starea lor naturala (neapasat) contactul electric este interrupt. Astfel ambele butoane sunt
construite avand la baza cate o memorie care se seteaza pe “Press” adica la apasarea butonului si
se reseteaza la “Release”, la eliberarea butonului. Memoriile folosite sunt “ HMI TO
PLC_STARTC ”, “HMI TO PLC_STOPC ” ce au ca memorii associate in plc memoriile "HMI
TO PLC".STARTC respectiv "HMI TO PLC".ST OPC.

Animatie a pozitiei cilindrilor.
Prin intermediul figurilor geometrice si a senzorilor d e pozitie am creat o animatie grafica
care ne arata in timp real pozitia fiecarui cilindru chiar si a starii sistemului de vacuum. Astfel, se
vor aprinde “ledurile galbene” in functia de starea in care se afla sistemul. Am realizat acest
lucru prin alocare a pentru fiecare led a unei memorii, care se activeaza atunci cand senzorul
afferent ei se activeaza. Fiecare memorie are cate o alta memorie, definite in cadrul afisajului, cu
scopul de a face legatura intre cele doua entitati, PLC si HMI.

Logica folosita pentru aprinderea si stingerea ledurilor este de tip “Visibility”, setata din
Properties, Animations, Visibility. Am setat ca tag de trigerare, pentru fiecare led in parte,
memoria care ii corespunde si am modificat anumiti parametri.

Logica de programare este farte simpla, pentru fiecare sensor este folosita o bibin, fara
retinere, validate odata cu senzorul.

Atentionari in timpul procesului.
Pentru buna desfasurare a procesului industrial si pentru a avea date exacte in timp real
despre cee ace se intampla, am creat niste atentionari personalizate pentru sistemul pe care l -am
conceput. Am conceput cate doua atentionari pentru ciclurile repetitive, “CICLU3_MOVE” si “
“CICLU_INV”.

Pentru ciclul Move, prima atentionare se numes te “Lipsa piesa de manipulat -C.MOVE ”,
este un buton setat astfel incat sa apara sis a dispara in functie de valoarea unui bit, “ HMI TO
PLC_ALDM1 ”, caruia i -am atasat un text si i -am modificat parametrii.

Setarea memoriei “ HMI TO PLC_ALDM1 ” conduce la af isarea butonului, resetarea
acestuia conducand la disparitia mesajului de pe ecranul HMI.
Logica de programare are la baza variabila "Var_Globale".VRA1 , “MEMORIE
VALIDARE CICLU MOVE”, variabila ce se seteaza atunci cand ciclul Move este validat si
sistem ul se afla in starea 2. Resetarea variabilei se face atunci cand sistemul se afla in starea 1 si
ciclul Move nu mai este validat. Aceasta variabila este folosita in cadrul ambelor linii de
program pentru cele 2 alarme ale ciclului Move.

In cazul in car e sistemul se afla in starea 2 sau 3 si valoarea senzorului de prezenta de
unde se ia piesa, “SENZ2”, este 0, adica piesa ce trebuie manipulata lipseste si variabila
prezentata anterior, "Var_Globale".VRA1 are valoarea 1 atunci se va actiona printr -o bobi na
bitul folosit pentru atentionarea “Lipsa piesa de manipulate -C.Move”, "HMI TO
PLC".ALPDM1 .

In cazul in care sistemul se afla in starea 3 si senzorul de pozitie amplasat in locul unde
sistemul trebuie sa aduca piesa, “SENZ1” in acest caz, este validat, (inseamna ca piesa
manipulare a fost uitata in support iar in cazul in care nu se indeparteaza exista riscul coliziunii
cu urmatoarea pies ace trebuie adusa) se va active bobina ce modifica valoarea din 0 in 1a bitului
"HMI TO PLC".APUS1 , astfel pe ecranul HMI va aparea atentionarea” “Piesa uitata in support,
RISC ACROSARE -C.Move”.

Pentru c iclul invers am folosit aceasi logica, incepand prin setarea si resetarea unei
memorii responsabile cu aparitia atentionarilor doar cand ciclul invers este validat. Astfel, daca

sistemul se afla in starea 2 se seteaza variabila "Var_Globale".VRA2 iar cand sistemul termina
ciclul, adica executa miscarea de manipulare de 3 ori si implicit ajunge in starea 1, variabila
aceasta se reseteaza.

Pentru ca atentionarea “Lipsa piesa de manipulate -C.Inv” sa apara pe ecran este necesar
ca sistemul sa se a fle intr -una din starile 1 sau 2, valoarea senzorului responsabil cu detectia
piesei ce trebuie manipulata, “SENZ1” sa fie 0 si memoria folosita pentru validarea ciclului sa
fie 1.

Cea de -a doua atentionare, “Piesa uitata in support, RISC ACROSARE -C.Inv” va aparea
pe ecran atunci cand sistemul se va afla intr -una din starile 1 sau 2, valoare senzorului pozitionat
in suportul unde trebuie dusa piesa, “SENZ2” va fi 1, memoria pentru va lidarea ciclului va fi 1 si
valoarea memoriei "Var_Globale".MAATCI sa fie tot 1.

Variabila folosita in plus fata de ciclul Move, "Var_Globale".MAATCI , are rolul de a
reseta atentionarea “Piesa uitata in support, RISC ACROSARE -C.Inv” atunci cand sistemul
executa a 3 -a manipulare. Astfel, in cazul in care sistemul a executat cele 3 manipulari si se trece
in alt ciclu, alarm ava disaparea de pe ecran, evitandu -se riscul afisarii de date eronate.
Logica folosita se bazeaza pe valoarea counterului, as tfel cand counterul
"IEC_Counter_0_DB".CV are valoarea 0,1 sau 2, memoria se va seta, resetarea acesteia facandu –
se cand counterul atinge valoarea 3.

Programul realizat poate fi implementat fara nicio problema pe orice sistem compatibil,
tinandu -se cont de parametrii software cat si hardware. Consider ca sunt indeplinite cerintele
pentru ca sistemul sa functioneze corespunzator atat din punct de vedere al proiectarii si
sigurantei cat si din punct de vedere al desfasurarii procesului.

Similar Posts