09.10.2017 prof .Margineanu Ioan 1 Utilizarea Calculatoarelor în Controlul Proceselor (UCCP) Calculatoare de Proces și Sisteme de Operare în Timp… [628837]

09.10.2017 prof .Margineanu Ioan 1 Utilizarea Calculatoarelor în
Controlul Proceselor (UCCP)
Calculatoare de Proces și Sisteme
de Operare în Timp Real (CPSOTR)
Cuprins

09.10.2017 prof .Margineanu Ioan 2 Control direct și Control Distribuit
PROCESDCU
Madistrală de date, adrese și comenzi Procesor Memorie
Port I/OModul
specializatModul
specializatModul
specializat
Periferic
informaticSistem de condiționare de semnalProcesor
PROCES
Proces
d
Structură de
comandă
Controlul se realizează cu o arhitectură locală de I/O, alcătuită din module de cuplare
la proces, care comunică cu procesorul structurii de comandă prin intermediul
magistralei interne .
Distanța d dintre proces și structura de comandă nu depășește 100 m. În cadrul
procesului se găsesc structuri de traductoare fără inteligență proprie. Întregul
algoritm de conducere este în structura de comandă.
CONFIDENTIAL INFORMATION —DO NOT SHARE OUTSIDE CLASS

09.10.2017 prof .Margineanu Ioan 3 Control direct și Control Distribuit
ProcesCuplor de rețea
(Transciever) Rețea industrială de difuzare
DCU DCU DCUSCU
Structura de comunicare:
 Master/slave.
 Multimaster.
 Peer-to-peer (P2P)
Solicitare
Răspuns Master Slave
Controlul unui proces se poate realiza cu un sistem distribuit de module de I/O.
Modulele au inteligență proprie (procesor/controler) și module de legătură cu procesul
și cu rețeaua (transciever) care recunosc protocolul rețelei. O parte a algoritmului de
conducere este înglobată în modulele distribuite.
Există două tipuri de tehnologii de transmisie a datelor în rețelele industriale: rețele cu
difuzare și rețele punct -la-punct .
Rețelele cu difuzare au un singur canal, care este partajat de toate dispozitivele din
rețea. Datele sunt transmise sub formă de pachete și sunt recepționate de toate
dispozitivele din sistem. Pachetul are un câmp de adresă, care specifică cărui dispozitiv
îi este adresat. Dispozitivul care este adresat prelucrează pachetul, iar celelalte
dispozitive îl ignoră.

09.10.2017 prof .Margineanu Ioan 4 Control Distribuit (BMS)
ProcesCuplor de rețea
(Transciever) Rețea industriala de difuzare
Sistem distribuit
SERVER
CLIENT
Date process Ethernet (TCP/IP)
1
2
3
4
Bază de date
locală Bază de date
Sistem de afișare
pe pagini grafice
Cerere de pagină
Cerere de date

09.10.2017 prof .Margineanu Ioan 5 Cuprins
Cap. 1. Sisteme de condiționare a semnalelor
provenite din proces;
Cap. 2. Module ale calculatoarelor de proces
Portul serial;
Module de I/O;
Structuri de conectare la magistrală;
Structuri de conectare la proces;
Module de intrări analogice;
Module de intrări analogice;
Module de intrări în impulsuri;
Module de ieșiri în impulsuri
Cap. 3. Rețele industriale
Cap. 4. Sisteme în timp real. Noțiuni de proiectare a
aplicațiilor de timp real

09.10.2017 prof .Margineanu Ioan 6 Cap.1. Sisteme de condiționare a semnalelor provenite
din proces;
1.1. Condiționarea semnalelor
1.1.1. Amplificarea/atenuarea semnalelor
1.1.2. Conversia rezistență -tensiune
1.1.3. Conversia tensiune -curent
1.1.4. Conversia tensiune -frecvență
1.1.5. Filtrarea semnalelor
1.1.5.1. Introducere matematică
1.1.5.2. Proiectarea filtrelor analogice
1.1.5.3. Proiectarea filtrelor digitale
1.1.5.4. Studiu de caz. Exemplu de proiectare a
unui filtru digital în LabWindows/CVI
1.1.6. Multiplexarea semnalelor
1.1.7. Izolarea galvanică

DCU SCS PROCES

09.10.2017 prof .Margineanu Ioan 7 Cap. 2. Calculatoare de proces
2.1. Portul serial
2.2. Structuri de conectare la magistrală
2.2.1. La transferul programat;
2.2.2. La transferul pe întreruperi;
2.2.3. La transferul DMA
2.3. Magistrale ale calculatoarelor de proces
2.4. Structuri de conectare la proces
2.4.1. Module de intrări/ieșiri numerice
2.4.2. Module de intrări/ieșiri analogice
2.4.3. Module de intrări/ieșiri în impulsuri
2.5. Utilizarea structurilor de conectare la bus

09.10.2017 prof .Margineanu Ioan 8 Cap. 3. Rețele industriale
3.1. Introducere
3.1.1. Tehnologii și protocoale
3.1.2. Caracteristicile rețelelor industriale
3.1.3. Configurarea rețelelor industriale
3.2. Rețele MODBUS
3.3. Rețele ASi
3.4. Rețele PROFIBUS
3.5. Rețele CAN și CANopen
3.6. Rețele Device Net
3.7. Rețele LonWork

ASi
CAN Open
PROFIBUS PAInterbus s
Device Net
PROFIBUS DP PROFIBUS FMSControl NetMODBUS
MODBUS +
TCP/IP EthernetLonWork, BacNetCÂMP
CONTROL
SUPERVIZARETIMP DE RĂSPUNS
VOLUM DE DATE

09.10.2017 prof .Margineanu Ioan 9 Cap.4. Sisteme în timp real
4.1. Sisteme de operare. Sisteme în timp real.
4.2. Structuri utilizate de sistemele în timp real
4.3. Mecanismul de excludere mutuală, de
sincronizare și comunic ație între procese și fire

09.10.2017 prof .Margineanu Ioan 10 Cap. 5. Noțiuni de proiectare a
aplicațiilor de timp real
5.1. Semafoare și evenimente în Windows
5.2. Aplicații client -server

09.10.2017 15:58 prof .Margineanu Ioan 1 Cuplarea la proces
1.1. Con diționarea ( Conversia) semnalelor
1.1.1. Conversia rezistență -tensiune
1.1.2. Conversia tensiune -curent
1.1.3. Conversia tensiune -frecvență
1.2. Filtrarea semnalelor
1.2.2. Proiectarea filtrelor analogice
1.2.3. Proiectarea filtrelor digitale
1.2.4. Exemplu de proiectare a unui filtru digital

09.10.2017 15:58 prof .Margineanu Ioan 2 Condiționarea la semnalelor de la proces
Realizarea conducerii unui proces cu ajutorul uni calculator se poate face prin colectarea de
informații de stare din proces . Apoi pe calculator se întocmește un program de conducere și se
transmit spre elementele de execuție comenzi .
Informațiile de la proces sunt furnizate de traductoare . Traductoarele sunt elemente care
transformă mărimea fizică provenită din proces într-un semnal electric, tensiune sau curent, pe
care modulele calculatoarelor de proces le pot prelua și transforma în valori numerice . Aceste
valori pot fi folosite pentru realizarea programelor de conducere . De exemplu senzorii
termoelectrici de temperatur ă convertesc temperatura într-un semnal analogic pe care un modul de
intrări analogice îl poate prelua . Deși toate traductoarele, indiferent de mărimea care o măsoară,
trebuie să furnizeze mărimea fizică în semnal electric, sunt cazuri în care acestea nu dau direct un
semnal de tensiune sau curent și transformarea trebuie realizat ă prin intermediul unui hardware
separat, inclus în traductor sau într-o structură separat ă pe care o vom denumi în continuare
Sistem de condiționare a semnalelor (SCS) provenite din proces .
SCS este realizat ca o structur ă separat ă, care este situat ă intre calculatorul de proces și proces .
Principalele funcții ale unui SCS sunt:
Adaptarea mecanic ă la normele industriale de cablare ;
Adaptarea electric ă a semnalelor (amplificarea -atenuarea, prelucrări matematice simple,
conversii de la mărimi ne-electrice la tensiune/curent etc.);
Izolarea galvanic ă și protecția împotriva supratensiunilor și supracuren țior;
Filtrarea semnalelor ;
Funcții auxiliare de alimentare a traductoarelor și elementelor de execu ție.

09.10.2017 15:58 prof .Margineanu Ioan 3 Transformarea rezistență -tensiune

+R0
R0Ue RTU
R0
0
0
2 3 4(1 )
1()2
1 1 1 1 1()2 4 8 16 32T
T
e
T
eRR
RU U URR
U U U U U U

    

     
0
0
2 3 41
(2 ) 2 4 2
1 1 1 1
4 8 16 32e
eRU U UR
U U U U U

     
    
R0
RT+
-U
Ue
R0
R0UeRTU
R0
0
002
2T
e
TT
eUU
R RU U UR R R R
UU
UU





F
UeF

09.10.2017 15:58 prof .Margineanu Ioan 4 Transformarea rezistență -tensiune
TR R
0]2,0[
.10V U
0 0.25 0.5 0.75 1 1.25 1.5 1.75 20246810
10
0u1a()
u2a()
u3a()
2.5u1a()
2 0 aα-Ue(α)2 1
2a3

09.10.2017 15:58 prof .Margineanu Ioan 5
F
UeF
Măsurarea forțelor
42DLR

dRdDDRdLLRdR
 d
kDLdD
kDLdL
kDdR2 3 22 
d
DdD
LdL
RdR2
LdLx /
DdDy /
y x /
x xd
RdR
G
 21
0 /d
x
)21(RdR
RGRRRR R ) 1() 1( 
.4/k
RG R

+R0
R0Ue RTU
R0
KURURe0
02
EAF
E G KURRUe 
00 2
Coeficientul lui Poisson
K
UK Ue 21
KUGEAUFe 2

09.10.2017 15:58 prof .Margineanu Ioan 6 Transformarea tensiune -curent
21
1 2 1 2
5 3 5
45[ ( )]ie
esR U RUUR R R R
R U R I IURR


35
5
45()esU R I IIRR
3
5
345eSU R IIR R R
53
345()eS R U R IUR R R
UU
2 5 1 3 4 35 2
3 4 5 1 2 3 4 5 1 2 ( )( )S e iR R R R R RR RI U UR R R R R R R R R R     
2 5 1 3 4R R R R R
2
13SiRIURR

+R1 R2
Ue
R3
R4
R5 RSI5 ISUi

+R1 R2
Ui –
+R1 R2
Ue
(1) (2)

09.10.2017 15:58 prof .Margineanu Ioan 7 Conversia tensiune -frecvență
Convertoarele tensiune -frecvență se utilizează pentru conversia semnalelor analogice în
semnale numerice. Un avantaj important este că informația de frecvență se poate
transmite la distanță, ca un semnal imun la perturbații, care poate trece prin izolatoare
galvanice (inductive sau optice) fără a fi afectat de erori de frecvență .
Când tensiune de ieșire a integratorului
depășește pragul comparatorului acesta
declanșează monostabilul, care va închide
contactul k un timp TM.
RR
21
kK +-
+-Circuit
basculant
monostabilC
ui
ue
-UR1-UR2
 1
02 2 )0(1t
x UdtuRCU
2 2 RU U
01R xUu
  TMt
tR x tUdtUuRCU1
1)( ) (1
12 1 2
B
AO
ueu2
Tt1
t
tTM-UR2
RCutgx
RCU utgR x 1
1

09.10.2017 15:58 prof .Margineanu Ioan 8 Necesitatea utilizării filtrelor în informatica aplicată

0 1 2 3 4 5 6 7 8 9 101012345678910
yk()
y1
y2k()
z0
z1
z2
z3
z4
z5
z6
z7
z8
z9
kkkx0 x1 x2 x3 x4 x5 x6 x7 x8 x91
23
Tt
nu1 u2 u3 u4 u5 u6 u7 u8 u9
Este clar că se impune o curățire a semnalului de intrare de valorile nedorite și acest lucru trebuie realizat prin
utilizarea unui filtru care să elimine total sau parțial componenta alternativă a semnalului de intrare.

09.10.2017 15:58 prof .Margineanu Ioan 9 Filtrarea semnalelor
2
12
21;r
r
r
rk
k
 

r
rk


1
1
0 0.5 1 1.5 200.511.5
H()
0 0.5 1 1.5 200.511.5
H1()

2)(H
2)(H
2)(H



a. b.c.1
njH22
11)(


1 1111
  
   
)]( [)()]( [ )(],[ )] arccos( cos[
arcchncharchnch Tn
nn
)( 11)(222

nTjH
Pafnuty Lvovich Chebyshev (1821 -1894)
) ln()( 12 x x x arcch

09.10.2017 15:58 prof .Margineanu Ioan 10 Filtrarea semnalelor
Formularea problemei:
Fiind dat modulul (pătratul modulului) unei funcții de circuit, să se găsească circuitul care
realizează această funcție.
Prin înlocuirea lui j  cu s în aceasta se obține o funcție despre care se știe că reprezintă produsul
dintre H(s) și H( -s).
In cazul unui polinom Butterword, rezultă:

Polii funcției rezultă din ecuația:

2( 1)nns 
n-par
21nsn-impar
21ns
(2 1) (2 1)cos sin ,22
0,1, 2…2 1.kkksjnn
kn

22cos sin ,22
0,1, 2…2 1.kkksjnn
kn

)( )( )(2sHsH sH 
nnssH22
)1(11)(

njH22
11)(


js

09.10.2017 15:58 prof .Margineanu Ioan 11 Filtrarea semnalelor
k(2k+1)π (2k+1)πs =cos +jsin ,2n 2n
k=0,1,2…2n-1.
22cos sin ,22
0,1, 2…2 1.kkksjnn
kn

Determinarea polilor din semiplanul stâng:
(2 1)
22
(2 1) 3
22k
n
k
n


2
22
23
22k
n
k
n


2nk
1
2nk
3
2nk
31
2nk
5432 1
0
1.5 1 0.5 0 0.5 1 1.51.50.7500.751.5
Ims2
Ims3
Ims4
Res2Res3 Res4+j
+1
122
32143 42 324 3 2

CsssBssssssA sss
CsBsAssH










02
03
01)(
  
3
32
21
1 03
32
21
1 0)(    

za za zaazb zb zbbzH
François Viète (1540 -1603)

09.10.2017 15:58 prof .Margineanu Ioan 12 Proiectarea filtrelor
În proiectarea filtrelor se lucrează cu atenuări, în locul amplificărilor.
Etapele proiectării:
1. Se determină ordinul filtrului, impunând -se atenuări în banda de trecere și banda de oprire;
2
1
min
010lg[1 ]n
a


2
2
max
010lg[1 ]n
a


min
21 10
010 1 ( )a
n

max
22 10
010 1 ( )a
n

min
max10
10
1
210 1lg
110 1
2lg( )a
a
n


2. Se determină polii sk ai funcției de transfer; Un bel însemnă că puterea este amplificată de un circuit cu 10
io
BPPL lg
io
dBPPL lg10
Atenuarea este definită în decibeli conform relației:
)( lg20
0H a
])(1lg[10
)(11lg20 )(2
0 2
0n
na
 


09.10.2017 15:58 prof .Margineanu Ioan 13 Proiectarea filtrelor
3. Se construiește funcția de transfer a filtrului;
4. Se proiectează filtrul numeric. Proiectarea unui filtru digital pornind de la un filtru analogic
presupune existența unei relații biliniare între spațiul s și spațiul z. O transformare care
satisface această condiție este:
1
121
1zsTz

Rezultă:
0
0
1()m
k
k
k
n
k
k
kbz
Hz
a a z





În domeniul timp, rezultă:
01 01( ) ( ) ( )mn
kk
kky t b x t kT a y t kTa   

2
1) (1)(k
kkksssH

09.10.2017 15:58 prof .Margineanu Ioan 14 Proiectarea filtrelor
(Studiu de caz)
Să se proiecteze un filtru digital trece jos, de tip maxim plat, cu următorii parametri:
La să aibă atenuarea , iar la să aibă atenuarea .
Din expresia de mai sus se obține:
Vom lua 3 ordinul filtrului.
Rezultă frecvența de tăiere și atenuările: , ceea ce este foarte aproape de
parametrii impuși.
Polii din semiplanul stâng au expresia:
Hz f501
1)2(1fa
Hz f 3002
40) 2(2fa
9472,2n
821,40)2( ,1)2(2 1   fa fa  
4,3,2 ,22sin22cos    knkjnksk 
5432 1
0
1.5 1 0.5 0 0.5 1 1.51.50.7500.751.5
Ims2
Ims3
Ims4
Res2Res3 Res4+j
+1
122
32143 42 324 3 2

CsssBssssssA sss
CsBsAssH










02
03
01)(
  
3
32
21
1 03
32
21
1 0)(    

za za zaazb zb zbbzH
0 33
03 2
02
0 30 23
03 2
02
0 20 13
03 2
02
0 13
03
03
03 2
02
0 0
2 483 3 2 4 243 3 2 4 242 48
bb CT BT AT ab b CT BT AT ab b CT BT AT aTb CT BT AT a
        
         
11
112


zz
Ts
01 01( ) ( ) ( )mn
kk
kky t b x t kT a y t kTa   

09.10.2017 15:58 prof .Margineanu Ioan 15 Realizarea hardware
iu
eu
R
C
CjRCj
uu
ie

11

2211



RCRC
uu
ie
0 0.5 1 1.5 2 2.5 3 3.5 400.10.20.30.40.50.60.70.80.91
1
0y()
y1
RC
4 01
RC
e
iu
u

09.10.2017 15:58 prof .Margineanu Ioan 16 Realizarea hardware
b0 b1 b2 b31/z 1/z 1/z
a3 a2 a11/a0
+ + ++ + + +
+
+
1/z 1/z 1/zx(t)
y(t)
01 01( ) ( ) ( )mn
kk
kky t b x t kT a y t kTa   
Intrare
Iesire

09.10.2017 15:58 prof .Margineanu Ioan 1 Cap. 2. Calculatoare de proces
Partea I -a

09.10.2017 15:58 prof .Margineanu Ioan 2 2.1. Introducere
2.2. Portul serial
2.3. Module de I/O
2.3.1. Magistralele calculatoarelor de proces
2.3.2. Structura de conectare la magistrală a modulelor de intrări
2.3.3. Structura de conectare la magistrală a modulelor de ieșiri
2.3.4. Structuri hardware ale modulelor care permit transferul pe
întreruperi
2.3.5. Structuri hardware ale modulelor care permit transferul DMA
2. Calculatoare de proces

09.10.2017 15:58 prof .Margineanu Ioan 3 Introducere
Madistrală de date, adrese și comenzi Procesor Memorie
Port I/OModul
specializatModul
specializatModul
specializat
Periferic
informaticProcesProcesor

09.10.2017 15:58 prof .Margineanu Ioan 4 Introducere
Proces

09.10.2017 15:58 prof .Margineanu Ioan 5 Portul serial
BUSYREADYRECEPTOR EMITATOR
CLKDATE Registru de
deplasare
Registru de
dateRegistru de
dateRegistru de
deplasare
OSC.TxD RxD
Transmisia serială completă
1 1 1 1 1
0 0 0 0 STARTEMITATOR1 1 1 1
0 0 0 0STOP
1PARITYMARK
STARTBiti de informatieBiti de control
RECEPTORCLOCK
CLOCKDATE
DATE1 1
Transmisia serială asincronă

09.10.2017 15:58 prof .Margineanu Ioan 6 Portul serial
Detectarea erorilor
Într-o rețea P2P din care face parte portul serial datele pot fi corupte . Pentru o comunicație
sigură erorile trebuie detectate și corectate .
Detectarea erorilor utilizează conceptul de redundanță , care înseamnă adăugarea de biți
suplimentari pentru detectarea erorilor la destinație . În loc de a repeta mesajul se adaugă un
grup de biți la sfârșitul mesajului care permit stabilirea unei erori de transmisie și în felul
acesta să ceară, numai în acest caz, retransmiterea mesajului . Acești biți sunt eliminați din
mesaj imediat ce s-a testat acuratețea mesajului .
La portul serial este realizat o detectare VRC (Vertical Redundancy Check ) care se mai
numește și detectarea parității . (Mai există verificări LRC, CRC și Hamming) .
În cadrul VRC se utilizează un singur bit care se adaugă la sfârșitul mesajului astfel încât
numărul de biți egali cu 1, inclusiv bitul de paritate, să fie par (paritate pară) sau ca numărul
biților egali cu 1 să fie impar (paritate impară) .

09.10.2017 15:58 prof .Margineanu Ioan 7 Portul serial
Despre paritate
Transmisie cu paritate pară A → B
A dorește să se transmită: 10111010
A calculează bitului de paritate: 1^0^1^1 ^1^0^1^0 =1
A adaugă bitul de paritate: 10111010 1
B recepționează: 10111010 1
B calculează paritatea: : 1^0^1^1 ^1^0^1^0^1 =0
B raportează transmisia corectă
Transmisie cu paritate impară A → B
A dorește să se transmită: 10111010
A calculează bitului de paritate: 1^0^1^1 ^1^0^1^0 =0
A adaugă bitul de paritate: 10111010 0
B recepționează: 10111010 0
B calculează paritatea: 1^0^1^1 ^1^0^1^0^0=0
B raportează transmisia corectă Paritate: pară (even) și
paritate impară (odd)
Circuit UART (Universal Asynchronous Receiver/Transmitter).
8250 Viteză 19.5 KBps
16550 Memorie 16ko Viteză 115 kBps

09.10.2017 15:58 prof .Margineanu Ioan 8 Portul serial
Codificarea biților
-12 V+12 V5 V
001 11 1 0 0
-12 V+12 V5 V
001 11 1 0 0
Codificarea Manchester bifazată

Codificarea Manchester diferențială Codificarea NRZ
Se asociază -12 V →1 și +12 V→0
Fiecare perioad ă de bit este împarțită în două părți egale
La mijlocul timpului de bit se realizează tranziția la polaritatea
opusă
Un bit 1 este indicat prin absența tranziției la începutul
perioadei de bit, iar un bit 0 este indicat prin prezența
tranziției la începutul perioadei de bit .
La mijlocul timpului de bit se realizează tranziția la
polaritatea opusă

09.10.2017 15:58 prof .Margineanu Ioan 9  Lipsa unui mecanism de control al fluxului de date. Acesta nu este un dezavantaj major
deoarece controlul fluxului de date este asigurat mult mai bine prin software.
 Limitări de distanță. Distanța maximă este de 15 m. În principal aceasta este limitată de
valoarea maximă a capacității de cca. 2500 pF.
 Limitări de viteză. Vitezele nu depășesc valoarea de 115 kbps (max. 460 kbps ). ???
 Metoda de împământare. Toate semnalele sunt raportate la masa reprezentată de pinul 7 și
există diferențe de potențial între cele două capete ale cablului. Aceasta poate duce la
posibilitatea interpretării greșite a semnalelor.
 Limitări a numărului de parteneri. Doar două sisteme pot cuplate prin intermediul portului
serial.
 Imposibilitatea de control direct al circuitelor TTL și CMOS. Portul serial
Dezavantajele portului serial
Realizarea unor aplica ții de control și monitorizare cu mai mul ți parteneri, deci
realizarea unei rețele industriale bazate pe portul serial , necesită ca portul să fie
adaptat atât ca nivel de tensiune cât și pentru a putea controla fluxul de date pe
rețea. Un astfel de adaptor conține două părți distincte: un adaptor de nivele și o
structură de control a vehiculării informa ției pe linie.

09.10.2017 15:58 prof .Margineanu Ioan 10 Portul serial
Circuite de adaptare
++++
+
C4
C2C1C5 C3
V+10 V
RS-232 TTL/CMOS
8137146
91210112
543116+5 V
MAX232
5 V
5 V
0 V
AB
D1DERER0
GNDVCC
567
3
48
210 VA
5 V
0 VB
0 A=0 V B=5 V
1 A=5 V B=0 V
Control hardware ST 485
Rt Rt
TXRX
BB E
RA
ATX
RX
BB E
RA
ATX
RXBB
ERA
A
Adaptare de nivel
Full-duplex
Rețea RS -485 Half-duplex

09.10.2017 15:58 prof .Margineanu Ioan 11 Studiu de caz
RBRB
12 KB
BE
ATX
RXA
+5V
Rezistența de eliminare a reflexiilor Portul serial
s reflexii svlt m l c v   6.36 3;2.122; 1200 ;66.0    
Bps las Tbit 9600 104
Deoarece UART eșantionează datele, așa cum am arătat mai sus, în
mijlocul bit, este important ca nivelul semnalului fi bun în acel moment.
În scopul de a menține starea de tensiune corespunzătoare stării inactive,
rezistente numite rezistențe de polarizare (bias) trebuie introduse la capete
pentru a forța linia de date în starea inactiv.
Valoarea rezistoarelor bias depinde de sursa folosita și numărul de
noduri în sistem . Scopul este de a genera un curent de bias în rețea
pentru a menține un minim de 200 mV între liniile B și A de date.
   
1371 1428 5.3 20057210 12 120
n B bn t
nod n t
RR R R mA i mV UnRparalelRR nk R RRezistența de bias

09.10.2017 15:58 prof .Margineanu Ioan 12 Portul serial – Controlul fluxului de date pe magistrala
RTSTTL
RTSTTL5 V
VATXTTL
0 V5 V0 V5 V0 V-12 V+12 V
RTSRXTTLTXTTLE
BABConver de nivele
RS-232 la TTL
TX
RXRAConver de nivele
TTL la RS-485
TX
VB
Driver inhibat
TE
CTRT5 V
VATXTTL
0 V5 V0 V5 V0 V-12 V+12 V
RTSRXTTLTXTTLE
BABConver de nivele
RS-232 la TTL
TX
RXRAConver de nivele
TTL la RS-485
TX
VBMonostabil
retriggerabil
TE
Driver inhibat

09.10.2017 15:58 prof .Margineanu Ioan 13 Magistralele calculatoarelor de proces

Data busMemorie
Adress busModule
Control bus
System busCPU
Conector si soclu DIN 41612
Edge Card Edge Connector carduri sau module

09.10.2017 15:58 prof .Margineanu Ioan 14 Magistralele calculatoarelor de proces
Principalele tipuri de magistrale I/O sunt: ISA (Industrial Standard
Architecture ), MCA (Micro Channel Architecture ), EISA (Extended ISA), VL-Bus
(VESA Local Bus, PCI (Peripheral Component Interconnect ), PC-Card (fosta
PCMCIA : Personal Computer Memory Card Interface Adapter ), VME (Versa
Module European )

Se deosebesc în primul rând prin volumul datelor transferate simultan și prin
viteza de transfer .
Modulele calculatoarelor de proces se selectează uzual în spațiul de adrese I/O al
PC.
Selecția modulului se poate face la o adresă fixă (cu porți logice sau circuite
integrate) sau la o adresă selectabilă cu switch -uri DIP sau jumperi.

Procesul de configurare este destul de dificil și necesită multă experiență tehnică.
Setările incorecte pot face ca întregul sistem să nu funcționeze. Pentru setări
incorecte ale întreruperilor (IRQ) sau a accesului direct la memorie (DMA) sistemul
poate funcționa corect până se realizează o cerere de întrerupere sau un acces
direct la memorie, când acesta se blochează și trebuie resetat. Configurarea modulelor de proces  Cum se selectea ză (adresa)
 Dacă acceptă sau nu întreruperi (adresa de întrerupere)
 Dacă acceptă DMA

09.10.2017 15:58 prof .Margineanu Ioan 15 Magistralele calculatoarelor de proces
Atât în informatica generală cât și în cea aplicată a existat o mare presiune pentru
automatizarea procesului de configurare , pentru a scuti utilizatorul sistemului de
complexitatea setării manuale.
Începând cu anul 1993 Intel și Microsoft au introdus o nouă versiune de ISA,
numită Plug and Play (PnP) ISA. Această versiune permite sistemului de operare
configurarea modulelor de extensie în mod automat, astfel încât utilizatorii nu
trebuie să utilizeze switch -uri DIP sau jump-eri. I
II S-au utilizat mai multe tehnici cum ar fi utilizarea unui hardware suplimentar pentru a
permite o configurare software. Modulele erau însoțite de un program de configurare.
Aceasta a permis reducerea numărului de jumperi și DIP dar nu a rezolvat complet
problema.

09.10.2017 15:58 prof .Margineanu Ioan 16 Magistralele calculatoarelor de proces
Detectarea automată, configurarea hardware și software (PnP) nu este o sarcină
simplă . Pentru a realiza acest lucru este necesară o cooperare între hardware și mai
multe componente software . Cei patru parteneri care trebuie să coopereze sunt:

1. Hardware -ul sistemului. Prin chipset *-ul sistemului și prin controlerele de magistrală,
hardware -ul trebuie să fie capabil să manipuleze module PnP.

2. Hardware -ul modulelor . Modulele adăugate trebuie să fie PnP compatibile. Aceasta
înseamnă că acestea să se identifice atunci când sunt solicitate și să fie capabile să
accepte atribuirile de resurse din sistem atunci când sunt făcute.

3. BIOS-ul sistemului . Rolul BIOS în PnP este esențial . Rutinele sale execută o colectare
a informațiilor cu privire la diferitele module determinând ce resurse sunt folosite de
acestea. El comunică aceste informații sistemului de operare pe care acesta le
folosește pentru configurarea driverelor sale și altor aplicații software pentru a face ca
modulele să funcționeze corect.

4. Sistemul de operare . Acesta trebuie să fie proiectat pentru a lucra cu BIOS -ul, deci
indirect cu hardware -ul. Acesta stabilește ce software de nivel jos (driverele de nivel
modul) este necesar ca modulul să poată fi utilizat de aplicații. De asemenea
comunică cu utilizatorul schimbarea configurării.

* Chipset -ul se referă la un grup de circuite integrate distincte care lucrează împreună
și care este vândut ca u singur produs.

09.10.2017 15:58 prof .Margineanu Ioan 17 Magistralele calculatoarelor de proces
Cele mai multe lucruri necesare pentru a face PnP sunt realizate de BIOS în cursul procesului
de pornire al sistemului. Principalii pași pe care îi execută BIOS -ul în procesul de pornire sunt:

1. Crearea unui tabel cu întreruperile disponibile, canalele DMA și adresele I/O.

2. Căutarea și identificarea modulelor PnP.

3. Încărcarea ultimei configurații ESCD (Extended System Configuration Data) stocată în memoria
nevolatilă.

4. Compararea configurației curente cu cea încărcată.

5. Dacă configurația nu este identică cu cea veche se realizează o reconfigurare.

09.10.2017 15:58 prof .Margineanu Ioan 18 Structura de conectare la bus (ISA)

Data Interrupt Status Mode

09.10.2017 15:58 prof .Margineanu Ioan 19 Structura de conectare la bus . Studiu de caz I
GETCHAR: IN AL, ASTATUS ; Testarea
; stării modulului
AND AL, MASCA ; Punerea în
; evidență a
; bitului de stare
JZ GETCHAR ; Sfârșitul buclei de
; așteptare
IN AL, ADATA ; Preluarea datei
RET
Magistrală de adrese
DCDS
ADPERMagistrala de comezi
DCDP
INDA
INSTALD0
1
2
3
4
5
6
7WRITE2021
DRSR
21024
STROBE
DR LD
QQSET
CLRS
RMagistrală internă
Magistrală de dateBUSY0
MASCA ADATA ASTATUS
ADRESA 00 0 10 ADRESA 01
Transfer de intrare
DATA
STROBE
BUSY
21
INSTA
INDA
IN AL, ASTATUS
AND AL, MASCA
JZ GETCHAR
IN AL, ASTATUS
AND AL, MASCA
JZ GETCHAR
IN AL, ASTATUS
AND AL, MASCA
JZ GETCHAR
IN AL, ADATA
IN ADPER=1;
Adresa pe magistrala de adrese;
WRITE=0;

09.10.2017 15:58 prof .Margineanu Ioan 20 Structura de conectare la bus . Studiu de caz II
DATAKSTROBE
ADPERWRITEMagistrală de adrese
DCDSMagistrala de comezi
DCDP
INSTALD0
1
2
3
4
5
6
72021
DRSROUTDA
QQSET
CLRS
R
20024
LDMagistrală internă
DR
Magistrală de dateLDÎntârziere
STARE1
LOOP: IN AL, ASTATUS ; Testarea stării modulului
AND AL, MASCA ; Punerea în evidență a
; bitului de stare
JZ LOOP ; Sfârșitul buclei de
; așteptare
POP AX ; Refacerea informației
OUT ADATA, AL ; Transmiterea da tei

MASCA ADATA ASTATUS
ADRESA 00 0 01 ADRESA 01
20STROBETransfer de ieșire
DATA
INSTAOUTDA
STARE
ADPER=1;
Adresa pe magistrala de adrese;
WRITE=1; OUT

09.10.2017 15:58 prof .Margineanu Ioan 21 Structuri hardware ale modulelor pentru realizarea transferului pe întreruperi
Nivelul procesor
Impuls pentru
instrucțiunea
următoareINTACKINTREQ
IOFFION
QQSET
CLRS
R
RI
CALL
Magistrala de datePROCESOR
RESETQQSET
CLRS
R
IB1
B2
(1)(2)
Impuls pentru
instrucțiunea
următoareINTACKINTREQ
IOFFION
QQSET
CLRS
R
RI
CALL
Magistrala de datePROCESOR
RESETQQSET
CLRS
R
IB1
B2
(1)(2)

09.10.2017 15:58 prof .Margineanu Ioan 22 La nivelul port

INDA
INSTAINTACKINTRQ
ARLINTENMagistrala de adrese
Magistrala de dateQQSET
CLRS
RQQSET
CLRS
R
MR
SRDRPROCESOR

09.10.2017 15:58 prof .Margineanu Ioan 23 Arbitrare descentralizată
Pin de intrare Pin de ieșire
IEO IEIINDA
INSTAINTACKINTRQ
ARLINTENMagistrala de adrese
Magistrala de dateQQSET
CLRS
RQQSET
CLRS
R
MR
SRDRPROCESOR

09.10.2017 15:58 prof .Margineanu Ioan 24 Arbitrare centralizată

09.10.2017 15:58 prof .Margineanu Ioan 25 Structuri hardware ale modulelor pentru realizarea transferului de tip DMA
HOLDACKHOLDRQPROCESOR
DataMagistrala de adrese
Magistrala de dateControler DMA
Memorie RA
N
Canal DMA
DR DR
Logică de controlINTRQ

09.10.2017 15:59 prof .Mărgineanu Ioan 1 Modulele calculatoarelor de proces

09.10.2017 15:59 prof .Mărgineanu Ioan 2 Cap. 4. Modulele calculatoarelor de proces
4.1. Module de intr ări numerice
4.2. Module de ieșiri numerice
4.3. Module de intrări analogice
4.4. Module de ieșiri analogice
4.5. Module de intrări în impulsuri
4.6. Module de ieșiri în impulsuri

09.10.2017 15:59 prof .Mărgineanu Ioan 3 Module de intrări numerice
R2 R2R4 R4R5C
. . . . . .
1 GNDInternal Data Bus
R3
DZOCR3
OC
DZStrobe2n 20
R1R1LED LEDR5C
+UaGS
n

09.10.2017 15:59 prof .Mărgineanu Ioan 4 Module de ieșiri numerice
D120 2n
. . . . . .Internal Data Bus
OC
LEDPA
D2D1OC
LEDPA
D2
0 nAD AD
R R
C C
+Ua

09.10.2017 15:59 prof .Mărgineanu Ioan 5 Module de intrări analogice
Tipuri de achiziții
Din punct de vedere al convertorului: unipolară (0 -UR), bipolară ( -UR/2,UR/2)
Din punct de vedere al mărimii achiziționate: single ended, differential
Rezoluția: Cea mai mică valoare sesizată de convertor
(depinde de numărul de biți ai convertorului)
2R
nUr

09.10.2017 15:59 prof .Mărgineanu Ioan 6 Module de intrări analogice
Amplificarea
Canal fizic (pin) și canal virtual (o colecție de proprietăți care pot fi
setate: nume, tip de achiziție, amplificare )
Rata de eșantionare (viteza de achiziție)
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.510.500.51
1
1y1t()
y2t()
0.5 0 ttx1Tensiunea din procesT1
T2u
tTensiunea din proces Tensiunea falsă

09.10.2017 15:59 prof .Mărgineanu Ioan 7 Module de intrări analogice
Tipuri de module: Clasa S, clasa E și clasa M
Ceas de eșantionare (Sample clock) și ceas de conversie (Convert clock)
Clasa S
Clasa E și M
Sample clock =
Convert clockSample clock
Convert clock
CH1CH2CH3
a. b.dt

09.10.2017 15:59 prof .Mărgineanu Ioan 8 Module de intrări analogice Clasa M
LCUCOM
ANALAICV E/M CAN
TipH SC EOC
CâstigMUX
ACanal 1
Canal 2
Canal nGND
Canal
TimerBUS
MASTERINGInternal Bus

09.10.2017 15:59 prof .Mărgineanu Ioan 9 Multiplexor analogic
C
TcUe
Ui+-+-
HCE
Decodificator+-Registru0
1
2
2n-1
D S
G
tS/H
S
HUi UeUiUe
S/H Circuitul de S -H convertor
C
TcUeUi
+-+-
S/HCE
Ad(Ui- Ue)
Ta
DateStare CNueuiS/H CAN
H SC Stare C
H
SC
Inalta impedantaTc
Date valide
TcUi
+-
S/HCE
Ad(Ui- Ue)C
Ue
+-

09.10.2017 15:59 prof .Mărgineanu Ioan 10 Convertoare analog -numerice
810121416202224
100 1K 10K100K 1M 10M100MDUBLĂ
INTEGRARE
FLASHSARREZOLUȚIE
RATA DE EȘANTIONARECONVERSIE
INTERMEDIARĂ
Sigma-delta

09.10.2017 15:59 prof .Mărgineanu Ioan 11 Scalarea mărimilor din convertor
Se cunosc: Caracteristica traductorului
Numărul de biți ai registrului de ieșire a convertorului
Tensiunea de referință a convertorului
Se cere: Mărimea m
()
Raf x x cb
N
U
21R
NUxn
21R
NcbmUan
(2 1)R
NA a U
Bb
Cc
  

09.10.2017 15:59 prof .Mărgineanu Ioan 12 Studiu de caz
Dacă dispunem de un traductor de tip tahogenerator (GPM -Printed Motors
Bordon Hants) a cărei caracteristică este reprezentată în figura de mai jos și
măsurarea se realizează cu un modul de intrări analogice dotat cu convertor a
cărui registru de ieșire are 8 biți și tensiunea de referință de 10 V, iar în
registrul convertorului se găsește numărul 128, rezultă :
min/ 21130 12825510
75,42000rot uSI  
1000200030004000
12345678910rot/min
Va=4,75b=20004225

09.10.2017 15:59 prof .Mărgineanu Ioan 1 Modulele calculatoarelor de proces

Module de ieșiri analogice
Generatoare de semnal
Module de intrări în
impulsuri

09.10.2017 15:59 prof .Mărgineanu Ioan 2 Module de ieșiri analogice
LCU
CNADMUX A
INTERNAL BUSMA0
CR DRMA1 MA2 MA3C0 C1 C2 C3
Decodificator
LCU0
1
2
2n-1
D S
G+-
+-
+-
+-

09.10.2017 15:59 prof .Mărgineanu Ioan 3 Module de ieșiri analogice
LCU
CNA
INTERNAL BUSCR DR0C0 C1
CNA
DR1

09.10.2017 15:59 prof .Mărgineanu Ioan 4 Descalarea m ărimilor de ieșire
Descalarea este necesară atunci când se dorește generarea unei tensiuni
analogice proporțională cu o valoare calculată în cadrul programului. De exemplu
atunci când modulul are conectat la ieșire un aparat înregistrator analogic sau o
intrare a unui regulator analogic .
RU
Legătura cu valoarea reală a mărimii fizice generată spre
proces (u_calc ) se face dacă se cunoaște tensiunea de
referință a convertorului și numărul de biți ai
registrului CNA (N)
RN
Ucalcuconvn) ( __1 2
x2k
1k
lo_lim hi_lim n_calcn_convmodul
programy
xDescaalare
mar_i)(xmar_i mar_skkky 1 2
1
)_ _(_ __ i mar calcni mars markkk convn 1 2
1
11 2ki mar calcni mars markkconvn  )_ _(_ __

09.10.2017 15:59 prof .Mărgineanu Ioan 5 Module de generare de semnale analogice
DAC
PROCESOR
DIV. OSCDSSLOOKUP
MEMORY
FRECVENȚĂ
TIMP
COUNTOR
În primul pas se realizează umplerea memoriei LOOKUP cu date. Fiecare dată binară reprezintă ampli –
tudinea de la un moment dat a semnalului care urmează a fi generat . Astfel în memorie se găsi un tabel
de amplitudini, iar timpul este reprezentat prin poziția în tabel.
În pasul al doilea contorul, care adresează memoria este programat să numere pe fiecare front crescător
al generatorului de frecvență, iar ieșirea memoriei se aplică convertorului DAC care convertește fiecare
dată într-o tensiune analogică .
Pentru a putea genera o undă periodică sistemul este astfel programat ca să parcurgă întregul tabel într –
o perioadă . Sinteza digitală directă (SDD)
Tehnica de generare digitală a unui
semnal analogic se bazează pe un
generator de frecvență fixă foarte
precis.

09.10.2017 15:59 prof .Mărgineanu Ioan 6 Module de intrări în impulsuri
Adresa modulului se termină cu doi biți egali cu 0.
La scriere WRITE=0 și ADPER=1, iar dacă adresa este a modulului, DCD are ieșire 1
logic. Semnalul activ este LD.
La citire WRITE=1 și ADPER=1, iar dacă adresa este a modulului, DCD are ieșire 1 logic.
Semnalul activ este EN..

UP/DOWNINT
GATEPROCESS/
CLOCK COUNTBORROW
ENLDMagistrală de adrese
DCDS
ADPERM
agistrala de comezi
DCDP0
1
2
3
4
5
6
7WRITE2021
024
Couter
Magistrală de dateSENS
) (2 1N N
TN N) (2 1

09.10.2017 15:59 prof .Mărgineanu Ioan 7 Despre traductoare incrementale de rotație
LEDDISC
FOTOSENZORFORMATOR
DE
IMPULSURI


) (2 1N N
TN N) (2 1

09.10.2017 15:59 prof .Mărgineanu Ioan 8 Determinarea sensului de rotație
i1
RC
u2 u1
AB
R
I
II
LED de sensR
RRC
BAUP/DOWNCOUNT
QQSET
CLRS
RCounter
C
A
B
S
dtdB
Rotație în sensul IA
B
R
dtdA
Rotație în sensul II
Dacă rotația are loc în sensul I, atunci conjuncția între derivata semnalului B și semnalul A realizează setarea
bistabilului de sens și numărătorul va număra în sens direct . Dacă rotația are loc în sensul II, atunci conjuncția între
derivata semnalului A și semnalul B realizează resetarea bistabilului de sens și numără­torul va număra în sens
invers .
dtduRC Ri udtduCi dtiCut
1
1 21
1
01 11
 

09.10.2017 15:59 prof .Mărgineanu Ioan 9 Studiu de caz

09.10.2017 15:59 prof .Mărgineanu Ioan 10 Studiu de caz
 Crearea taskului;
int32 DAQmxCreateTask( char Task_Name, TaskHandle *Task_Handle );
 Configurarea canalului, stabilirea parametrilor de timp, a parametrilor de
declanșare și a altor proprietăți necesare;
int32 DAQmxCreateCICountEdgesChan ( TaskHandle Task_Handle, char
Counter[], char Name_of_Channel[], int32 Edge, uInt32 Initial_Count,
int32 Count_Direction );
 Realizarea tranzițiilor necesare taskului;
int32 DAQmxStartTask ( TaskHandle Task_Handle );
 Citirea sau scrierea de eșantioane;
int32 DAQmxReadCounterScalarU32 ( TaskHandle Task_Handle, float64
Timeout, uInt32 *Value, bool32 *Reserved );
 Ștergerea taskului .
int32 DAQmxStopTask ( TaskHandle Task_Handle );
int32 DAQmxClearTask ( TaskHandle Task_Handle );

09.10.2017 15:59 prof .Mărgineanu Ioan 1 Modulele de ieșiri în impulsuri
Introducere în rețele industriale

09.10.2017 15:59 prof .Mărgineanu Ioan 2 Caracteristica impulsurilor
TTH
Tipuri de generatoare
 Impulsuri dreptunghiulare definite prin timpii TL
și TH dați în secunde;
 Impulsuri dreptunghiulare definite prin timpii TL
și TH dați în număr de timpi de bază;
 Impulsuri dreptunghiulare definite prin timpul T
și raportul TH/T.
Moduri de lucru al generatoarelor de impulsuri
 Generare continuă (generator de impulsuri
dreptunghiulare);
 Generare a unui număr finit de impulsuri;
 Generarea unui impuls singular (generator de
întreruperi sau monostabil programabil).

09.10.2017 15:59 prof .Mărgineanu Ioan 3 Comanda unui motor de curent continuu cu amplificator PWM
) (1 1
0  TUTUTudtTUa aT
m
)1 2(a mU U
TTT
TT/
]1,0[

09.10.2017 15:59 prof .Mărgineanu Ioan 4 Comanda unui motor de curent continuu cu amplificator PWM
dtdt dt
u2 u2I
A
u1 u1u2CB
FEDdtT
TH TL
u2u1IModul de
ieșiri în
impulsuriStructură
hardware
suplimentară
Ua
u2
u2 u1u1
T2 T4T3 T1
Mcc

09.10.2017 15:59 prof .Mărgineanu Ioan 5 Efectul condensatorului din schemă
5 V
UCUBUA
dt
C A B
CR

09.10.2017 15:59 prof .Mărgineanu Ioan 6 Program de c omandă unui motor de curent continuu cu amplificator PWM

09.10.2017 15:59 prof .Mărgineanu Ioan 7 Program de c omandă unui motor de curent continuu cu amplificator PWM
 Crearea taskului;
int32 DAQmxCreateTask( char Task_Name, TaskHandle *Task_Handle );
 Configurarea canalului, stabilirea parametrilor de timp, a parametrilor de declanșare
și a altor proprietăți necesare;
status=DAQmxCreateCOPulseChanFreq (taskHandle, device_name, "PWM",
DAQmx_Val_Hz, DAQmx_Val_Low, 0.0, f, factor_umplere/100.);
Realizarea tranzițiilor necesare taskului;
int32 DAQmxStartTask ( TaskHandle Task_Handle );
 Citirea sau scrierea de eșantioane;
GetCtrlVal (panelHandle, PANEL_NUMERICKNOB, &factor_umplere);
DAQmxWriteCtrFreqScalar(taskHandle, 1, 10.0, f, factor_umplere/100., 0);
ProcessSystemEvents();
 Ștergerea taskului .
int32 DAQmxStopTask ( TaskHandle Task_Handle );
int32 DAQmxClearTask ( TaskHandle Task_Handle );

Prof. Ioan Mărgineanu 1 Cap. 3. Introducere în r ețele industriale

Prof. Ioan Mărgineanu 2
CÂMPASi
CAN Open
PROFIBUS PADevice Net
PROFIBUS DPControl NetMODBUSInterbus s
MODBUS +
PROFIBUS FMS
TCP/IP EthernetCONTROL
SUPERVIZARETIMP DE RĂSPUNS
VOLUM DE DATEBACnetLonTalkATUATORI ȘI
SENZORIIntroducere în r ețele industriale

Prof. Ioan Mărgineanu 3 Tehnologii și protocoale
Punct la punct
Tehnologia de transmisie
Difuzare Datele sunt transmise sub
formă de pachete și sunt
recepționate de toate
dispozitivele din sistem Regulile utilizate în conversație sunt
cunoscute sub numele de protocol .
Un protocol este deschis atunci când cineva este liber să -l folosească Pentru a reduce complexitatea proiectării,
majoritatea rețelelor industriale sunt
organizate pe straturi sau nivele
Mediul fizicIntrefața 3-2
Intrefața 2-1Protocolul nivelului 3
Protocolul nivelului 2Dispozitiv 1 Dispozitiv 2
Nivelul 2Nivelul 3Utilizator rețea
Nivelul 2Nivelul 3
Protocolul nivelului 1
Nivelul 1 Nivelul 1
Mai multe nivele ale rețelei se pot
implementa în sisteme înglobate
complexe, numite plăci sau
procesoare de comunicație , acestea
contribuind la ușurarea realizării
programelor de la nivelul
utilizatorului de rețea METODA DE ACCES LA MEDIU
Transfer de jeton ( Token bus sau
Token ring ).
Interogare ( Polling ).
Detectarea coliziunilor ( Collision
Detection ).
STRUCTURA DE COMUNICARE
Master/slave.
Multimaster.
Egal-la-egal ( Peer to peer ).
Solicitare
Răspuns Master SlaveRegulile protocolului se aplică la:

Accesul la rețea (Master -slave sau peer -to-peer).
Controlul fluxului de informație.
Adresare.
Verificarea erorilor.
Secvențierea mesajelor.
Formatul mesajelor.

Prof. Ioan Mărgineanu 4 Configurarea rețelelor industriale
Care sunt modalitățile de stabilire și menținere a unei rețele de date
Cel mai simplu mod de configurare este acela în care se
realizează fizic rețeaua, adică se conectează la mediul de
transport stațiile rețelei și apoi se atribuie adrese diferite pentru
aceste stații.
În afara atributele de adresă se pot seta în această fază și alte
caracteristici ale dispozitivului, care se referă la cuplarea la
proces (de exemplu rapoarte de transformare ale
transforma­toa­relor de curent și tensiune al contoare), la modul
de memorare al datelor analogice în memoria internă, la viteza
de transfer pe rețea etc. În ultima vreme dispozitivele au o
interfață grafică proprie ușor de utilizat cu tastatură proprie sau
de tip touch.

Exemplu: Rețelele MODBUS Utilizarea unor medii speciale de
configurare, numite de obicei Configuration
Manager .
Exemplu:
HWConfig din Step7 Manager
Controlul erorilor în rețelele industriale
Detectarea erorilor și corectarea acestora este implementată în mod obișnuit la nivelul Data Link
Layer .
Există mai multe tipuri de erori:
Eroare la un singur bit.
Eroare multiplă ( Burst error ), când sunt alterați mai mulți biți. Detectarea erorilor utilizează conceptul de redundanță , care înseamnă adăugarea unor biți suplimentari,
care să permită detectarea și, eventual, corectarea erorii survenită în timpul transmisiei.

Prof. Ioan Mărgineanu 5 Controlul erorilor în rețelele industriale
Repetarea mesajului
VRC ( Vertical Redundancy Check ) Utilizarea bitului de paritate.
LRC ( Longitudinal Redundancy Check ).
CRC ( Cyclic Redundancy Check ).
Detecția și corectarea erorilor cu coduri Hamming
111001111101110110011100 10101001
11100111
11011101
00111001
10101001
10101010
101010101
111001111101110110011100 10101001 1Mesaj
LRC
Mesaj transmis
LRC ( Longitudinal Redundancy Check ).
Un mesaj este organizat într -un tabel, ca cel din figura de mai jos, se calculează bitul de paritate pentru
fiecare coloană și se setează bitul pentru fiecare coloană. Apoi se transmite mesajul adăugând și grupul
de biți de paritate obținut.

Prof. Ioan Mărgineanu 6 În cadrul metodei CRC ( Cyclic Redundancy Check ), o secvență de biți redundanți numită CRC sau
rest CRC, este înserată la sfârșitul unui mesaj astfel încât unitatea de date care rezultă să devină
divizibilă cu un număr binar predeterminat, numit polinom generator . La recepție unitatea de date este
împărțită cu același polinom. Dacă restul este egal cu 0 atunci se presupune că transmisia este
corectă, iar în caz contrar transmisia este considerată eronată. Metoda CRC ( Cyclic Redundancy Check ) Controlul erorilor în rețelele industriale
000…0
Divizor
CRCDate CRCCRC Date
Divizor
RESTEmițător Receptor
M biti
M+1 biti
0 Acceptare1 RespingereDate

Prof. Ioan Mărgineanu 7 Metoda CRC ( Cyclic Redundancy Check ) Controlul erorilor în rețelele industriale
PROCES
16 15 2
16 14
16 12 5
16 11 41 ( 16 )
1 ( 16 e )
1 ( 16 )
1 ( 16 e )x x x CRC Forward
x x x CRC R verse
x x x CCITT Forward
x x x CRC R verse   
   
   
   
()
1
1 1 1
( ) ( ) ( ) ( )1 ()( ) ;()
( ) ( );
( ) ( ) (()
) ( ) ( )( ) .()m
n
m x m
m
nm
m
m n n m m m
m x m x m x m xm
mnM x xQxP P x
M x x R x
T x M x x R x R x RRx
xQxPT
PPx
P
  


    Se transmite mesajul deplasat cu adăugarea la sfârșit a restului Polinoame generatoare
)(xMm
)(xPm
Prin împărțirea mesajului , deplasat cu m cu poziții cu ,
0 12
21
1 axa xa xaxPm
mm
m m   

  )(

Prof. Ioan Mărgineanu 8 Metoda CRC ( Cyclic Redundancy Check ) Controlul erorilor în rețelele industriale
Calculul hardware
Un dispozitiv hardware este un registru de deplasare alcătuit din atâtea bistabile de tip D câți biți are
polinomul generator, dar în funcție de polinomul generator va avea între bistabile, în locurile în care
termenul este diferit de 0 un circuit XOR montat ca în figura de mai jos. Numărul de circuite XOR este
mai mic cu 1 decât numărul termenilor diferiți de 0 ai polinomului generator (nu există circuit pentru
termenul de gradul cel mai înalt).
13 xxxP)(
12 3 4 6 9 xxxxxxM )(
13 5 6 7 9 12 xxxxx xxT)(

Prof. Ioan Mărgineanu 9 Metoda CRC ( Cyclic Redundancy Check ) Controlul erorilor în rețelele industriale
NU DANUNU
DADA
N>7FFFFH→CRC
CRC Octet→CRC +
N=0
bit=1
CRC Poly→CRC +
N=N+1
Octetul urmator
ENDCRC Octet→CRC +
Calculul software

Pasul 1 . Se încarcă registrul în care se calculează
CRC, numit registru CRC cu valoarea inițială. În cazul
MODBUS și CRC 16 registrul se încarcă cu 0xFFFF;
Pasul 2 . Se realizează XOR al primilor 8 biți ai
mesajului cu octetul LSB al registrului CRC și se
memorează rezultatul în registrul CRC;
Pasul 3 . Se deplasează la dreapta registrul CRC cu un
bit. Se extrage și se examinează bitul rezultat prin
această operație;
Pasul 4 . Dacă bitul este 0, se repetă pasul 3, în caz
contrar se realizează XOR dintre registrul CRC și
polinomul generator ( pentru MOBUS polinomul
generator este 0xA001 ) și se memorează rezultatul în
registrul CRC;
Pasul 5 . Se repetă pașii 3 și 4 până se realizează 8
deplasări;
Pasul 6 . Se repetă pașii 2…5 pentru următorii octeți ai
mesajului.

Prof. Ioan Mărgineanu 10 CRC – Studiu de caz
Performanțele acestei metode sunt bune:
Un CRC bazat pe un polinom de 16 biți poate detecta
Toate erorile în rafală de maximum 16 biți.
Toate numerele impare de biți de eroare.
99.998 din erorile de orice lungime.

Prof. Ioan Mărgineanu 11 Controlul erorilor în rețelele industriale
Corectarea erorilor
Corectarea erorilor se poate face în două moduri:
Atunci când se detectează erori, receptorul cere emițătorului repetarea mesajului.
Receptorul folosește informația redundantă pentru a detecta eroarea și a o corecta la recepție.
Există două tipuri de tehnici de corectare a erorii în funcție de tipul erorii:
Detectare și corectare de eroare la un singur bit.
Detectare și corectare de eroare la mai mulți biți.
Detectare și corectare de eroare la un singur bit (Coduri Hamming)
În teoria codurilor, codurile Hamming , codifică un număr de biți de date prin adăugarea unui număr de biți de paritate pară.
Dacă ne referim la eroarea la un singur bit, într -un mesaj de n biți, există n erori posibile. Deci corectarea unui singur bit
necesită adăugarea de n biți de paritate pentru a putea preciza locul bitului eronat.
Poziție bit1
12
103
114
1005
1016
1107
1118
10009
100110
101011
1011
p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7
p1
p2
p3
p4Codifucarea
biților12
1100
d8
Algoritmul de calcul al biților redundanți și
locul lor în cadrul mesajului este prezentat în
figura alăturată. Trebuie să precizăm că locul
biților redundanți poate fi oriunde în mesaj, de
exemplu la sfârșitul lui, dar am considerat că
poziționarea lor conform algoritmului este mai
oportună .

Prof. Ioan Mărgineanu 12 Controlul erorilor în rețelele industriale
Corectarea erorilor
Poziție bit1
12
103
114
1005
1016
1107
1118
10009
100110
101011
1011
p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7
p1
p2
p3
p4Codifucarea
biților12
1100
d8
În tabelul de mai jos p1, p2, p3, p4, …
se calculează ca biți de paritate pară. 1.Se numerotează biții mesajului în zecimal
(rândul 1) și apoi în binar (rândul 2).
2.Toate pozițiile care reprezintă puteri ale lui
2 sunt biți de paritate.
3.Bitul de paritate p1 se calculează folosind
biții mesajului care au bitul cel mai puțin
semnificativi, în reprezentarea binară, egali
cu 1.
4.Bitul de paritate p2 se calculează folosind
biții mesajului care au al doilea bit, în
reprezentarea binară, egali cu 1.
5.Bitul de paritate p3 se calculează folosind
biții mesajului care au al treilea bit, în
reprezentarea binară, egali cu 1.
6.Bitul de paritate p4 se calculează folosind
biții mesajului care au al patrulea bit, în
reprezentarea binară, egali cu 1.
7.Dacă informația are 2N biți sunt necesari N
biți pentru detectarea și corectarea erorilor
de transmise.
8.În cazul a 8 biți, la emisie se calculează biții
restului cu formulele (1) și se adaugă pe
pozițiile corespunzătoare mesajului
transmis.
9.La recepție se calculează biții de paritate
din biții mesajului cu formulele (2)
8 7 6 5 48 4 3 2 37 6 4 3 1 27 5 4 2 1 1
d d d dpd d d dpd d d ddpd d d ddp
(1)
8 7 6 5 4 48 4 3 2 3 37 6 4 3 1 2 27 5 4 2 1 1 1
d d d d p pd d d d p pd d d dd p pd d d ddpp
 (2)
Dacă toți biții recepționați sunt corecți calculul cu
formulele (2) face ca număr­ul p4p3p2p1, în binar, să fie
0. Dacă numărul este diferit de 0 atunci el indică poziția
bitului eronat.

Prof. Ioan Mărgineanu 13 Controlul erorilor în rețelele industriale
Corectarea erorilor Studiu de caz
1 1 0 1 1 1 0 1 1 1 1 1
1
1
1
1d8 d7 d6 d5 r4 d4 d3 d2 r3 d1 r2 r1
r1
r2
r3
r4
12 11 10 9 8 7 6 5 4 3 2 1
1 1 0 1d5
0 1 0 1 0 1 0 1
1
0
0
1d8 d7 d6 r4 d4 d3 d2 r3 d1 r2 r1
r1
r2
r3
r4
8 7 6 5 48 4 3 2 37 6 4 3 1 27 5 4 2 1 1
d d d dpd d d dpd d d ddpd d d ddp

8 7 6 5 4 48 4 3 2 3 37 6 4 3 1 2 27 5 4 2 1 1 1
d d d d p pd d d d p pd d d dd p pd d d ddpp

Transmisie Recepție eronată la bitul 9 Să presupunem că dorim să transmitem 8 biți de informație

Prof. Ioan Mărgineanu 14 Observații importante asupra rețelelor industriale
Fiecare dispozitiv are un software înglobat, numit software de achiziție , care realizează achiziția
informațiilor de la proces și le memorează în memoria internă.
Fiecare dispozitiv din rețea are un software înglobat, numit software de comuni­care , care poate
detecta orice cerere cu privire la informații și a traduce aceste cereri pentru a putea furniza informații
despre datele reale din interiorul dispozitivului.
Fiecare dispozitiv din rețea poate avea un software de configurare înglobat, care poate fi folosit
pentru configurarea dispozitivului, prin intermediul unui mediu HMI propriu.
Cele mai multe dispozitive conțin informațiile despre proces în obiecte standard , care pot fi accesate
prin intermediul unui set de servicii (funcții). Aceste obiecte sunt o rețea vizibilă pentru dispozitivul de
rețea. Modul de memorare a datelor de la proces în memoria internă diferă de la dispozitiv la
dispozitiv (întregi simpli, întregi dubli sau reali pe patru octeți în format IEEE).
Fiecare dispozitiv are un manual de comunicație , care este livrat odată cu dispozitivul, în care sunt
date toate detaliile despre configurare, mod de memora­re a datelor, de utilizare a interfeței HMI etc.
Obiectele pot fi de mai multe feluri în același dispozitiv. Cele mai multe dintre dispozitive au obiecte
de tip binar și analogic.
Există numeroase sisteme de monitorizare și control pentru rețele indus­tri­ale elaborate de firme de
software și hardware. Ele pun la dispoziția celor care le cumpără modalități complete de investigare
și control a rețelelor industriale. Construcția acestor sisteme este din ce în ce mai complexă , dar,
paradoxal, pro­du­sele sunt din ce în ce mai ușor de manipulat.
Semnpozitiv 0
Mantisă200D 0 066D 72D 0
01000010 01001000 00000000
110010000
00000000
00000000 00000000Exponent
(132)
1negativOctet 1 Octet 2 Octet 3 Octet 4

Prof. Ioan Mărgineanu 15 Rețele MODBUS
Producător MODICON s.a.
Standard EIA 485
Metoda de acces la mediu Polling, CSMA, transfer de jeton (MB+)
Structura de comunicare Master /slave, multimaster
Mediul de transmisie Diverse medii .
Topologia Bus
Viteza de transmisie 9600 Bps – 1 MBps
Distanța maximă între noduri 1200 m
Numărul maxim de noduri 32
Formatul cadrului Modbus RTU, Modbus ASCII, Modbus TCP/IP,
MB+
Securitatea datelor CRC de 16 biți

Prof. Ioan Mărgineanu 16 Rețele MODBUS
Nivel fizicNivel fizicModbus+/ HLDC
EEIA485/EIA232Master/SlaveMaster/Slave
Nivel fizicNivel fizicEthernet 802.3IPTCPModbus TCPNivel Aplicație
{
Nivelul fizic este reprezentat de un cablu plat cu două fire. Pentru Modbus RTU și
ASCII la care master -ul este realizat pe PC se folosesc convertoarele RS-485,
conectate la portul serial . Pentru conexiunea unui slave se folosesc derivații .

Prof. Ioan Mărgineanu 17 Rețele MODBUS (continuare)
Intrări binare
(RO)Ieșiri binare
(R/W)
Registri de intrare
(RO)
Registri de mem.
(R/W)1
9999
10001
19999
30001
39999
40001Adresă relativă
0000
270E
0000
270E
0000
270E499990000
270EAdresă absolută
Informațiile sunt reținute în memoria unui dispozitiv clasic MODBUS server în
patru tabele . Două tabele sunt destinate reținerii unor valori discrete
intrări/ieșiri (coils) și două tabele sunt destinate reținerii unor valori numerice
de intrare/ieșire (registers) . Fiecare tabel are 9999 valori . Intrările binare și
registrele de intrare sunt RO (Read Only), iar ieșirile binare și registrele de
ieșire sunt R/W (Read/Write ).

Prof. Ioan Mărgineanu 18 Rețele MODBUS (continuare)
Cadre MODBUS RTU sau ASCII
Adresă
dispozitivCod funcție Date CRC/LRC
Unitate de protocol (PDU)Unitate de aplicație (ADU)Cerere Cadre MODBUS TCP/IP
Header MBAP Cod funcție Date
Unitate de protocol (PDU)Cerere/Răspuns MODBUS TCP/IP (ADU)
Toate cererile MODBUS și răspunsurile sunt concepute în așa fel încât destinatarul poate
verifica dacă un mesaj este terminat . Pentru codurile funcție unde PDU MODBUS are o
lungime fixă, codul funcției este suficient . Pentru funcții care transportă o cantitate variabilă
de date în cerere sau răspuns, câmpul de date include un contor de registre (2 octeți) . Când
MODBUS este realizată de peste TCP, se adaugă informații suplimentare în antetul MBAP
pentru a permite destinatarului să recunoască limitele mesajului, chiar dacă mesajul a fost
divizat în mai multe pachete de transmisie . Existența unor norme lungime explicite și implicite
și utilizarea unui cod de verificare a erorii CRC -32 (pe Ethernet) are ca rezultat o șansă foarte
mică de a nu detecta o eroare la o cerere sau un mesaj de răspuns .
ID TranzacțieHeader MBAP
2 octețiID Protocol
2 octețiLungine
2 octețiAdresă slave
1 octet
Adresă
dispozitivCod funcție Date CRC/LRC
Adresă
dispozitivCod funcție +
80HCod eroare CRC/LRCRăspuns fără eroare
Răspuns cu eroare

Prof. Ioan Mărgineanu 19 Rețele MODBUS (continuare)
Se folosește modul de reprezentare Big -Endian. Se folosește modul de
reprezentare Big -Endian. Codul funcției arată serverului ( slave ) ce acțiune
urmează să efectueze. Codul funcției este pe un octet. Codurile valide sunt între
1-255 și sunt împărțite astfel: codurile 1 -64, 73 -100 și 111 -127 sunt coduri
publice, cele de la 65 -72 și 100 -110 sunt coduri care pot fi definite de utilizator
pentru dispozitive speciale, iar de la 128 -255 sunt rezervate răspunsurilor, care
reprezintă excepții. Cele mai importante dintre aceste sunt prezentate mai jos .
Codul funcției Descrierea
01 Citire ieșiri ( Coils )
02 Citire intrări
03 Citire registre de memorie
04 Citire registre de intrare
05 Forțarea unei ieșiri
06 Presetarea unui singur registru
07 Citirea stării unei excepții
15 Forțarea mai multor ieșiri
16 Presetarea mai multor registre
17 Citirea ID pentru slave

Prof. Ioan Mărgineanu 20 Rețele MODBUS (continuare)

Prof. Ioan Mărgineanu 21 Rețele MODBUS (continuare)

Prof. Ioan Mărgineanu 22 Rețele MODBUS (continuare)
Adresă slave
Codul funcției
Adresă start
Număr registre1 octet
1 octet
2 octeți
2 octeți
2 octeți CRC0x0000 la 0xFFFF0x01 la 0xF7
0x03
0x01 la 0x7D0
CalculatCerere
Adresă slave
Codul funcției
Număr octeți
Valori registre1 octet
1 octet
1 octet
Nx2
2 octeți CRC2xN0x01 la 0xF7
0x03
CalculatRăspuns
IT
1 23 4 10 5 67 8 9IS IR+ + + – – -L1L2L3L4
SarcinăIT
Studiu de caz
Analizorul de semnal ARDETEM PECA 300
A B C D ETx+ GndRx-Rx+Tx-
`Convertor
RS232 – RS485
RS232RS485

Prof. Ioan Mărgineanu 23 Studiu de caz

09.10.2017 15:59 prof .Mărgineanu Ioan 1 Programarea aplicațiilor de timp real

09.10.2017 15:59 prof .Mărgineanu Ioan 2 Aplica ții de timp real
O aplicație de timp real este aceea în care corectitudinea calculului nu
depinde de doar de logica corectă a efectuării acestuia sau de algoritm
ci și de timpul în care se efectuează.

Aplicație Fir (thread) Aplicația de timp real trebuie să permită
(proces) tratarea unor activități concurente

Mașina Virtuală (VM)
Concurența se poate defini în două moduri:
Limbaj (ADA, Modula -2, Java);

Sistemul de operare.

În funcție de limbaj un proces poate fi definit prin:
Corutină (generalizare a noțiunii de procedură)
(Simula, Modula -2, Pearl, Smaltalk)
C (setjmp, longjmp, setcontext, getcontext, makecontext)

09.10.2017 15:59 prof .Mărgineanu Ioan 3

09.10.2017 15:59 prof .Mărgineanu Ioan 4 Procedure P; Procedure F;
. .
. .
Fork F; .
. .
. .
Join F; End F;
.
.
End P;

Utilizarea construcției Cobegin și Coend.
Cobegin ;
// Primul bloc
{
.
}
// Al doilea bloc
{
.
}
Coend; La Fork cele două proceduri
se execută concurent.
La Join procedura P
așteaptă terminarea lui F.
Cele două blocuri se execută
concurent.
 Declararea explicită a proceselor și firelor. Limbajul
suportă această declarare explicită.

09.10.2017 15:59 prof .Mărgineanu Ioan 5 Sisteme de operare de timp real
Sistem de operare in timp real : conține mecanisme specifice de sincronizare, excludere
mutuală și comunicație între procese și fire. Scopul este controlul aplicațiilor care se
află conectate direct la proces, unde restricțiile de timp sunt foarte importante.
Aplicație : program scris de utilizator, compilat și înmagazinat pe HD
Proces (task) : Aplicație lansată pe un sistem de calcul
Fir (thread) : Entitate a unui proces căreia sistemul de operare îi atribuie procesorul
după o strategie oarecare Scopul unui sistem de operare : Crearea unei mașini virtuale (pentru un utilizator
obișnuit) și administrarea resurselor unui sistem de calcul (pentru proiectantul unei
aplicații)
Crearea mașinii virtuale:
Memoria  o serie de locații adresabile
Discul  secvențe de caractere
Display  Suprafețe rectangulare (ferestre)
Mouse  o pereche de coordonate și stări ale butoanelor

09.10.2017 15:59 prof .Mărgineanu Ioan 6 Sisteme de operare
Funcțiile sistemului de operare:
 Gestiunea taskurilor (lansarea aplicațiilor);
 Comunicația și sincronizarea între taskuri;
 Gestiunea memoriei;
 Gestiunea întreruperilor;
 Gestiunea perifericelor;
 Tratarea erorilor;
 Gestiunea timpului. Sistemul de operare conține mai multe
module distincte care realizează funcțiile
sau un subansamblu de funcții. Fiecare
modul este bine delimitat și comunică cu
celelalte module.
Gestiunea taskurilor :
 Încărcarea în memorie;
 Execuția.
 Monotasking;
 Multitasking .
Preg atit Activ
Blocat
InactivLansareActivare
Suspendare
BlocareDeblocare Terminare
 Quasiparalelism
 Pseudoparalelism

09.10.2017 15:59 prof .Mărgineanu Ioan 7 Comutarea taskurilor la sistemele preemptive
Se realizează de către partea sistemului de operare numită ALOCATOR (SCHEDULER )
Comutarea se realizează pe întreruperi, care sunt generate:
 Periodic (Sisteme periodice);
 Aperiodic (Sisteme sporadice);
 Hibrid.
Strategiile de alocare a procesorului:
 Alocare naturală;
 Alocare prin rechiziționare.
Alocare prin rechiziționare se face prin metoda round -robin sau ținând seama de
priorități. Prioritățile pot fi:
 fixe;
 dinamice.
Taskuri activate Taskuri terminate
Taskuri reciclateProcesor
Metoda round -robin

09.10.2017 15:59 prof .Mărgineanu Ioan 8 Comutarea taskurilor la sistemele preemptive (1)
Taskuri terminate
Taskuri reciclateProcesorProritate 3
Prioritate 2
Prioritate 1
Alocarea după priorități
P
P
P
Intreruperi ceas
Intreruperi I/O1
2
3
t1 t2 t3 t4 t5
t6 t7 t8 t9 t10 t11 t12
Exemplu de comutare de taskuri

09.10.2017 15:59 prof .Mărgineanu Ioan 9 Structuri manevrate de sistemele de operare (1)
• Descriptori de proces
• Semafoare
• Evenimente
Descriptor de proces : Structură de date care permite regăsirea tuturor informațiilor despre un
proces și manevrarea ușoară a acestora(codul, variabilele proprii ale procesului, prioritatea și
starea unui proces, conținutul regiștrilor procesorului dacă acesta nu se execută etc.). Crearea
unui proces înseamnă rezervarea de memorie pentru acesta, inițializarea descriptorului de
proces și rezervarea de memorie pentru stiva procesului . Aceasta se face prin apelul unei
rutine care face parte din sistemul de operare.

Capul listei Descriptorul P
3 Descriptorul P
2 Descriptorul P
1
Registri
procesorSPPC
Stiva P
1 Stiva P
2 Stiva P
3Proces activ

09.10.2017 15:59 prof .Mărgineanu Ioan 10 Structuri manevrate de sistemele de operare (2)
Capul listei Descriptorul P
3 Descriptorul P
2 Descriptorul P
1
Registri
procesorSPPC
Stiva P
1 Stiva P
2 Stiva P
3Proces intrerupt

09.10.2017 15:59 prof .Mărgineanu Ioan 11 Structuri manevrate de sistemele de operare (3)
Capul listei Descriptorul P
3 Descriptorul P
2 Descriptorul P
1
Registri
procesorSPPC
Stiva P
1 Stiva P
2 Stiva P
3Proces intreruptNil

09.10.2017 15:59 prof .Mărgineanu Ioan 12 Structuri manevrate de sistemele de operare (4)
Capul listei Descriptorul P
3 Descriptorul P
2 Descriptorul P
1
Registri
procesorSPPC
Stiva P
1 Stiva P
2 Stiva P
3Proces intreruptNil

09.10.2017 15:59 prof .Mărgineanu Ioan 13 Structuri manevrate de sistemele de operare (5)

Capul listei Descriptorul P
3 Descriptorul P
2 Descriptorul P
1
Registri
procesorSPPC
Stiva P
1 Stiva P
2 Stiva P
3Proces intreruptNil

09.10.2017 15:59 prof .Mărgineanu Ioan 1 Programarea aplicațiilor de timp rea l
(2)

09.10.2017 15:59 prof .Mărgineanu Ioan 2 Semafoare
Operația P: Scade valoarea
semaforului cu o unitate si
dacă valoarea sa este mai
mica decât 0 blochează
procesul care a apelat rutina
P și îl înserează lui în coada
de procese blocate la
semaforul respectiv Semafor : Structură de date alcătuită din două câmpuri. Un pointer către un descriptor
de proces și un întreg, care reprezintă valoarea semaforului. Aceste câmpuri pot fi
modificate doar apelând rutine ale sistemului de operare. Aceste rutine creează un
semafor, executa o operație P asupra semaforului sau execută o operație V asupra
semaforului.
nSemafor
NULL
Operația V: Crește valoarea
semaforului cu o unitate si
dacă valoarea sa este mai
mica sau egală cu 0
deblochează procesul care a
apelat rutina V și îl
înserează în coada
proceselor pregătite Crearea semaforului:
Rezervă spațiul de memorie
necesar și inițializează
valoarea semaforului

09.10.2017 15:59 prof .Mărgineanu Ioan 3 Descrierea operației P în pseudo -cod:

P(Semaphore s)
{
s := s-1; /* Scăderea trebuie să fie atomică pentru a
evita condițiile de cursă */
if s < 0 /* Plasează firul apelant în coada de procese
blocate la semaforul s */
} Semafoare (1)
Descrierea operației V în pseudo -cod:

V(Semaphore s)
{
s := s+1; /* Cre șterea trebuie să fie atomică pentru a
evita condițiile de cursă */
if s ≤ 0 /* Extrage firul apelant din coada de procese
blocate la semaforul s */
} Atomic – set de operații care apare pentru
restul sistemului ca fiind o singură operație
O eroare intr -un sistem prin care un rezultat
depinde critic și neașteptat de timp

09.10.2017 15:59 prof .Mărgineanu Ioan 4 Semafoare(2)

09.10.2017 15:59 prof .Mărgineanu Ioan 5 Semafoare (3)
NULL
-2Semafor
NULLPregatit P1 P2 P3 P4
P5 P6

09.10.2017 15:59 prof .Mărgineanu Ioan 6 Semafoare (4)
NULL
-3SemaforPregatit
P1P2 P3 P4
P5 P6
NULL

09.10.2017 15:59 prof .Mărgineanu Ioan 7 Evenimente
Operația de semnalare:
Modifică în TRUE câmpul care
indică dacă evenimentul este
semnalat. Eveniment : Structură de date alcătuită din două câmpuri. Un pointer către un
descriptor de proces și variabilă booleană, care devine TRUE, dacă evenimentul este
semnalat. Aceste câmpuri pot fi modificate doar apelând rutine ale sistemului de
operare. Aceste rutine creează un eveniment, executa o operație de semnalare
evenimentului sau execută o operație așteptare la eveniment.
Operația de așteptare:
Blochează procesul care a
apelat rutina și îl înserează
în coada proceselor în
așteptare la evenimentul
respectiv Crearea evenimentului :
Rezervă spațiul de memorie
necesar și evenimentul ca
nesemnalat sau semnalat
BOOLEveniment
NULL

09.10.2017 15:59 prof .Mărgineanu Ioan 8 Utilizarea semafoarelor pentru excluderea mutuală
Excludere mutuală : Operația de protejare a unei resurse unice din sistemul de
calcul împotriva accesului simultan din mai multe procese sau fire.
Resursă
criticăP1 P2
P(s)
V(s)P(s)
V(s)
S=1 S=0
Blocare P2 S=1
Deblocare P2

09.10.2017 15:59 prof .Mărgineanu Ioan 9 Utilizarea semafoarelor pentru sincronizare intre
procese sau fire
Sincronizare : Operația de impunere a unei ordini în executarea instrucțiunilor din
din mai multe procese sau fire.
P1 P2
P(s)
ai
V(s)bj
S=0
Blocare P1 S=1
Deblocare P1

09.10.2017 15:59 prof .Mărgineanu Ioan 10 Tipuri de sincronizări
Sincronizare AND
Sincronizare OR
P1 P2
P(s)
ai
V(s)bjP3
V(s)ckP(s)
P1 P2
P(s)
ai
V(s)bjP3
V(s)ck

09.10.2017 15:59 prof .Mărgineanu Ioan 11 Comunicația între fire IPC (InterProcess Communication)
Set de tehnici pentru schimbul de date între fire din unul sau mai multe
procese, local sau pe rețea.
Metoda Descriere
Fișier Un bloc de informație sau resursă pentru reținerea informației
Coada de
mesaje Un protocol de comunicație asincron , care înseamnă că
transmițătorul și receptorul nu trebuie să interacționeze cu coada de
mesaje în același timp. Mesajele sunt plasate în coadă și sunt
memorate până când receptorul le preia. Coada de mesaje poate fi
în sistem sau în aplicație .
Semafoare Metodă clasică pentru restricția accesului la resurse sau memorie
partajată.
MailBox Un protocol de comunicație asincron, bazat pe mecanismul
Producător – Consumator . Se implementează în W cu Semafoare.
Conducte O memorie partajată pe care procesele o utilizează pentru
comunicare. Procesul care creează conducta se numește Pipe
Server , iar procesul care se conectează la conductă se numește Pipe
Client . Conceptual o conductă are două capete și sunt de două
feluri: simplex (cu o cale) și duplex (cu două căi)
Socket O librărie API (Berkeley) pentru dezvoltarea de aplicații care
realizează IPC.

09.10.2017 15:59 prof .Mărgineanu Ioan 12 Mecanismul Producător – Consumator
4 21 2
1
2 34
Producator ConsumatorEMPTY
FULL

09.10.2017 15:59 prof .Mărgineanu Ioan 13 Mecanismul Producător – Consumator (1)
0
1 23n-1IN
OUTPRODUCATOR CONSUMATOR
// Solicita locatie libera
P(EMPTY );
// Solicita acces la tampon
P(s);
BUFFER [IN]=x;
IN=(IN+1)%BUFFSIZE ;
// Elibereaza tamponul
V(s);
// Furnizeaza locatie libera
V(FULL );// Solicita locatie ocupata
P(FULL );
// Solicita acces la tampon
P(s);
x=BUFFER [OUT ];
OUT =(OUT +1)%BUFFSIZE ;
// Elibereaza tamponul
V(s);
// Furnizeaza locatie libera
V(EMPTY );PUT GETIN=0 OUT =0 EMPTY =n FULL =0Valori initiale

09.10.2017 15:59 prof .Mărgineanu Ioan 14 Aplicație: Problema fumătorilor
Presupunem că o țigară cere trei ingrediente pentru a putea fi fumată:
tutun, hârtie și chibrituri. Presupunem, de asemenea că există trei
fumători înrăiți (care aprind țigară de la țigară). Fiecare fumător este
aprovizionat nelimitat cu unul din ingrediente (unul cu tutun, altul cu
hârtie și al treilea cu chibrituri). Există și un arbitru, care este
nefumător. Arbitrul permite fumătorilor să -și facă țigări, selectând
aleatoriu doi din ei, de la care ia ingredientul și îl pune pe masă. Apoi îl
anunță pe al treilea că poate fuma. Între timp arbitrul vede că masa e
goală, alege aleatoriu doi fumători și plasează pe masă articolele lor.
Acest lucru continuă un timp nedefinit. Fumătorii nu pot stoca articolele
de pe masă și nu își pot face o nouă țigară decât după ce au terminat
de fumat (de exemplu, dacă arbitrul pune pe masă tutun și hârtie
atunci când fumătorul cu chibrituri fumează tutunul și hârtia rămân
neatinse până ce cel care are chibrituri termina de fumat și poate să le
ia). Să se simuleze cele patru roluri cu un program utilizând ca
primitive de sincronizare semafoarele.

Se vor defini semafoare pentru fiecare fumător și masă. Ce valoare
inițială trebuie sa aibă fiecare semafor și cum arată firele care
simulează fumătorii și masa.

09.10.2017 15:59 prof .Mărgineanu Ioan 15 Aplicație: Sincronizare între fire

09.10.2017 15:59 prof .Mărgineanu Ioan 16 Comunicația între procese

Similar Posts