Structura unei aplicatii software pe un sistem de control numeric.
Aplicatii pentru sisteme de control numeric
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:
.
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.
Pentru a putea avea un control asupra instalației automatizate, trebuie ca:
2
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ță.
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?