Sunteți pe pagina 1din 13

Structura unei aplicatii software pe un sistem de control numeric.

Unitatea de învăţare nr. 14

Structura unei aplicatii software pe un sistem de control numeric.


Cuprins
Obiectivele unităţii de învăţare nr. 14
Aplicatii pentru sisteme de control numeric

Răspunsuri şi comentarii la întrebările din testele de autoevaluare

OBIECTIVELE unităţii de învăţare nr. 14


Principalele obiective ale Unităţii de învăţare nr. 14 sunt:

 Familiarizarea cu funcții specifice sistemului de operare


Structura unei aplicatii software pe un sistem de control numeric.
 
Aplicatii pentru sisteme de control numeric

Viața unui sistem de comandă și control


numeric este dată de componenta de software.
Această componentă include totalitatea
pachetelor de programe ce au ca scop controlul
echipamentului hardware.

Sistemele de calcul pentru sistemele de comandă și control sunt echipamente


special construite, în scopul de a putea:
‐ prelua și prelucra date din procesele monitorizate și controlate;
‐ implementa algoritmi de comandă și control;
‐ genera comenzi și controla procesul;
‐ informa operatorul asupra stării sistemului și de permite
operatorului să controleze, în mod direct sistemul de comandă și
control.
Pentru realizarea acestora este nevoie de aplicații care sunt realizate pe baza
unor algoritmi care descriu modul de operare, control și comandă a circuitelor
electronice. Aceste aplicații sunt dezvoltate în laboratoare specializate. Pentru
realizarea aplicațiilor sunt folosite pachete de programe specializate (medii de
dezvoltare care conțin interpretoare de cod, compilatoare etc. special creeate
pentru dezvoltarea de aplicații).
Pentru ca o aplicație sau un pachet de aplicații să poată fi utilizat să controleze și să
comande o instalație de automatizare, prin intermediului unui echipament
numeric de comandă și control este necesar ca:

‐ sistemul să funcționeze si să raspundă în conformitate cu algoritmul


de funcționare proiectat;
‐ sistemul să răspundă în timp real la cerințele sistemului de
automatizare, timpul de răspuns al sistemului de calcul să fie cel
puțin jumătate din timpul de răspuns al procesului
‐ să fie funcționabil 24h pe zi, 365 de zile pe an, pe o perioadă cel
puțin egală cu durata de viață a instalației1;
‐ sa asigure un timp de funcționalitate de cel puțin 98% din durata de
funcționare a instalației;
                                                            
1
 De exemplul dacă vorbim de o centrală nucleară, a cărei viată medie este de 25‐30 de ani, este necesar ca 
echipamentele de comandă și control și software‐ul aferent să poată asigura funcționalitatea centralei pe cel puțin 30 de 
ani (cât este viața acesteia) 
Structura unei aplicatii software pe un sistem de control numeric.
 
‐ să permită funcționarea în tandem a două sau mai multe task‐uri
care să asigure cel puțin o soluție de rezervă pentru instalația de
comandă și control, pe același sistem sau pe sisteme paralele.
Dintre parametrii enumerați doi dintre ei sunt foarte importanți, si anume,
sistemul trebuie să răspundă în conformitate cu algoritmul de funcționare
proiectat. Pentru aceasta, programul implementat va fi testat pe module și
submodule funcționale, care trebuie să funcționeze după modul în care au fost
proiectate si să implementeze funcțiile sau funcționalitățile impuse prin tema de
proiectare. Și un alt factor important îl constituie ca timpul de răspuns al
sistemului numeric de calcul să fie sub timul de răspuns al instalației. Astfel se va
testa dacă timpul de răspuns al sistemului numeric, de la aplicarea unei mărimi
treaptă la intrare pâna la aparitia unui răspuns la ieșire (până la generarea și
executia comenzii) trebuie să fia cu ½ mai mic decât timpul de răspuns al
instalalției. Pentru analiza răspunsului unui sistem de automatizare controlat cu
echipamente numerice (vezi Fig. 1) se pornește de la procesul reglat, al cărui timp

 
Fig. 1 

de răspuns (Tp) se cunoaște (în general se adoptă pentru calcule cel mai scurt timp de răspuns, dacă 
sunt mai multe variabile de intrare și de ieșire). 
Structura unei aplicatii software pe un sistem de control numeric.
 
Dacă   , este vectorul variabilelor de intrare (prin intermediul cărora se dau comenzi în 
instalație), iar  , este vectorul variabilelor de ieșire (care generează lucrul util) și dacă 
definim matricea  , care este matricea timpilor de răspuns pentru fiecare mărime de ieșire, 
unde 

 este timpul de răspuns pentru ieșirea  , dacă cel puțin una 

dintre intrările   sau timpul se modifică  

atunci, spunem că timpul de răspuns al procesului este: 

Timpul de răspuns al instalație de comandă și control poate fi descompus în: 

‐timpul de răspuns al sistemului de achiziție


T1
Timpul de răspuns al elementelor de achiziției, se consideră în calcule timpul
de răspuns al celui mai lent echipament dintre toate echipamentele de preluare
a semnalelor din instalație
T2 Timpul de răspuns al unității de conversie analog numerice dacă există sau al
portului de intrare2
T3 Timpul de transfer a informației din port sau interfață pâna la driver‐ul atașat
interfeței. Acest timp este foarte mic în sistemele lent variabile, acest timp
este neglijabil – este de ordinul zecilor până la sute de ns‐.
T4 Timpul de procesare a informației prin driverul prin care se preiau valorile de
comandă sau din proces. Acest timp este dependent de driver și de viteza de
procesare a informației pe procesor
‐timpul de răspuns al pachetului de programe

                                                            
2
 In general portul de intrare digitala are un timp de răspuns foarte mic (zeci păna la sute de ns) si poate fi neglijabil, în 
comparației cu ceilalți timpi ai instalatiei 
Structura unei aplicatii software pe un sistem de control numeric.
 

Tso Timpul de comutare și timpul de execuție al sistemului de operare. De obicei se


adună de cel puțin două ori timpul de comutare între task‐uri și timpul
consumat de executiv, în cazul unei încărcări maxime.
Tt Timpul de executie a buclei principale a task‐ului, sau task‐urilor dacă sunt mai
multe, la o încărcare maximă a sistemului
‐timpul de răspuns al sistemului de achiziție

T5 Timpul de procesare a informației prin driver‐ul atașat plăcii prin care se


transmit comenzi. Acest timp este dependent de driver și de viteza de
procesare a informației pe procesor
T6 Timpul de transfer a informației din driver‐ul atașat interfeței către port sau
interfață. Acest timp include și timpul în care informația trece prin port până la
ieșire din echipament. Acest timp este foarte mic în sistemele lent variabile,
acest timp este neglijabil – este de ordinul zecilor până la sute de ns‐.
T7 Timpul de răspuns al elementelor de comandă, se consideră în calcule timpul
de răspuns al celui mai lent echipament dintre toate echipamentele de
Structura unei aplicatii software pe un sistem de control numeric.
 
comandă din instalație
T8 Timpul după care o comandă generată de către un echipament de comandă
ajunge să stimuleze o intrare a procesului
Matematic putem scrie că, timpul de răspuns al sistemului de automatizare este:

Pentru a putea avea un control  asupra instalației automatizate, trebuie ca: 

2  

Optimizarea timpului de răspuns al sistemului automat, se poate realiza,


acționând asupra elementelor care permit scăderea timpilor de răspuns. Astfel
‐ putem acționa asupra tipului de traductor, alegând traductoare cu
un timp de răspuns cât mai bun. Această alegere poate avea
consecințe asupra prețului instalației de măsură.
‐ putem acționa asupra elementelor de execuției, alegând elemente
de execuție cu un timp de răspuns cât mai bun. Această alegere
poate avea consecințe asupra pretului instalației de măsură.
‐ putem alege unități de conversie cât mai rapide (actionând asupra
lui T2), dar cu costuri ridicate asupra unității de comandă și control.
‐ asupra driverelor putem intervenii, în mod indirect, alegând un
sistem de calcul cu o putere cât mai mare de procesare sau cât mai
rapide.
‐ în faza de proiectare putem intervenii asupra alegerii sistemului de
operare, alegând sisteme de operare optimizate pentru aplicații
critice de timp real (gen OS9, QNX etc).
‐ și nu în ultimul rând poate fi optimizat codul task‐ului sau task‐
urilor de procesare a informației.
De asemenea, trebuie ținut cont, în sistemele de automatizare care funcționează
timpi îndelungați (mai mult de 3 ani) apare fenomenul de îmbătrânire a
componentelor, astfel:
‐ componentele electro‐mecanice scad în performanțe;
‐ componentele electrice îmbătrănesc
ceea ce poate determina o înrăutățire a parametrilor de timp și implicit a
performanțelor sistemului. Datorită modificării performanțelor sistemelor de
automatizare, putem ajunge ca timpul de răspuns al procesului să devină
considerabil cu timpul de răspuns al procesului de automatizare

Structura unei aplicatii software pe un sistem de control numeric.
 
caz în care vor apare probleme în răspunsul și controlul procesului. În foarte multe
cazuri pot apărea situații legate de instabilitatea procesului de control și de
asemeni posibile probleme de oscilații în sistemul de reglaj.
Dacă , în acest caz discutăm de un sistem de automatizare compromis,
timpul de reglaj este cu mult mai mare decăt timpul de răspuns al procesului, caz
în care nu mai putem discuta de o automatizare compromisă.
Automatizările depreciate, în timp, se pot rezolva prin înlocuirea de componente
îmbătrânite sau schimbarea anumitor module pentru scăderea timpilor de răspuns
și creșterea performanțelor sistemului în ansamblul lui.

În marea lor majoritate sistemele de
comandă numerică pot fi realizate pe
arhitecturi de calcul care permit
paralelizarea de task‐uri și soluții de
comandă simultană și control de
echipamente în paralel. Astfel de
sisteme necesită la bază sisteme de
operare paralele, care pot procesa task‐
uri în paralel.

O arie separată este reprezentată de sistemele
creeate cu echipamente care pot controla un
singur task și astfel de echipamente sunt
controlate de către sisteme dedicate (sisteme
embedded).


O caracteristică importantă a acestor
aplicații o constituie faptul că ele oferă
posibilitatea ca o aplicație să poată fi
scrisă într‐un singur modul de program.
Ceea ce oferă în execuție posibilitatea de
a ocupa aceeași arie de memorie pentru
zona de cod. În acest caz pornire
multiplă a acestei aplicații se realizează
utilizând funcția de reentranță “fork()”.
Task‐ul nou creeat se numește copil al task‐ului părinte. Prin apelarea acestei
funcții o aplicație este repornită de către sistemul de operare, din punctul de
intrare, de exemplu
Structura unei aplicatii software pe un sistem de control numeric.
 

if( fork() ) {
// codul care se execută de către task-ul copil
// funcția fork ne returnează identificatorul procesului pornit
….
} else {
// codul care se execută de către task-ul părinte
….
}
De asemeni, aceste aplicații trebuie să ofere
posibilitatea ca modulele aplicației care
rulează în paralel să poată pune în comun
zone de memorie în care sunt stocate date
comune.
În sistemele de operare în timp real sunt
două metode prin care module de aplicații
pot pune blocuri de date în comun:
‐ folosind aceeși bucată de cod, în
scrierea aplicației și repornirea task‐
ului secondar prin instuctiuni de tip
fork ; în acest caz variabilele din
zona globală a aplicației sunt
variabile comune pentru toate
Instanțele pornite prin instrucțiunea fork .
De exemplu:
int a 1024 ; // variabilă globală
static char a1 64 ; // varibilă locală în modulul curent

void main void
char a2 32 ; // variabilă locală funcției curente
static char a3 64 ; // varibilă statică funcției curente
….

Anumite compilatoare folosesc și declaratorul common pentru specificația unor variabile comune
în sisteme multi‐tasking. De exemplul:
common int a 1024 ; // variabilă comună globală
Structura unei aplicatii software pe un sistem de control numeric.
 
public int b 1024 ; // variabilă comună globală
static char a1 64 ; // varibilă locală în modulul curent

void main void
char a2 32 ; // variabilă locală funcției curente
static char a3 64 ; // varibilă statică funcției curente
….

Toate aceste variabile sunt alocate static în zona de variabile globale.
O a doua metodă constă în partajarea comună a unui spațiu din memoria fizică partajată a
sistemului. Sistemul de operare are facilitatea de a da spre utilizare aplicațiilor zone de memorie
din memoria fizică de o anumită dimensiune. Această memorie poate fi accesată de mai multe
aplicații. Pentru aceasta o aplicație va cere sistemului o zonă de memorie să fie blocată pentru
partajarea de date; alocarea se realizează cu funcții din familia “memory mapping”, înaintea
apelării acestei funcții se creează un fișier virtual în zona de device‐uri /dev utilizând funcția
open funcție care returnează un identificator de fișier fd , iar cu ajutorul funcției mmap …, fd,
dimensiune.. se alocă memoria și este conectată în sistemul de operare cu numele fișierului
alocat. Sistemul de operare va aloca o memorie de dimensiunea specificată și de asemeni va
returna către aplicația locală un pointer local către memoria alocată. Un alt task care se va lega
de această arie de memorie va utiliza funcția open pentru conectarea la fișierul virtual creeat, iar
utilizând funcția mmap … se va conecta la blocul de memorie atașat fișierului.
Tot în același context, sistemele moderne au
posibilitatea de a transmite semnalizări și
mesaje între modulele aplicației. Pentru
transmiterea de mesaje se folosesc două
grupe de funcții:
‐ send_message … , funcție de
transmitere a mesajelor
‐ receive_message … , funcție de
recepție a mesajelor
sau
‐ p și v .

Un alt element important pentru aplicațiile industrial, îl constituie faptul că aplicația va trebui să
aibe credențiale de securitate pentru a putea opera cu porturile de intrare sau de ieșire . Pentru
aceasta o aplicație va trebui să aibe facilități pentru operare cu funcții de intrare și ieșire:
‐ inportb ,
‐ outportb .
‐ inportw ,
‐ outportw .
Structura unei aplicatii software pe un sistem de control numeric.
 
Sistemul de calcul va trebui să asigure puterea necesară aplicației pentru a permite execuția
aplicației de achiziție cu aplicația de control.
De asemeni, sistemul va avea posibilitatea de a putea
trasmite date si a putea primi comenzi pe interfata
de comunicatii, utilizand protocoale standard de
comunicatii.



În sisteme cu afișare locală, va
trebui ca aplicațiea va avea
posibilitatea de a putea
transmite date sau prelua date
de la o consola operator HMI
locala sau la distanță.

Sistemele de afișare vor avea


posibilitatea de a putea
configura aplicația sau
modulele aplicației, on‐line
fără ca modulele de control și
comunicație să se oprească
sau să afecteze
funcționalitatea sistemului
reglat/urmarit


Structura unei aplicatii software pe un sistem de control numeric.
 

De reţinut!
Sistemele de calcul pentru sistemele de comandă și control sunt
echipamente special construite, în scopul de a putea:
‐prelua și prelucra date din procesele monitorizate și
controlate;
‐implementa algoritmi de comandă și control;
‐genera comenzi și controla procesul;
‐informa operatorul asupra stării sistemului și de permite
operatorului să controleze, în mod direct sistemul de comandă
și control.

Test de autoevaluare
1. Care sunt condițiile pentru care o aplicație sau un pachet de
aplicații să poată fi utilizat să controleze și să comande o instalație
de automatizare?
2. Care sunt elementele componente ale timpului de răspuns a unei
instalații de comandă?
3. Cum se micșorează timpul de automatizare?

Răspunsuri la întrebările din testele de


autoevaluare
1. Pentru ca o aplicație sau un pachet de aplicații să poată fi
utilizat să controleze și să comande o instalație de
automatizare, prin intermediului unui echipament
numeric de comandă și control este necesar ca:
‐sistemul să funcționeze si să raspundă în conformitate cu
algoritmul de funcționare proiectat;
‐sistemul să răspundă în timp real la cerințele sistemului
de automatizare, timpul de răspuns al sistemului de
calcul să fie cel puțin jumătate din timpul de răspuns al
procesului
‐să fie funcționabil 24h pe zi, 365 de zile pe an, pe o
perioadă cel puțin egală cu durata de viață a instalației ;
‐sa asigure un timp de funcționalitate de cel puțin 98%
din durata de funcționare a instalației;
Structura unei aplicatii software pe un sistem de control numeric.
 
‐să permită funcționarea în tandem a două sau mai multe
task‐uri care să asigure cel puțin o soluție de rezervă
pentru instalația de comandă și control, pe același sistem
sau pe sisteme paralele.
2. Timpul de răspuns al instalație de comandă și control
poate fi descompus în:
‐timpul de răspuns al sistemului de achiziție
‐timpul de răspuns al pachetului de programe
‐timpul de răspuns al sistemului de achiziție
3. Optimizarea timpului de răspuns al sistemului automat, se
poate realiza, acționând asupra elementelor care permit
scăderea timpilor de răspuns. Astfel
‐ putem acționa asupra tipului de traductor,
alegând traductoare cu un timp de răspuns cât
mai bun. Această alegere poate avea consecințe
asupra prețului instalației de măsură.
‐ putem acționa asupra elementelor de execuției,
alegând elemente de execuție cu un timp de
răspuns cât mai bun. Această alegere poate avea
consecințe asupra pretului instalației de măsură.
‐ putem alege unități de conversie cât mai rapide
(actionând asupra lui T2), dar cu costuri ridicate
asupra unității de comandă și control.
‐ asupra driverelor putem intervenii, în mod
indirect, alegând un sistem de calcul cu o putere
cât mai mare de procesare sau cât mai rapide.
‐ în faza de proiectare putem intervenii asupra
alegerii sistemului de operare, alegând sisteme
de operare optimizate pentru aplicații critice de
timp real (gen OS9, QNX etc).
‐ și nu în ultimul rând poate fi optimizat codul
task‐ului sau task‐urilor de procesare a
informației.

Structura unei aplicatii software pe un sistem de control numeric.
 
Bibliografie
Morgan, D. “Numerical Methods – Real Time and Embedded Systems
Programming”, M&T Books, 1992
Walls, C., “Embedded Software: The Works”, O’Relly Ed., 2006
Walls, C., “Real Time Concepts for Embedded Systems”, R&D Books,
2000
Ledin, J., “Embedded Control Systems in C/C++; An Introduction on
Software Developers Using Matlab”, CMP Books, 2004

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