Sunteți pe pagina 1din 107

CUPRINS

Lista figurilor ........................................................................3


Lista tabelelor ......................................................................6
I. Dezvoltarea automatelor programabile .............................7
II. Structura automatelor programabile................................14
II.1. Sursa de alimentare ...................................................16
II.2. Unitatea de procesare ................................................18
II.3. Module de intrare ........................................................24
II.4. Module de ieșire .........................................................25
II.5. Interfața de comunicații ..............................................27
III. Sistemul binar de numerație și elemente de logică
booleană .................................................................................33
III.1. Sistemul binar de numerație ......................................33
III.2. Elemente de logică booleană ....................................35
III.2.1. Funcții booleene .................................................37
III.2.2. Funcții booleene derivate. ...................................39
IV.Programarea Automatelor Programabile ........................46
IV.1. Standardul IEC 61131 ...............................................46
IV.2. Limbaje de programare .............................................47
IV.3. Tipurile de date și de variabile ...................................48
IV.4. Limbajul Ladder diagram (LD) ...................................49
IV.4.1. Realizarea funcțiilor logice utilizând limbajul LD 54
IV.4.2. Programe elementare realizate in LD .................57
IV.4.3. Numărătoare și temporizatoare ..........................66
IV.4.3.1 Temporizatoare ................................................68
IV.4.3.2 Numărătoare (contoare) ...................................75
IV.5. Limbajul Instruction List (IL) ......................................78
IV.6. Limbajul Structured Text (ST) ...................................83
IV.6.1. Elemente de sintaxa a limbajului Structured
Text (ST) ..................................................................................84
IV.6.2. Structurii de iterație REPEAT-UNTIL; WHILE-
DO ; FOR .................................................................................89
IV.6.3. Execuție condiționată IF-THEN-ELSE; CASE ....90
IV.6.4. Definirea temporizatoarelor în limbajul ST ..........91
IV.7 Limbajul Sequential function chart .............................92
IV.7.1 Regulile de evoluție a unui Grafcet. .....................99

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

Fig. 1 - Sistem de control – 1965 [39] ...................................................... 7


Fig. 2 - Automatul programabil Modicon 084 [15] .................................. 10
Fig. 3 - Automat programabil EATON MOELLER EASY512-DC-RC [27]
..................................................................................................................... 12
Fig. 4 - Automate programabile Unitronics cu ecran tactil integrat [38] . 12
Fig. 5 - Structura generală unui automat programabil. ........................... 14
Fig. 6 - Automat programabil compact OMRON [35] ............................. 15
Fig. 7 - Automat programabil modular REXROTH IndraControl L10 [23]
..................................................................................................................... 16
Fig. 8 - Sursa de alimentare Mitsubishi PSU 25 (intrare 85-245 V C.A.,
ieșire 24V C.C.) [22] .................................................................................... 17
Fig. 9 - Ciclu de execuție a unui program în cadrul unui AP .................. 21
Fig. 10 - Modul de intrare binară, schema electrică [9] .......................... 25
Fig. 11 - Modul de ieșire binară, schema electrică [9] ........................... 26
Fig. 12 - Automat programabil T910 cu două porturi RS 232 [20] ...... 28
Fig. 13 - Arhitectura unei rețele de PLC-uri (Arhitectură stea) ............... 31
Fig. 14 - Structura unui sistem PROFIBUS DP [19] ............................... 32
Fig. 15 - Simbolul grafic al funcției NU .................................................. 37
Fig. 16 - Simbolul grafic al funcției SAU ................................................. 38
Fig. 17 - Implementarea prin contacte a funcției SAU ........................... 38
Fig. 18 - Simbolul grafic al funcției ȘI ..................................................... 38
Fig. 19 - Implementarea prin contacte a funcției SAU ........................... 39
Fig. 20 - Simbolul grafic al funcției NOR ............................................... 40
Fig. 21 - Circuit integrat CD4001B-MIL, Texas Instruments [36] .......... 40
Fig. 22 - Dispunerea pinilor și semnificația lor pentru un CI standard de
tip 4001 care implementează porțile NOR [40] ........................................... 40
Fig. 23 - Simbolul grafic al funcției NOR ................................................ 41
Fig. 24 - Dispunerea pinilor și semnificația lor pentru un CI standard de
tip 7400 care implementează porțile NAND si un CI 7400 produs de Texas
Instruments. ................................................................................................. 41
Fig. 25 - Realizarea funcției SI utilizând porți logice NAND .................. 42
Fig. 26 - Realizarea funcției SI utilizând porți logice NOR ..................... 42
Fig. 27 - Realizarea funcției SAU utilizând porți logice NAND ............... 43
Fig. 28 - Realizarea funcției SAU utilizând porți logice NOR ................. 43
Fig. 29 - Realizarea funcției NOT utilizând poarta logică NAND ............ 44
Fig. 30 - Realizarea funcției NOT utilizând poarta logică NOR .............. 44
Fig. 31 - Realizarea fizică a porților logice de tip NAND [16] ................. 45
Fig. 32 - Contact normal deschis (a) și contact normal închis (b) [30] ... 49

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

Un controler logic programabil sau automat programabil,


este un calculator industrial care îndeplinește funcții de control
discrete sau continue într-o varietate mare de aplicații. [5]
Automatul programabil a fost conceput de către Dick
Morley, în anul 1968. Automatul programabil dezvoltat de către
Morley, la momentul apariției sale a fost denumit PC pentru
controler programabil, iar mai târziu, după introducerea
computerelor personale (PC) a fost numele schimbat la PLC
(Programmable Logic Controller) și a fost produs de compania
sa numită Modicon (MOdular DIgitial CONtroller). [7]
Primul PLC a fost conceput pentru a îndeplinii
specificațiile stabilite de către divizia Hydramatics al General
Motors (GM). Scopul principal al designului a fost de a elimina
costurile extrem de ridicate pe care le implica utilizarea
circuitelor de comanda bazate pe relee electromecanice și
lipsa de flexibilitate asociată cu acest tip de circuite "cablate".

Fig. 1 - Sistem de control – 1965 [39]

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

Având în vedere aceste dezavantaje majore compania


General Motors prin divizia Hydramatics a elaborat un set de
criterii pe care un “controler standard de mașină” ar trebui să le
îndeplinească. Acest set de criterii au fost prezentate de către
Bill Stone la Westinghouse Conference. [5] Conform acestor
prime criterii dispozitivele menite să înlocuiască sistemele de
comandă și control bazate pre relee și logică cablată trebuiau
să elimine dezavantajele legate de costul mare al instalării si
demontării acestor sisteme (datorită lipsei de flexibilitate a
acestor sisteme, era necesară înlocuirea lor la fiecare
schimbare a unui produs, in cazul GM pentru fiecare model de
autoturism produs) precum și să ducă la eliminarea
problemelor cauzate de fiabilitatea scăzută. Pe lângă aceste

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

Aceste specificații, împreună cu o cerere de propunere


pentru a construi un prototip, au fost transmise la patru
producători consacrați de sisteme de control și anume Allen-
Bradley, Digital Equipment Corporation, Century Detroit,
Bedford Associates [5]
În cele din urmă, în 1969, propunerea câștigătoare a
venit de la Bedford Associates și Modicon, atunci când acestea
au demonstrat la GM Modicon 084. Modicon 084 a constat din
trei componente distincte, placa procesor, memoria, și placa
logică, care rezolva algoritmii asociați logicii cu relee.

9
Fig. 2 - Automatul programabil Modicon 084 [15]

În anii 1970, existau deja șapte societăți care produceau


echipamente PLC, inclusiv Allen-Bradley, Modicon, General
Electric, Square D și Industrial Solid State Controls. Deși,
evident, PLC-'uri au fost o descoperire care au revoluționat
automatizările industriale, acestea erau încă relativ primitive.
Ele au fost în mare parte elaborate și utilizate pentru aplicații
specifice, cel mai adesea în industria de automobile. [5]
O problema importantă o constituia programarea PLC-
urilor. Primele PLC - uri aveau nevoie de o serie de terminale
hardware dedicate prin care se realiza programarea acestora.
Dificultatea programării utilizând aceste terminale a determinat

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]

Fig. 3 - Automat programabil EATON MOELLER EASY512-DC-RC [27]

Fig. 4 - Automate programabile Unitronics cu ecran tactil integrat [38]


În tabelul 1 sunt prezentate avantajele și dezavantajele
automatelor programabile.

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

Din punct de vedere hardware un automat programabil


este alcătuit din patru componente majore:
- Unitatea de procesare, numită generic CPU;
- Sursa de alimentare;
- Modulul de intrări-ieșiri;
- Interfața de comunicare.

Fig. 5 - Structura generală unui automat programabil.

Constructiv automatele programabile pot fi compacte


sau modulare.

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.

Fig. 6 - Automat programabil compact OMRON [35]

Dezavantajul major al acestor automate programabile


este legat de numărul și tipul modulelor de intrare și ieșire care
nu poate fi modificat. Astfel dacă intr-o aplicație industrială cu
un automat programabil compact devine necesară utilizarea
unui număr mai mare de intrări sau ieșiri decât cele disponibile
este necesară schimbarea întregului automat programabil.
Acest dezavantaj este înlăturat prin utilizarea
automatelor programabile modulare (fig. 7). Acest tip de
automate programabile este astfel realizat încât prin
adăugarea sau înlocuirea unor module conectate la o structura

15
fixă (numită șasiu) numărul și pinul intrărilor sau a ieșirilor
poate fi modificat.

Fig. 7 - Automat programabil modular REXROTH IndraControl L10 [23]

Dezavantajul acestor tipuri de automate programabile îl


constituie necesitatea de configurării suplimentare și un cost
mai ridicat comparativ cu automatele programabile compacte.

II.1. Sursa de alimentare

Rolul principal al sursei de alimentare este acela de a


furniza tensiunile de alimentare necesare pentru funcționarea
automatului programabil. Sursele de alimentare oferă la ieșire
toate tensiunile necesare și specifice fiecărui modul al

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

Fig. 8 - Sursa de alimentare Mitsubishi PSU 25 (intrare 85-245 V C.A.,


ieșire 24V C.C.) [22]

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

II.2. Unitatea de procesare

Unitatea de procesare este elementul central al


automatului programabil. Unitatea de procesare include
microprocesorul respectiv memoria.
În funcție de modelul automatului programabil și de
opțiunile de care acesta le include (număr ți tipuri de
intrări/ieșiri, conexiuni de rețea, posibilitatea de a conecta un
dispozitiv de afișare etc.) este ales si tipul microprocesorului.
Microprocesoarele utilizate pot avea o arhitectură pe 8 bit, 16
bit sau 32 bit.
Astfel automatul IndraLogic L10 produs de compania
Bosch și care este cel mai simplu automat programabil produs
ce această companie utilizează un microprocesor ST40 produs
de compania STMicroelectronics. Microprocesorul ST40 are o
frecvență de 192 MHz si este un procesor de tip RISC
(Reduced Instruction Set Computing). Pentru generația
18
IndraLogic L25 se utilizează un microprocesor Renesas SH
7785 cu o frecvență maximă de funcționare de 600MHz, și
realizează o performanță de procesare de 1080 MIPS (Millions
of Instructions Per Second).
Automatele programabile avansate produse de
compania BOSCH utilizează procesoare AMD sau INTEL cu
funcții avansate (AMD-Geode LX800, 500MHz, Intel Celeron®
1 GHz, Intel Core2Duo® - 1,2 GHz)
Principalele funcții ale procesorul sunt acelea de a
gestiona comunicațiile cu echipamentele externe,
interconectarea între diversele componente ale automatului
programabil, executa programul, managementul memoriei,
monitorizarea semnalelor de intrare și inițializarea semnalului
de ieșire (în conformitate cu programul rulat). Un alt rol al
microprocesorului este cel legat de monitorizarea erorilor,
fiecare eroare fiind semnalizată intr-un anumit mod (modul de
semnalizare al erorilor este descris în manualul de utilizare al
fiecărui automat programabil).
Procesorul în sine are câteva moduri de operare diferite.
[25] și anume:
 Mod de programare (Programming Mode);
 Execuție (Run Mode);
 Oprit (Stop Mode);
 Reset (Reset Mode).
În modul de programare acceptă descărcarea unui
program de pe laptop sau PC. După descărcarea programului

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.

Fig. 9 - Ciclu de execuție a unui program în cadrul unui AP

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

Modulele de intrare sunt cele prin intermediul cărora


automatul programabil primește informații asupra
echipamentului / procesului pe care îl controlează sau
monitorizează.
Deoarece automatul programabil rulează un program
care în esență include o serie de condiționări de tipul dacă o
anumită intrare sau combinație de intrări este intr-o anumită
stare, o anumita ieșire/combinație de ieșiri trebuie să fie într-o
anumită stare este evident de ce informațiile despre intrările
automatului programabil trebuie să ajungă la microprocesor.
La intrarea unui automat programabil pot fi conectate o
varietate mare de butoane, comutatoare, senzori etc., fiecare
cu un anumit semnal de ieșire care in cele mai multe cazuri nu
este compatibil cu semnalul acceptat de unitatea de procesare.
Rolul modulelor de intrare este acela de a converti semnalul
provenit de la elementele exterioare automatului programabil în
semnale acceptate de unitatea de procesare.
În general modulele standard de intrare acceptă
semnale de 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 V C.C., și TTL(transistor-
transistor logic) [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 10 este prezentată schema electrică a unui
modul de intrare binar. Elementul esențial al modului îl
constituie optocuplorul (OC) care realizează o separare

24
galvanică între elementul conectat la automatul programabil și
unitatea de procesare.

Fig. 10 - Modul de intrare binară, schema electrică [9]

Majoritatea automatelor programabile au intrări în curent


continuu fie PNP fine NPN. Dacă se utilizează un senzor PNP
sau NPN aceste lucru trebuie avut în vedere, însă dacă se
utilizează un buton sau comutator se poate utiliza o intrare
PNP sau NPN. [32]
Intrările în C.A. sunt mai rare, în general sunt disponibile
pentru automatele programabile modulare care au o
complexitate mai mare. [32]

II.4. Module de ieșire

Dispozitivele controlate de un PLC includ printre altele


relee, alarme, solenoizi, ventilatoare, indicatoare luminoase și
diverse circuite de pornire a motoarelor (prin intermediul unor
contactoare sau a altor dispozitive asemănătoare). Aceste
dispozitive necesită diferite niveluri tensiune.

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.

Fig. 11 - Modul de ieșire binară, schema electrică [9]

Ieșirile pot fi de tip relee (Relay Outputs), fiind una dintre


cele mai frecvente tipuri de ieșiri ale automatelor programabile.
Avantajul major este acela ca ieșirile tip relee pot comuta atât
C.A. cât și C.C. și nu sunt polarizate. Ieșirile utilizând

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.

Element Durata Dimensiune Viteză de Cost


de viață comutare
Tranzistor Mare Mică Mare Mic
FET
Triac Mare Mică Medie Mic
Relee Medie Foarte mare Medie Mare
Tab. 2 Tabel comparativ al principalelor caracteristici ale elementelor
utilizate pentru ieșirile AP.

II.5. Interfața de comunicații

Toate automatele programabile sunt dotate cu o


interfață de comunicație însă tipul și complexitatea acesteia
variază în funcție de capacitățile pe care la are un anumit
automat programabil.
În primul rând toate automatele programabile trebuie să
permită scrierea unui program astfel că ele includ un modul de

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.

Fig. 12 - Automat programabil T910 cu două porturi RS 232 [20]

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)

În sistemele industriale se utilizează în general


protocoale dedicate de comunicație menite să îndeplinească
condițiile specifice impuse de mediul industrial.
Standardul PROFIBUS a fost introdus în Germania în
anul 1989 şi a fost ulterior acceptat ca standard internaţional.
PROFIBUS este o reţea de mare viteză pentru echipamente
distribuite. [4]
Actualmente ca standard se utilizează două variante ale
protocolului PROFIBUS:
 PROFIBUS DP (Periferice descentralizate) este
folosit pentru a interacționa cu senzori și
actuatori, prin intermediul unui controler
centralizat în aplicații de producție (fabrică) și în
aplicațiile de automatizare. Majoritatea de
31
diagnostic standard ale mașinilor, centrelor de
prelucrare sau echipamentelor utilizate în
sistemele avansate de producție, utilizează acest
protocol. [44]
 PROFIBUS PA (Process Automation) este
protocolul utilizat pentru a monitoriza
echipamentul de măsurare printr-un sistem de
control al proceselor în aplicații de automatizare.
Această variantă este proiectată pentru utilizarea
în medii explozie / zone periculoase.
PROFIBUS DP utilizează ca mediu de transmisie a
datelor structura RS 485.
PROFIBUS PA utilizează tehnologia MBA (Manchester
coding and Bus Powered). [4]

Fig. 14 - Structura unui sistem PROFIBUS DP [19]

32
III. SISTEMUL BINAR DE NUMERAȚIE ȘI
ELEMENTE DE LOGICĂ BOOLEANĂ

III.1. Sistemul binar de numerație

Sistemele de numerație oferă baza pentru transmiterea


și cuantificarea informației. [1] Sistemul binar descrie un sistem
de numerație, în care există doar două valori posibile pentru
fiecare cifră: 0 și 1. Această bază de numerație este folosită în
calculatoare, deoarece toate numerele pot fi reprezentate ca
un șir de semnale electrice cu două niveluri corespunzătoare
pentru 1 logic și 0 logic (low /high). [17]
Pentru conversia unui număr din baza 10 în baza 2,
metoda cea mai simplă o constituie metoda împărțirii. Numărul
întreg în baza zece se împarte la 2. Înmulțind doar întregul
rezultatului cu doi si realizând diferența față de numărul
împărțit obținem un rest. Se notează restul, care poate fi 1 sau
0 pornind de la dreapta la stânga (sau de jos în sus în cazul
notării tabelare, asemănător cu exemplul de mai jos).
Algoritmul se repetă până se obţine câtul 0.
233:2 =116,5 116x2=232 233- 1
232=1
116:2= 58 58x2=116 116- 0
116=0
58:2=29 29x2=58 58-58=0 0
29:2=14,5 14x2=28 29-28=1 1
14:2=7 7x2=28 28-28 0
7:2=3,5 3x2=6 7-6=1 1
3:2=1,5 1x2=2 3-2=1 1
1:2=0,5 0x2=0 1-0=1 1
(233)10 = (11101001)2

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

În tabelul 3 sunt prezentate cifrele de la 1 la 60 în baza


10 respectiv baza 2.

Baza 10 Baza 2 Baza 10 Baza 2 Baza 10 Baza 2


1 1 21 10101 41 101001
2 10 22 10110 42 101010
3 11 23 10111 43 101011
4 100 24 11000 44 101100
5 101 25 11001 45 101101
6 110 26 11010 46 101110
7 111 27 11011 47 101111
8 1000 28 11100 48 110000
9 1001 29 11101 49 110001
10 1010 30 11110 50 110010
11 1011 31 11111 51 110011
12 1100 32 100000 52 110100
13 1101 33 100001 53 110101
14 1110 34 100010 54 110110
15 1111 35 100011 55 110111

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

III.2. Elemente de logică booleană

Creatorul logicii matematice moderne, al algebrei


booleene, care, mai târziu, va sta la baza informaticii si a
realizării computerului a este George Boole (n. 2 noiembrie
1815 la Lincoln - d. 8 decembrie 1864 la Ballintemple, Cork), st
matematician, logician si filozof britanic. [14]
Pentru studiul circuitelor numerice (digitale) se foloseşte
ca suport matematic algebra booleană. Ea are la bază o serie
de postulate (axiome) şi teoreme. [13]
Algebra booleană poate fi definită printr-o mulțime B, cu
elementele a, b,.. care îndeplinește următoarele condiții. [18]
1. Mulțimea B are două operații (operația logica ȘI,
operația logică SAU) care să îndeplinească
următoarele condiții:
a. Idempotență (Proprietate a elementelor unei
mulțimi având o operație binară, astfel ca prin
compunere cu ele însele să rămână
neschimbate.)
𝑎⋀𝑎 = 𝑎⋁𝑎 = 𝑎

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

𝑎⋀ 𝑏⋁𝑐 = 𝑎⋀𝑏 ⋁ 𝑎⋀𝑐


𝑎⋁ 𝑏⋀𝑐 = (𝑎⋁𝑏)⋀(𝑎⋁𝑐)
4. B include Φ (mulțimea vidă) și I (mulțimea tuturor
elementelor ), astfel încât acestea să satisfacă:
𝛷⋀𝑎 = 𝛷
𝛷⋁𝑎 = 𝑎
𝐼⋀𝑎 = 𝑎
𝐼⋁𝑎 = 𝐼
5. B are un operator unar (operațiunea unară este o
funcție cu exact un operand, așa cum este rădăcina
pătrată, negarea etc.) 𝑎 → 𝑎, astfel încât:

𝑎⋀𝑎, = 𝛷

36
𝑎⋁𝑎, = 𝐼
III.2.1. Funcții booleene

Logica binară are la bază premiza că o propoziție poate


avea doar unul din două rezultate: adevărat sau fals.
Alternativele A sau F pot fi reprezentate prin 1 și 0.
O funcţie booleană cu n intrări şi m ieşiri este o funcţie
matematică f:Bn->Bm. [21]
În logica binară se definesc trei legi de compoziţie:
complementarea (negare, “NU”,“NOT”, inversare logică),
disjuncţia (sumă logică, “+”,“SAU”, “OR”, “∪”) şi conjuncţia
(produs logic, “∗”, “ŞI”, “AND”, “∩”).[13]

Complementarea(negare)
A 𝑨
1 0
0 1
Tab. 4 Tabelul de adevăr al funcției compelentare (negarea)

Fig. 15 - Simbolul grafic al funcției NU

Disjuncţia (sumă logică, SAU)


A B AUB
1 0 1

37
1 1 1
0 0 0
0 1 1
Tab. 5 Tabelul de adevăr al funcției SAU

Fig. 16 - Simbolul grafic al funcției SAU

Fig. 17 - Implementarea prin contacte a 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

Fig. 18 - Simbolul grafic al funcției ȘI

38
Fig. 19 - Implementarea prin contacte a funcției SAU

III.2.2. Funcții booleene derivate.

În afară de operațiile de bază, de obicei se mai folosesc


și alte operații derivate, în special în domeniul informatic. [47]

Funcția NOR (NEGATIV OR)

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

Funcţia NOR are valoare 1 doar dacă ambele intrări sunt


0. Dacă intrarea SI (OR) are valoare 0 doar in situaţia în care A
si B sunt 0, funcţia NOR reprezintă negația rezultatelor funcției
OR.

39
Fig. 20 - Simbolul grafic al funcției NOR

Practic porțile logice NOR sunt implementate în circuite


integrate, un exemplul fiind integratul CD4001B-MIL (fig. 21)

Fig. 21 - Circuit integrat CD4001B-MIL, Texas Instruments [36]

Fig. 22 - Dispunerea pinilor și semnificația lor pentru un CI standard de


tip 4001 care implementează porțile NOR [40]

Se observă ca in general un IC integrează mai multe


porți NOR (IC 4001 integrează patru porți 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

Fig. 23 - Simbolul grafic al funcției NOR

Fig. 24 - Dispunerea pinilor și semnificația lor pentru un CI standard de


tip 7400 care implementează porțile NAND si un CI 7400 produs de
Texas Instruments.

41
Funcțiile derivate pot fi utilizate pentru obținerea
funcțiilor logicii booleene (NOT, AND, OR), conform
diagramelor:

Obţinerea funcţiei SI utilizând porţi logice

Fig. 25 - Realizarea funcției SI utilizând porți logice NAND

Dacă A =1 și B=1 conform tabelului 8 A NAND B= 0.


Acest rezultat se aplică ambelor porți ale celei de a doua porți
logice NAND (pentru a doua poartă logică A=0, B=0). La cea
de a doua poartă logică, conform tabelului 8 rezultatul va fi 1.
Comparând acest rezultat cu rezultatul funcției SI pentru A=1 şi
B=1 observam ca se obţine acelaşi rezultat.

Fig. 26 - Realizarea funcției SI utilizând porți logice NOR

Dacă A =1 și B=0 şi vom aplica la intrările porilor logice


același valori (1,1 pentru prima poartă; 0,0 pentru a doua

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.

Obţinerea funcţiei SAU utilizând porţi logice

Fig. 27 - Realizarea funcției SAU utilizând porți logice NAND

Dacă A =0, B=0, si aplicam porților NAND aceste valori


vom obține la ieșire (conform tabelului 8) valorile 𝐴 şi 𝐵 (1 și 1).
Aplicând aceste valori pe cea de a treia poartă NAND vom
obține conform tabelului 7 rezultatul 0. Conform tabelului 4,
rezultatul 0 SI 0 va fi 0.

Fig. 28 - Realizarea funcției SAU utilizând porți logice NOR

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.

Obţinerea funcţiei NOT utilizând porţi logice

Fig. 29 - Realizarea funcției NOT utilizând poarta logică NAND

Dacă A=0, se aplică la ambele intrări ale porții NAND si


conform tabelului 7 0 NAND 0 =1. Dacă A este 0 NOT A este
1.

Fig. 30 - Realizarea funcției NOT utilizând poarta logică NOR

Dacă A=0, se aplică la ambele intrări ale porții NOR si


conform tabelului 6 0 NOR 0 =1. Dacă A este 0 NOT A este 1.
În figura 30 este exemplificată realizarea fizică a unor
porți logice.

44
Fig. 31 - Realizarea fizică a porților logice de tip NAND [16]

45
IV. PROGRAMAREA AUTOMATELOR
PROGRAMABILE

IV.1. Standardul IEC 61131

Standardul IEC 61131 conține o sinteză a tuturor


caracteristicilor pe care un AP modern trebuie să le
îndeplinească. Cerințele se referă atât la echiparea hardware a
automatelor programabile cât și la modul de programare al
acestora. [8]
Standardul IEC 61131 reprezintă o colecție și
îmbunătățire a diferitelor standarde aplicabile in domeniul AP.
IEC 61131 se refer la zece alte standarde. [8]
Standardul IEC 61131 este are 9 secțiuni: [42]
 Partea 1: Informații generale
 Partea 2: Cerințe și încercări ale echipamentelor
 Partea 3: Limbaje de programare
 Partea 4: Ghiduri de utilizare
 Partea 5: Comunicații
 Partea 6: Siguranță funcțională
 Partea 7: Programarea controlului Fuzzy
 Partea 8: Linii directoare pentru aplicarea și punerea în
aplicare a limbajelor de programare
 Partea 9: Interfață de comunicare digitală pentru senzori
mici și elemente de acționare (SDCI)

46
Standardul IEC 61131 este elaborat de International
Electrotechnical Commission, al cărui birou se află în Geneva,
Elveția ( 2015).

IV.2. Limbaje de programare

Conform standardului IEC 61131 partea a 3-a


automatele programabile se por programa utilizând
următoarele limbaje:
 Ladder diagram (LD) - Diagrama tip scară
 Function block diagram (FBD)- Diagrama cu
blocuri funcționale
 Structured text (ST)- Text structurat
 Instruction list (IL) - Listă de instrucțiuni
 Sequential function chart (SFC) - Diagrama
secvențială de funcții
 Continuous Function Chart (CFC) - Diagramă
continuă de funcții

Limbajul Ladder diagram (LD) are la bază metoda de


documentare a circuitelor de comandă cu relee.
Function block diagram (FBD) este un limbaj grafic
pentru automatele programabile, [10] care poate descrie
funcția dintre variabilele de intrare și variabilele de ieșire. O
funcție este descrisă ca un set de blocuri elementare. Variabile
de intrare și ieșire sunt conectate la blocurile de linii de
conectare.

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.

IV.3. Tipurile de date și de variabile

A. Șiruri de biți [43]


a. BOOL - 1 bit
b. BYTE - 8 biți - 1 octet
c. WORD - 16 biți (2 octeți) – cuvânt
d. DWORD - 32 biți (4 octeți) – cuvânt dublu
e. LWORD - 64 biți (8 octeți) – cuvânt lung
B. INTEGER – numere întregi [43]
a. SINT – număr întreg scurt (1 octet)
b. INT – număr întreg (2 octeți)
c. DINT – număr întreg dublu (4 octeți)
d. LINT – număr întreg lung (8 octeți)
C. REAL – număr real conform IEC 60559 [43]
a. REAL - număr real (4 octeți)
b. LREAL - număr real lung (8 octeți)
48
D. TIME – durata temporizatoarelor sau a diferitelor
procese.
E. Data și ora [43]
a. DATE – Data
b. TIME_OF_DAY – ora
c. DATE_AND_TIME - data și ora

IV.4. Limbajul Ladder diagram (LD)

Limbajul Ladder diagram (LD) are la bază metoda de


documentare a circuitelor de comandă cu relee. Limbajul este
unul de tip grafic și utilizează ”contacte” respectiv ”bobine”
pentru a implementa elementele de logică booleană.
Denumirea de ledder care în traducere înseamnă scară vine de
la aspectul acestui tip de program. Un program de tip ladder
conţine două linii verticale care pot fi echivalate cu intrările
respectiv cu ieşirile. Elementele care leagă cele două linii
verticale reprezintă elementele de logică booleană.
Pentru limbajul LD standardul IEC 61131-3 stabilește
următoarele simboluri.
Contacte - acestea sunt asociate intrărilor AP.

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.

Fig. 34 - Front se undă crescător

50
Fig. 35 - Front de undă descrescător

Dacă la o intrare a unui AP la care în program se


asociază o intrare de tip contact tranziție pozitivă (front
crescător) apare un semnal de tipul celui prezentat în figura 34,
intrarea va trece din 0 logic în 1 logic, însă acest lucru nu se
va întâmpla dacă la aceeași intrare apare un semnal de tipul
celui din figura 35 (semnal descrescător). Pentru a realiza
trecerea de la 0 logic la 1 logic a intrării pentru semnalul din
figura 35 se va utiliza un contact de tip contact tranziție
negativă care este sensibil doar la semnalele cu front de undă
descrescător.
Bobinele sunt asociate ieșirilor AP.

Fig. 36 - Bobină (a), bobină negată (b) [30]

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. 37 - Bobină SET cu reținere (a), bobină RESET cu reținere(b) [30]

În cazul în care este necesară menținerea uni ieșiri chiar


și în cazul în care condiții care a activat acea ieșire nu mai
exista se utilizează bobinele SET / RESET ( în cadru anumitor
producători aceste funcții se numesc LATCH / UNLATCH,
terminologia provenind de la releele electromecanice care
îndeplineau aceste funcții). O bobină SET va trece în 1 logic
dacă va fi alimentată și va rămâne în 1 logic chiar dacă
alimentarea va fi întreruptă. Dezactivarea bobinei de tip SET
(LATCH) se realizează cu bobina RESET (UNLATCH).

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

Fiecare instrucțiune (3,4,5,6 din figura 39) ocupă un bit


de memorie. În general automatele programabile au mai multe
module de intrări și ieșiri. Atunci când o instrucțiune de tip bit
este asociata unei intrări, adresarea are următoarea forma Ik.j,
I reprezentând faptul că este o intrare, j reprezentând numărul
terminalului de intrare și k reprezentând modulul din care face
parte terminalul j [29]. Majoritatea producătorilor de programe
utilizează pentru intrări litera I sau X. Astfel o adresa de forma
I8.4 reprezintă terminalul de intrare numărul 8 al modulului 4.
În cazul în care o instrucțiune de tip bit este asociată
unei ieșiri, adresarea are forma Q k.j, unde j este numărul
terminalului de ieșire iar k reprezintă modulul din care face
parte terminalul j. In general producătorii utilizează pentru
adresele de ieșire literele O sau Q.

IV.4.1. Realizarea funcțiilor logice utilizând limbajul LD

54
Fig. 40 - Realizarea funcției SAU in limbaj LD

Daca A și B sunt două intrări, oricare dintre ele va trece


în starea 1 logic va determina trecerea bobinei (A sau B) în
starea 1 logic.

Fig. 41 - Realizarea funcției SI in limbaj LD

Daca A și B sunt două intrări, bobina A și B va trece în


starea 1 logic doar dacă ambele intrări vor fi în 1 logic.

Fig. 42 - Realizarea funcției NU utilizând limbajul 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.

Fig. 43 - Realizarea funcției NAND utilând limbajul LD

Se observă ca singura posibilitate ca bobina A NAND B


să aibă valoare 0 logic este atunci când intrarea A și B sunt 1
logic, atunci vor fi negate li vor avea ambele valoare 0 logic,
bobina fiind și ea în zero logic. Oricare din situațiile posibile(
intrările sa fie ambele 1 logic sau sa aibă stări logice diferite)
vor determina trecerea bobinei în starea 1 logic, ceea ce
corespunde cu tabela de adevăr a funcției NAND.

Fig. 44 - Realizarea funcției NOR utilizând limbajul LD

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.

IV.4.2. Programe elementare realizate in LD

Exemplu de program pentru funcția START-STOP

Având un montaj similar celui din figura 45 (schema


simplificară), pentru pornirea becului conectat la ieșirea PLC se
va realiza programul LD.

Fig. 45 - Montaj PLC, două butoane ND cu revenire, bec. - schemă


simplificată

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.

Fig. 46 - Program pornire element acționat - nefuncțional

Pentru înlăturarea problemei apărute la programul din


figura 46 se poate utiliza programul din figura 47.
Se observă că și acest program are o singură treaptă
însă s-a mai adăugat o ramură. Această ramură conține o
bobină însă adresa bobinei este chiar adresa elementului
acționat (Q0.0). Astfel daca I0.1 trece în 1 logic (B1 este
acționat) și I0.1 rămâne în 1 logic (B2 nu este acționat) ieșirea
Q0.0 este activată. Dacă B1 nu mai este acționat (I0.0 trece în
0 logic) ieșirea rămâne activată ( Q0.0 în 1 logic) deoarece
este îndeplinită condiția de pe treapta 0 și ramura 1, condiție
de forma Q0.0 în 1 logic și I0.1 în 1 logic determină Q0.0 în 1
logic (se auto-menține). În această situație doar apăsarea
butonului B2 și trecerea I0.1 în 0 logic determina automatul
programabil sa oprească becul (să treacă Q0.0 în 0 logic)
deoarece nu mai sunt îndeplinite nici condițiile din treapta 0
(rung 0 ) și nici condiția din ramura don treapta 0 și ramura 1
(Q0.0 în 1 logic și I0.1 în 1 logic determină Q0.0).

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)

Fig. 47 - Program pornire element acționat

Programul prezentat în figura 47 se realizează corect


utilizând bobinele de tip SET respectiv RESET

Fig. 48 - Implementarea funcției START-STOP utilizând bobine de tip


SET/RESET (LATCH/UNLATCH)

Exemplu de program care include condiționări

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.

Fig. 49 - Schema electrică pentru implementarea condiționării

Analizând schema observăm ca pornirea motorului se


va realiza daca B1 sau B2 sunt acționate, însă acționarea
oricărui dintre butoanele B3-B5 va duce oprirea motorului.

61
Schema electrică din figura 49 poate fi înlocuită cu
montajul din figura 50.

Fig. 50 Montaj utilizând un AP pentru implementarea schemei electrice


din figura 49

Analizând montajul din figura 50 observăm că toate


butoanele sunt cu reținere mecanică, B1 si B2 sunt butoane
ND, B2,B3 și B4 sunt NI. Din punct de vedere al programării
PLC-uiui înseamnă ca nu trebuie să folosim butoane de tip
SET/RESET (LATCH/UNLATCH) deoarece reținerea este
asigurată mecanic. Totodată având butoanele B3-B5 de tip NI
ne permite utilizarea unor contacte ND in program, închiderea
acestor contacte fiind realizata mecanic. Programul LD pentru
realizarea condiționării impuse utilizând montajul din figura 50
este prezentat în figura 51. În tabelul 9 este prezentată
corespondența între butoane și intrările alocate în program.

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

Fig. 51 - Programul LD pentru îndeplinirea condiționării stabilite cu


montajul din figura 50.

La intrarea A.P- ului în modul RUN, acesta realiza


verificarea intrărilor. Butoanele B1 si B2 fiind ND, intrările
asociate acestora (%I0.0 respectiv %0.1) vor fi 0 logic.
Butoanele B3, B4 și B5 fiind NI intrările asociate acestora
(%I0.2, %I0.3 și %I0.4) vor fi în 1 logic. La apăsarea oricărui
dintre butoanele B1 sau B2 intrarea acestuia va deveni 1 logic
ceea ce va determina ca treapta sa fie adevărată si implicit
activarea ieșirii (%Q0.0). Menținerea în această stare se
realizează mecanic (datorită butoanelor utilizate în montaj.)

63
Fig. 52 Montaj utilizând un AP si butoane ND fără reținere
implementarea schemei electrice din figura 49

Dacă se utilizează montajul din figura 52, programul din


figura 51 nu este funcțional. În figura 52 butoanele sunt fără
reținere, astfel chiar dacă se obține activarea ieșirii acest lucru
nu va fi menținut. Datorită faptului că butoanele B3, B4 si B5
sunt ND, pornirea motorului (activarea ieșirii) este posibilă doar
daca sunt simultan apăsate și menținute astfel B3, B4 si B5
împreuna cu B1 sau B2, lucru care nu este in primul practic și
nu corespunde condiționării propuse.
Programul din figura 53 poate realiza funcția necesară
respectând condiționările impuse utilizând montajul din figura
52.

64
Fig. 53 Programul LD pentru îndeplinirea condiționării stabilite cu
montajul din figura 52.

Programul conține două trepte. Prima treaptă este


similară cu programul din figura 51, intrările %I0.0 respectiv
%I0.1 sunt amplasate în paralel, în serie cu acestea fiind
%I0.2, %I0.3, %I0.4 însă pentru acestea se utilizează un
contact negat, astfel încât valoarea lor să fie 1 logic daca nu
sunt apăsate. Pentru ieșire se utilizează o bobina de tip SET
deoarece butoanele din montaj sunt cu revenire, menținerea
realizându-se prin program. Cea de a doua treaptă a
programului conține Intrările %I0.2, %I0.3, %I0.4 (bobine ND)
montate în paralel. Oricare dintre aceste butoane dacă sunt
apăsate intrarea corespunzătoare va trece în 1 logic si va
reseta ieșirea deoarece se utilizează o bobina de tip RESET.

65
IV.4.3. Numărătoare și temporizatoare

În figura 54 este prezentată o schema pneumatică


simplificată pentru acționarea unui cilindru pneumatic cu dubla
acțiune.
Schema conține un compresor, un distribuitor având
comanda electromagnetica si revenire cu arc, cilindrul
pneumatic cu dublă acțiune. În schema exista și un contact
electric ND care este acționat de tija cilindrului pneumatic,
atunci când aceasta este extinsă la limita cursei sale. Contactul
normal deschis este conectat l intrarea unui automat
programabil iar electromagnetul distribuitorului este conectat la
ieșirea unui AP.

Fig. 54 Schema pneumatică - simplificată - pentru acționarea unui


piston

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.

Fig. 55 Programul LD pentru acționarea pistonului

In cazul programului prezentat în figura 55 nu se pot


impune condiții de menținere a unei anumite poziții (spre
exemplu poziția extinsă) pentru un anumit interval de timp.
Pentru a putea temporiza diverse acțiuni în cadrul automatelor
programabile este necesară utilizarea temporizatoarelor.
Pentru a determina numărul de extensii ale tijei cilindrului este
necesară utilizarea unui numărător.

67
IV.4.3.1 Temporizatoare

In limbajul LD există trei tipuri de temporizatoare și


anume:
 TON (Timer On-Delay): utilizat pentru a controla
timpul de pornire întârziată a unei acțiuni.
 TOF (Timer Off-Delay): utilizat pentru a controla
timpul de oprire întârziată a unei acțiuni.
 TP (Timer - Pulse): utilizat pentru a crea un
impuls temporizat.

Temporizatorul TON

Acest tip de temporizator este utilizat pentru a temporiza


activarea unei variabile de ieșire cu o anumita valoare de
temporizare.

Fig. 56 Simbolizarea temporizatorului TON (TwidoSuite V2.31)

68
Fig. 57 Simbolizare temporizator TON (Allain Bradley) [48]

Indiferent de producătorul automatului programabil


respectiv de aplicația software utilizată pentru programare,
temporizatorul TON are o serie de caracteristici și elemente
obligatorii. Astfel toate temporizatoarele au un identificator al
funcției (in figura 56, pentru TwidoSuite identificatorul este
%TM0 iar în figura 57 pentru Allain Bradley identificatorul este
T4:1 ). Adresa temporizatorului nu are legătură cu tipul
acestuia astfel că pentru ambele temporizatoare este necesara
setarea tipului de identificator ( TYPE TON). Totodată este
necesară setarea valorii de temporizare. În general aceasta se
face printr-o baza de temporizare si o valoare de multiplicare a
bazei. In figura 56 se observa ca baza de timp ( TB- Time
Base) este de un minut iar valoarea de multiplicare 9999, astfel
ca temporizatorul va avea valoarea de temporizare 9999
minute. In cazul figurii 57, TB este 0,1 sec si valoarea de
multiplicare 100 astfel ca temporizatorul va avea valoarea de
temporizare 10 secunde.
Funcționarea temporizatorului TON este prezentată în
figura 58.

69
Fig. 58 Funcționarea temporizatorului TON

Temporizatorul pornește în momentul în care la intrare


apare un front crescător (un semnal care trece de la 0 logic la 1
logic), astfel ca pornește temporizarea măsurând timpul scurs
de la pornire. Ieșirea Q va trece in 1 logic (va fi activată) doar
dacă valoarea actuala a timpului (măsurată) este cel puțin
egală cu valoarea setată. Atât timp cat această condiție este
îndeplinită si intrarea are valoarea 1 logic ieșirea va avea
valoarea 1 logic. Daca intrarea trece in 0 logic ieșirea va fi și ea
trecută în 0 logic.
În figura 58 II se prezintă situația in care intrarea trece
din 0 logic în 1logic însă această stare nu este menținută
suficient pentru ca valoarea actuala (timpul măsurat) sa fie cel
puțin egal cu valoarea setată. În acest caz deși temporizatorul
pornește, ieșirea Q nu va fi activata, la oprirea impulsului de
intrare toate valorile vor fi resetate.

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

Fig. 59 Exemplu de utilizare a funcției TON

Astfel la apăsarea butonului conectat la intrarea %I0.0


se trece ieșirea %Q0.0 in starea 1 logic si fiind utilizata funcția
SET COIL se menține în această stare. Când tija pistonului
atinge butonul conectat la %I0.1 in loc sa pornească imediat
retragerea tijei (așa cum se întâmplă în programul prezentat in
figura 55) se pornește temporizatorul care nu va reseta %Q0.0
decât după 5 secunde de la activarea intrării %I0.1.
Modul în care se realizează setarea temporizatorului
este prezentată în figura 60.

71
Fig. 60 Setarea parametrilor pentru un temporizator (TwidoSuite V2.31)

Temporizatorul TOF

Acest tip de temporizator este utilizat pentru a temporiza


dezactivarea unei variabile de ieșire cu o anumita valoare de
temporizare.
Simbolizarea acestui tip de temporizator este similara cu
cea a temporizatorului TON.

Fig. 61 Simbolizarea temporizatorului TOF (TwidoSuite V2.31)


Funcționarea lui este prezentată în figura 61.

72
Fig. 62 Funcționarea temporizatorului TOF

La detectarea unui front crescător la intrare (intrarea NI


trece de la 0 la 1 logic) ieșirea trece și ea la 1 logic (ieșirea
activată) însă temporizatorul este pornit. La detectarea unui
front descrescător (trecerea de la 1 logic la 0 logic) pe intrarea
IN a temporizatorului, pornește temporizarea efectiva, valoarea
actuala (măsurată) creste spre valoarea setată. Ieșirea Q este
menținută activă până când valoarea actuală (măsurată) este
cel puțin egală cu valoarea setată.
La detectarea unui front crescător, temporizatorul este
resetat .

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)

Fig. 64 Funcționarea temporizatorului TP

La detectarea unui front crescător la intrare (intrarea NI


trece de la 0 la 1 logic) ieșirea trece și ea la 1 logic (ieșirea
activată) respectiv temporizatorul pornit. Ieșirea Q este
menținută activa (în 1 logic) pană în momentul în care valoarea
actuală (măsurată) este cel puțin egală cu valoarea setată.
Temporizatorul TP nu poate fi resetat, odată inițializată
temporizarea, aceasta va menține ieșirea Q activă mana la
momentul în care valoarea actuală (măsurată) este cel puțin
egală cu valoarea setată indiferent de starea variabilei de
intrare.

74
IV.4.3.2 Numărătoare (contoare)

Funcția de contorizare a impulsurilor crescătoare sau


descrescătoare oferă o metoda simpla de a genera acțiuni
după de o intrare a fost realizată de un anumit număr de ori.
Simbolizarea unui numărător este prezentată în figura
65 (exemplu valabil pentru TwidoSuite).
Semnificația elementelor unui numărător așa cum este
el prezentat în figura 65 este [11]:
 %Ci reprezintă numărul contorului (un program
poate avea maxim 128 de numărătoare);
 %Ci.V reprezintă valoarea curenta a
numărătorului;
 %Ci.P reprezintă valoarea setată a
numărătorului;
 R reprezintă intrarea utilizată pentru resetarea
numărătorului (când R are valoarea 1 logic,
%Ci.V = 0.)
 S reprezintă intrarea utilizată pentru resetarea
numărătorului (când S are valoarea 1 logic,
%Ci.V = %Ci.P.) ;
 CU reprezintă intrarea prin care se monitorizează
semnalul crescător și care indexează %Ci.V la
prezenta semnalului crescător;
 CD reprezintă intrarea prin care se monitorizează
semnalul crescător li care la apariția unui semnal
crescător scade cu un increment valoarea %Ci.V;

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

În funcție de producătorul automatului programabil,


funcțiile pot sa difere în ceea ce privește modul de funcționare
sau setare însă principial toate aceste funcții corespund
standardului.

76
Fig. 65 Simbolizarea unui numărător (TwidoSuite V2.31)

Fig. 66 Exemplu de utilizare a unui numărător

În figura 66 este prezentat un exemplu de utilizare a


unui numărător. La intrarea R (reset) a numărătorului este
conectată intrarea %I0.0. a automatului programabil, la intrarea

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.

IV.5. Limbajul Instruction List (IL)

O listă de instrucțiuni (IL) constă dintr-o serie de


instrucțiuni. Fiecare instrucțiune începe intr-o noua linie și
conține un operator și, în funcție de tipul de operațiune, unu
sau mai mulți operanzi separați prin virgule. În fața unei
instrucțiuni poate fi o marcă de identificare (eticheta), urmată
de două puncte (:) [45].

78
Fig. 67 Exemplu de instrucțiune IL

În tabelul sunt prezente instrucțiunile specifice limbajului


IL[I34].

Nr. Operator Modificatori Operand Semantica


1 LD N Note 2 Setează rezultatul curent
egal cu operandul
2 ST N Note 2 Stochează rezultatul curent
in locația operandului
3 S BOOL Setează operatorul
boolean la valoarea 1
R BOOL Resetează operatorul
boolean la valoarea 0
4 AND N, ( BOOL SI
5 & N, ( BOOL SI
6 OR N, ( BOOL SAU
7 XOR N, ( BOOL SAU EXCLUSIV
8 ADD ( Adunare
9 SUB ( Scădere
10 MUL ( Înmulțire
11 DIV ( Împărțire
12 GT ( Comparația: >
13 GE ( Comparația: >=
14 EQ ( Comparația: =
15 NE ( Comparația: <>
16 LE ( Comparația: <=
17 LT ( Comparația: <
18 JMP C, N Eticheta Sari la eticheta
19 CAL C, N NAME Apelare funcție bloc
20 RET C, N Revenire de la funcția bloc
apelata sau de la funcția
bloc
21 ) Obține o valoare din
acumulator
Tab. 10 Instrucțiunile specifice 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

Fig. 69 Funcția SAU în limbaj LD respectiv IL

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

În figura 71 este prezentat un exemplu de program in IL


care utilizează un temporizator de tip TP. In limbajul IL acesta
se definește prin funcția BLK (linia 4 in exemplul din fig. 71).
Pentru contactul negat %I0.2 se utilizează funcția LD cu
modificatorul N rezultând LDN %I0.2 (linia 5 in exemplul din fig.
71) care apoi este definit in acumulatorul programului ca intrare
in temporizatori prin funcția IN. Prin operatorul LD este stocat
rezultatul blocului in Q (ieșirea blocului), in acest moment
acumulatorul programului are valoarea lui Q aferent

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.

Fig. 72 Program in LD si IL utilizând un numărător

IV.6. Limbajul Structured Text (ST)

Limbajul de tip Structured Text este una din modalitățile


de programare definite prin standardul IEC61131-3. Limbajul

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)

IV.6.1. Elemente de sintaxa a limbajului Structured Text


(ST)
Pentru a declara variabilele in cadrul unui program
realizat în ST se vor utiliza cuvintele cheie VAR și END_VAR
[31].

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

Declararea unei variabile de tip boolean

VAR
X : BOOL;
END_VAR

Declararea simultana a trei variabile de tip integer (număr


întreg)

VAR
X,Y,Z : INT ;
END_VAR

Declararea unei variabile de tip cuvânt și asocia o variabilă


într-o locație specifică (in acest exemplu memoria %B2)

VAR
AT %B2:1 : WORD;
END_VAR

Declararea unei variabile de ieșire de tip WORD cui valoarea


000 di definirea ei ca și variabila reținută si după resetare

VAR RETAIN
AT %O:000 : WORD ;
END_VAR

Declararea unei variabile constante de tip real si asocierea


unei valori

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 *)

Pentru a realiza comparații intre variabile in cadrul unui


program scris în limbajul ST, se por utiliza următorii operanzi:
<> diferit (nu este egal)
<= mai mic sau egal
< mai mic
> mai care
>= mai mare sau egal
= egal
MAX(A,B) - maximul intre variabila A si B.

Funcțiile matematice disponibile în limbajul ST sunt [24]:


 := atribuirea valorii la o variabile
 + adunare

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

IV.6.2. Structurii de iterație REPEAT-UNTIL; WHILE-DO ;


FOR

Structurile de tip FOR pot fi utilizate pentru a executa o


operațiune de un anumit număra de ori. Bucla de tip FOR este
inițiată prin FOR si se închide prin END_FOR.

FOR variabila := valoare inițială TO valoare finala BY


increment DO[37]
< expresie >;
END_FOR;

FOR i:=1 TO 10 BY 1 DO
i=i+1;
END_FOR

Structurile de tip WHILE sunt utilizate pentru a repeta


bucla, atâta timp cât anumite condiții sunt adevărate. Bucla de
tip WHILE este inițiată prin WHILE si se închide prin END_
WHILE.

WHILE [expresie booleana] DO


<expresie>;
END_WHILE;

89
WHILE numărătorul < 100 DO
numărătorul := numărătorul + 1;
c := numărătorul * 2;
END_WHILE;

Structurile de tip REPEAT sunt utilizate pentru a repeta


bucla, pana când o expresie booleană este adevărată. Bucla
de tip REPEAT este inițiată prin REPEAT si se închide prin
END_REPEAT.

REPEAT
<expresie>;
UNTIL [expresie booleana]
END_REPEAT;

REPEAT
numărătorul := numărătorul + 1;
UNTIL numărătorul = 100
END_REPEAT;

IV.6.3. Execuție condiționată IF-THEN-ELSE; CASE

Structurile de tip IF se utilizează pentru a executa


expresia după cuvântul cheie THEN daca expresia booleana
utilizata ca și condiție este adevărată. Structura de tip IF este
inițiată prin IF si se închide prin END_IF.

IF [expresie booleana]
THEN
<expresie>;
END_IF ;

90
IF X = 0 THEN
C := 0;
END_IF ;

IF [expresie booleana] THEN


< expresie >;
ELSIF [boolean expression] THEN
< expresie >;
ELSE
< expresie >;
END_IF ;

În esență, declarațiile CASE și declarațiile IF sunt


asemănătoare. Declarațiile CASE utilizează expresii numerice
în loc de expresii booleene. Declarata CASE are, de
asemenea, o sintaxă ușor diferită, care o face mai potrivite
pentru anumite scopuri [31].

CASE [expresie numerică]OF


result1: < expresie >;
resultN: < expresie >;
ELSE
< expresie >;
END_CASE;

IV.6.4. Definirea temporizatoarelor în limbajul ST

Pentru a utiliza un temporizator în cadrul unui program


scris în limbajul ST, acesta trebuie declarat ca o variabilă.
Pentru a declara un temporizator de tip TON se va
utiliza următoarea sintaxă:

VAR
TIMER_A: TON;

91
END_VAR

Pentru a declara un temporizator de tip TOF se va


utiliza următoarea sintaxă:
VAR
TIMER_B: TOF;
END_VAR

Pentru apelarea unui temporizator se utilizează sintaxa


următoare
TIMER_A (IN:= expresie booleana,PT:= temporizarea);
IESIREA ALEASA := TIMER_A.Q;

IN:= expresie booleana - este variabila booleana care


determina inițializarea temporizatorului
PT:= temporizarea - reprezintă durata de temporizare
pentru acel temporizator
Q - reprezintă ieșirea temporizatorului si poate fi utilizata ca o
variabila booleană

IV.7 Limbajul Sequential function chart

Sequential Function Chart (SFC) este un limbajde


programare grafic pentru controlerele logice programabile.
Este unul dintre cele cinci limbi definite de standardul IEC
61131-3. Standardul SFC este definit ca, Pregătirea de
diagrame funcționale pentru sistemele de control, și sa bazat
pe GRAFCET (care la rândul sau sa bazat pe rețele Petri [6]).
Denumirea de GRAFCET apare in standardul IEC 848 si
provine de la " Graphe de Commande Etape-Transition" [3].

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.

Fig. 73 Reprezentarea etapelor intr-un grafic SFC

Fig. 74 Reprezentarea unei etape inițial active

94
Legătura orientată

Fig. 75 Reprezentarea unei acțiuni asociate unei etape și legătura


orientată

Tranziție

Fig. 76 Tranziția

Fig. 77 Receptivitate asociată unei tranziții

95
Fig. 78 Exemplu de SFC

In cadrul diagramelor SFC exista posibilitatea apariției a


două sau mai multe ramuri. Ramurile într-o diagrama SFC pot
să fie ramuri de selecție sau ramuri paralele.
În cazul ramurilor de selecție doar una dintre aceste
ramuri este executată. În cazul ramurilor paralele acestea pot
evolua paralel.

96
Fig. 79 Ramificație de selecție (doar o singura ramură se va executa)

Selecția ramurilor care se vor executa se poate face prin


utilizarea receptivității.

I
II

Fig. 80 Selecția unei ramuri utilizând receptivitatea


În figura 80 se prezintă modul de alegere a uneia dintre
ramurile SFC, ramuri de selecție utilizând receptivitatea. Astfel
daca receptivitatea a=0 este adevărată se va executa ramura I.

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)

Fig. 81 Saltul peste etape [3].

98
Fig. 82 Ramificație paralelă

În cazul ramificației din figura 82 care este o ramificație


paralelă, ambele ramuri sunt executate, în acest caz nu se
pune problema unei selecții. Ramificația paralelă se identifică
prin liniile orizontale duble de la începutul și de la sfârșitul
ramificației.

IV.7.1 Regulile de evoluție a unui Grafcet.

Regula 1 - Situaţia inițială

Situația inițială a unei Grafcet caracterizează


comportamentul inițială a părții de control în ceea ce privește

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

Regula 2 - Inițializarea unei tranziții


O tranziție este validată atunci când toți pașii anteriori
conectați la această tranziție sunt activi. Tranziția se va
declanșa dacă este validată și dacă receptivitatea asociată
tranziției are valoarea logică 1. [12], [3].

Regula 3 - Evoluția unei etape active


Activarea unei tranziții implică simultan și imediat
activarea tuturor etapelor următoarele și inactivarea tuturor
etapelor imediat precedente. [12]

Regula 4 - Evoluția simultană


Dacă există mai multe tranziții care îndeplinesc simultan
condițiile de declanșare, acestea vor fi simultan declanșate.
[12]
Regula 5 - Activarea și dezactivarea simultană
Dacă în timpul funcționării același pas este
concomitent activat și dezactivat, acesta rămâne activ.

100
IV.7.2 Exemplu de utilizare a unui SFC pentru realizarea
unei aplicații

O diagrama SFC simplă pentru controlul unei prese de


ștanțare este prezentată în figura 83. În diagrama presa începe
într-o stare de repaus. Atunci când un buton este apăsat
automat se va porni alimentarea presei și luminile. Când este
detectată o componentă ștanța presei avansa până când va
atinge comutatorul de limitare situat în partea de jos a presei.
Când acest comutator este acționat presa va retrage
automat ștanța până când contractatul comutatorului de
limitare situat în partea de sus va fi acționat, iar ștanța va fi
oprită.
Un buton de oprire poate opri presa numai atunci când
aceasta avansează. Atunci când presa este oprită un buton de
resetare trebuie să fie acționat înainte ca butonul de pornire al
ciclului de ștanțare să poate fi acționat din nou.
După pasul 6 (din figura 83) presa va aștepta până când
în zona de lucru nu este detectată nici o piesă (cu alte cuvinte
piesa stanțată a fost scoasă din presă) înainte de așteptare a
următoarei piese pentru ștanțat. Fără această parte logică
SFC aferentă presei, aceasta ar funcționa într-un ciclu.
continuu ciclu [6].
.

101
Fig. 83 SFC pentru o presă de ștanțat[6A]

102
BIBLIOGRAFIE

Adrian Moise - Automate programabile de tip


[1] industrial, Editura Matrix Rom, 2010, ISBN 978-973-
755-622-6
Basic-PLC-Programming-eBook-program-
[2]
plc.blogspot.com
Daniel Popescu - Automate programabile: construcție,
[3] funcționare, programare și aplicații, Editura
MatrixRom,2005, ISBN 973-685-942-8
Mărgineanu Ion - Rețele PROFIBUS - curs,
[4]
Universitatea Transilvania din Brașov, 2007
Vanessa Romero Segovia and Alfred Theorin - History
of Control History of PLC and DCS
[5] (http://www.control.lth.se/media/Education/DoctoratePr
ogram/2012/HistoryOfControl/Vanessa_Alfred_report.p
df)
Fernandez, J. L.; Sanz, R.; Paz, E.; Alonso, C. (19–23
May 2008). "Using hierarchical binary Petri nets to
build robust mobile robot applications: RoboGraph".
[6]
IEEE International Conference on Robotics and
Automation, 2008. Pasadena, CA, USA. pp. 1372–
1377. doi:10.1109/ROBOT.2008.4543394.
Hugh Jack - Automating Manufacturing Systems with
PLCs - Version 4.7, April 14, 2005) Copyright (c) 1993-
[6A]
2005 Hugh Jack (jackh@gvsu.edu). GNU Free
Documentation License
John G. (Skip) Todora - The PLC/PAC Tutorial
[7]
http://theplctutor.com/history.html
Karl-Heinz John, Michael Tiegelkamp, IEC61131-3:
[8] Programming Industrial Automation Systems, Springer
Verlag Berlin Heidelberg, ISBN 3540677526
Mărgineanu Ion - Automate vectoriale - curs,
[9]
Universitatea Transilvania din Brașov, 2007
R. W Lewis (2001) Modelling Distributed Control
[10]
Systems Using IEC 61499. p. 9
[11] *** TwidoSuite Programming Software - Online Help

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

Tipurile de date definite în IEC 61131-3[31]

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

S-ar putea să vă placă și