Documente Academic
Documente Profesional
Documente Cultură
1
IV.7.2 Exemplu de utilizare a unui SFC pentru
realizarea unei aplicații .......................................................... 101
Bibliografie .......................................................................... 103
ANEXA.................................................................................. 106
Tipurile de date definite în IEC 61131-3[31].................... 106
2
Lista figurilor
3
Fig. 33 - Contact tranziție pozitiva (a), contact tranziție negativă (b) [30]
.................................................................................................................... 50
Fig. 34 - Front se undă crescător ........................................................... 50
Fig. 35 - Front de undă descrescător ..................................................... 51
Fig. 36 - Bobină (a), bobină negată (b) [30] ........................................... 51
Fig. 37 - Bobină SET cu reținere (a), bobină RESET cu reținere(b) [30]52
Fig. 38 - Bobina front crescător (a), bobină front descrescător (b) [30] . 52
Fig. 39 - Elementele structurale ale limbajului LD ................................. 54
Fig. 40 - Realizarea funcției SAU in limbaj LD ....................................... 55
Fig. 41 - Realizarea funcției SI in limbaj LD .......................................... 55
Fig. 42 - Realizarea funcției NU utilizând limbajul LD ............................ 55
Fig. 43 - Realizarea funcției NAND utilând limbajul LD ........................ 56
Fig. 44 - Realizarea funcției NOR utilizând limbajul LD ......................... 56
Fig. 45 - Montaj PLC, două butoane ND cu revenire, bec. - schemă
simplificată................................................................................................... 57
Fig. 46 - Program pornire element acționat - nefuncțional .................... 59
Fig. 47 - Program pornire element acționat ........................................... 60
Fig. 48 - Implementarea funcției START-STOP utilizând bobine de tip
SET/RESET (LATCH/UNLATCH) ............................................................... 60
Fig. 49 - Schema electrică pentru implementarea condiționării ............. 61
Fig. 50 Montaj utilizând un AP pentru implementarea schemei electrice
din figura 49 ................................................................................................ 62
Fig. 51 - Programul LD pentru îndeplinirea condiționării stabilite cu
montajul din figura 50. ................................................................................. 63
Fig. 52 Montaj utilizând un AP si butoane ND fără reținere
implementarea schemei electrice din figura 49........................................... 64
Fig. 53 Programul LD pentru îndeplinirea condiționării stabilite cu
montajul din figura 52. ................................................................................. 65
Fig. 54 Schema pneumatică - simplificată - pentru acționarea unui piston
.................................................................................................................... 66
Fig. 55 Programul LD pentru acționarea pistonului ............................... 67
Fig. 56 Simbolizarea temporizatorului TON (TwidoSuite V2.31) ........... 68
Fig. 57 Simbolizare temporizator TON (Allain Bradley) [48] .................. 69
Fig. 58 Funcționarea temporizatorului TON ........................................... 70
Fig. 59 Exemplu de utilizare a funcției TON .......................................... 71
Fig. 60 Setarea parametrilor pentru un temporizator (TwidoSuite V2.31)
.................................................................................................................... 72
Fig. 61 Simbolizarea temporizatorului TOF (TwidoSuite V2.31) ........... 72
Fig. 62 Funcționarea temporizatorului TOF ........................................... 73
Fig. 63 Simbolizarea temporizatorului TP (TwidoSuite V2.31) .............. 74
4
Fig. 64 Funcționarea temporizatorului TP .............................................. 74
Fig. 65 Simbolizarea unui numărător (TwidoSuite V2.31) ...................... 77
Fig. 66 Exemplu de utilizare a unui numărător ....................................... 77
Fig. 67 Exemplu de instrucțiune IL ......................................................... 79
Fig. 68 Funcția SI în limbaj LD respectiv IL ............................................ 81
Fig. 69 Funcția SAU în limbaj LD respectiv IL ........................................ 81
Fig. 70 Exemplu de program in LD si IL utilizând funcția SET ............... 81
Fig. 71 Exemplu de program complex in limbaj LD si IL ........................ 82
Fig. 72 Program in LD si IL utilizând un numărător ................................ 83
Fig. 73 Reprezentarea etapelor intr-un grafic SFC ................................ 94
Fig. 74 Reprezentarea unei etape inițial active ...................................... 94
Fig. 75 Reprezentarea unei acțiuni asociate unei etape și legătura
orientată ....................................................................................................... 95
Fig. 77 Receptivitate asociată unei tranziții ............................................ 95
Fig. 76 Tranziția ...................................................................................... 95
Fig. 78 Exemplu de SFC ........................................................................ 96
Fig. 79 Ramificație de selecție (doar o singura ramură se va executa) . 97
Fig. 80 Selecția unei ramuri utilizând receptivitatea ............................... 97
Fig. 81 Saltul peste etape [3]. ................................................................. 98
Fig. 82 Ramificație paralelă .................................................................... 99
Fig. 83 SFC pentru o presă de ștanțat[6A] ........................................... 102
5
Lista tabelelor
Tab. 1 Avantajele și dezavantajele automatelor programabile ............. 13
Tab. 2 Tabel comparativ al principalelor caracteristici ale elementelor
utilizate pentru ieșirile AP. ........................................................................... 27
Tab. 3 Numerele 1-60 în baza 10 respectiv baza 2 ............................. 35
Tab. 4 Tabelul de adevăr al funcției compelentare (negarea) .............. 37
Tab. 5 Tabelul de adevăr al funcției SAU ............................................. 38
Tab. 6 Tabelul de adevăr al funcției ȘI ................................................. 38
Tab. 7 Tabelul de adevăr al funcției NOR ............................................. 39
Tab. 8 Tabelul de adevăr al funcției NAND .......................................... 41
Tab. 9 - Corespondența Adrese - Intrări fizice ..................................... 63
Tab. 10 Instrucțiunile specifice IL......................................................... 79
Tab. 11 - Declararea variabilelor in limbajul ST [25]. ........................... 85
6
I. DEZVOLTAREA AUTOMATELOR
PROGRAMABILE
7
Principalele dezavantaje al sistemelor de control cu
relee electromagnetice sunt:
Costuri ridicate legate de punerea in funcțiune și
mentenanța lor.
Lipsa de flexibilitate pentru a extinde procesul,
precum și timpul foarte mare necesar pentru a
regla procesul.
Probleme mari în ceea ce privește mentenanța
acestor sisteme, principalele probleme fiind
legate de contacte uzare, fire desfăcute, volum
mare de informație care trebuia actualizată în
cazul realizării modificărilor în structura hardware
(cablaje, relee etc.)
8
criterii un “controler standard de mașină” mai trebuia să
permită:
Extinderea avantajele circuitelor statice la 90%
din mașinile din fabrică.
Reducerea timpilor de nefuncționare ale
instalațiilor datorate problemelor cu sistemul de
comandă.
Extinderea facilă a funcțiilor existente – prin
realizarea unei structuri modulare.
Utilizarea în mediu industrial (umiditate ridicată,
temperaturi ridicate, vibrații etc.)
9
Fig. 2 - Automatul programabil Modicon 084 [15]
10
o serie de companii care activau in domeniul aplicațiilor
industriale să desfășoare cercetări privind posibilitatea
programării PLC-urilor utilizând calculatorul care era în plin
proces de dezvoltare în aceea perioadă și prin intermediul
căruia puteau fi înlocuite terminalele hardware dedicate.
Compania ICOM Software a fost prima care a oferit un mediu
de programare cu o interfață pentru automatele programabile
produse de Allen-Bradley. Compania ICOM Software a
fuzionat cu Rockwell Automation in 1993.
Compania Taylor Industrial Software a fost prima
companie care a oferit un mediu de programare utilizând o
interfață pentru automatele programabile Modicon
În anii 80 PLC au cunoscut o dezvoltare intensă
înglobând funcții de control distribuit. În anii 90 în domeniul
automatelor programabile a început să apară
standardizarea,funcțiile Ethernet, peer-to-peer au devenit
disponibile de la aproape toți producătorii de automate
programabile. EEPROM-ul și memoriile Flash înlocuit
memoriile EPROM din anii 1980. PC-ul și afișajele CRT au
devenit un standard acceptat în industrie și au început să
înlocuiască comutatoarele și indicatoarele luminoase de pe
panourile de comandă.
Redundanța pentru PLC-uri a devenit un standard.
Primii ani ai secolului XXI au văzut o consolidare a
producătorilor de PLC-uri. Au fost dezvoltate PLC-uri Nano sau
Pico având dimensiuni miniaturale, unele la fel de mici ca relee
industriale pe care le-au înlocuit. Au fost introduse PLC de
11
siguranță oferind triplă redundanță. Panourile LCD ca interfață
cu operatorul au înlocuit în mare măsură afișajele CRT. [5]
12
Avantaje Dezavantaje
Număr mare de intrări și ieșiri Nu utilizează la capacitate
maximă capacitatea de
procesare a
microprocesorului
Construcție specială adaptată Modul lor de programare este
mediului industrial, sunt fiabile predispus erorilor.
și rezistente
Reprogramabil Util pentru decizii te tipul
DA/NU
Posibilitate de extensie (în Nu poate monitoriza în mod
unele cazuri) continuu intrările
Adaptat pentru aplicații de Flexibilitate redusă
supervizare comparativ cu
microprocesoarele (sistemul
de operare al automatelor
programabile este proprietar,
producătorii nu oferă acces la
această componenta)
Instalare facilă
Tab. 1 Avantajele și dezavantajele automatelor programabile
13
II. STRUCTURA AUTOMATELOR
PROGRAMABILE
14
Automatele compacte au avantajul unei utilizări facile, o
structură mai simplă și un cost mai redus. Un exemplu de
automat programabil compact este prezentat în figura 6.
15
fixă (numită șasiu) numărul și pinul intrărilor sau a ieșirilor
poate fi modificat.
16
automatului programabil. În general tensiunea de alimentare
ale surselor pentru AP este 220V c.a (pentru Europa) , 110V
c.a. (pentru S.U.A) sau 24 V c.c. Majoritatea producătorilor
preferă să utilizeze ca tensiune de alimentare 24 V c.c.
deoarece astfel același automat programabil poate fi utilizat
indiferent de continent, obținerea tensiunii de 24 V C.C. de la
rețea realizându-se prin intermediu unei alte surse de
alimentare ( în general surse de alimentare în comutație,
montate în majoritatea echipamentelor).
În funcție de tipul automatului programabil sursa de
alimentare poate fi inclusă în automatul programabil (în general
în cazul automatelor programabile compacte) sau poate fi un
modul (în cazul automatelor programabile de tip modular).
17
În gazul automatului programabil prezentat în figura 7,
ultimul modul este modulul de alimentare. La acest modul
tensiunea de intrare este de 24 V C.C., prin acest modul se
realizează alimentarea tuturor componentelor automatului
programabil inclusiv a altor module de extensie care se pot
monta.
Majoritatea automatelor programabile includ și o baterie
sau acumulator pentru menținerea informațiilor scrise în
memoria volatilă (în funcție de producător).
19
procesorul este i plasat în modul de funcționare, astfel încât să
poată executa programul și să opereze procesul dorit. [25]
În modul Execuție AP-ul este în deplina funcționare,
face toate verificările parametrilor proprii de funcționare și de
exploatare conform programului pe care îl rulează. Se
realizează citirea intrărilor și ieșirile sunt activate în consecință.
În acest mod AP-ul poate realiza comunicarea cu alte unități
prin intermediul RS232, Profibus, SCADA sau CC-Link
(protocoale de comunicație). [25]
În modul oprit rularea programului procesorului, ieșirile
nu sunt activate (toate ieșirile AP tec în zero logic pentru ieșirile
digitale respectiv 0V pentru ieșirile analogice).
În modul reset se realizează trecerea AP în condițiile
inițiale de funcționare fără a ștergerea registrelor sau memoriei.
Această funcție se mai numește și resetare la cald. Dacă
resetarea se realizează cu ștergerea totala a registrelor,
intrărilor și ieșirilor aceasta se numește resetare la cald. [25]
În fig. 9 este prezentat modul în care un AP rulează
programul.
Viteza de scanare este foarte mare,deoarece AP-ul
controlează situații reale. Ciclul de execuție prezentat în figura
9 are loc în cadrul unui AP de aproximativ 1000 de ori pe
secundă (valoarea este aproximativă, depinde de tipul AP,
numărul de intrări-ieșiri, complexitatea programului, frecvența
procesorului, viteza memoriilor etc.). Uneori poate varia chiar
pe o scanare de bază de scanare în funcție de programul de
20
bucle fiind pornit și în afară de intrări și / sau ecuații de
program.
21
Memoria utilizată în cadrul automatelor programabile
este de două tipuri. Memoria ROM (Read Only Memory) care
este o memorie permanentă utilizată pentru stocarea firmware-
ul automatului programabil (prin firmware se înțelege un
program special, de mici dimensiuni, care asigură comanda și
controlul unor aparate și dispozitive de o oarecare complexitate
[46] ). Pentru stocarea unor informații tranzitorii respectiv
statusul intrărilor si a ieșirilor și date referitoare la diverse
temporizatoare sau numărătoare se utilează memoria RAM (
Random Access Memory - este denumirea generică pentru
orice tip de memorie se poate acces aleator, oferind acces
orice locație de memorie sau indiferent de ordine).
Programul automatului programabil se stochează în
memorii non volatile de tip EEPROM. Arhitectura memoriilor și
modul în care acestea sunt utilizate in cadrul automatelor
programabile diferă de la un producător la altul. Afle în cazul
unor producători ( ex.GE-Fanuc) se utilizează memoria
EEPROM pentru stocarea programului însă la inițializarea
automatului programabil, programul va fi transferat în memoria
RAM pentru a fi executat de către procesor. În acest caz
automatele programabile sunt dotate cu o cantitate suficientă
de memorie RAM pentru a stoca variabilele și programul.
Totodată acest tip de automate programabile necesită o
confinare speciala atunci când sunt programate, pentru a
transfera noul program din memoria RAM unde este stocat
inițial în memoria permanentă EEPROM. [26]
22
Alți producători ( ex. Keyence) rulează programul direct
din memoria EEPROM. În acest caz cantitatea de memorie
RAM este mai redusă iar în cazul programării, programul nou
se scrie direct in EEPROM înlocuind vechiul program. [26]
Capacitățile de memorie de PLC - uri variază. Capacități
de memorie sunt adesea exprimate în termeni de kilooctet (KB)
(eng. kilobyte). Un byte este o grupare de 8 biți. Un bit este o
locație de memorie care poate stoca un număr binar care are
valoarea 1 sau 0. Memoria 1KB înseamnă că există 1024 biți
de RAM. Memorie 16K înseamnă că sunt 16 x 1024 = 16384
biți de RAM. Datorită dezvoltării rapide a memoriilor acestea au
devenit accesibile si oferă capacități din ce în ce mai mari,
astfel ca la majoritatea AP actuale capacitatea de memorie
nevolatilă se situează între 128 MB și 1GB, memoria RAM între
32 KB și 512 MB . Este de notat faptul că în ceea ce privește
cantitatea de memorie instalată sunt o serie de factori care
influențează acest lucru cum ar fi complexitatea funcțiilor
existente la nivelul AP și care influențează dimensiunea
programului și implicit impune o cantitate mai mare de memorie
nevolatilă, la fel cum strategia de rulare a programului din
memoria nevolatila sau din memoria RAM influențează
cantitatea de memorie volatilă instalată de către producător.
Cantitatea de memorie nu are o influență majora asupra
performanțelor AP, memoria instalată de producător fiind
suficientă în marea majoritate a aplicațiilor care pot fi
dezvoltate cu un anumit AP.
23
II.3. Module de intrare
24
galvanică între elementul conectat la automatul programabil și
unitatea de procesare.
25
Dispozitivele de ieșire au rolul de a furniza semnal de
ieșire corespunzător elementului conectat la ieșire atunci când
unitatea de procesare transmite un semnal în acest sens.
Modulele standard de ieșire oferă următoarele tipuri de
semnal 24 V C.A., 48 V C.A., 220 V C.A. , 120 V C.A., , 24 V
C.C., 48 V C.C., 120 V c.c., 220 Vc.c., și TTL, [28] cu
observația că pentru fiecare tip de semnal exista o intrare sau
un modul separat în funcție de arhitectura automatului
programabil.
În figura 11 este prezentată schema electrică a unui
modul de ieșire binar. Elementul esențial al modului îl
constituie optocuplorul (OC) care realizează o separare
galvanică între elementul conectat la automatul programabil și
unitatea de procesare.
26
tranzistoare pot comuta numai C.C. iar capacitatea de
comutare (curentul maxim) este în general mai mic decât în
cazul releelor. Ieșirile pe tranzistoare pot fi PNP sau NPN.
Avantajul principal în constituie însă timpul de comutare, care
este semnificativ mai mic comparativ cu cel al releelor.
Ieșirile utilizând triace sunt utilizate pentru aplicații unde
este necesară conectarea la AP a unor componente care
funcționează in C.A. [33]
În tabelul sunt prezentate comparativ caracteristicile
principalelor elemente utilizate ca elemente de comutație
pentru modulele de ieșire.
27
comunicație chiar și numai pentru această funcție. În anii 80
automatele programabile se erau în general programate cu
echipamente furnizate de producătorul AP-ului, în general
aceste echipamente nu erau standardizate.
În anii 90 majoritatea AP-urilor au început să fie
programate utilizând o aplicație dedicată care rula pe un PC.
Deoarece porturile PC-urilor erau standardizate și producătorii
de automate programabile au fost nevoiți să utilizeze
protocoale compatibile. În general programarea AP-urilor se
realiza utilizând portul serial ( protocolul RS 232, conectorul tip
DE9).
În figura 12 este prezentat automatul programabil
Tengcontrol T910 care are două porturi RS232.
28
În ultima perioadă majoritatea automatelor programabile
includ și un port Ethernet care permite conectarea automatului
programabil într-o rețea. Programarea se realizează în general
prin portul Ethernet.
În funcție de complexitatea automatului programabile,
pot exista o serie de alte porturi care să îi permită comunicarea
cu alte echipamente sau automate programabile. Un exemplu
în acest sens este Modbus care este un protocol de
comunicații seriale publicate inițial de Modicon (acum
Schneider Electric), în 1979 pentru utilizarea cu automatele
programabile produse de ei. Astăzi Modbus este un standard
în industrie și are o serie de variante și un umăr foarte mare de
aplicații.
Modbus RTU - Aceasta este utilizat în
comunicație serială și folosește o reprezentare
compactă, binară a datelor de comunicare.
Modbus ASCII - Aceasta este utilizat în
comunicație serială și utilizează caractere ASCII
pentru comunicare.
Modbus TCP / IP sau Modbus TCP - Aceasta
este o variantă Modbus utilizată pentru
comunicarea prin rețele TCP / IP.
O serie de automate programabile includ porturi seriale
de comunicație care implementează protocolul Modbus,
acestea fiind utilizate pentru conectarea cu diverse periferice.
Principalele periferice care se pot conecta la automate
29
programabile pentru transmiterea de date utilizând protocoale
din familia Modbus sunt:
Cititoare de coduri de bare;
Cantare electronice;
Afișaje LCD.
Pe măsură ce sistemele de control devin tot mai
complexe, apare necesitatea ca acestea să dispună de o
comunicare eficientă între componentele sistemului. Unele
echipamente sau sisteme complexe necesită ca automatele
programabile cu care sunt dotate să poată comunica între ele
astfel încât să poată fi realizată o anumită funcție (de exemplu
interconectarea a două centre de prelucrare în cadrul unei linii
tehnologice, sau în cadrul unui sistem flexibil, transmiterea de
informații către un calculator de proces, o baza de date etc.)
În sistemele avansate de producție, comunicarea tuturor
sistemelor de comandă existente la nivelul sistemului este
obligatorie, prin acest tip de comunicații fiind realizate o serie
de funcții cu ar fi monitorizarea parametrilor de funcționare a
fiecărei componente a sistemului respectiv a sistemului în
ansamblul lui, managementul producției, monitorizarea calității,
rapoarte privind planificarea mentenanței etc.
Primele rețele PLC au constat dintr-un calculator gazdă
multi-port cu fiecare port conectat la portul de programare a
unui PLC
30
Fig. 13 - Arhitectura unei rețele de PLC-uri (Arhitectură stea)
32
III. SISTEMUL BINAR DE NUMERAȚIE ȘI
ELEMENTE DE LOGICĂ BOOLEANĂ
33
Pentru conversia unui număr în baza doi în baza zece
acesta se scrie astfel: Pornind de la dreapta la stânga fiecare
element al numărului binar se înmulțește cu 2n , unde n este in
intervalul [0, N-1], unde N este numărul de biți pe care îi are
numărul binar ( pentru numărul (233)10 = (11101001)2 N=8,
astfel că intervalul pentru n este [0,7]).
7 6 5 4 3 2 1 0
11101001 2 =1∙2 +1∙2 +1∙2 +0∙2 +1∙2 +0∙2 +0∙2 +1∙2 =
128+64+32+0+8+0+0+1=233
100011 2 =1∙25 +0∙24 +0∙23 +0∙22 +1∙21 +1∙20 =
32+0+0+0+0+2+1=35
34
Baza 10 Baza 2 Baza 10 Baza 2 Baza 10 Baza 2
16 10000 36 100100 56 111000
17 10001 37 100101 57 111001
18 10010 38 100110 58 111010
19 10011 39 100111 59 111011
20 10100 40 101000 60 111100
Tab. 3 Numerele 1-60 în baza 10 respectiv baza 2
35
b. Comutativitate (Proprietate a unei relații sau a
unei operații matematice de a fi independentă
de ordinea elementelor pe care le conține)
𝑎⋀𝑏 = 𝑏⋀𝑎
𝑎⋁𝑏 = 𝑏⋁𝑎
c. Asociativitate (Proprietate a unei operații
matematice sau a unei legi de compunere de
a fi asociativă)
𝑎⋀ 𝑏⋀𝑐 = 𝑎⋀𝑏 ⋀𝑐
𝑎⋁ 𝑏⋁𝑐 = 𝑎⋁𝑏 ⋁𝑐
2. Operațiile satisfac legea absorbției
𝑎⋀ 𝑎⋁𝑏 = 𝑎⋁ 𝑎⋀𝑏 = 𝑎
3. Operațiunile sunt reciproc distributive
𝑎⋀𝑎, = 𝛷
36
𝑎⋁𝑎, = 𝐼
III.2.1. Funcții booleene
Complementarea(negare)
A 𝑨
1 0
0 1
Tab. 4 Tabelul de adevăr al funcției compelentare (negarea)
37
1 1 1
0 0 0
0 1 1
Tab. 5 Tabelul de adevăr al funcției SAU
Conjuncţia
A B A∩B
1 0 0
1 1 1
0 0 0
0 1 0
Tab. 6 Tabelul de adevăr al funcției ȘI
38
Fig. 19 - Implementarea prin contacte a funcției SAU
A B A NOR B
0 1 0
0 0 1
1 1 0
1 0 0
Tab. 7 Tabelul de adevăr al funcției NOR
39
Fig. 20 - Simbolul grafic al funcției NOR
40
Funcția NAND (NEGATIV AND)
A B A NAND B
0 1 1
0 0 1
1 1 0
1 0 1
Tab. 8 Tabelul de adevăr al funcției NAND
41
Funcțiile derivate pot fi utilizate pentru obținerea
funcțiilor logicii booleene (NOT, AND, OR), conform
diagramelor:
42
poartă) vom obţine la ieşirea porților NOR valorile 𝐴 şi 𝐵,
conform tabelului 7. Astfel la intrarea celei de a treia porţi
logice vom avea 0 şi 1, conform tabelului 5 rezultatul la ieşire
va fi 0. Conform tabelului 5 rezultatul funcției booleene SI
pentru 1, 0 este 0.
43
Daca A =0, B=1 conform tabelului 7 vom avea 0
NOR 1 = 0. Astfel pe cea de a doua poarta NOR vom aplica 0,
0 si vom obține 0 NOR 0 = 1. Pentru A =0 și B=1 funcția SAU
este 1.
44
Fig. 31 - Realizarea fizică a porților logice de tip NAND [16]
45
IV. PROGRAMAREA AUTOMATELOR
PROGRAMABILE
46
Standardul IEC 61131 este elaborat de International
Electrotechnical Commission, al cărui birou se află în Geneva,
Elveția ( 2015).
47
Limbajul de tip Structured text (ST) este un limbaj de
nivel înalt, care este structurat pe blocuri și seamănă din punct
de vedere sintactic cu limbajul Pascal, pe care se și bazează.
Limbajul Instruction list (IL) este un limbaj de nivel
scăzut și este asemănător cu un limbaj assambly (limbajele
assambly sunt acele tipuri de limbaje în care în care există o
corespondenta foarte puternică între limbaj și arhitectura
codului mașină - a procesorului [41] ).
Limbajele Sequential function chart (SFC) respectiv
Continuous Function Chart (CFC) sunt limbaje de
programare grafice.
Fig. 32 - Contact normal deschis (a) și contact normal închis (b) [30]
49
Contactele ND (normal deschis) respectiv NC se pot
asocia unui buton care este ND, in cadrul programului având
același comportament ca si un buton ND in cadrul unui circuit
electric.
Fig. 33 - Contact tranziție pozitiva (a), contact tranziție negativă (b) [30]
Contactele de tip tranziție pozitivă (front crescător)/
contact tranziție negativă (front descrescător) se utilizează
pentru a detecta dacă semnalul este crescător sau
descrescător.
50
Fig. 35 - Front de undă descrescător
51
La realizarea condiției logie specificate în program
activarea sau dezactivarea unei ieșiri se realizează prin
intermediul bobinelor sau a bobinelor negate ( simbolul acestor
funcții se prezintă în figura 36).
Fig. 38 - Bobina front crescător (a), bobină front descrescător (b) [30]
52
Bobinele de tip front crescător sau front descrescător
prezentate în figura 38 se utilizează pentru funcții care necesită
condiționări suplimentare. Astfel nu este suficient alimentarea
acestor bobine pentru a-și schimbă starea logică. Bobina front
descrescător își va schimba starea logică doar dacă semnalul
este descrescător (un semnal de tipul celui din figura 35),
bobina front crescător își schimbă starea logică doar dacă va fi
alimentată cu o tensiune crescătoare (un semnal de tipul celui
din figura 34).
Din punct de vedere al structurii programele PLC in
limbaj ladder (LD) conțin două coloane verticale (numite in
unele cărți de specialitate power line sau linii de alimentare)
pozițiile 1 și 2 din figura 40. Între cele două lini verticale, linia
orizontală care le leagă se numește treaptă (rung), poziția 8 în
figura 39. Treptele conțin instrucțiunile și ramurile. Instrucțiunile
sunt formate de bobine, relee și alte elemente, pozițiile 3,4,5,6
în figura 39. Instrucțiunea 4 din figura 39 se află pe o ramură a
treptei.
Ramurile nu sunt considerate trepte deoarece nu leagă
direct cele două coloane, ele fiind folosite pentru a activa o
ieșire în cazul mai multor evenimente ( mai multe intrări care îți
schimba starea logică).
În figura 38 există ă singură treaptă (Rung 0), 4
instrucțiuni și o ramură.
În general toate programele în care se poate realiza
programarea LD realizează numerotarea automată a treptelor
programului.
53
Fig. 39 - Elementele structurale ale limbajului LD
54
Fig. 40 - Realizarea funcției SAU in limbaj LD
55
Pentru realizarea funcției NU în limbajul LD se utilizează
un contact negat. Astfel dacă intrarea fizică se afla în 1 logic
programul se va comportata ca si cum s-ar afla în 0 logic. Dacă
intrarea fizică se va afla în zero logic, programul se va
comporta datorită contactului negat ca si cum s-ar afla în 1
logic și va activa bobina asociată ieșirii.
56
Dacă ambele intrări sunt în 0 logic , acestea vor fi
negate și vor trece în 1 logic, determinând și bobina A NOR B
să își schimbe starea logică (să treacă din 0 în 1 logic). orice
altă combinație de stări ale intrărilor A și se va menține bobina
în starea 0 logic. Acest lucru corespunde tabelei de adevăr a
funcției NOR.
57
Pentru a realiza programul în limbajul LD este necesar
să stabilim modul în care trebuie să funcționeze (logica
programului) și să realizam alocarea intrărilor fizice la adresele
pe care le vom utiliza.
Montajul trebuie să permită aprinderea becului la
apăsarea butonului B1 și stingerea lui la apăsarea butonului
B2.
Butonul B1 va fi alocat intrării I0.0, butonul B2 va fi
alocat I0.1 (alocarea depinde de fiecare PLC si corespondența
intre intrările fizice și adrese este specificată în manualul de
utilizare), ieșirea Q0.0 o asociem becului din figura 45. Definim
butonul B1 (IO.0) ca fiind butonul de start și B2 (I0.1) ca fiind
butonul de stop.
Conform modului în care trebuie sa funcționeze
programul putem spune că la apăsarea butonului B1 becul
trebuie să se aprindă și la apăsarea becului B2 acesta trebuie
să se stingă.
Realizând un program similar celui din figura observăm
că avem o funcție SI. Pentru ca treapta 0 (rung 0) să devină
adevărată a acționarea butonului B1 (trecerea I0.0 la 0 logic la
1 logic), pentru B2 (I0.1) vom folosi un contact negat, astfel
dacă butonul B2 nu este apăsat, adresa contactul asociat (I0.1)
va avea valoarea 1 logic. Astfel dacă B1 acționat, B2
neacționat ieșirea Q0.0 va fi activată și indicatorul luminos va fi
aprins.
Aparent acest program corespunde cerințelor inițiale,
însă dezactivarea ieșirii Q0.0 va avea loc și dacă butonul B1 nu
58
este acționat, acesta fiind conform schemei din figura 1 un
buton cu revenire de unde rezultă că becul va fi alimentat doar
atât timp cât butonul B1 este acționat manual, lucru care nu
corespunde cerințelor inițiale.
59
Utilizând acest program realizat în limbaj LD putem
putem realiza funcția START-STOP pentru un consumator
oarecare prin intermediul unui AP si utilizând două butoane ND
cu revenire (NO PUSH BUTTONS)
60
Presupunând o condiționare care să impună pornirea
unui element acționat de la două butoane (de la oricare dintre
ele) numai dacă toate butoanele de oprire sunt neacționate
Electric această condiționare poate fi îndeplinită prin realizarea
schemei de conexiuni din figura 49.
61
Schema electrică din figura 49 poate fi înlocuită cu
montajul din figura 50.
62
Adresa Buton
%I0.0 B1
%I0.1 B2
%I0.2 B3
%I0.3 B4
%I0.4 B5
Tab. 9 - Corespondența Adrese - Intrări fizice
63
Fig. 52 Montaj utilizând un AP si butoane ND fără reținere
implementarea schemei electrice din figura 49
64
Fig. 53 Programul LD pentru îndeplinirea condiționării stabilite cu
montajul din figura 52.
65
IV.4.3. Numărătoare și temporizatoare
66
Dacă dorim un simplu ciclul extensie, pentru a menține
electrovalva in poziția acționată pentru ciclul de retragere pornit
prin apăsarea butonului de start vom utiliza funcția SET COIL
iar pentru a asigura retragerea la atingerea contactului ND
prezentat in figura 54 se va utiliza funcția RESET. Programul
este prezentat in figura 55.
67
IV.4.3.1 Temporizatoare
Temporizatorul TON
68
Fig. 57 Simbolizare temporizator TON (Allain Bradley) [48]
69
Fig. 58 Funcționarea temporizatorului TON
70
Utilizând această funcție se poate realiza în cazul
schemei din figura 54 un program care să mențină cilindrul
extins un anumit timp. Programul este prezentat în figura
71
Fig. 60 Setarea parametrilor pentru un temporizator (TwidoSuite V2.31)
Temporizatorul TOF
72
Fig. 62 Funcționarea temporizatorului TOF
Terorizatorul TP
Acest tip de temporizator poate fi utilizat pentru a genera
un impuls cu o durată bine stabilită. Simbolizarea acestui
temporizator este prezentată în figura 63,
73
Fig. 63 Simbolizarea temporizatorului TP (TwidoSuite V2.31)
74
IV.4.3.2 Numărătoare (contoare)
75
E- reprezintă o ieșire a numărătorului cu un bit
asociat %Ci.E, care devine 1 logic când %Ci.V
trece de la 0 la 9999 (devine 1 daca %Ci.V este
9999 si se resetează la 0 daca %Ci.V coboară
sub 9999)
D reprezintă ieșirea care trece în 1 logic daca
valoarea numărătorului atinge valoarea setata
(%Ci.D = 1 dacă %Ci.V=%Ci.P)
F - reprezintă o ieșire a numărătorului cu un bit
asociat %Ci.F, %Ci.F=1 când %Ci.V se schimba
de la 9999 la 0
76
Fig. 65 Simbolizarea unui numărător (TwidoSuite V2.31)
77
S (set) a numărătorului este conectată intrarea %I0.2 a
automatului programabil, la intrarea CU (count up) a
numărătorului este conectată intrarea %I0.1 a automatului
programabil, la ieșirea D (Done) este contactată ieșirea %Q0.1
a automatului programabil. Ieșirile E(empty) și F(Full) ale
numărătorului nu sunt utilizate în această aplicație.
Numărătorul ave valoarea setată (%C0.P) egală cu 2.
Semnalul monitorizat este conectat la CU astfel ca se vor
număra fronturile crescătoare de undă. Daca intrarea %I0.2 va
fi activata de 2 ori ( două impulsuri) se va realiza condiția
(%C0.V=%C0.P) si se va activa ieșirea D respectiv %Q0.1.
Dacă se dorește activarea ieșirii D respectiv %Q0.1 fără a se
genera cele două impulsuri la intrarea CU (%I0.1) se poate
activa %I0.2 și care prin intermediul intrării S a
temporizatorului va realiza condiția %C0.V=%C0.P.
Resetarea numărătorului se face prin activarea intrării
%I0.0 a automatului programabil.
78
Fig. 67 Exemplu de instrucțiune IL
79
Modificatori
N - negarea operandului
C - forțează o verificare a rezultatelor evaluate în
prezent în partea de sus a acumulatorului
( - pune o operație în acumulator
IL este un așa numit limbaj orientat pe acumulator, adică
fiecare instrucțiune folosește sau modifică conținutul curent al
acumulatorului (acumulatorul poate fi echivalat cu memoria
temporară).
În figura 68 este prezentată funcția SI in limbaj LD si IL.
Se observă ca in limbajul IL sunt necesare trei linii de
comanda. Astfel in prima linie se utilizează LD pentru a seta
rezultatul ca fiind egal cu operandul (cu %I0.0), in rândul doi se
specifică faptul ca rezultatul trebuie sa fie egal si cu %I0.1. Prin
aceste instrucțiuni, cea de a treia instrucțiune și anume ST va
stoca rezultatul în locația operandului ( în cazul exemplului din
figura 68 locația fiind %Q0.1) doar daca ambele intrări %I0.0 si
%I0.1 au aceeași valoare ( fie ambele 1 fie ambele 0)
Daca nu sunt ambele intrări in starea 1 logic, ieșirea
%Q0.1 va rămâne în starea 0 logic.
80
Fig. 68 Funcția SI în limbaj LD respectiv IL
81
Fig. 71 Exemplu de program complex in limbaj LD si IL
82
temporizatorului,. Prin comanda ST %Q0.2 valoarea
acumulatorului este transferată la ieșirea %Q0.2 a automatului
programabil.
Pentru închiderea unui bloc indiferent de tipul sau se
funcția END_BLK.
În figura 72 este prezentat un exemplu asemănător
utilizând un bloc numărător.
83
de tip ST (Structured Text) este un limbaj de nivel înalt fiind
similar cu limbajele PHP, C sau Python.
Din punct de vedere al structurii programele in ST încep
prin doua cuvinte cheie pentru delimitare. Începutul unu
program este delimitat prin PROGRAM iar sfârșitul unui program
este delimitat prin END_PROGRAM. Spre deosebire de alte
dispozitive, un automat programabil va relua programul de la
început după de întâlnește cuvântul cheie END_PROGRAM,
conform ciclului de execuție a unui program în cadrul unui AP
(figura 9).
Execuția liniilor de comanda in cadrul unui program scris
în limbajul ST se realizează ca și în cazul programelor scrise in
LD, line cu linie. Tot din punct de vedere structural trebuie
avute in vedere următoarele reguli:
Toate declarațiile sunt separate prin punct și
virgulă
Spațiul intre cuvinte si caractere nu are nici o
funcție
Limbajul ST nu face diferența între caracterele
majuscule și cele minuscule (nu este CASE
SENSITIVE)
84
Declararea unei variabile se realizează expresia
A: bool;
Această declarație va crea o variabila cu numele A,
variabilă care va conține date de tip boolean.
In limbajul ST variabilele pot fi de următoarele tipuri [31]:
virgulă mobilă;
numere întregi;
timp;
șiruri de caractere;
șiruri de caractere bit;
Pentru a declara o variabilă este necesară utilizarea
unor declarații care să specifice tipul variabilei declarate,
conform tabelului 11 [24].
Declarație Descriere
VAR Declararea unei variabile
VAR_INPUT Definește o listă de variabile pentru o funcție
VAR_OUTPUT definește variabilele de ieșire dintr-o funcție
VAR_GLOBAL Declararea unei variabile globale
RETAIN o valoare va fi reținută în cazul resetării
CONSTANT O valoare care nu poate fi modificată
(constantă)
AT poate asocia o variabilă într-o locație
specifică în memorie (fără această
declarație locațiile variabilelor sunt alese de
către compilator)
END_VAR Închide secțiunea de declarare a variabilelor
Tab. 11 - Declararea variabilelor in limbajul ST [25].
85
Exemple
VAR
X : BOOL;
END_VAR
VAR
X,Y,Z : INT ;
END_VAR
VAR
AT %B2:1 : WORD;
END_VAR
VAR RETAIN
AT %O:000 : WORD ;
END_VAR
VAR CONSTANT
P:REAL:=3.1415 ;
END_VAR
86
Pentru a introduce un comentariu în cadrul unui program
în limbajul ST se pot utiliza următoarele structuri de
sintaxă[31].
// comentariu
expresie; /* comentariu */
< expresie >; (*comentariu *)
/* start comment
comentariu
end comment */
Exemplu
VAR CONSTANT
P:REAL:=3.1415 ; // declararea valorii constantei P
END_VAR
VAR
X : BOOL;
END_VAR (*declararea variabilei X *)
87
- scădere
/ împărțire
* înmulțire
MOD(A,B) - această funcție dă restul împărțirii a două A și
B, variabile de tip număr întreg.
SQR(X) - Rădăcina pătrată a variabilei X
FRD(X) - transformare din codul BCD( binary coded
decimal) în zecimal
TOD(X)- transformare în codul BCD( binary coded decimal)
din zecimal
NEG(X)- schimbarea semnului +/-
LN(X) - logaritm natural
LOG(X)- logaritm in baza 10
DEG(X) - din rad in grad
RAD(X) - in rad sin grad
SIN(X)- sinus
COS(X) - cosinus
TAN(X) - tangenta
ASN(X) - arc sinus
ACS(X) - arc cosinus
ATN(X) - arc tangenta
XPY(X,Y) - X la puterea Y
A**B - A la puterea B
Funcțiile algebrei booleene disponibile în limbajul ST
sunt:
AND(A,B) SI
88
OR(A,B) SAU
XOR(A,B) SAU EXCLUSIV
NOT(A) NEGATIE
FOR i:=1 TO 10 BY 1 DO
i=i+1;
END_FOR
89
WHILE numărătorul < 100 DO
numărătorul := numărătorul + 1;
c := numărătorul * 2;
END_WHILE;
REPEAT
<expresie>;
UNTIL [expresie booleana]
END_REPEAT;
REPEAT
numărătorul := numărătorul + 1;
UNTIL numărătorul = 100
END_REPEAT;
IF [expresie booleana]
THEN
<expresie>;
END_IF ;
90
IF X = 0 THEN
C := 0;
END_IF ;
VAR
TIMER_A: TON;
91
END_VAR
92
Principalele caracteristici ale unui grafic GRAFCET sunt
[3]:
O etapă se reprezintă printr-un pătrat numerotat
și reprezintă o stare particulară a automatului la
un anumit moment dat. Etapa care corespunde
stării în care se află sistemul la un moment de
timp t se numește etapă activă. Etapa activă se
reprezintă printr-un punct sub numărul din
interiorul pătratului.
Etapa inițială a unui sistem se reprezintă printr-un
pătrat cu linie dublă. Un grafic poate să conțină
una sau mai multe stări inițiale.
Acțiunile asociate unei stări se reprezintă printr-
un dreptunghi in dreapta etapei și legate de
aceasta printr-o linie. O acțiune poate fi asociată
unei singure etape sau mai multor etape. O etapa
poate să nu includă nici o acțiune.
Două etape sunt legate între ele printr-o legătură
orientată reprezentată printr-o linie verticală.
Sensul de evoluție al unui GRAFCET este de sus
în jos.
Între două etape succesive legate printr-o
legătură orientată există o tranziție. Legătura
dintre două etape conține o singură tranziție. Într-
un grafic GRAFCET o tranziție permite evoluția
de la etapa precedentă către etapa următoare.
Atunci când etapa precedentă este activă se
93
spune că tranziția este validată. Tranziția se
reprezintă printr-o linie orizontală, perpendiculară
pe legătură orientată între două etape.
Receptivitatea asociată unei tranziții se notează
la dreapta liniei prin care aceasta se reprezintă.
Receptivitățile sunt propoziții logice al căror
rezultat poate fi adevărat sau fals.
94
Legătura orientată
Tranziție
Fig. 76 Tranziția
95
Fig. 78 Exemplu de SFC
96
Fig. 79 Ramificație de selecție (doar o singura ramură se va executa)
I
II
97
Dacă receptivitatea a=1 este adevărată se va executa ramura
II.
Selecția utilizând receptivitatea poate fi utilizată și pentru
realizarea unei funcții prin care anumite etape să fie ignorate,
sa se realizeze saltul peste etape (fig.81)
98
Fig. 82 Ramificație paralelă
99
partea operativă, pentru operator și / sau la elementele
exterioare. Aceasta corespunde etapelor activei la începutul
activității: aceste etape sunt pașii inițiali [12].
100
IV.7.2 Exemplu de utilizare a unui SFC pentru realizarea
unei aplicații
101
Fig. 83 SFC pentru o presă de ștanțat[6A]
102
BIBLIOGRAFIE
103
***Grafcet Designer v.2.0 Reference Manual-April
[12]
2014, TecAtlant FRANCE
[13] http://andrei.clubcisco.ro/cursuri/1pl/asdn/1.pdf
[14] http://electronica-digitala.ascetis.ro/lectia1_2.html
[15] http://gozarian.net/
http://hyperphysics.phy-
[16]
astr.gsu.edu/hbase/electronic/nand.html
[17] http://mathworld.wolfram.com/Binary.html
[18] http://mathworld.wolfram.com/BooleanAlgebra.html
[19] http://profibus.felser.ch/en/index.html?dppa_link.htm
http://tengcon.en.made-in-
[20] china.com/product/CKUJYjixsnrW/China-Ethernet-Port-
and-RS485-232-Serial-Port-PLC-Tengcon-T-910.html
[21] http://thor.info.uaic.ro/~marta/caos/S1/#fn
http://www.acpd.co.uk/cgi-bin/site-editor.pl/8/-
[22]
ecommerce?action=item;item=PSU-25;eid=P422748
http://www.boschrexroth.com/dcc/Vornavigation/VorNa
[23] vi.cfm?Language=EN&Variant=internet&VHist=g97568
%2Cg244070%2Cg101270&PageID=p149994
http://www.infoplc.net/files/descargas/rockwell/infoplc_
[24]
net_plc_st.pdf
http://www.machine-information-
[25]
systems.com/How_PLCs_Work.html
http://www.micromodautomation.com/Docs/Specs/S-
[26]
MOD-MOD30ML.pdf
http://www.newark.com
[27]
/productimages/large/en_US/4216618.jpg
http://www.pdhonline.org/courses/e116a/PLC-
[28]
module1.pdf
http://www.pdhonline.org/courses/e116a/PLC-
[29]
module3.pdf
[30] http://www.plcacademy.com/ladder-logic-symbols/
[31] http://www.plcacademy.com/structured-text-tutorial/
[32] http://www.plcmanual.com/plc-input-units
[33] http://www.plcmanual.com/plc-output-units
http://www.plcopen.org%2Fpages%2Fpc2_training%2F
downloads%2Fdownloads%2Finstruction_list_textual.d
[I34]
oc&usg=AFQjCNGWrRBi7Qgka4ju755JuKoD5GlN2w&
sig2=RUvuL8gbTw640lDFED994A&bvm=bv.11015184
104
4,d.bGQ&cad=rja
http://www.saleplc.com/product/up_pic/CPM2A-
[35]
20CD.jpg
[36] http://www.ti.com/product/cd4001b-mil
http://www-plan.cs.colorado.edu/diwan/3155-
[37]
01/lectures/5-control.pdf
[38] http://www.t-uk.co.uk/plcs-overview.php
[39] http://www.xl-technology.com/control-upgrades.html
https://commons.wikimedia.org/wiki/File:NOR_Pinout.jp
[40]
g#/media/File:NOR_Pinout.jpg
[41] https://en.wikipedia.org/wiki/Assembly_language)
[42] https://en.wikipedia.org/wiki/IEC_61131
[43] https://en.wikipedia.org/wiki/IEC_61131-3
[44] https://en.wikipedia.org/wiki/Profibus
https://infosys.beckhoff.com/english.php?content=../co
[45] ntent/1033/tcplccontrol/html/TcPlcCtrl_Languages%20I
L.htm&id=
[46] https://ro.wikipedia.org/wiki/Firmware
https://ro.wikipedia.org/wiki/Logic%C4%83_binar%C4
[47]
%83
[48] https://www.courses.psu.edu/e_met/e_met430_jar14/t
mrct/ton.html
105
ANEXA
Numere întregi
EC Data
Format Range
Type
Short Integer
SINT -128 … 127
Număr întreg scurt
Integer
INT -32768 … 32767
Număr intreg
Double Integer −(231) … (231) −
DINT
Număr întreg dublu 1
Long Integer
LINT -263 … (263) − 1
Număr întreg lung
Unsigned Short Integer
USINT 0 … 255
Număr întreg scurt fără semn
Unsigned Integer
UINT Număr întreg fără semn (doar 0 … (2-16) − 1
valori pozitive)
Long Double Integer
LDINT Număr întreg dublu fără semn 0 … (2-32) − 1
(doar valori pozitive)
Unsigned Long Integer
ULINT Număr întreg dublu fără semn 0 … (2-64) − 1
(doar valori pozitive)
Virgulă mobilă
IEC Data Type Format Range
Real Numbers
REAL ±10±38
Numere reale
Long Real Numbers
LREAL ±10±308
Numere reale lungi
106
Timp
IEC Data Type Format Use
Duration of time
after an event
T#10d4h38m57s12ms
TIME Durata de timp
TIME#10d4h38m
după un
eveniment
Calendar date D#1998-01-20
DATE
Data in calendar DATE#2016-01-25
Time of day TOD#14:51:07
TIME_OF_DAY
Ora TIME_OF_DAY#14:51:07.77
Date and time of DT#2016-02-18-18:22:11.22
DATE_AND_TIME day DATE_AND_TIME#2011-
Ora si data 08-14-12:01:17.20
Șiruri de caractere
IEC Data Type Format Range
Character String
STRING ‘exemplu sir caractere’
Șir de caractere
Siruri de biţi:
IEC Data Type Format Range
Boolean
BOOL 1 bit
Boolean
Byte
BYTE 8 bits
Octet
Word
WORD 16 bits
Cuvânt
Double Word
DWORD 32 bits
Cuvânt dublu
Long Word
LWORD 64 bits
Cuvânt lung
107