Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Calculatoare


Index » educatie » » informatica » Calculatoare
» PROGRAMAREA SI UTILIZAREA SUBSISTEMULUI INTRARILOR ANALOGICE AL INTERFETEI AX 5411


PROGRAMAREA SI UTILIZAREA SUBSISTEMULUI INTRARILOR ANALOGICE AL INTERFETEI AX 5411


PROGRAMAREA SI UTILIZAREA SUBSISTEMULUI INTRARILOR ANALOGICE AL INTERFETEI AX 5411

1.Obiectivele lucrarii

a) Cunoasterea principalelor caracteristici ale interfetei de proces Ax5411;

b) Insusirea modului de programare a subsistemului intrarilor analogice (SIA) prin operarea porturilor de intrare - iesire aferente;

c) Insusirea modului de utilizare a componentelor VCL TImage, TStringGrid si a metodei MessageBox



d) Elaborarea si implementarea unei secvente de program in C++Builder pentru determinarea si trasarea caracteristicii statice a SIA pornind de la un set existent de date;

e) Elaborarea unui program in C++Builder pentru vizualizarea comportarii dinamice (in planul u-t si pe bargraf ) a SIA.

2. aparatura si suporturile utilizate:

a) PC in configuratia unitate centrala, monitor, tastatura, mouse;

b) Modul interfata AX 5411 cuplat la calculator;

c) Sursa de tensiune continua, cu domeniul 05 V;

d) Multimetru numeric;

e) Precizarile din prezentul indrumar;

f) Manualul utilizatorului pentru interfata AX 5411 (sectiunile referitoare la descrierea interfetei si prezentarea functiilor porturilor de intrare - iesire;

g) Manuale de prezentare a mediului C++Builder.

3. Breviar

3.1. Caracteristicile principale ale sistemului de interfata AX 5411

AX5411 este o interfata multifunctionala care contine toate cele 4 subsisteme (SIA, SIN, SEA, SEN) Si care poate fi amplasata intr-un slot disponibil al unui sistem IBM PC AT sau compatibil.

In continuare se prezinta principalele specificatii ale echipamentului.

Subsistemul intrarilor analogice (SIA)

Numar de intrari 16 simple (AI0 - AI15);

Rezolutie CAN 12 bit;

Frecventa de achizitie max. 60 kHz ;

Timpul de conversie A/D max 15 microsec. ;

Timpul de achizitie max 5 microsec./canal;

Domenii de intrare +/-10V,+/-5V,+/-2.5V,+/-1.25V,

+/-0.625V,+/- 0.3125V (selectabile software);

Impedanta de intrare >10 MW,50pF;

Neliniaritate +/- 1 LSB;

Eroare inerenta la achizitie +/- 1 LSB.

Subsistemul iesirilor analogice (SEA)

Numar de iesiri 2 (DO0,DO1);

Rezolutie CNA 12 bit;

Frecventa de generare max 33 kHz ;

Domenii de iesire 0 . 5V,0 . 10V (selectabile hardware);

Curent de iesire 5 mA max.

Subsistemul intrarilor/iesirilor numerice (SIN/SEN)

Intrari numerice 24 dintre care disponibile 8 (DI0 - DI7 );

Iesiri numerice 24 dintre care disponibile 8 (DO0 - DO7 ).

Niveluri de intrare/iesire compatibile TTL;

Conector intrare/iesire 50 pini

Caracteristici de interfatare cu calculatorul

Magistrala compatibila IBM PC AT;

Biti de adresa utilizati A9 - A0;

Adresa portului de baza 0x300 (hexa);

Porturi utilizate 16 (0x300 - 0x30f);

Niveluri de intrerupere 2,3,4,5,6,7 (controlabile software);

Sursa de intreruperi FINISH bit conversie A/D;

Optiuni DMA DMA1 sau DMA3 ( selectabile hardware);

In figura 4.1 se prezinta asignarea si semnificatiile semnalelor din cei 50 de pini ai conectorului interfetei AX 5411.

Conectorul interfetei este scos in afara calculatorului cu ajutorul unui cablu panglica, conexiunile propriu-zise realiztndu-se la un panou prevazut cu cleme (numerotarea clemelor coincide cu numerotarea din figura 4.1).

Nume

I/O

Funcie

AIx

Intrare

Canal x Int.Anal.

DOx

Ie=ire

Canal x

Ie=. Anal.

Dix

Intrare

Canal x

Int. Num.

DOx

Ie=ire

Canal x

Ie=. Num.

12 V

Sursa

-12 V

Sursa

AGND

Masa

Analogic[

DGND

Masa

Numeric[

5VP

Sursa

PC 5v

12 VP

Sursa

PC 12v

-12 VP

Sursa

PC 12v

EXTRG

Intrare

Trigger extern

 

Fig 4.1.

 


3.2. Programarea SIA prin operarea porturilor interfetei AX 5411

Adresa portului de baza (IOPORT) pentru interfata AX5411este 0x300 (hexa). Incepand cu aceasta adresa, interfata utilizeaza 16 adrese consecutive care constituie spatiul de intrare - iesire (I/E) al interfetei cu semnificatiile prezentate in tabelul 3.1. Asupra unui port se pot efectua operatii de citire (R = Read in tabelul 4.1) respectiv de inscriere (W = Write in tabelul 4.1).

Tabelul 4.1

Semnificatiile porturilor de adresare pentru interfata AX 5411

LOCATIE

FUNCTIE

TIP

Adresa de baza    + 0

A/D Low byte

Start A/D

R

W

+ 1

A/D High Byte

Gain Control

R

W

+ 2

MUX SCAN Control

R/W

+ 3

Digital In

Digital Out

R

W

+ 4

D/A 0 Output Low byte

W

+ 5

D/A 0 Output High byte

W

+ 6

D/A 1 Output Low byte

W

+ 7

D/A 1 Output High byte

W

+ 8

AX5411 Status

Clear Interrupt

R

W

+ 9

AX5411 Control

R / W

+10

Digital Input Low byte

Digital Output Low byte

R

W

+11

Digital Input High byte

Digital Output High byte

R

W

+12

8253 Counter 0

R / W

+13

8253 Counter 1

R / W

+14

8253 Counter 2

R / W

+15

8253 Counter Control

W

In continuare se prezinta succint semnificatiile si modul de operare a porturilor utilizate de SIA.

Portul adresa de baza+0 are structura prezentata in figura 4.2 si poate fi atat citit cat si inscris. La citire contine numarul canalului selectat (bitii C0 C3 grupati in nible-ul ACN - Acquisition Channel Number) si cei mai pusin semnificativi 4 biti ai cuvantului de la iesirea CAN (bitii D0 D3 grupati in nible-ul LSD - Least Significant Data). La scriere (indiferent de valoarea inscrisa) se declanseaza conversia analog-numerica).

 


Portul adresa de baza+1 care poate fi atat citit cat si inscris, are la citire structura prezentata in figura 4.3 si contine cei mai semnificativi 8 biti ai cuvantului de la iesirea CAN (bitii D4 D11 grupati in octetul MSD - Most Significant Data


La scriere se specifica domeniul admisibil de tensiuni la intrarea CAN, conform figurii 4.4 (bitii R0 R3 grupati in nible-ul GSW - Gain Setting Word), conform codificarii din tabelul 4.2. In bitii 4 7 se poate inscrie orice combinatie binara.


Tabelul 4.2

Codificarea domeniilor

R3

R2

R1

R0

Cod

Domeniu [V]

 


Portul adresa de baza+2 este bidirectional si are la scriere structura prezentata in figura 4.5. In acest port se inscriu codurile hexazecimale ale primului si ultimului canal de pe care se va efectua achizitia. Jumatatea superioara a octetului (bitii UC0 UC3 grupati in nible-ul ECN - End Channel Number), reprezinta numarul ultimului canal de pe care se face achizitia, iar jumatatea inferioara a octetului (bitii LC0 LC3 grupati in nible-ul SCN - Start Channel Number), reprezinta numarul primului canal de pe care se face achizitia.

De exemplu pentru o achizitie de pe canalele 3 (4 canale) octetul inscris in acest port va fi 0x63. Pentru achizitia de pe un singur canal, numerele canalelor de start si de stop coincid, adica, de exemplu, pentru canalul 2 in port se va inscrie valoarea 0x22.



Observatii

1. Citirea unui port se face cu instructiunea axInp, care are sintaxa val=axInp(port), in care port reprezinta adresa portului iar val variabila in care se va transfera valoarea preluata prin citire.

Scrierea intr-un port se face cu instructiunea axOutp, care are sintaxa

axOutp(port,val), in care port reprezinta adresa portului iar val variabila care contine valoarea ce se va transfera.

Bitul 7 al portului adresa de baza+8 este setat (valoarea logica 1) pe

timpul derularii conversiei analog - numerice si este sters (valoarea

logica 0) dupa incheierea acesteia;

Semnificatiile si modul de operare al celorlalte porturi sunt prezentate in documentatia interfetei.

In continuare se prezinta codul sursa al functiei Achizitie, care permite achizitia tensiunii de pe un canal, in domeniul 0 (-5 V / +5 V).

float Achizitie(int canal)

Observatii

In unit-ul programului se va defini semnificatia identificatorului IOPORT

cu declaratia #define IOPORT 0x300.

Apelarea functiei se face cu o constructie de tipul u=Achizitie(0x77); (achizitia se efectueaza de pe canalul 7, iar valoarea tensiunii in Volt se transfera in variabila reala u).

3.2. Utilizarea unor componente VCL

Componenta TImage

Componenta TImage se gaseste in Component Palette (pagina Additional) si permite afisarea unei imagini pe ecran . Aceasta imagine este valoarea proprietatii Picture , iar ea poate fi icon, bitmap , metafile sau orice alt obiect grafic definit de utilizator. In figura 4.6 este reprezentat obiectul TImage asa cum se gaseste in pagina Additional.

Fig. 4.6.

Aducerea pe forma a acestui obiect se realizeaza in conformitate cu precizarile din Lucrarea 1. In figura 4.7 este prezentat obiectul TImage asa cum apare pe forma dupa ce a fost adus din paleta cu componente.

Fig 4.7.

In figura 4.8. se prezinta Tabelul cu proprietati (Object Inspector) paginile Proprietati si Evenimente pentru componenta TImage.

Proprietatea Name specifica numele obiectului TImage.

Proprietatea Tag este utilizata pentru transferul de informatii suplimentare (variabile de tip intreg).

Proprietatea AutoSize - daca aceasta este true atunci dimensiunile obiectului TImage se vor modifica in functie de imaginea care va fi incarcata.

Proprietatea Picture - prin intermediul acestei proprietati se poate incarca imaginea ce se doreste a fi afisata pe forma. Daca se doreste a se incarca o imagine la apasarea unui buton se poate utiliza urmatorul cod de program :

void __fastacall Tform1::Button1Click(Tobject *Sender)

La apasarea butonuluil Button1 se va incarca de pe harddisk (discul C) fisierul imagine1.bmp.

Fig.4.8.

Componenta TStringGrid

Componenta TStringGrid se gaseste in Component Palette (pagina Additional) si permite afisarea diferitelor variabile sub forma de tabel. In figura 4.9 este prezentata componenta TStringGrid asa cum se gaseste in pagina Additional.

Fig. 4.9.

In figura 4.10 este prezentat obiectul TstringGrid asa cum apare la aducerea sa pe forma.

Fig. 4.10.

In figura 4.11 se prezinta tabelul cu proprietati (Object Inspector) paginile Proprietati si Evenimente pentru componenta TStringGrid.

Fig 4.11.

Proprietatea Name specifica numele TStringGrid-ului.

Proprietatea Tag este utilizata pentru transferul de informatii suplimentare (variabile de tip int).

Proprietatea ColCount este utilizata pentru a specifica numarul de coloane in tabel.

Proprietatea RowCount este utilizata pentru a specifica numarul de linii in tabel.

Proprietatea DeafultColWidtht specifica latimea tuturor celulelor din tabel.

Proprietatea DefaultRowHeight specifica inaltimea tuturor celulelor din tabel

Proprietatea Cells specifica linia si coloana in tabel; In exemplul urmator se arata cum se adreseaza linia 2 si coloana 4 din tabelul StringGrid1:

StringGrid1->Cells[2][4] ="Linia 2 Coloana 4" ;

Metoda MessageBox

Aceasta metoda apartine obiectului Taplication si are urmatoarea structura int __fastcall MessageBox(Handle, char * Text, char * Caption, unsigned short Flags);

unde : Handle este un tip de date (numar ) de tip void* asociat de Windows unei aplicatii (proces sau task) sau unui control ; fereastra aplicatiei creata in C++Buider , Form1 , detine un asemenea Handle;

Text - textul ce urmeaza a fi afisata in fereastra de mesaj ;

Caption - titlul ferestrei ;

Flags - indicator, pentru care in tabelul 4.3 se prezinta valori uzuale

(.acesti indicatori se pot combina prin utilizarea operatorului "sau" ( | ).

Tabelul 4.3

Valoarea campului Flags

Cod numeric

Semnificatia

IDABORT

Buton de tipul    Abort

IDCANCEL

Buton de tipul    Cancel

IDIGNORE

Buton de tipul    Ignore

IDNO

Buton de tipul    No

IDOK

Buton de tipul    OK

IDRETRY

Buton de tipul    Retry

IDYES

Buton de tipul    Yes

In continuare se prezinta doua constructii in care este utilizata metoda MessageBox .

MessageBox(Handle,'Eroare ','Titlul ',1);

sau

MessageBox(Handle,'Eroare ','Titlul ',IDOK);

In figura 4.12 avem rezultatul executiei acestei metode , unde se poate observa . aparitia ferestrei cu Caption-ul Titlu iar ca mesaj in aceasta fereastra este textul Eroare.

Fig 4.12.

Utilizarea metodei este recomandata in situatiile in care se doreste atentionarea utilizatorului in legatura cu aparitia unui eveniment in program.

In continuare se prezinta codul sursa al unit-ului P1 care are obiectele evidentiate in figura 4.13.

#include <vclvcl.h>

#include <stdio.h>

#include <string.h>

#include 'axdrv.h'

#pragma hdrstop

#include 'Unit1.h'

int nrlin=1,k=0,cuanteg; //numar linii in tabel, contor, variabila globala

float x[10],y[10];    // pt. nr. de cuante, vectori pentru uint si uach

#pragma link 'Grids'

#pragma resource '*.dfm'

#define IOPORT 0x300

TForm1 *Form1;

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

for (int i=0;i<=200;i=i+40)

PaintBox1->Canvas->Pen->Width=1;

PaintBox1->Canvas->Pen->Color=clGray;

for (int i=0;i<=200;i=i+10)

float Achizitie(int canal) // functia Achizitie

void __fastcall TForm1::Timer1Timer(TObject *Sender)

void __fastcall TForm1::Button1Click(TObject *Sender)

void __fastcall TForm1::Button2Click(TObject *Sender)

else

// mesaj de eroare (in MessageBox la depasirea numarului de 10 valori)

MessageBox(Handle,'Ati depasit !Aveti mai mult de 10 numere introduse ','Greseala ! ',1);

void __fastcall TForm1::Button3Click(TObject *Sender)

void __fastcall TForm1::Button4Click(TObject *Sender)

for (int i=0;i<=200;i=i+40)

PaintBox1->Canvas->Pen->Width=1;

PaintBox1->Canvas->Pen->Color=clGray;

for (int i=0;i<=200;i=i+10)

void __fastcall TForm1::Button5Click(TObject *Sender)

Fig. 4.13.

Programul permite derularea urmatoarei secvente :

se stabileste de la sursa o valoare pentru Uint ;

se noteaza aceasta valoare in caseta Edit3 ;

se apasa butonul Afisare punct ;

in casetele Edit4, Edit5 se tiparesc valorile pentru numarul de cuante si Uach, iar in PaintBox1 se va afisa un punct de coordonate (Uint, Uach) ;

se apasa butonul confirmare pentru introducerea perechii Uint, Uach in tabel (TStringGrid1) ;

daca se apasa butonul Sterge Grafic se sterg punctele din PaintBox1 ;

daca se apasa butonul Initializare se initializeza cu zero valorile din tabel.

daca se apasa butonul Exit se iese din program.

4. Modul de lucru

A. Descrierea platformelor de lucru

Laboratorul "INFORMATICA INDUSTRIALA " contine urmatoarele

componente functionale importante:

panoul complex IAN;

platformele de lucru P1, P2, P3;

stand pentru reglarea presiunii.

Platformele de lucru P1, P2, P3 sunt conectate la panoul I. A. N. prin intermediul cablurilor prezentate punctat in figura 4.14 si pozate in interiorul unor bare casetate. Conectarea fizica la panourile interfetelor de proces se realizeazA prin sirurile de conectori SC1 , SC2, SC3 ,care au configuratia din figura 4.15.

Acest laborator este interconectat din punct de vedere functional cu laboratorul "Automatizarea proceselor chimice" de unde se preiau semnale in curent de la traductoarele de debit (platforma P2) si nivel (platforma P1) si catre care se trimit semnale in curent la elementele de executie aferente SRA debit si SRA nivel.

Comanda pompelor centrifugale ale celor doua SRA se poate realiza de la panoul IAN.

La platforma P1 sunt conectate traductorul si elementul de executie amplasate pe standul pentru reglarea presiunii situat in laboratorul Informatica industriala..

B. Desfasurarea lucrarii

a) Se realizeaza montajul din figura 4.16 pentru fiecare platforma Pi (i=1,2,3);

a) Se alimenteaza sistemul cu tensiune;

b) Se lanseaza mediul C++ Builder (dublu click pe icon-ul corespunzator din desktop);

c) Se selecteaza din Main Menu optiunea File si apoi OpenProject urmat de calea D:DIDACTICSMP1905 (a sau b)LUC4P1.mak.

e) Se executa click pe butonul Run din Toolbar (aceasta actiune este urmata de lansarea in executie a programului P1 al carui text sursa este prezentat in breviar); se vor introduce 10 valori pentru Uint si se va urmari corectitudinea afisarii punctelor in PaintBox1 si a valorilor in TstringGrid1;

f) Se examineaza in programul P1 utilizarea elementelor aferente utilizarii interfetei AX5411 prin inscrierea porturilor;

g) Se completeaza programul P1 dupa cum urmeaza:

Ø      se va prevede un nou buton, in caption-ul caruia sa existe textul Trasare grafic;

.


Fig. 4.15. Configuratia sirului de conectori.

 

Generator

de

semnal

 

Semnal

traductor

 

Comanda

15 V

 

Semnal

unificat

420 mA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 




Ø      la apasarea acestui buton sa se traseze caracteristica statica a SIA (caracteristica este liniara de forma Uach = a0 + a1 * Uint, in care coeficientii a0 ,si a1 se vor determina prin regresie liniara;

Ø      se va prevede un label in care sa se tipareasca ecuatia caracteristicii statice.

Fig. 4.17.

h) se va dezvolta programul P2 care sa realizeze achizitia unei tensiuni pe canalul zero, domeniul -5 V +5 V; pentru afisarea tensiunii achizitionate se vor folosi elementele de tip diagrama si bargraf construite in lucrarea nr. 3. Referitor la programul P2 se fac urmatoarele precizari:

in zona directivelor de preprocesare se va include axdrv.h (#include "axdrv.h"; );

in meniul View al mediului C++Builder se alege optiunea Project MakeFile , care se va completa cu biblioteca axdrv32b.lib, rezultand in final linia de mai jos:

ALLLIB = $(LIBFILES) vcl.lib import32.lib cp32mt.lib axdrv32b.lib;

in directorul curent se afla urmatoarele fisiere:

Ø      axdrv.h    (header-ul cu prototipurile functiilor bibliotecii)

Ø      axdrv32b.lib    (legaturile la functiile bibliotecii)

Ø      axdrv.dll    (functiile bibliotecii)

pe forma se vor afla urmatoarele obiecte:

Ø      trei butoane cu functiile Start achizite (Caption Start), Stop achizitie (Caption Stop), Exit (Caption Exit);

Ø      o caseta de editare (in care se va inscrie valoarea curenta achizitionata);

Ø      un PaintBox unde se va afisa graficul (pentru animatie se va utiliza metoda CopyRect - vezi lucrarea 3);

Ø      doua obiecte TPanel pentru realizarea bargrafului (vezi lucrarea 3);

Ø      un obiect TImage, in care se va incarca schema sinoptica realizata ca fisier .bmp cu ajutorul programului Paint (pentru lansarea in executie a acestuia se va parcurge calea: Start, Programs, Accesories, Paint);

Ø      obiecte de tip Label pentru inscrierea informatiilor referitoare la gradarea axelor (gradarea se va efectua in Constructor);

Ø      un obiect de tip TTimer, cu proprietate interval setata la 500 ms;

Ø      in Caption-ul formei se va inscrie textul Laboratorul Informatica Industriala;

Ø      se va utiliza functia Achizitie, prezentata in aceasta lucrare.

Fig. 4.18.

i) lucrarea se considera incheiata in momentul in care programele P1 si P2 sunt functionale (in figurile 4.17 si 4.18 se prezinta imagini obtinute in urma executiei celor doua programe) Referatul va cuprinde principalele idei din breviar referitoare la mediul C++Builder (resursele grafice) si formele sursa ale unit-urilor programului P1 modificat si P2 construit.





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate

Calculatoare


Access
Adobe photoshop
Autocad
Baze de date
C
Calculatoare
Corel draw
Excel
Foxpro
Html
Internet
Java
Linux
Mathcad
Matlab
Outlook
Pascal
Php
Powerpoint
Retele calculatoare
Sql
Windows
Word






termeni
contact

adauga