software de control d’un sistema de mesura de l’eficiència...
TRANSCRIPT
Software de control d’un sistema de mesura de
L’Eficiència Quàntica Externa
TITULACIÓ: Enginyeria en Automàtica i Electrònica Industrial
AUTORS: Eduard Estrada López
DIRECTOR: Josep Ferré Borrull.
DATA: Juny/ 2011
Índex General
1. Introducció ........................................................................................................................ 5
1.1 Antecedents ............................................................................................................... 5
1.2 Objectius ................................................................................................................... 5
1.3 Justificació ................................................................................................................ 5
1.4 Finalitat ..................................................................................................................... 5
2. Experiment........................................................................................................................ 6
2.1 L‟Eficiència Quàntica Externa (EQE) ........................................................................ 6
2.2 Definició de l‟experiment .......................................................................................... 6
2.3 Càlculs teòrics per realitzar l‟experiment ................................................................... 7
2.4 Descripció de les parts que formen l‟experiment ........................................................ 8
2.4.1 Làmpada de Hamamatsu. ................................................................................... 8
2.4.2 Chopper ............................................................................................................. 8
2.4.3 Monocromador. ................................................................................................. 8
2.4.4 Beam Splitter ..................................................................................................... 9
2.4.5 Referència .......................................................................................................... 9
2.4.6 Mostra (Cèl·lula Solar) ....................................................................................... 9
2.4.7 Conversor I-V .................................................................................................. 10
2.4.8 Lock-in ............................................................................................................ 10
2.4.9 Connexió pel port sèrie .................................................................................... 10
2.4.10 Ordinador amb aplicació de control .................................................................. 10
3. Especificacions de l‟aplicació a desenvolupar. ................................................................. 11
3.1 Funcions del programa............................................................................................. 11
3.1.1 Configuració de l‟escaneig ............................................................................... 11
3.1.2 Connexió ......................................................................................................... 11
3.1.3 Escaneig .......................................................................................................... 12
3.1.4 Tractament de les dades ................................................................................... 12
3.1.5 Mode Debug .................................................................................................... 12
3.2 Part Gràfica ............................................................................................................. 13
3.2.1 Menú principal ................................................................................................. 13
3.2.2 Càrrega de mesures .......................................................................................... 13
3.2.3 Gràfiques ......................................................................................................... 13
3.3 Ergonomia ............................................................................................................... 14
4. Especificacions del Lock-in i Monocromador .................................................................. 15
4.1 Lock-in Amplifier. Model 7265 (Figura 4.1) ............................................................ 15
4.1.1 Paràmetres de configuració del Port Sèrie ......................................................... 15
4.1.2 Estructura de la cadena de caràcters a enviar i rebre. ......................................... 15
4.1.3 Instruccions necessàries per comunicar-nos amb el Lock-in.............................. 16
4.2 Monocromador. Model SpectraPro150 (Figura 4.3).................................................. 17
4.2.1 Paràmetres de configuració del Port Sèrie ......................................................... 18
4.2.2 Estructura de la cadena de caràcters a enviar i rebre. ......................................... 18
4.2.3 Intruccions necessàries per comunicar-nos amb el monocromador. ................... 18
5. Seguiment del projecte .................................................................................................... 19
5.1 Pla d‟accions ........................................................................................................... 19
5.2 Diagrama de Gantt ................................................................................................... 20
6. Funcions que intervenen en el programa .......................................................................... 22
7. Fluxograma de les funcions per cada objecte creat ........................................................... 22
8. Fluxograma de la mesura ................................................................................................. 23
9. Aplicació......................................................................................................................... 25
9.1 Accés als ports ......................................................................................................... 25
9.1.1 Obrir el port sèrie ............................................................................................. 26
9.1.2 Tancar el Port .................................................................................................. 26
9.1.3 Funció per configurar el Port ............................................................................ 27
9.1.4 Funció amb la que llegirem la configuració actual del port ............................... 27
9.1.5 Funció per configurar el port ............................................................................ 27
9.1.6 Función per la configuració i control dels temps de lectura i escriptura. ............ 28
9.1.7 Funció per llegir i escriure del Port. .................................................................. 28
9.1.7.1 Función ReadFile. ........................................................................................ 28
9.1.7.2 Función WriteFile. ....................................................................................... 29
9.2 Treballar en MULTITASCA .................................................................................... 29
9.2.1 La classe TThread ............................................................................................ 30
9.3 Generació de gràfics amb Teechart. ......................................................................... 30
9.4 Programa ................................................................................................................. 31
9.4.1 Finestra Principal ............................................................................................. 31
9.4.1.1 Menú Principal ............................................................................................. 31
9.4.1.2 Browser ....................................................................................................... 32
9.4.1.3 Measure ....................................................................................................... 33
9.4.2 Finestres secundàries........................................................................................ 34
9.4.2.1 Data Window ............................................................................................... 35
9.4.2.2 Save ............................................................................................................. 35
9.4.2.3 Configuration ............................................................................................... 36
9.4.2.4 Attention ...................................................................................................... 37
9.4.2.5 Error ............................................................................................................ 38
9.4.2.6 Set Axis ....................................................................................................... 38
9.4.2.7 Connexion.................................................................................................... 39
9.4.2.8 Configuration Lock-in .................................................................................. 39
9.4.2.9 Debug Mode ................................................................................................ 39
10. Manual D‟ús ................................................................................................................... 41
10.1 Manual de Referència .............................................................................................. 41
10.1.1 Menú Principal ................................................................................................ 41
10.1.1.1 File........................................................................................................... 41
10.1.1.2 Configuration ........................................................................................... 42
10.1.1.3 Graph ....................................................................................................... 42
10.1.1.4 Connexion ................................................................................................ 43
10.1.1.5 Debug Mode ............................................................................................ 43
10.1.2 Browser ........................................................................................................... 43
10.1.2.1 Llista de mesures ...................................................................................... 43
10.1.2.2 Botó Data Window. .................................................................................. 43
10.1.3 Measure ........................................................................................................... 43
10.1.3.1 Gràfiques ................................................................................................. 43
10.1.3.2 Botons de control ..................................................................................... 44
10.2 Reference Manual .................................................................................................... 45
10.2.1 Main Menu ...................................................................................................... 45
10.2.1.1 File........................................................................................................... 45
10.2.1.2 Configuration ........................................................................................... 46
10.2.1.3 Graph ....................................................................................................... 46
10.2.1.4 Connexion ................................................................................................ 47
10.2.1.5 Debug Mode ............................................................................................ 47
10.2.2 Browser ........................................................................................................... 47
10.2.2.1 Measurement List ..................................................................................... 47
10.2.2.2 Data Window butoon................................................................................ 47
10.2.3 Measure ........................................................................................................... 47
10.2.3.1 Graphs ..................................................................................................... 47
10.2.3.2 Botons de control ..................................................................................... 48
10.3 Manual de processos ................................................................................................ 49
10.3.1 Mesura estàndard ............................................................................................. 49
10.3.2 Obri fitxer de dades i treballar amb la gràfica. .................................................. 50
10.3.3 Troubleshooting ............................................................................................... 51
10.4 Process Manual........................................................................................................ 52
10.4.1 Standard Measure ............................................................................................ 52
10.4.2 Open data file and work on the graph. .............................................................. 53
10.4.3 Troubleshooting ............................................................................................... 54
11. Bibliografia ..................................................................................................................... 55
11.1 Llibres consultats ..................................................................................................... 55
11.2 Pàgines Web consultades (Juny 2011) ...................................................................... 55
Índex De figures
Figura 2-1 Diagrama Experiment .............................................................................................. 7
Figura 2-2 Mecanisme intern d'un monocromador ..................................................................... 9
Figura 3-1 Taula d‟accessos directes de l‟aplicació. ................................................................. 14
Figura 4-1 Lock-in Amplifier. Model 7265 ............................................................................. 15
Figura 4-2 Taula d‟instruccions del port sèrie del Lock-in ....................................................... 17
Figura 4-3 Monocromador SpectrPro150................................................................................. 18
Figura 4-5 Taula d‟instruccions del port sèrie del Monocromador............................................ 18
Figura 9-1 Finestra principal ................................................................................................... 31
Figura 9-2 Finestra DataWindow ............................................................................................. 35
Figura 9-3 Finestra Save .......................................................................................................... 35
Figura 9-4 Finestra ShowTextFile ............................................................................................ 36
Figura 9-5 Finestra Configuration ........................................................................................... 36
Figura 9-6 Finestra Attention ................................................................................................... 37
Figura 9-7 Finestra Error ........................................................................................................ 38
Figura 9-8 Finestra Set Axis ..................................................................................................... 38
Figura 9-9 Finestra Connexion ................................................................................................ 39
Figura 9-10 Configuration Lock-in .......................................................................................... 39
Figura 9-11 Finestra Debug Mode ........................................................................................... 39
Índex D’apèndixs
Apèndix 1 Pla d‟accions del Projecte EQE .............................................................................. 56
Apèndix 2 Diagrama de Gantt ................................................................................................. 59
Apèndix 3.1 Taula de funcions de l‟Objecte WinMain............................................................. 60
Apèndix 3. 2 Taula de funcions de l‟Objecte TMainForm........................................................ 61
Apèndix 3.3 Taula de funcions de l‟objecte ScanThread .......................................................... 66
Apèndix 3.4 Taula de funcions de l‟Objecte TAttentionF ........................................................ 67
Apèndix 3.5 Taula de funcions de l‟Objecte TConnexionF ...................................................... 67
Apèndix 3.6 Taula1 de funcions de l‟Objecte TConfigurationF ............................................... 68
Apèndix 3.7 Taula de funcions de l‟Objecte TDataWindowF .................................................. 70
Apèndix 3.8 Taula de funcions de l‟Objecte TDebuggingF ...................................................... 71
Apèndix 3.9 Taula de funcions de l‟Objecte TErrorF ............................................................... 72
Apèndix 3.10 Taula de funcions de l‟Objecte DebuggingThread ............................................. 72
Apèndix 3. 11 Taula de funcions de l‟Objecte TLockinConfigScanF ....................................... 73
Apèndix 3.12 Taula de funcions de l‟Objecte TSaveF ............................................................. 73
Apèndix 3.13 Taula de funcions de l‟objecte TShowTextFileF ................................................ 73
Apèndix 3.14 Taula de funcions de l‟objecte TSetAxisF .......................................................... 74
Apèndix 4. 1 Fluxograma de funcions de l‟Objete WinMain ................................................... 77
Apèndix 4. 2 Fluxograma de funcions de l‟Objete TMainForm ............................................... 78
Apèndix 4. 3 Fluxograma de funcions de l‟Objete ScanThread ................................................ 79
Apèndix 4. 4 Fluxograma de funcions de l‟Objete TAttentionF ............................................... 80
Apèndix 4. 5 Fluxograma de funcions de l‟Objete TConfigurationF ........................................ 81
Apèndix 4. 6 Fluxograma de funcions de l‟Objete TConfigurationF ........................................ 82
Apèndix 4. 7 Fluxograma de funcions de l‟Objete TDataWindowF ......................................... 83
Apèndix 4. 8 Fluxograma de funcions de l‟Objete TShowTextF .............................................. 83
Apèndix 4. 9 Fluxograma de funcions de l‟Objete TDebugginF ............................................... 84
Apèndix 4. 10 Fluxograma de funcions de l‟Objete DebuggingThread .................................... 85
Apèndix 4. 11 Fluxograma de funcions de l‟TLockinConfigF.................................................. 86
Apèndix 4. 12 Fluxograma de funcions de l‟TSaveF ............................................................... 86
Apèndix 4. 13 Fluxograma de funcions de l‟TSetAxisF ........................................................... 87
Apèndix 4. 14 Fluxograma de funcions de l‟Objete TErrorF .................................................... 88
Apèndix 5. 1 Format de l‟arxiu *.dat de la mesura ................................................................... 89
Apèndix 5. 2 Format de l‟arxiu *.txt de la mesura ................................................................... 89
5 .
1. Introducció
1.1 Antecedents
Les cèl·lules solars tenen el potencial per contribuir significativament a suplir les
demandes energètiques dels pròxims anys. El creixement sostingut del mercat mundial
de panells fotovoltaics i la necessitat de noves fonts d‟energia renovable, han impulsat
la investigació de diverses tecnologies i materials.
El grups d‟investigació que treballen en el desenvolupament de dispositius d‟estat sòlid
tals com cèl·lules solars, dispositius fotovoltaics entre altres, han d‟avaluar els
dispositius que ells fabriquen per determinar la eficiència al procés de conversió
fotovoltaic. La avaluació es realitza en base a les propietats fotoelèctriques de les
mostres en estudi. Aquestes propietats es poden obtenir experimentalment aplicant
diverses tècniques. Les tècniques impliquen controlar, mesurar i calcular una
determinada resposta de la mesura en funció de la longitud d‟ona λ incident.
1.2 Objectius
L‟objectiu que es va plantejar al inici del projecte va ser realitzar un software de control
que englobes tot el instrumental rellevant per a un experiment de mesura d‟eficiència
quàntica externa, amb la finalitat de millorar i facilitar l‟obtenció de la mesura.
Anteriorment no es disposava d‟un control automatitzat per governar els diferents
dispositius que intervenien en l‟experiment.
1.3 Justificació
Davant l‟augment constant de les necessitats energètiques del planeta, es planteja la
necessitat de trobar energies netes i econòmiques. La energia solar es una font inherent
a l‟existència humana i de la que es pot absorbir part de la energia que emana. D‟aquí
sorgeix el plantejament de l‟experiment i base del nostre projecte. Aconseguir captar la
màxima energia possible i transformar-la en energia útil per l‟ús quotidià.
1.4 Finalitat
El grup d‟investigació NePhoS amb la realització d‟aquest i altres experiment busca
contribuir en base a la ciència a millorar i evolucionar en l‟estudi en diferents camps de
la tecnologia.
6 .
2. Experiment
2.1 L’Eficiència Quàntica Externa (E.Q.E.)
Tal com s‟ha detallat anteriorment el que busquem és obtenir la màxima captació
d‟energia de les cèl·lules solars. Per mesurar com d‟eficient és una mostra, existeix el
paràmetre de l‟Eficiència Quàntica Externa.
L‟eficiència quàntica externa (E.Q.E.) és la quantitat definida per un dispositiu
fotosensible com el percentatge de fotons que incideixen a la superfície foto reactiva
que produeix un parell electró-forat que contribueix efectivament al corrent generat pel
dispositiu. És una mesura precisa de la sensibilitat del dispositiu.
La eficiència quàntica d‟una cèl·lula solar es una mesura important ja que dona
informació del corrent que produeix la cèl·lula quan és il·luminada per una determinada
longitud d‟ona. Si fem la suma de l‟energia que es produeix per tot l‟espectre solar
obtindrem la quantitat de corrent que produeix la cèl·lula en ser exposada a la llum
solar.
Les cèl·lules solars més corrents són unions PN de grans àrees, on existeix un fort camp
elèctric intern a través de la unió. La radiació incident a la unió produeix parells lliures
electró-forat a les dues bandes de la unió degut a la absorció de fotons. Si la unió es
manté en circuit obert, la acumulació d‟electrons i forats a les dues bandes de la unió
produeix un voltatge en circuit obert. Si la unió es troba en circuit tancat fluirà un
corrent fotogenerat. Aquest corrent és el que nosaltres mesurarem.
2.2 Definició de l’experiment
A la figura 2.1 es mostra esquemàticament l‟experiment que s‟implementarà per
realitzar el càlcul de l‟eficiència quàntica externa de la nostra mostra.
En primer lloc necessitarem una font de llum blanca amb característiques similars a la
llum solar. La font serà una làmpada de Xènon de la marca Hamamatsu (1). La llum
emesa per aquesta font es farà passar per un Chopper (2) que modularà la intensitat del
feix amb el temps a una freqüència que serà la referència que introduirem al Lock-in
(8). La llum entrarà al monocromador (3) qui, controlat pel port sèrie de l‟ordinador (9)
ens proporcionarà a la seva sortida la longitud d‟ona que desitgem. Aquesta llum es
farà incidir al Beam Splitter (4) deixant passar el 50% del raig cap a la mostra (6) i
l‟altra 50% serà reflectida cap a la referència (5). Tan la referència com la mostra ens
proporcionaran un corrent que haurem de passar a tensió i amplificar (7). La tensió
provinent de la mostra la introduirem al Canal A del Lock-in i la de la referència al
Canal B. Amb la mesura captada pel Lock-in podrem calcular la Eficiència Quàntica
Externa mitjançant el software que implementa aquest projecte.
7 .
Aquest càlcul el podrem realitzar automàticament per un rang de longituds d‟ona que
determinem. El programa de gestió s‟encarregarà de processar i guardar les dades
rebudes.
Figura 2-1 Diagrama Experiment
2.3 Càlculs teòrics per realitzar l’experiment
Partim de l‟equació de l‟E.Q.E:
)(
)(..
sphotons
selectrons
EQE
8 .
Per cada longitud d‟ona el fabricant de la referència ens proporciona l‟REFEQE .. i per
tant els càlculs segueixen:
s
photonsEQEqq
selectronsI REFeeREF )(..
s
photonsEQEqI MOSTRAeMOSTRA )(..
REF
MOSTRA
REF
MOSTRA
REF
MOSTRA
V
V
I
I
EQE
EQE
)(..
)(..
MOSTRAV = mesurada pel Lock-in
REFV =mesurada p
)(..)(.. REF
REF
MOSTRAMOSTRA EQE
V
VEQE
MOSTRAV i REFV els mesurem amb el Lock-in. )(.. REFEQE ens la proporciona el
fabricant. Per tant podem calcular )(.. MOSTRAEQE .
2.4 Descripció de les parts que formen l’experiment
En aquest apartat explicarem breument el funcionament i/o característiques de cada part
de l‟experiment.
2.4.1 Làmpada de Hamamatsu.
Font de llum blanca amb un espectre ampli des de l‟Ultraviolat fins l‟Infraroig. Es tracta
d‟una làmpada d‟arc en una barreja de Xe-Hg a baixa pressió.
2.4.2 Chopper
L‟ús del Chopper i del Lock-in són molt importants en aquest tipus d‟experiment on els
senyals que es volen mesurar són petits en comparació amb el soroll que puguem tenir.
D‟aquesta manera el Chopper sincronitza, la lectura del Lock-in amb el pas de llum que
prové de la font lluminosa. Amb aquest procediment de mesura eliminem el soroll i
s‟obtenen mesures molt precises.
2.4.3 Monocromador.
És un aparell que permet, per mitjà d‟una combinació de miralls i una xarxa de
difracció, seleccionar i transmetre una determinada longitud d‟ona (λ) a partir d‟una
font emissora que produeixi un rang de longituds d‟ona. Figura 2.2
9 .
El monocromador que disposem al laboratori de recerca funciona amb el fenomen de
difreacció utilitzant una reixa de difracció (Grating). Posseeix d‟un mecanisme que
permet dirigir la longitud d‟ona seleccionada cap a una ranura de sortida
Figura 2-2 Mecanisme intern d'un monocromador
El feix de llum (A) entra per l‟obertura del monocromador (B) i és reflectit per un mirall
amb curvatura (C). El feix es dispersat mitjançant la xarxa de difracció (Grating) en les
diferents longituds d‟ona. A més a més la xarxa de difracció està subjectada per un
motor pas a pas que pot moure la seva orientació (D). Les diferents Longituds d‟ona són
reflectides pel mirall (E). En funció de l‟angle del Grating només aconseguirà passar
per l‟obertura (F) la longitud d‟ona seleccionada (G).
2.4.4 Beam Splitter
És un instrument òptic que divideix un feix de llum en dos. El disseny del Beam Splitter
que tenim al laboratori consisteix en l‟ús de miralls semitransparents. Per un raig que
incideixi amb un angle de 45 º, la meitat de la intensitat és es transmesa mentre que
l‟altra meitat és reflectida.
2.4.5 Referència
La referència es un dispositiu fotosensible del que coneixem la seva E.Q.E. per cada
longitud que mesurem. Ha de venir calibrada pel fabricant amb la taula d‟equivalències
de longitud d‟ona i E.Q.E.
2.4.6 Mostra (Cèl·lula Solar)
És la cèl·lula solar fabricada de la que volem conèixer la seva E.Q.E. En base a la
realització repetidament de l‟experiment en funció de diferent cèl·lules solar fabricades,
podrem aconseguir millorar les característiques de fabricació.
10 .
2.4.7 Conversor I-V
La resposta obtinguda per part de la referència i la mostra és un corrent. A nosaltres ens
interessa tenir tensió, per tant necessitarem convertir la mesura. Aprofitant això també la
amplificarem.
2.4.8 Lock-in
El principi de funcionament de l‟amplificador Lock-in és el de tractar la senyal de
manera que sigui fàcilment diferenciada del soroll. Això significa que la component del
soroll pugui ser filtrada tot i que sigui vàries vegades més intensa que la pròpia senyal a
mesurar. Per definició, el soroll consisteix en oscil·lacions aleatòries irregulars en un
ampli rang de freqüències que canvien constantment. Si el senyal d‟interès està acoblat
a una portadora (funció del Chopper) de freqüència i fase definides, es possible separar
el senyal de la component del soroll. Això requereix d‟una freqüència de referència per
la senyal portadora.
2.4.9 Connexió pel port sèrie
El monocromador i el Lock-in permeten ser controlats per mitjà d‟una sèrie de
instruccions enviades a través del port sèrie de l‟ordinador. Per tant l‟aplicació que s‟ha
desenvolupat farà ús d‟aquest port per enviar les ordres segons les especificacions de
cada aparell.
2.4.10 Ordinador amb aplicació de control
La finalitat d‟aquest projecte ha estat el desenvolupament d‟una aplicació que permeti
calcular la E.Q.E. per un rang de longituds d‟ona. Aquesta aplicació s‟ha desenvolupat
amb l‟entorn de desenvolupament Borland C++ i sota el sistema operatiu de Windows.
11 .
3. Especificacions de l’aplicació a desenvolupar.
Per part del grup de recerca NePhoS del departament d‟Enginyeria Electrònica,
Elèctrica i Automàtica es proposa la realització d‟aquest software de control i adquisició
de dades.
En aquest apartat s‟explica l‟experiment que es vol desenvolupar i les especificacions
que el software ha de tenir ja sigui en la distribució de finestres, ergonomia etc.
3.1 Funcions del programa
3.1.1 Configuració de l’escaneig
A l‟obrir l‟aplicació, aquesta haurà de ser capaç de carregar la última
configuració i fitxer de referència que s‟hagués fet servir en la última
mesura.
Al tancar l‟aplicació haurà de guardar la configuració i referència que en
aquell moment existís.
L‟usuari podrà guardar la configuració de la mesura amb el nom d‟arxiu que
desitgi i extensió *.ini
Es podrà carregar una configuració que s‟hagi guardat amb anterioritat.
S‟hauran de poder configurar manualment els següents paràmetres de
l‟escaneig:
Espectròmetre
- Longitud d‟ona inicial
- Longitud d‟ona final
- Interval entre les Longituds d‟ona
Lock-in
- Constant de temps
- Sensibilitat
Referència
- S‟haurà de poder carregar l‟arxiu de dades associat a la referència. On
detallarà quina E.Q.E. es té per cada longitud d‟ona.
3.1.2 Connexió
La connexió amb el Lock-in i monocromador haurà de ser automàticament en
arrencar la aplicació. Això vol dir que el programa haurà de fer una recerca
dels ports on estan connectats els instruments.
12 .
Si falla la connexió amb el Lock-in o monocromador haurà d‟existir algun
botó que ens permeti connectar manualment l‟aparell en qüestió.
3.1.3 Escaneig
S‟ha de poder iniciar l‟escaneig només quan els paràmetres de configuració
del mateix siguin correctes i els dos aparells estiguin connectats.
Es podrà aturar l‟escaneig en qualsevol moment. Al parar l‟escaneig es
deixarà que agafi la última mesura en curs.
3.1.4 Tractament de les dades
Les dades de l‟escaneig es podran guardar en un fitxer amb el nom que
defineixi l‟usuari o amb el nom per defecte “dia-mes-hora-any”. A més a
més es permetrà a l‟usuari afegir un comentari que s‟inclourà en les dades
emmagatzemades.
Al guardar les dades s‟hauran de crear dos arxius.
- Un arxiu *.dat que contingui per cada longitud d‟ona el valor del canal A
i B extret del Lock-in i l‟Eficiència Quàntica associada.
- Un arxiu *.txt amb la següent informació:
Nom del fitxer
Data i hora en que es va guardar
Paràmetres de l‟espectròmetre
Paràmetres del Lock-in
Carregar una mesura guardada amb anterioritat i mostrar-la a la part gràfica.
Una vegada carregada podrem:
Esborrar la mesura
Amagar-la de la part gràfica però deixar-la carregada
Tornar a mostrar una mesura amagada
Carregar per pantalla el fitxer *.txt associat a la mesura
Canviar el color de la gràfica de la mesura carregada.
3.1.5 Mode Debug
Com a petició de cara al futur es demana que existeixi una espècie
d‟hyperterminal on puguem enviar manualment instruccions als aparells.
13 .
3.2 Part Gràfica
La pantalla principal s‟haurà d‟estructurar en 3 parts:
Menú principal
Càrrega de mesures.
Gràfiques
3.2.1 Menú principal
El menú principal s‟haurà d‟estructurar de tal manera que puguem accedir a qualsevol
de les següents opcions:
Carregar mesura guardada
Guardar mesura realitzada
Carregar configuració
Guardar la configuració existent
Definir la configuració de paràmetres de la mesura
Connexió/Desconnexió del Lock-in i Monocromador
Definir els Eixos de les gràfiques
Posar els eixos de les gràfiques en automàtic
3.2.2 Càrrega de mesures
Existiran les següents opcions
Carregar mesura
Esborrar totes les mesures
Llistat de les mesures carregades
Opció de visualització de les dades de la mesura en temps real (numèricament)
3.2.3 Gràfiques
Amb els components:
Gràfica de dades del Canal A del Lock-in en funció de la longitud d‟ona (λ)
Gràfica de dades del Canal B del Lock-in en funció de la longitud d‟ona (λ)
Gràfica de l‟Eficiència Quàntica Externa en funció de la longitud d‟ona (λ)
Terminal que vagi donant informació de l‟estat de la connexió i de la mesura en
curs.
Una barra d‟estat que ens informi de l‟estat de la connexió del Lock-in i
Monocromador, un component visual amb el percentatge d‟escaneig realitzat
sobre el total i uns indicadors que ens diguin en quines coordenades de la gràfica
ens trobem al passar amb el ratolí per sobre.
14 .
3.3 Ergonomia
L‟ergonomia ha estat un dels objectius més importants pel client. S‟intenta que
l‟aplicació sigui el més amigable i intuïtiva possible. Amb una interfície gràfica
còmode d‟usar i intentant automatitzar al màxim la realització d‟una mesura.
D‟aquesta manera la comunicació i configuració dels paràmetres per defecte amb els
diferents aparells es farà automàticament.
La finestra principal serà el més minimalista possible per centrar l‟atenció en les
mesures que s‟estan realitzant.
Per millorar la visualització al ampliar la finestra principal, les gràfiques s‟expandiran
per ocupar el màxim d‟espai possible. Es podran definir els eixos de les gràfiques
individualment, fer zooms o posar-les en automàtic.
Les mesures s‟hauran de poder carregar, eliminar, amagar i canviar de color. Així com
mostrar l‟arxiu de text associat a la mesura.
Es crearà una finestra on es mostrarà la dada actual que anem rebent del Canal A i
Canal B del Lock-in així com l‟E.Q.E. Aquesta finestra es podrà ampliar i com a
conseqüència la mida de les dades mostrades s‟expandirà proporcionalment. D‟aquesta
manera es podrà veure des de una certa distància si l‟escaneig s‟ha acabat.
Quan es desi una mesura es crearan dos arxius diferents : un arxiu de dades i un arxiu de
text on es mostraran diferents paràmetres relacionats amb la mesura. El format d‟arxius
serà compatible amb altres programes informàtics com poden ser Matlab o Microsoft
Excel, d‟aquesta forma es facilita a l‟usuari la possibilitat d‟exportar els arxius de dades.
Es crearan dreceres per obrir les diferents opcions del programa (Figura 3).
Ctrl+Alt+L
Ctrl+Alt+S
Ctrl+L
Ctrl+S
Ctrl+E
F2 Obri finestra del mode debug
Accesos directes
Ctrl+M
Ctrl+A
Ctrl+X
F1
Posar els eixos de les gràfiques en
automàtic
Obrir la finestra de configuració dels eixos
de les gràfiques
Obrir finestra de connexió manual dels
instruments
Obrir la finestra deconfiguració dels
paràmetres de la mesura
Enmagatzemar Configuració
Carregar Configuració
Enmagatzemar Mesura
Carregar Mesura
Sortir de l'aplicació
Figura 3-1 Taula d’accessos directes de l’aplicació.
15 .
4. Especificacions del Lock-in i Monocromador
4.1 Lock-in Amplifier. Model 7265 (Figura 4.1)
Tal com hem definit amb anterioritat aquest instrument ens permet obtenir la mesura de
la mostra i referència aïllant el soroll. Això ho aconseguirem introduint freqüència de
modulació de la llum, que s‟utilitza com a referència de freqüència de l‟instrument. ( no
confondre amb la referència patró calibrada per cada λ) que la obtindrem del Chopper.
Podem comunicar-nos amb el instrument per obtindre dades o configurar-lo a través del
port sèrie. També existeix la possibilitat de connectar-nos per GPIB.
Figura 4-1 Lock-in Amplifier. Model 7265
4.1.1 Paràmetres de configuració del Port Sèrie
Els paràmetres de configuració del port sèrie del Lock-in són modificables. En canvi pel
monocromador són fixes. D‟aquesta manera el que farem és configurar el port sèrie del
Lock-in amb el mateixos paràmetres del monocromador.
Velocitat de transferència: 9600 bps
Paritat: Sense paritat
Bits de dades: 8
Bits d‟ Stop: 1
4.1.2 Estructura de la cadena de caràcters a enviar i rebre.
Per enviar qualsevol instrucció al Lock-in ho haurem de fer seguint un patró definit pel
mateix.
Enviarem caràcter a caràcter la instrucció. Cada caràcter que rebi el Lock-in el tornarà
com a resposta fent un echo (podrem comprovar que està rebent la informació
correctament). Quan hàgim enviat tota la instrucció caldrà enviar el caràcter “\r” que
indicarà al Lock-in que s‟ha enviat tota la cadena de caràcters de la instrucció. Si la
instrucció la ha processat bé ens respondrà o bé amb les dades sol·licitades seguit de
“\r\n*” o només amb la cadena “\r\n*” sinó ha de donar cap informació.
16 .
4.1.3 Instruccions necessàries per comunicar-nos amb el Lock-in
El manual d‟usuari defineix com s‟han d‟enviar les diferent instruccions pel port sèrie al Lock-
in. Hi ha un gran número de instruccions, nosaltres ens centrarem en les que necessitem per
l‟experiment.
Intrucció Port Sèrie n
0
2
0
1
0
1
2
34
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
50ks
100ks
El valor d'n selecciona la constant de
tempsTC[n]
500s
1ks
2ks
5ks
10ks
20ks
5s
10s
20s
50s
100s
200s
50ms
100ms
200ms
500ms
1s
2s
160μs
320μs
640μs
5ms
10ms
20ms
10μs
20μs
40μs
80μs
EXT LOGIC. Externa amb connexió posterior del
tipus TTL1
CP[n]El valor d'n selecciona el tipus
d'acoblament de l'entrada
AC
DC
El gunay en AC es controla manualment, fent servir
el panell frontal o bé la intrucció ACGAIN.
IE[n]El valor d'n Selecciona el tipus de
Referència que es fa servir
Externa amb connexió davantera de tipus analógica
Interna
Definició Tipus
AUTOMATIC[n]El valor d'n selecciona l'estat del
control de guany en AC
0
1
El control de guany en AC en automatic s'activa, el
guany s'ajusta d'acord a la configuració del
paràmetre full-scale sensitivity
FET, Impedància d'entrada de 10 MΩ, 5 nV/√Hz,
Soroll de 5 nV/√Hz a 1 kHz
El valor d'n selecciona el tipus de
conbtrol d'entrada de l'instrumentFET[n]
0
1
Instrument bipolar, Impedància d'entrada de 10 kΩ
, Soroll de 2 nV/√Hz at 1 kHz
17 .
Paràmetre n
0
1
2
0
1
2
3
IMODE=0 IMODE=1
1 2nV 2fA
2 5nV 5fA
3 10nV 10fA
4 20nV 20fA
5 50nV 50fA
6 100nV 100fA
7 200nV 200fA
8 500nV 500fA
9 1μV 1pA
10 2μV 2pA
11 5μV 5pA
12 10μV 10pA
13 20μV 20pA
14 50μV 50pA
15 100μV 100pA
16 200μV 200pA
17 500μV 500pA
18 1mV 1nA
19 2mV 2nA
20 5mV 5nA
21 10mV 10nA
22 20mV 20nA
23 50mV 50nA
24 100mV 100nA
25 200mV 200nA
26 500mV 500nA
27 1V 1μA
REFMODE[n]El valor d'n selecciona el tipus de
referènciaDual Referencemode
Single Reference/Virtual Reference mode
Dual Harmonic mode
VMODE[n]El valor d'n selecciona el tipus
d'entrada del instrument
Les dues entrades a terra. Test mode
Entrada A
Entrada -B
A-B mode diferencial
X[.]Selecciona el tipus de sortida del
instrumentX.
El Lock-in respond amb la mesura demodulada del
canal seleccionat en volts.
SEN[n] El valor d'n selecciona la sensibilitat
100pA
20fA
50fA
100fA
200fA
5fA
10fA
IMODE=2
n/a
200pA
500pA
1nA
2nA
50pA
20pA
n/a
n/a
n/a
n/a
n/a
2fA
5nA
10nA
Definició Tipus
500fA
1pA
2pA
5pA
10pA
Figura 4-2 Taula d’instruccions del port sèrie del Lock-in
4.2 Monocromador. Model SpectraPro150 (Figura 4.3)
Aparell que, per mitjà d‟un dispositiu òptic, permet seleccionar i transmetre una
determinada longitud d‟ona (λ).
Podrem comunicar-nos amb el instrument per obtindre dades o configurar-lo a través
del port sèrie. També existeix la possibilitat de connectar-nos per GPIB.
18 .
Figura 4-3 Monocromador SpectrPro150
4.2.1 Paràmetres de configuració del Port Sèrie
Per comunicar-nos pel port sèrie aquest haurà d‟estar configurat tal com segueix:
Velocitat de transferència: 9600 bps
Paritat: Sense paritat
Bits de dades: 8
Bits d‟ Stop: 1
4.2.2 Estructura de la cadena de caràcters a enviar i rebre.
Així com amb el Lock-in hem d‟enviar caràcter a caràcter la instrucció, amb el
monocromador enviarem la cadena sencera de la instrucció seguida de “\r”. Per exemple
“100.0 GOTO\r”. Amb l‟últim caràcter el monocromador entén que hem enviat una
instrucció i respon amb l‟echo de la instrucció enviada seguit de “__ok\r\n”. On “_” és
un espai.
Un aspecte molt important a tenir en compte és la definició del buffer de dades a enviar.
Al monocromador s‟ha de definir un buffer d‟igual mida a la instrucció a enviar. En cas
contrari pot produir que l‟aparell es quedi bloquejat.
4.2.3 Intruccions necessàries per comunicar-nos amb el monocromador.
La única instrucció que fem servir per comunicar-nos amb el monocromador és per seleccionar
la longitud d‟ona que indiquem.
Paràmetre TipusDefinició
λ GOTOES mou a la longitud d'ona indicada
a màxima i presicció de 0,01nm
On λ vindrà dinida pel número de la longitud d'ona
amb un decimal de precissió. Així una una
intrstucció quedaria com 500.0 GOTO.
Figura 4-4 Taula d’instruccions del port sèrie del Monocromador
19 .
5. Seguiment del projecte
Per fer un seguiment del projecte s‟han emprat dues eines:
Pla d‟accions (Apèndix 1)
Diagrama de Gantt (Apèndix 2)
5.1 Pla d’accions
El pla d‟accions serà l‟eina que ens permetrà fer un seguiment dels diferents problemes
que vagin sorgint al projecte i les accions a prendre fins solucionar-los.
Contindrà els següents camps:
Ítem: Aquest número serà únic per cada problema trobat.
Prioritat: Prioritat que se li dona en funció de la importància del problema
Problema: On trobem el problema.
Descripció: Detall clar de quin problema tenim amb una bona descripció del
mateix
Persona Responsable: Persona responsable que es duguin a terme les
modificacions en el temps establert
Data del Problema: Data en on es defineix el problema i l'acció a prendre i
aquesta s'introdueix al pla d'accions.
Data de Tancament: Data on es compromet a tancar el problema trobat. La data
pot canviar. Si la data canvia, s'ha de modificar l'historial de l'acció amb el color
corresponent a l'acció passada i omplir la nova acció. S'haurà d'explicar a la
columna de comentaris perquè s'ha modificat la data
Data actual de Tancament: La data en que es tanca el problema. El client o
l'empresa contractada pel projecte han de validar que l'acció s'ha efectuat i el
problema està resolt.
Última Actualització:Última Data on s'ha revisat el pla d'accions.
Historial: Les cel·les s'omplen conforme els estat va canviant.
COLOR:BLAU: L'acció s'està portant a terme.
GROC: L'acció té problemes i afecta a la data de finalització.
VERMELL: No hi ha data per finalització del problema. S'està estudiant com
solucionar-lo
VERD: L'acció s'ha efectuat amb èxit i el problema està tancat.
Comentari/Notes/Tancament de l’acció: En aquesta columna omplirem les
accions a prendre i l'estat de les mateixes
20 .
5.2 Diagrama de Gantt
Mitjançant el programa de gestió de projectes s‟ha realitzat un seguiment del mateix
durant el període que ha durat. Apèndix 2
S‟ha especificat:
Persones que han intervingut al projecte. Am les possibilitats de Eduard Estrada
(Alumne que realitza el projecte) i Josep Ferré Borrull (Tutor que ha fet el
seguiment del projecte).
Preu/hora de cada participant. 30 euros/hora (Enginyer Eduard Estrada)
S‟ha establert el calendari. Amb períodes de vacances d‟Estiu, Nadal i Setmana
Santa. Per defecte a Josep Borrull se li ha atribuït una participació de 30 minuts
diaris de dilluns a divendres. A Eduard Estrada en funció dels períodes 3,2 o 1
hora de dilluns a diumenge.
Per definir les diferents hores de dedicació d‟Eduard Estrada s‟han creat tres
usuaris. Eduard Estrada (3 hores), Eduard Estrada 66% (2 hores) i Eduard
Estrada 33% (1 hora).
Els períodes es defineixen en funció de la feina a realitzar. A vegades hi ha
solapament de períodes ja que es realitzen feines en paral·lel.
Amb totes aquestes dades podem extreure molta informació del projecte.
Costos del projecte per trimestre Figura 5.1.
Calendari d‟hores de feina realitzades diàriament. Figura 5.2
Detall de la feina que s‟ha realitzat en un període concret
Hores invertides en cada feina i el seu cost etc.
Figura 5. 1 Costos trimestrals del projecte
21 .
Figura 5.2 Taula amb calendari i hores en realitzar el projecte per persona
22 .
6. Funcions que intervenen en el programa
Com a documentació annexa al projecte s‟han realitzat unes taules que defineixen
clarament els següents aspectes:
Objecte de la classe que estem definint
Funció: Nom de la funció que definim
Cridada per: Per qui es cridada la funció.
Comentari: Definició del que fa la funció
Funcions que intervenen al programa:
- EQE. Apèndix 3.1
- MainFrame . Apèndix 3.2
- SpectraScan. Apèndix 3.3
- AttentionForm Apèndix 3.4
- ConnexionForm Apèndix 3.5
- ConfigurationF Apèndix 3.6
- DataWindowForm Apèndix 3.7
- DebuggingForm Apèndix 3.8
- ErrorForm Apèndix 3.9
- Debugging Apèndix 3.10
- LockinConfigScanForm Apèndix 3.11
- SaveForm Apèndix 3.12
- ShowTextFile Apèndix 3.13
- SetAxisForm Apèndix 3.14
7. Fluxograma de les funcions per cada objecte creat
S‟han definit una sèrie de diagrames de blocs amb les connexions de les diferents funcions entre
elles. El programa que s‟ha fet servir és el Microsoft Visió. A les figures corresponents de la
memòria no es veuen els comentaris de cada bloc. Per poder-los veure s‟haurà d‟obrir el fitxer
amb el programa visió o bé executar el Link següent amb l‟internet explorer ja que necessita un
control Activex.`
Fluxograma de Funcions per classe.htm
Fluxogrames que intervenen al programa:
- WinMain Apèndix 4.1 - TShowTextF Apèndix 4.8
- TMainForm . Apèndix 4.2 - TDebuggingF Apèndix 4.9
- ScanThread. Apèndix 4.3 - TErrorF Apèndix 4.10
- TAttentionF Apèndix 4.4 - TLockinConfigF Apèndix 4.11
- TConfigurationF Apèndix 4.5 - TSaveF Apèndix 4.12
- TConnexionF Apèndix 4.6 - ShowTextFile Apèndix 4.13
- TDataWindowF Apèndix 4.7 - TSetAxisF Apèndix 4.14
23 .
8. Fluxograma de la mesura
Per tal de tenir una idea més clara de la seqüència del programa alhora de fer un escaneig,
presentem el següent diagrama de flux. Figura7:
Figura 8 Fluxograma del programa
2
22
3
22 4
22 5
22 6
22 7
22 8
22 9
22 10
22 11
22 12
22 13
22
14
22 15
22
16
22
1
22
17
22
24 .
1- Inici de l‟Aplicació.
2- Recerca del Lock-in i monocromador.
3- Càrrega de paràmetres de configuració i referència.
4- Tant si falla la càrrega de la configuració com la connexió, no es podrà fer cap escaneig
però si càrrega de mesures guardades. Per poder escanejar s‟haurà de realitzar
manualment la configuració o connexió dels instruments.
5- Si tant la connexió com la configuració són correctes , l‟aplicació podrà realitzar una
mesura o carregar-ne una de prèviament guardada.
6- Inici de L‟Scan
7- S‟envien al Lock-in els paràmetres configurats i els que tenim configurats per defecte.
8- Si la configuració del Lock-in falla es que hi ha un problema de connexió. S‟haurà de
reconnectar el instrument manualment.
9- Es realitza un bucle igual al número de mesures a realitzar.
10- Mentre no hàgim fet totes les mesures el bucle continua i segueix agafant dades. En cas
contrari l‟aplicació s‟atura i resta a la espera de noves ordres de l‟usuari.
11- Per cada longitud d‟ona s‟envia l‟ordre al monocromador perquè es mogui. En cas
d‟error de comunicacions procedirem com en el supòsit (8).
12- Entre mesura i mesura ens haurem d‟esperar el temps definit a “Filter time constant
control”.
13- Llegim la dada del canal A del Lock-in. En cas d‟error seguir com en el punt (8).
14- Entre mesura i mesura ens haurem d‟esperar el temps definit a “Filter time constant
control”.
15- Llegim la dada del canal B del Lock-in. En cas d‟error seguir com en el punt (8).
16- Fer càlcul de l‟Eficiència Quàntica Externa.
17- Mostrar dades per pantalla i seguir amb la següent longitud d‟ona sinó s‟ha acabat
l‟escaneig
25 .
9. Aplicació
L‟entorn integrat de desenvolupament (IDE) escollit ha estat el C++ Builder 6 propietat
de l‟empresa Borland. Aquest entorn ofereix al programador la possibilitat
d‟implementar interfícies gràfiques de forma senzilla gràcies a la llibreria interna VCL
(Visual Component Library). Aquesta llibreria permet usar al programador un conjunt
d‟eines predefinides (botons, menús, etiquetes, quadres de text, etc) que poden ser
afegides directament sobre la finestra que s‟està programant de forma que el
desenvolupament visual és més dinàmic. La pantalla principal està organitzada en
diferents blocs que faciliten al programador la implementació del programa.
La pantalla principal del C++ Builder 6 consta de quatre parts diferenciades :
Menú d‟opcions i barra d‟eines.
Object TreeView: Ens permet navegar per les diferents finestres que s‟han
implementat i dins d‟elles observar els objectes associats a aquestes.
Object Inspector: Permet configurar els paràmetres associats al objecte
seleccionat, fet interessant a l‟hora de fer alguna modificació, ja que no és
necessari fer-ho per mitjà de codi.
Codi i interfície gràfica: Es mostra el codi del programa. Prement F12 canvia la
pantalla a mode interfície gràfica, de forma que es pot observar la part gràfica de
la finestra que s‟està programant
Disposa també d‟un manual d‟ajuda intern en el qual es pot cercar informació sobre
funcions, cosa que facilita molt la tasca quan sorgeixen dubtes.
9.1 Accés als ports
Les aplicacions de Windows es comuniquen amb els dispositius a través de les funcions
de l‟API. Aquestes funcions accedeixen als ports mitjançant el controlador, que és una
capa de software entre el hardware i el sistema operatiu.
Hi ha dues solucions per tenir accés als ports:
- Utilitzant l‟API. Aquesta tècnica és la més aconsellable si desitgem que els
programes siguin estables i portables.
- Accés mitjançant controlador. Requereix d‟un controlador del dispositiu. S‟ha de
crear un controlador en format DLL. En principi el fabricant del monocromador
tenia llibreries però no pel llenguatge C++
La opció escollida per tant ha estat la d‟utilitzar les funcions de l‟API de Windows. L‟accés al
port sèrie és similar a treballar amb fitxers.
Per treballa amb el port amb les funcions de l‟API, es distingeixen quatre fases:
1. Operació d’obertura: S‟obté un Handle comprovant si el sistema operatiu pot accedir
al port.
2. Configuració: S‟estableixen els paràmetres de comunicació.
26 .
3. Accés al port: Accedim al port per llegir o escriure.
4. Tancar el port: Es tanca el port perquè altres aplicacions puguin accedir al port
9.1.1 Obrir el port sèrie
Per obrir el port sèrie s‟utilitza la funció CreateFile(). Aquesta funció és genèrica i
permet accedir a diferents recursos: Ports de comunicacions, fitxers, discos...
HANDLE CreateFile (LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTE lpSecurityAttribute
DWORD dwcreationDistribution,
DWORD dwFlagsAndAttributes,
HANDLE htemplateFile );
- Arguments d’Entrada
LpFileName: Indiquem el nom del port a obir
DwShareMode: Mode per compartir el port. En el nostre cas serà „0‟ ja
que el port sèrie serà compartit per dues aplicacions simultàniament.
LpSecurityAttribute: Descriptor de seguretat es recomana que sigui „0‟.
DwcreationDistribution: S‟especifica quina acció es realitzarà si el
fitxer existeix o no. Per nosaltres el port sempre haurà d‟existir per tant
ficarem OPEN_EXISTING.
DwFlagsAndAttributes: Especifica el tipus d‟atribut del fitxer. Pel port
ha de ser FILE_ATRIBUTE_NORMAL.
HtemplateFile: Handle del fitxer amb atributs per copiar. Nosaltres el
ficarem a NULL
- Argument de Sortida
La funció CreateFile() torna un Handle del port. Aquest punter és necessari
per accedir al port.
9.1.2 Tancar el Port
En acabar de treballar amb el port, s‟ha de tancar. Tancarem el Handle i d‟aquesta
manera el sistema operatiu allibera els recursos que estem fent servir.
27 .
La funció que s‟utilitza és CloseHandle. S‟ha de tenir molt en compte que es pot fer
servir un Handle no vàlid, es a dir, un Handle que no s‟hagi inicialitzat correctament per
CreateFile().
BOOL CloseHandle (HANDLE hObject)
- Argument d’entrada
HObject: Handle obtingut per CreateFile().
- Argument de sortida
BOOL: Si és TRUE ens indica que la funció „ha executat correctamente.
9.1.3 Funció per configurar el Port
Per llegir i escriure la configuració del port es fan servir les funcions
GetCommState ( ) i SetCommState ( ), ambdues funcions utilitzen com argument una
estructura del tipus DCB. Als membres d‟aquesta estructura trobarem els camp a
configurar. Nosaltres configurarem els següents camps (la configuració ve donada pel
monocromador ja que la del Lock-in és variable):
- BaudRate = 9600 ; Indiquem el Baud Rate de 9600
- ByteSize =8 ; Determinem el número de bits de dades a „8‟
- Parity = NOPARITY ; No volem bit de paritat
- StopBits = 1 ; Un bit de STOP
9.1.4 Funció amb la que llegirem la configuració actual del port
Amb aquesta funció llegirem la configuració del Port prèvia a la nostra modificació.
BOOL GetCommState ( HANDLE hFile, LPDCB lpDCB )
- Arguments d’entrada.
Hfile: Handle del port que ens dona CreateFile().
LpDCB: Punter a l‟estructura del tipus DCB on es rebrà la configuració
actual del port.
- Arguments de sortida.
BOOL: True si la funció s‟executa correctament.
9.1.5 Funció per configurar el port
Aquesta funció ens permetrà configurar el port prèviament obert.
BOOL SetCommState ( HANDLE hFile, LPDCB lpDCB )
28 .
- Arguments d’entrada.
HFile: Handle del port tornat per CreateFile( ).
LpDCB: Punter a una estructura del tipus DCB que s‟utilitzarà per
configurar el port.
- Arguments de sortida.
BOOL: TRUE si la funció s‟executa correctament.
9.1.6 Función per la configuració i control dels temps de lectura i escriptura.
Les funcions SetCommTimeout() permeten configurar com es realitzaran les operacions
de lectura i escriptura.
Treballa a sobre d‟una estructura COMMTIMEOUTS que defineix el temps màxim
(TIMEOUT) que durarà una operació de lectura i escriptura. Els camps els
configurarem tal com segueix:
- ReadTotalTimeoutMultiplier =0; Multiplicador (ms) per calcular el
TIMEOUT total en operacions de
- ReadTotalTimeoutConstant = 0; Constant (ms) per calcular el
TIMEOUT total en operacions de lectura.
- WriteTotalTimeoutConstant = 0; Constant (ms) per calcular el
TIMEOUT total en operacions de escriptura.
Posem tots els camp a zero per a que les operacions de lectura no finalitzin fins que es
llegeixin tots els bytes demanats.
9.1.7 Funció per llegir i escriure del Port.
Per llegir i escriure del port es fan servir les funcions genèriques ReadFile() i
WriteFile(), ambdues són funcions genèriques que permeten llegir i escriure sobre
fitxers, ports etc. En el nostre cas ens permetrà llegir i escriure al port sèrie obert.
9.1.7.1 Función ReadFile.
BOOL ReadFile(HANDLE hFile, LPVOID IpBuffer,
DWORD nNumberOfBytesToRead,
LPDWORD lpNumberofBytesRead,
LPOVERLAPPED lpoverlapped )
- Arguments d’entrada.
hFile: Handle del port tornat per CreateFile().
29 .
IpBuffer: Punter al buffer on la funció depositarà els bytes llegits.
NnumberOfByteRead: Número de bytes que es volen llegir.
IpNumberOfByteRead: Punter a una DWORD on la funció ens indicarà
els bytes que veritablement s‟ha llegit.
IpOverlapped: Punter a una estructura OVERLAPPED per a un tipus
d‟accés al port especial. No l‟utilitzem
- Argument de sortida.
BOOL: True si la funció s‟executa correctament.
9.1.7.2 Función WriteFile.
BOOL WriteFile ( HANDLE hFile, LPVOID IpBuffer,
DWORD nNumberOfBytesToWrite,
LPDWORD lpNumberofBytesWrite,
LPOVERLAPPED lpoverlapped)
- Arguments d’entrada.
HFile: Handle del port retornat per CreateFile( ).
IpBuffer: Punter al buffer on la funció llegirà les dades que escriurà al
port
NnumberOfByteRead: Número de bytes que s‟escriuran al port.
IpNumberOfByteRead: Punter a una DWORD on la funció indicarà les
dades que realment s‟ha escrit.
IpOverlapped: Punter a una estructura OVERLAPPED per un tipus
d‟accés especial al port. No l‟utilitzem.
- Argumento de salida
BOOL: True si la funció s‟executa correctament.
9.2 Treballar en MULTITASCA
Windows té la propietat de realitzar diferents tasques alhora, amb aquesta caracterítica
es poden crear subprocessos que treballen independentment. En la nostra aplicació és de
gran utilitat treballar amb subprocessos.
30 .
En el supòsit de no treballar en multi tasca, la aplicació es quedaria en un bucle infinit
de recepció de dades, que causaria el bloqueig del programa.
Per crear una multi tasca, Builder C++ defineix un objecte Thread de la classe Tthread.
9.2.1 La classe TThread
L‟API WIN32 disposa d‟una varietat de funcions que treballen amb subprocessos.
Builder C++ facilita l‟ús dels subprocessos mitjançant la classe TThread. A continuació
s‟explica resumidament la interfície d‟aquesta classe.
- TThread(): Constructor de la classe. Indiquem si volem que el subprocés
es trobi actiu o en suspens una vegada creat.
- Execute ( ) : Zona on posarem el codi que volem que s‟executi en
paral·lel a l‟aplicació principal. El constructor de la classe TThread crida
automàticament aquest mètode.
- Suspend(): Suspenem de forma temporal la execució del subprocés. En
aquest estat no es fa ús de la CPU.
- Resume(): Reiniciem la execució d‟un procés que es trobava en
suspenció.
- Terminate(): Finalitzem el subprocés i alliberem de forma automàtica
tots els recursos asignats.
9.3 Generació de gràfics amb Teechart.
Teechart és una aplicació de Borland C++ que permet el disseny de gràfiques.
Per crear una gràfica amb Teechart seleccionarem el component TChart i l‟inclourem al
nostre formulari. Per definir les característiques podrem anar a l‟Inspector d‟Objectes, o
bé pitjar amb el botó dret del ratolí a sobre del component i seleccionar Edit Chart.
Per afegir dades a la gràfica (una sèrie) anirem a Edit Chart, serà l‟eina principal on
treballarem, i afegirem una sèrie pitjant el botó Add. Ens apareixerà una galeria amb els
diferents tipus de sèries (Line, Fast Line, Bar etc.). A la nostra aplicació hem afegit
sèries del tipus line a les gràfiques. Aquestes contindran dues variables (X,Y) per fer la
representació.
Amb l‟Edit Chart podrem definir multitud de característiques. El nom de la gràfica i
dels eixos, colors etc.
Finalment una vegada tenim definida la gràfica podrem afegir valors amb la funció
AddXY(valor X, valor Y, color).
31 .
9.4 Programa
9.4.1 Finestra Principal
La finestra principal permetrà representar l‟escaneig actual i carregar mesures realitzades
prèviament. La finestra principal consta de tres parts, el “Menú Principal”, el “Browser” i la
“Measure”.
Figura 9-1 Finestra principal
9.4.1.1 Menú Principal
El menú principal es compon de submenús desplegables per tal d‟accedir a totes les
opcions del programa.
File. Inclou les opcions relacionades amb l‟ús de fitxers més l‟opció de sortir del
programa.
- Load Measure. Carrega la mesura que seleccionem.
- Save Measure Ens permet guardar una mesura realitzada. Al guardar una
mesura es crearan dos fitxers. Un fitxer amb extensió *.dat i un altre amb
*.txt. El primer contindrà les dades de la mesura Annex 5.1 i el segon
informació de la mesura (Nom del fitxer, Data, Comentari, Paràmetres
del monocromador i paràmetres del Lock-in) Annex 5.2
- Load Configuration. Opció per carregar una configuració de paràmetres
de l‟escaneig. S‟obrirà una finestra on podrem seleccionar el fitxer
desitjat amb l‟extensió *.ini.
- Save Configuration. Permet emmagatzemar en un fitxer *.ini. els
paràmetres de configuració que en aquell moment tinguem definits
32 .
- Exit. Tanca l‟aplicació. Guarda la configuració de paràmetres de
l‟escaneig i el fitxer de referència a la carpeta de programa. Quan tornem
a engegar la aplicació aquests paràmetres i referència es carregaran per
defecte.
Configuration
- Define Measure. Obre la finestra Configuration per definir els paràmetres
i fitxer de referència de la mesura
Graph
- Auto. Es realitza un autoescalat de les dades representades a cada gràfica.
- Set Axis. Mostra la finestra Set Axis la qual permet a l‟usuari canviar el
valors dels límits dels eixos de la gràfica.
Connection
- SpectraPro and Lock-in connexion. Obre la finestra de connexió. Ens
permet connectar/desconnectar manualment el instrument seleccionat
Debug Mode
- Debug. Obre la finestra del mode Debug.
9.4.1.2 Browser
Al “Browser” carregarem mesures anteriorment guardades i accedirem a la finestra
“Data Window”. Conforme anem carregant mesures, aquestes s‟aniran afegint a la llista
i es mostraran a les gràfiques. Per carregar una mesura ho podrem fer de la següent
manera:
- Al Menú principal->File->Load Measure.
- Pitjant a sobre del botó d‟accés ràpid
- Amb la drecera Ctrl + L
S‟obrirà una finestra on podrem fer una recerca del fitxer per les carpetes de Windows.
Només ens mostrarà els fitxers que continguin la extensió *.dat (és el format amb que es
guarden les dades).
Per esborrar totes les mesures carregades només caldrà prémer el botó
A sobre del nom de cada mesura carregada, si, pitgem amb el botó dret del ratolí ens
apareixerà un menú amb les següents opcions:
- Hide Graph: Amb aquesta opció l‟usuari pot deshabilitar la vista d‟una
mesura a les gràfiques. La mesura no s‟esborra de la llista i resta per si es
vol tornar a visualitzar.
33 .
- Delete Graph: Borrem la gràfica seleccionada de la llista.
- Show Graph: Aquesta opció és complementaria a l‟opció Hide Graph , ja
que un cop s‟ha ocultat la representació de la mesura, si es desitja tornar
a representar la mesura l‟usuari haurà d‟escollir aquesta opció.
- Change Color: Per tal de visualitzar millor les gràfiques s‟ha creat
aquesta opció. L‟usuari pot escollir sobre una paleta de colors el que
desitgi per la mesura seleccionada.
- Show Text File: Carrega el fitxer de text associat a la mesura
seleccionada. Aquest fitxer es guarda automàticament quan guardem una
mesura.
A la part de sota del Browser trobem un botó “Data Window”. Al prémer a sobre ens
apareixerà la finestra “DataWindow” . Al punt de 8.4.2.1 trobem el detall d‟aquesta
finestra
9.4.1.3 Measure
Subdividim aquesta part en el bloc de controls, la part gràfica i la barra d‟estat.
El bloc de controls està format per quatre botons:
- Define Measure. Obre la finestra per definir la mesura
- Start Scan. Iinicia l‟escaneig
- Stop Scan. Atura un escaneig que s‟estigui realitzant
- Save Measure. Una vegada acabat un escaneig ens permet guardar la
mesura.
A la part gràfica hi trobarem:
- Gràfica del Canal A. Ens mostrarà les dades del Canal A del Lock-in
per cada longitud d‟ona (λ)
- Gràfica del Canal B. Ens mostrarà les dades del Canal B del Lock-in
per cada longitud d‟ona (λ).
- Gràfica de l’External Quantum Efficiency. Per cada longitud d‟ona en
funció de les dades del Canal A i B del Lock-in i la referència ens
mostrarà la corresponent Eficiència Quàntica Externa.
Pitjant amb el botó dret del ratolí a sobre de qualsevol de les tres gràfiques
apareix un menú contextual amb diferents opcions:
34 .
AutoScale : Es realitza un autoescalat de les dades representades a
la gràfica que estem tractant.
Set Axis: Mostra la finestra Set Axis la qual permet a l‟usuari
canviar el valors dels límits dels eixos de la gràfica.
Undo Zoom: Si hem realitzat un zoom a una zona concreta de la
gràfica, ens redefineix els eixos a l‟estat original.
- Consola d’informació. Ens mostra informació relacionada amb la
mesura, connexió dels instruments etc.
Barra d‟estat:
A la barra d‟estat hi trobem sis camps d‟informació addicional que tenen una
importància especial.
- Els tres primers camps ens mostren permeten visualitzar la posició del
cursor respecte els eixos. El primer valor correspon a la longitud d‟ona
en nm i el segon ,depenen de la gràfica, al canal A del Lock-in (V), al
canal B del Lcok-in (V) o a la Eficiència quàntica Externa.
- El quart camp és una barra de progrés. Ens mostra en quin estat de
l‟escaneig sobre el total ens trobem.
- El cinquè camp indica si el instrument Lock-in està connectat. Amb els
següents missatges:
Lock-in Connected (amb fons gris) si el instrument està
connectat.
Lock-in not Connected (amb fons vermell) si el instrument no es
troba connectat.
- El sisè camp indica si el instrument mocromador està connectat. Amb els
següents missatges:
SpectraPro Connected (amb fons gris) si el instrument està
connectat.
SpectraPro not Connected (amb fons vermell) si el instrument no
es troba connectat.
9.4.2 Finestres secundàries
S‟han implementat finestres secundàries per tal de no carregar la finestra principal amb massa
informació. D‟aquesta manera centrarem la finestra principal en les mesures i la seva
representació gràfica.
35 .
Les finestres secundàries serviran per configurar, depurar (debugging) o donar informació de
l‟escaneig.
Així doncs en els següents punts detallarem la funcionalitat de cada finestra.
9.4.2.1 Data Window
S‟hi accedeix pitjant el botó de la finestra principal “Data Window”
Figura 9-2 Finestra DataWindow
Quan estem realitzant una mesura ens mostrarà en temps real les dades obtingudes de
l‟experiment. Aquesta finestra es pot ampliar amb el corresponent canvi de mida de les
dades que en ella s‟ensenyen . Això permetrà visualitzar la mesura des de una certa
distància i indicar quan s‟ha acabat l‟escaneig. Les dades que es mostren són:
- La Longitud d‟ona que estem mesurant.
- La dada que s‟obté per aquesta longitud d‟ona del canal A del Lock-in
- La dada del canal B del Lock-in
- La Eficiència Quàntica Externa associada a la longitud d‟ona.
9.4.2.2 Save
S‟hi pot accedir pel Menú Principal o amb la drecera de Ctrl+S
Figura 9-3 Finestra Save
Definirem el nom (Name File) i directori on volem guardar la mesura (Path). A més a
més tenim l‟opció d‟afegir un comentari que es guardarà el fitxer *.txt associat. Al pitjar
“OK” confirmem que guardi les dades de la mesura.
36 .
El camp “Name of File”, quan es crea per primer cop la finestra, s‟omple amb un nom
de fitxer predeterminat. S‟ha fet així pel fet que si l‟usuari no canvia el nom de mesura,
aquest tingui un format específic, on aparegui el dia i hora en que s‟ha iniciat la sessió
de programa.
S‟hi accedeix pitjant amb el botó dret del ratolí a sobre d‟una mesura de la llista del
“Browser” i seleccionant del desplegable “Show Text File”
Figura 9-4 Finestra ShowTextFile
Carrega la informació guardada de la mesura que hem seleccionat. Aquesta informació
es mostra per pantalla en aquesta finestra.
9.4.2.3 Configuration
S‟hi pot accedir pel Menú Principal o amb la drecera de Ctrl+M
Figura 9-5 Finestra Configuration
Aquesta finestra es divideix en quatre parts “Spectrometre Settings”, Lock-in Settings”,
Reference Setttings” i botons addicionals.
37 .
Spectrometer Settings. Introduïrem la longitud d‟ona inicial per començar
l‟escaneig “Initial WaveLength”, la longitud d‟ona final “Final WaveLength” i
l‟interval entre una longitud d‟ona i una altra “Interval”. La longitud d‟ona
inicial i final hauran d‟estar compreses entre els valors 1-1100 nm. En cas
contrari no podrem inicial l‟escaneig.
Lock-in Settings. Podrem definir la constant de temps “Filter time constant
control” i la sensibilitat “Full-scale sensitivity control” segons uns valors
predefinits que ens dona el Lock-in.
Reference Settings. Per carregar una nova referència clicarem al botó “Choose” i
seleccionarem el fitxer que contingui la referència amb l‟extenció *.conf. Si la
referència és correcta es carregarà al camp “Reference Selected. To check click
OK”. Aleshores premem a “OK” i la referència quedarà predefinida a la carpeta
de programa.
És possible que ja tinguem un fitxer de referència a la carpeta de programa amb
el mateix nom. Si es així apareixerà la finestra “Attention” per assegurar que
volem sobreescriure la referència amb l‟actual. En cas afirmatiu es
sobreescriurà. Si existeix algun problema ens apareixerà la finestra “Error”
comunicant que ha estat impossible sobreescriure la referència a la carpeta de
programa, però s‟ha carregat a l‟aplicació per realitzar l‟escaneig.
Botons addicionals.
- Load Configuration. Permet carregar una configuració de paràmetres i
referència prèviament guardada. El fitxer seleccionat tindrà l‟extensió
*.conf
- Save Configuration. Emmagatzema la configuració de paràmetres i
referència que tenim definida. El fitxer guardat tindrà l‟extensió *.ini
- Stop Scan. Atura l‟escaneig que s‟estigui realitzant. Abans d‟aturar-lo
finalitza la longitud d‟ona que en aquell moment s‟estigui mesurant.
9.4.2.4 Attention
Finestra que apareix quan s‟ha de sobreescriure el fitxer de referència de la carpeta de
programa perquè s‟ha seleccionat un fitxer amb el mateix nom.
Figura 9-6 Finestra Attention
38 .
9.4.2.5 Error
Sinó es pot sobreescriure la referència ens ho comunica amb aquesta finestra. Per tant la
referència seleccionada no s‟haurà guardat a la carpeta de programa però si que estarà
carregada per fer l‟escaneig.
Figura 9-7 Finestra Error
9.4.2.6 Set Axis
S‟hi pot accedir pel Menú Principal o amb la drecera de Ctrl+X
Figura 9-8 Finestra Set Axis
Podrem definir els marges dels eixos de les gràfiques segons convingui. Cada gràfica
podrà tenir uns paràmetres d‟eixos diferents. Per tal de modificar els eixos haurem de
passar a manual, canviar els eixos i confirmar mitjançant el botó “Change”.
El botó “Change” no s‟habilitarà si les dades introduïdes no tenen valors coherents i
entre els límits [-100000-100000].
Si volem passar a automàtic de nou la gràfica, només caldrà pitjar a sobre ”d‟Auto”
Cal diferenciar del botó “Auto” que trobem en aquesta finestra del Menú Principal. Al
Menú Principal fem un auto escalat de totes les gràfiques alhora. En aquesta finestra
l‟auto escalat només el farà de la gràfica seleccionada.
39 .
9.4.2.7 Connexion
S‟hi pot accedir pel Menú Principal o amb la drecera de Ctrl+F1
Figura 9-9 Finestra Connexion
Trobem quatre botons per tal de connectar/desconnectar el Lock-in i Monocromador
(SpectraPro150). Només hi hauran habilitats dos botons alhora en funció de l‟estat de la
connexió dels aparells.
Si en algun moment veiem que la connexió falla, podrem desconnectar i connectar
denou els instruments manualment.
9.4.2.8 Configuration Lock-in
Al iniciar l‟escaneig s‟envia la configuració del Lock-in al instrument. Durant aquest temps
s‟informa a l‟usuari d‟aquest fet. La finestra es configura com a “ShowModal” bloquejant
l‟aplicació fins a la finalització de la configuració.
Figura 9-10 Configuration Lock-in
9.4.2.9 Debug Mode
S‟hi pot accedir pel Menú Principal o amb la drecera de F2
Figura 9-11 Finestra Debug Mode
40 .
Aquesta finestra no és 100% funcional. En principi serà una espècie d‟Hiperterminal
que permetrà enviar una instrucció al instrument que seleccionem.
Seleccionarem el instrument a la zona de “Machine”.
Escriurem la instrucció al camp “Instruction to send” i pitjant a “Send Instruction”
enviarem la instrucció a l‟aparell escollit
Podrem veure la instrucció que s‟ha enviat al camp “Instruction Sent” i la resposta de
l‟aparell al “Reply”.
Permetrà netejar els camps prement a “Clear Screen”
41 .
10. Manual D’ús
Els manuals d‟ús s‟ha definit en català i anglès per tal que puguin ser entesos per tots els
usuaris de l‟aplicació
10.1 Manual de Referència
El manual de referència explica detalladament les funcions, des del punt de vista de
l‟usuari, de cada bloc del programa (Menú Principal, Browser i Measure).
10.1.1 Menú Principal
El menú principal té com a funció principal mostrar les diferents opcions de programa
en forma de pestanyes. Consta de les diferents opcions:
10.1.1.1 File
Load Measure (Ctrl+L). Obre un diàleg per buscar l‟arxiu *.dat de mesures a
carregar. Quan s‟obre l‟arxiu es carreguen les dades a la gràfica i es mostra el
nom al navegador de mesures. Aquesta opció també s‟executa per mitjà del botó
d‟accés ràpid
Save Measure (Ctrl+S). Guarda les dades de la mesura representada a les
gràfiques en un arxiu amb extensió *.dat. La ruta i nom de l‟arxiu es defineix en
la finestra Define Measure. Juntament amb l‟arxiu de dades es crea un arxiu de
text on apareixen les característiques amb que ha estat feta la mesura. Aquesta
opció també s‟executa des del botó del Browser
Load Configuration (Ctrt+Alt+L). Obre un Diàleg per buscar l‟arxiu *.ini de
configuració a carregar. Quan s‟obre l‟arxiu es carrega la configuració a la
finestra Configuration. Aquesta opció també s‟executa des del botó de la finestra
Configuration
Save Configuration (Ctrl+Alt+S). Defineix el nom, ruta i comentari de la
mesura a guardar Quan es guarda la mesura, es crea un arxiu ( *.dat) de la
mesura i un altre arxiu de text (*.txt) que disposa de la següent informació
(Aquesta opció també s‟executa des del botó de la finestra Configuration.):
-
- File Name : Nom de l‟arxiu.
- Time : Data i hora en que s‟ha realitzat la mesura.
- Comments: Comentari opcional introduït per l‟usuari.
- Spectrometre parameters: Els paràmetres de configuració de del
monocromador:
Initial WaveLength: Longitud d‟ona amb la que iniciarem l‟Scan
Final WaveLength: Longitud d‟ona final de l‟escaneig
42 .
Interval: Interval entre dues longituds d‟ona consegutives.
- Lock-in parameters: Els paràmetres de configuració del Lock-in
Filter timer constant control: Definim la constant de temps de la
mesura
Full-scale sensitivity control: Definim la sensibilitat en la mesura
Exit (Ctrl+E). Tanca l‟aplicació, la comunicació amb el dispositiu i guarda la
configuració de la mesura que tenim actualment definida a la carpeta de
programa. Aquesta configuració serà la que es carregarà per defecte a l‟iniciar
l‟aplicació.
10.1.1.2 Configuration
Define Measure (Ctrl+M). Obre la finestra de configuració de l‟escaneig.
Podrem definir:
Spectrometer Settings
- Initial WaveLength.
- Final WaveLength.
- Interval.
Lock-in Settings
- Filter timer constant control.
- Full-scale sensitivity control.
Reference Settings
- Choose-> Escollim el fitxer de referència que volem que tingui en
compte l‟aplicació per calcular la Eficiència Quàntica Externa
- OK->Guardem la referència a la carpeta de programa.
Botons addicionals
- Load Configuration. Mirar punt 9.1.1.1 d‟aquest manual.
- Save Configuration. Mirar punt 9.1.1.1 d‟aquest manual.
- Stop Scan. Atura l‟escaneig actual.
10.1.1.3 Graph
Auto (Ctrl+A). Defineix els límits dels eixos de manera que les dades de la
mesura en temps real i de les mesures carregades es mostrin completament.
Set Axis (Ctrl+X). Permet definir els límits dels eixos de la gràfica.
43 .
- Auto. Es fa un auto escalat conforme obtenim dades de la mesura.
- Manual. Podem definir els eixos de cada gràfica individualment. El botó
Change només s‟activarà si definim els eixos correctament
10.1.1.4 Connexion
SpectraPro and Lock-in connexion (F1). Permet connectar/desconnectar
manualment els instruments.
10.1.1.5 Debug Mode
Debug (F2). Hyperterminal per enviar i rebre informació al Lock-in o
monocromador. En fase de proves.
10.1.2 Browser
10.1.2.1 Llista de mesures
El navegador de mesures permet carregar mesures prèviament guardades per tal
de ser representades en la gràfica. Per carregar les mesures anar a (FileLoad
Measure) o bé per mitjà del botó d‟accés ràpid (mirar punt 9.1.1.1 d‟aquest
manual) . Prement el boto dret del ratolí es desplega un menú contextual que
permet realitzar diferents operacions amb les mesures:
- Hide Graph: Oculta la mesura de la gràfica, mantenint la mesura
carregada en el navegador.
- Delete Graph: Elimina la mesura del navegador i de la grafica.
- Show Graph: Mostra una mesura que prèviament ha estat ocultada
- Change color: Canvia el color de mesura representada en la gràfica.
- Show Text File : Mostra una finestra on es pot observar el fitxer de text
associat a la mesura.
Podrem esborrar totes les mesures de la llista amb el botó d‟accés ràpid
10.1.2.2 Botó Data Window.
Ens mostra les dades de la mesura de la longitud d‟ona actual.
10.1.3 Measure
10.1.3.1 Gràfiques
Les gràfiques mostren la representació de les dades rebudes del Lock-in en i la
representació de dades de l‟Eficiència Quàntica Externa temps real. Prement el
botó dret del ratolí es desplega un menú contextual amb les opcions:
- AutoScale. Defineix a la gràfica seleccionada els límits dels eixos de
manera que les dades de la mesura en temps real i de les mesures
carregades es mostrin completament.
44 .
- Set Axis. Mateixa opció que la disponible al MenuGraph.
- Undo Zoom. Representa la mesura a la gràfica seleccionada amb els
límits dels eixos predefinits anteriors al zoom.
10.1.3.2 Botons de control
Define Measure : Obre la finestra Define Measure.
Start Scan: Comença l‟escaneig
Stop Scan: Atura l‟Escaneig
Save Measure : Guarda la mesura en l‟arxiu especificat en la finestra Define
Measure.
45 .
10.2 Reference Manual
The reference manual explains with detail all the functions from each part of the
program (Main Menu, Browser and Measure).
10.2.1 Main Menu
The main menu has as its principal purpose to show the different options of the program
using tags:
10.2.1.1 File
Load Measure (Ctrl+L). It shows a dialog window to search the file *.dat in
order to upload the chosen measure. Once the file is opened the data is shown
with a graph and the name appears on the browser. It can be accessed by the
button
Save Measure (Ctrl+S). ): It saves the data measurement shown on the graph in
a *.dat file. The path and the name of the file will be defined on the window
Define Measure. Along with the data file, a text file will be created which
contains the following information (It can be accessed by the button Save
Measure from the Configuration form)
- File Name : Name of the file
- Time: Date and time when the measure was carried out.
- Comments: Optional comment.
- Spectrometer parameters:
Initial Wavelength: Wavelength to start the Scan
Final Wavelength: Wavelength to finish the Scan
Interval: Interval between two consecutives measurements
- Lock-in parameters:
Filter timer constant control: Timer constant defined
Full-scale sensitivity control: Sensitivity defined
Load Configuration (Ctrt+Alt+L). It shows a dialog window to search the file
*.ini in order to upload the chosen configuration measurement. When the
archive is uploaded the configuration associated appears in the Configuration
form It can be accessed by the button Load Configuration from the
Configuration form
Save Configuration (Ctrl+Alt+S). It saves the measurement configuration in a
*.ini file. The path and the name of the file will be defined on the window
shown. It can be accessed by the button Save Configuration from the
Configuration form
46 .
Exit (Ctrl+E). It closes the application as well as the communication with the
device. It saves the actual measurement configuration in the program
This configuration will be the default charge at the start of the application
10.2.1.2 Configuration
Define Measure (Ctrl+M). The Configuration Window is shown. It will
defined:
Spectrometer Settings
- Initial Wavelength.
- Final Wavelength.
- Interval.
Lock-in Settings
- Filter timer constant control.
- Full-scale sensitivity control.
Reference Settings
- Choose-> It upload the Reference archive selected by this option.
- OK->It saves the Reference archive in the program path
Additional Buttons
- Load Configuration. Look at 9.1.1.1 section.
- Save Configuration. Look at 9.1.1.1 section.
- Stop Scan. It stop the actual Scan
10.2.1.3 Graph
Auto (Ctrl+A). It defines the axis automatically, auto scaling the measures
represented by the graph.
Set Axis (Ctrl+X). ): It allows to define the limit of the axis of the graph
- Auto. It defines the axis automatically, auto scaling the measures
represented by the graph.
- Manual. It sets the limit of the Axis. The Change button will only be
enabled if the axis is right defined.
47 .
10.2.1.4 Connexion
SpectraPro and Lock-in connexion (F1). Allows the user to
connect/disconnect the Lock-in and monochromator
10.2.1.5 Debug Mode
Debug (F2). HyperTerminal to send and receive information from Lock-in and
monochromator. It‟s under construction.
10.2.2 Browser
10.2.2.1 Measurement List
The measures browser enables to load a measure saved previously in order to
show it on the graph. To load the measures we have to press (MenuOpen or
the speed button like in section 9.1.1.1) . By pressing the right button of your
mouse a contextual menu will show up, which allows to carry out several
options regarding the measures, such as:
- Hide Graph: It hides the measure from the graph, keeping the measure
loaded on the browser.
- Delete Graph: It deletes the measure from the browser and from the
graph
- Show Graph: It shows a measure which had been hidden previously
using the Hide Graph option.
- Change colour: It changes the colour of the measure represented on the
graph.
- Show Text File: It shows a window where we can find the text file related
to the measure.
To delete all listed measurements it will pressed the speed button
10.2.2.2 Data Window butoon
It shows the actual wavelength measurement data
10.2.3 Measure
10.2.3.1 Graphs
The graph shows the plot of the data received from the Lock-in as well as the
plot of the data for the External Quantum Efficiency in real time. By pressing
the right button of your mouse a contextual menu will show up:
- AutoScale. It defines the axis automatically, auto scaling the measures
represented by the graph. It auto scale each graph separately
- Set Axis. Same option as the available in MenuGraph.
48 .
- Undo Zoom. It represents the measure using the limit of the axis set
before the zoom.
10.2.3.2 Botons de control
Define Measure: It opens the window Define Measure.
Start Scan: It starts the actual Scan
Stop Scan: It stops the actual Scan
Save Measure: It saves the measure onto the file determined on the window
Define Measure.
49 .
10.3 Manual de processos
10.3.1 Mesura estàndard
1. Comprovar que els interruptors d‟alimentació de la part posterior dels
instruments estan connectats.
2. Connectar els instruments als ports sèrie del PC
3. Obrir el programa de control EQE.exe
4. Automàticament el programa busca si hi ha algun dispositiu connectat en algun
dels ports USB. En cas que hi hagi algun dispositiu connectat, apareixerà en la
part inferior de la pantalla el missatge. “Lock-in connected” i/o “SprectraPro
connected”.
5. Si algun dispositiu no està connectat al PC es mostrarà el missatge “Open Lock-
in not connected” i/o “SpectrPro not connected” amb fons de color vermell.
Anirem a la finestra de connexió de la aplicació (Menu Connexión
SpectrPro and Lock-in connexion) i connectarem manualment el instrument que
ha fallat.
6. Si existeix un fitxer de configuració a la carpeta del programa es carregarà per
defecte i les dades es mostraran a (Menu Configuration Define Measure).
7. Per configurar els paràmetres manualment anar a (Menu Configuration
Define Measure) , prement el botó “Define Measure” o amb la drecera Ctrl+M.
També podem carregar un fitxer de configuració (Menu ConfigurationLoad
Configuration), (Menu FileLoad Configuration) o amb la drecera
Ctrl+Alt+L.
8. Per començar a visualitzar les dades, prémer el botó Start Scan,.
9. En cas que es desitgi parar la captura prémer el botó Stop Scan.
10. Per capturar la mesura representada anirem a (Menu File Save Measure)
pitjarem el botó Save Measure, o amb la drecera Ctrl+S.
11. Per guardar la configuració anirem a (Menu File Save Configuration),
(Menu FileSave Configuration) o amb la drecera Ctrl+Alt+S.
12. Per sortir del programa i tancar communicació amb l‟instrument anar a (Menu
File Exit), amb la drecera Ctrl+X o bé el botó Tancar (part superior
esquerra pantalla).
50 .
10.3.2 Obri fitxer de dades i treballar amb la gràfica.
1. Per representar una mesura guardada prèviament, anar a (Menu File Load
Measure), Crtl+L o bé prémer botó d‟accés ràpid
2. Buscar arxius *.dat de les dades de la mesura a carregar en el directori pertinent,
i obrir fitxer. Per a ser oberts, els fitxers de dades han de tenir un format concret
(veure Apèndix 5.1).
3. Si la mesura s‟ha carregat correctament, es representaran les dades a les
gràfiques i es mostrarà el nom del fitxer en el Browser.
4. En el Browser, prement amb el botó dret del ratolí sobre el nom del fitxer es
desplega un menú contextual que permet :
Hide Graph : Desapareix la captura de la gràfica però no del
requadre.
Delete Graph : Desapareix la mesura de la gràfica i del Browser.
Show Graph : Reapareix la mesura que prèviament s‟ha ocultat.
Change Color : Permet canviar el color, de les dades representades a
la gràfica, de la mesura.
Show Text File: Obre el fitxer de text associat a la mesura, on es
mostren paràmetres de configuració amb que ha estat realitzada.
Per eliminar totes les mesures del requadre així com les representacions de la
gràfica, prémer el botó Clear List.
5. Prement amb el botó dret del ratolí sobre una gràfica, s‟obre un menú contextual
que permet :
Auto Scale: Defineix els límits dels eixos de manera que les dades de
la mesura en temps real i de les mesures carregades es mostrin
completament.
Set Axis: Definició dels límits dels eixos de la gràfica.
Undo Zoom: Representa les mesures amb els límits del eixos definits
anterior al zoom.
6. Per sortir del programa i tancar comunicació amb l‟instrument anar a (Menu
File Exit), Ctrl+E o bé botó Tancar (part superior esquerra pantalla).
51 .
10.3.3 Troubleshooting
1. Si un instrument no respon. Intentar desconnectar i connectar des de (Menu
Connexión SpectrPro and Lock-in connexion).
2. Apagar els instruments.
3. Tancar el programa i la comunicació amb els instruments anant a (Menu File
Exi)t, Ctrl+E o bé el botó Tancar (part superior esquerra pantalla). En cas
que aquest no respongui forçar l‟aturada.
4. Tornar a encendre els instruments.
5. Reiniciar el programa i comprovar que s‟ha establert comunicació correctament
amb el instrument. Si la comunicació s‟ha realitzat apareixeran els missatges
“Lock-in connected” i “SpectraPro connected”
6. En cas que no s‟estableixi comunicació, tancar programa i tornar al punt 2.
52 .
10.4 Process Manual
10.4.1 Standard Measure
1. Check if the power switch instruments are in right position.
2. Connect the devices to the Serial port.
3. Open the control program of the EQE.exe.
4. Automatically the program will search whether there are devices connected to
any of the Serial ports or not. If so, at the bottom of the screen the message
“Lock-in connected “and/or “SpectrPro connected “ will show up.
5. If any device is not connected to the computer the message “Lock-in not
connected”and/or “SpectraPro not connected” will appear on the message bar
at the bottom of the program window with red background. Go to the connexion
window (Menu Connexion SpectraPro and Lock-in connexion) and try to
connect the device manually.
6. If there is a configuration file in the program folder it will be loaded by default
and the data will be displayed in (MenuConfiguration Measure Define
Measure)
7. In order to configure the parameters of the devices we will need either to use
(Menu Configuration Define Measure) , the button “Define Measure” or
the shortcut Ctrl+M.
It‟s possible to upload the configuration from an archive. (Menu
ConfigurationLoad Configuration), (Menu FileLoad Configuration) or
with the shortcut Ctrl+Alt+L.
8. In order to start to see the data, we have to press Start Scan button.
9. If we want to stop the capture we have to press the Stop Scan button
10. In order to capture the measure represented on the graph, by pressing the Save
Measure button from Controls, (Menu File Save Measure or Ctrl+S we
will save the capture of the measure.
11. To switch off the program and close the communication we will either use
(Menu File Exit), Ctrl+E or press Exit button, (on the top of the screen).
53 .
10.4.2 Open data file and work on the graph.
1. To represent a measure saved previously, (Menu File Load Measure) ,
Crtl+L or also by pressing the button.
2. Once the dialog window is open, search files *.dat, on the certain directory,
regarding the data of the measure that we want to load. Files must have a
specific format to be opened (see Apèndix 5.1).
3. If the measure has been properly loaded, the data will be represented on the
graphs and the name of the file will be written on the Browser.
4. When using the browser, by clicking the right button of the mouse on the name
of the file, a contextual menu will appear, which will enable to:
Hide Graph: It hides the capture from the graph, but does not remove it from
the panel.
Delete Graph: The measure will be deleted from the graph and from the
Browser.
Show Graph: The measure beforehand hidden will turn up.
Change Colour: It enables to change the colour of the data represented on
the graph.
Show Text File: It shows the text file (*.txt) related to the measure.
In order to delete all the measures from the panel, as well as the representations
from the graph we have to click on the Clear List button .
5. By clicking the right button of the mouse on one graph, a contextual menu will
turn up, which will enable:
Auto Scale: It automatically defines the axis, auto scaling the represented
measures on the graph.
Set Axis: It defines the limit of the axis of the graph.
Undo Zoom: It represents the measures with the axis defined before the
zoom.
6. To exit the program and close the communication with the device we either have
to use (Menu File Exit), Ctrl+E or to press Exit button (at the top of the
screen).
54 .
10.4.3 Troubleshooting
1. If any device does not respond try to connect/disconnect the device by (Menu
Connexión SpectrPro and Lock-in connexion).
2. Switch off the devices.
3. Close the program and the communication with the decive by using either (Menu
File Exit), Ctrl+E or pressing the Exit button (at the top of the screen).
4. Switch on the devices
5. Start the program again and check that there is proper communication with the
device. If the communication is correct, the following message will be on the
screen: “Lock-in conneted” and “SpectraPro connected”.
6. If the communication is not correct, we have to turn the program off and go back
to number 2.
55 .
11. Bibliografia
11.1 Llibres consultats
[1] Instruction Manual DSP Lock-in Amplifier Model 7265
[2] Operating Instructions Acton Research Corporation SpectraPro-150
[3] Tesis: Automatización de la caracterización de celdas solares
Autor: Edgard Moreno García Any:2001
[4] Tesis: Silicon Heterojunction solar cells obtained by Hot-Wire CVD.
Autor: Cristóbal Voz Sánchez Any: 2008
[5] Teach yourself Borland C++ Builder in 14 days
Autor: Kent Reisdorph Editorial: Sams Publishing
[6] PFC: Sistema de adquisición y transmisión de datos mediante el MSP430F169
de Ti.
Autor: Jordi Ruiz Baeza
Directores: José Luis Ramírez Falo, Eduard Llobet Valero.
11.2 Pàgines Web consultades (Juny 2011)
[7] http://www.functionx.com/bcb/index.htm (Informació sobre programació en
Borland C++ Builder)
[8] http://www.functionx.com/bcb/index.htm (Informació sobre programació en
Borland C++)
[9] http://msdn.microsoft.com/en-us/library/ms810467.aspx (Ajuda de Microsoft
per programar el port sèrie en Win32)
[10] www.acton-research.com (Pàgina oficial de de l‟empresa Acton.Research on
trobarem informació del monocromador)
[11] http://www.signalrecovery.com/. (Pàgina oficial de l‟empresa Signal Recovery
on trobarem informació del Lock-in)
56 .
Apèndix 1 Pla d’accions del Projecte EQE
1 2 3 4 5 6Dampers meet t
1 1Llibreries
SpectraSense
Segons els exemples de l'intrument existeixen
llibreries per treballar amb el llenguatge de
programació C++. Al manual no es troben definides
aquestes llibreries i no existeix cap documentació.
E:Estrada 09-07-10 16-07-10 23-07-10 23-07-10 1B 2Y 3G
1- Tornar a Revisar el manual. En cas de no trobar la
informació es provaran de fer servir les llibreries de Visual
Basic. El Client (URV) intentarà contactar amb el proveïdor
de l'Espectròmetre. OK
2-No existeixen Llibreries. Les de VB no funcionen i el
proveïdor ens comenta que no existeixen aquestes llibreries.
Només uns exemples il·lustratius. La solució és programar a
un nivell més baix i establir nosaltres les comunicacions. OK
3- Es tanca l'acció i no es faran servir llibreries OK
2 1
Comunicació pel
Port Sèrie
Espectròmetre
Establir comunicació amb Espectròmetre.
Dificultats per trobar la seqüència correcta de
caràcters a enviar per cada instrucció que fem
servir.
E.Estrada 03-09-10 10-09-10 10-09-10 1B 2G
1- A la documentació no especifica quina seqüència de
caràcters exacta s'ha d'enviar per cada instrucció. Es
realitzarà una aplicació senzilla per tal de comprovar quina és
la seqüència. OK
2- Es troba la seqüència correcta de caràcters OK
3 1
Comunicació pel
Port Sèrie
Espectròmetre
La comunicació dona errors i l'aparell
SpectraSense sembla que a vegades es que
bloquejat.
E.Estrada 16-09-10 22-09-10 28-10-10 28-10-10 1R 2R 3R 4R 5G
1- Comprovar que s'està enviant la seqüència de caràcters
correcta .OK
2- Comprovar a la documentació de Microsoft que la
configuració del port, buffers entrad/sortida s'està realitzant
correctament. OK
3- Comprovar que els paràmetres de comunicació del port
sèrie són els mateixos que especifica l'instrument
SpectraSense. OK
4- Veure si l'nstrument no pot fer canvis de longitud d'ona
molt petits per les limitacions mecàniques del mateix. OK
5- Assegurar que només tenim un Thread de comunicacions
en marxa. OK
4 1
Comunicació pel
Port Sèrie
Lock-in
La comunicació amb el Lock-in no respon sempre
béE.Estrada 12-11-10 19-11-10 17-12-10 17-12-10 1R 2R 3R 4G
1- Comprovar que s'està enviant la seqüència de caràcters
correcta. OK
2- Comprovar a la documentació del fabricant que no s'està
configurant malament cap paràmetre del port. OK
3- Comprovar amb l'hiperterminal si funciona i si és així veure
diferències. OK
4- Amb l'hiperterminal si funciona però tot sembla igual que
amb la nostra aplicació. Intentar enviar caràcter a caràcter la
instrucció. OK
5 1
Comunicació pel
Port Sèrie
Espectròmetre
Tornen a existir problemes de comunicació amb
L'Espectròmetre. Sembla que a vegades no respon
i torna a quedar-se bloquejat.
E.Estrada 14-01-11 22-01-11 29-01-11 29-01-11 1R 2R
1- Revisar de nou documentació de l'aparell i de Microsoft.
OK
2- Provar de crear el buffer per enviar i rebre dades
exactament del mateix tamany que la trama que necessitem.
OK
COMENTARIS/NOTES/TANCAMENTHistroial de l'estat de l'acció
Més Antic Més nouITEM Descripció
Persona
responsable
Data del
problema
Data de
Tancament
Data Actual per
Tancar l'Acció
Última
actualitzacióPrioritat Problema
57 .
1 2 3 4 5 6Dampers meet t
6 2
Detecció
de ports
ordinador
Windows no dona cap eina per fer un escaneig de
ports de l'ordinador.E.Estrada 05-02-11 12-02-11 12-02-11 1B 2R
1- Revisar documentació de Windows. Fer recerca de
possibles solucions.OK
2- Provar d'enviar una trama a l'espectròmetre sabent la
resposta que ha de donar. Si es rep resposta correcte el port
existeix. Fer-ho per un rang de 30 ports. OK
7 1 Error de softwareAl tancar l'aplicació ens dona un error genèric de
WindowsE.Estrada 11-02-11 18-02-11 25-02-11 25-02-11 1B 2Y 3G
1- Revisar accions que prenen al tancar l'aplicació. OK
2-Comprobar que netegem buffers i tanquem bé els ports.
OK
3- Comprovar que es tanca el thread de comunicacions. OK
8 1Millora de
Disseny
Al expandir la finestra del programa no
s'expandeixen totes les subfinestres i l'aplicació es
veu pobre visualment
E.Estrada 11-02-11 18-02-11 18-02-11 1B 2R
1- Buscar atributs de finestra que permeti adaptar-se a la
finestra principal. OK
2- Programar l'adaptabilitat de les finestres al frame principal.
OK
9 1
Error
de
disseny
Alhora de entrar els paràmetres de l'espectròmetre i
del Lock-in es poden introduir dades incorrectes
(Rang erroni, Caràcters en comptes de números
etc.). Encara que apareix un error interessaria que
de bon principi no fos possible ficar dades
incorrectes
E.Estrada 19-02-11 25-02-11 25-02-11 1R
1- Modificació del software per impedir l'entrada de qualsevol
caràcter que no sigui un número. A més a més es comprova
cada vegada que es tecleja a sobre d'una casella totesl
lescondicions establertes per la configuració (Lambda
inicial<final etc.) OK
10 2Millores
de programa
Es demana que existeixi una finestra per poder
visualitzar les dades de l'escaneig numèricament.
Aquesta a més a més s'ha de poder ampliar i per
tant les lletres augmentar proporcionalment per tal
de cobrir tota la finestra
E.Estrada 19-02-11 04-03-11 04-03-11 1R
1- Crear Finestra amb les següents dades:
- WaveLEngth
- ChannelA and ChannelB
- Qeff
OK
11 1
Error
de
disseny
El client vol que els paràmetres "Filter Time
Constant" y el "Full-Scale sensivity control" es
seleccionin amb un control "UpDown" i no
introduint un número segons la taula
d'especificacions del l'aparell
E.Estrada 04-03-11 11-03-11 11-03-11 1R 1- Modificar Software segons requeriments del client. OK
12 2Millores
de programa
El client demana alguna ajuda visual per saber en
quin estat de progrés està l'escaneigE.Estrada 04-03-11 11-03-11 11-03-11 1R
1- S'afegeix a la finestra principal de l'aplicació un element
"ProgressBar" . OK
13 2Millores
de programa
El client demana alguna ajuda visual molt clara que
ens indiqui l'estat de connexió dels aparellsE.Estrada 11-03-11 18-03-11 18-03-11 1R
1- S'afegeixen dues caselles al costat del "PogressBar" que
indicaran en vermell si l'aparell està desconnectat
14 1Millores
de programa
Es demana que es guardi la última configuració
d'escaneig, juntament amb la taula de la referència i
que aquestes dades es carreguin a l'iniciar de nou
el programa per defecte.
E.Estrada 11-03-11 18-03-11 01-04-11 01-04-11 1R 2R
1-Problemes a l'hora de crear una carpeta dins de Windows.
Mirar documentació de Microsoft. OK
2-Identificar quines unitats té Windows. Mirar documentació.
Provar de crear una carpeta de configuració a les unitats "c:\
,d: \, e:\, o f:\" sinó es pot, enviar missatge d'error. OK
15 2Millores
de programa
Alhora de carregar una mesura escurçar el nom de
la mateixa que es mostra a la gràfica. Per tal que la
gràfica sigui el més gran possible.
E.Estrada 01-04-11 08-04-11 08-04-11 1R 1- S'estableix que només es mostrarà el "dia-mes-any" OK
COMENTARIS/NOTES/TANCAMENTHistroial de l'estat de l'acció
Més Antic Més nouITEM Descripció
Persona
responsable
Data del
problema
Data de
Tancament
Data Actual per
Tancar l'Acció
Última
actualitzacióPrioritat Problema
58 .
1 2 3 4 5 6Dampers meet t
16 2Millores
de programa
Client demana que a cada gràfica es puguin
canviar els eixos. En principi la definició dels eixos
era una per tota les gràfiques. A més a més per
defecte els eixos han d'estar en automàtic i només
modificar-los si l'usuari ho creu convenient. Al
menú principal ha d'existir la possibilitat de posar
totes les gràfiques de cop en auto i així ajustar-se a
les mesures que tinguem
E.Estrada 08-04-11 15-04-11 15-04-11 1R 1- Es modifica segons requeriments. OK
17 1 Error de softwareProblemes en l'auto configuració del Lock-in.
Concretament en el "REFMODE"E.Estrada 15-04-11 22-04-11 06-05-11 06-05-11 1B 2Y 3G
1- Revisar seqüència del programa. OK
2- Comprovar que rebem l'OK per part del Lock-in. OK
3- L'OK triga 5s en rebre's per això dona error. Augmentar
temps d'espera. OK
18 2Annexes del
Projectes
El Client demana de cara al Setembre de 2011 una
opció al menú principal de "Debug"E.Estrada 06-05-11 01-09-11 1R
1- S'està realitzant un Hyperterminal adaptat al projecte. Està
en fase de Debugging.
19 2Annexes del
Projectes
El client demana que alhora de guardar les dades
d'un escaneig existeixi alguna manera de guardar
l'usuari que l'ha fet.
E.Estrada 06-05-11 01-09-11 1R 1- En estudi
COMENTARIS/NOTES/TANCAMENTHistroial de l'estat de l'acció
Més Antic Més nouITEM Descripció
Persona
responsable
Data del
problema
Data de
Tancament
Data Actual per
Tancar l'Acció
Última
actualitzacióPrioritat Problema
59 .
Apèndix 2 Diagrama de Gantt
60 .
Apèndix 3.1 Taula de funcions de l’Objecte WinMain
Funció Cridada per: Comentari
WinMain(HINSTANCE, HINSTANCE,
LPSTR, int))
Primera funció cridada pel sistema per una
aplicació Windows
Application() Per defecte C++ builder crea un objecte del
tipus Application amb el que podrem cridar
diferent mètodes i obtenir informació de la
aplicació.
Crea un Objecte del tipus TForm i és assignat
al MainForm.
CreateForm(__classid(TConfigurationF),
&ConfigurationF)
Crea un Objecte del tipus TForm i és assignat
al ConfigurationF.
CreateForm(__classid(TDataWindowF),
&DataWindowF)
Crea un Objecte del tipus TForm i és assignat
al DataWindowF.
Application
Application
Crea un Objecte del tipus TForm i és assignat
al SetAxisF.
CreateForm(__classid(TSaveF), &SaveF) Crea un Objecte del tipus TForm i és assignat
al SaveF.
CreateForm(__classid(TConnexionF),
&ConnexionF)
Crea un Objecte del tipus TForm i és assignat
al ConnexionF.
EQE
CreateForm(__classid(TMainForm),
&MainForm)
Application
WinMain
WINAPI
CreateForm(__classid(TAttentionF),
&AttentionF)
Crea un Objecte del tipus TForm i és assignat
al AttentionF.
CreateForm(__classid(TErrorF), &ErrorF) Crea un Objecte del tipus TForm i és assignat
al ErrorF.
CreateForm(__classid(TDebuggingF),
&DebuggingF)
Application Crea un Objecte del tipus TForm i és assignat
al DebuggingF.
CreateForm(__classid(TShowTextFileF),
&ShowTextFileF)
Crea un Objecte del tipus TForm i és assignat
al ShowTextF.
CreateForm(__classid(TSetAxisF),
&SetAxisF)
CreateForm(__classid(TLockinConfigurati
onScanF),&LockinConfigurationScanF)
Crea un Objecte del tipus TForm i és assignat
al LockinConfigurationScanF.
Run() Aquesta funció fa que corri el programa.
Application
Application
Application
Application
Application
Application
Application
Application
61 .
Apèndix 3. 2 Taula de funcions de l’Objecte TMainForm
TMainForm TErrorF
TConfigurationF ScanThread
TConnexionF TSetAxisF
TSaveF Application
TLockinConfigScanF
Funció Cridada per:
WinMain->Application
MainForm->OnCreate
FormCreate
OpenBtClick
FormCreate
OpenBtClick
Button2Click
FormCreate
FormCreate
FormResize
Connexion
SpectraConnectBtClick
Connexion
LockinConnectBtClick
ComSpectraConnexion
ComLockinConnexion
LockinDisconnectBtClick
SpectraDisconnectBtClick
TConnexionF
ComSpectraConnexion
ComLockinConnexion
TConnexionF
DebuggingThread
Comentari
TMainFormTAttentionF
Al executar el programa crea l'objecte de la
classe Tform. Finestra principal del
programa amb els menus associats
TMainForm(TComponent* Owner)
TDebuggingF
TShowTextFileF
TDataWindowF
Funció que intenta llegir el arxiu
Configuration.ini per tal de carregar els
paràmetres de configuració de l'escaneig.La
carpeta per defecte on es guarden els arxius
de programa és: "c:\\Program
Files\\URVQeff". En cas de no existir la
carpeta es crearà. Si la unitat c:\ no es
accessible s'intentarà crear la mateixa ruta
per les unitats d:\, e:\ o f:\. En cas de no
trobar el fitxer, ens mostra per pantalla un
missatge requerint que introduïm els
paràmetres de la mesura manualment
ConfigurationApp()
Funció que busca en un rang de 1-30 ports
sèries si el monocromador està conenctat.
ComLockinConnexion()
ScreenDisabled()
ScreenEnabled()
Funció que s'executa al iniciar el programa
per tal de crear tota la part gràfica. A més a
més executa una sèrie de funcions.
Un dels paràmetres que carrega la funció
"ConfigurationApp" és l'adreça de la
referència. Si l'adreça es correcte i l'arxiu té
el format correcte es carrega la referència. En
cas contrari donarà un missatge d'error i
s'haurà d'introduïr a la finestra de
configuració. A aquesta funció se li passa
com a paràmetre l'adreça de de la Referència.
Al iniciar-se el programa intenta trobar en
quin port estan conectats el Monocromador i
el Lock-in
La barra d'estat s'auto ajusta a la finestra
principal del programa
Funció que busca en un rang de 1-30 ports
sèries si el Lock-in està conenctat.
Si el monocromador o Lock-in no estan
conectats desactiva la possibilitat de realitzar
un scaneig
Si el monocromador o Lock-in estan
conectats activa la possibilitat de realitzar un
scaneig
FormCreate(TObject *Sender)
LoadDataRef(char *filename)
Connexion()
StatusBarResize()
ComSpectraConnexion()
62 .
ComSpectraConnexion
ComLockinConnexion
FormClose
ReceiveComm
ComLockinConnexion
ComSpectraConnexion
LockinDisconnectBtClick
SpectraDisconnectBtClick
ComLockinConnexion
ComSpectraConnexion
ComLockinConnexion
ComSpectraConnexion
ComLockinConnexion
ComSpectraConnexion
CloseComm
ComLockinConnexion
ComSpectraConnexion
MainForm->OnClose
Exit1->OnClick
MainForm->OnResize
StartStopScan->OnClick
StopScanBt->OnClick
StopScanBt->Onclick
SaveMeasure1->Onclick
SaveButton->OnClick
SpectraSense1->OnClick
OkButtonClick
SpeedButton1->OnClick
Cada vegada que modifiquem el tamany de la
Finestra principal es realitzaran una sèrie de
càlculs per modificar el tamany de la resta de
components d'aquesta finestra i adaptar-los a
la mateixa.
FormResize(TObject *Sender)
Al clicar a "Stop Scan" parem l'Scan que
s'està realitzant. Abans de parar acaba de
realitzar la lectura en curs. Tanquem el
Thread de comunicacions i s'habiliten els
botons corresponents.
StopScanBtClick(TObject *Sender)
ActionSaveMeasureExecute()
Al clicar a sobre de "Save Measure" s'obre la
finestra per guardar la mesura.
Al clicar a sobre de "Define Measure" mostra
la finestra de configuració dels paràmetres de
l'escaneig
ActionMeasureConfigExecute(TObjec
t *Sender) DefineMeasureButton-
>OnClick
SpeedButton1Click(TObject *Sender) Al clicar a sobre de "Clear List" borrarà tota
la llista de mesures carregades
Si s'ha realitzat algun scaneig i per tant hem
rebut dades. Clican a sobre "OK" de la
finestra "SaveF" es guardaran les dades en un
arxiu *.dat amb el nom equivalent a la data i
hora que es guarda. A més a més es guardarà
un altre arxiu *.txt amb el mateix nom.
Aquest últim arxiu contindrà la configuració
que es va donar alhora de fer l'escaneig
Redibuixa la barra d'estat en funció de la
connexió de cada aparell. Se li passen com a
paràmetres la barra d'estat a la que ens
referim, el panell, i la posició d'aquest.
Al clicar al menú principal a sobre de "Exit".
Tancarem la aplicació.
Al clicar a "Start" inicialitzem el progresbar i
cridem a la funció "ConfigurationF-
>SendData"
SaveMeasureExecute(TObject
*Sender)
StartScanClick(TObject *Sender)
ConfigComm()
SendComm()
ReceiveComm()
StatusBar1DrawPanel(TStatusBar
*StatusBar,TStatusPanel *Panel,
const TRect &Rect)
Exit1Click(TObject *Sender)
Obre el port sèrie corresponent
Tanca el port sèrie corresponent. Es passa
com a paràmetre la màquina a la que està
connectat. (1) Monocromador. (2) Lock-in
OpenComm()
CloseComm(int machine)
Configura el port sèrie segons el paràmetres
dels nostres instruments.
Envia una cadena de caràcters definida a
cada instrument en espera de rebre
confirmació de rebuda correcta del mateixos
Compara la resposta de cada instrument amb
la esperada.
FormClose(TObject *Sender,
TCloseAction &Action)
Tanca els Threads de comunicacions oberts i
la aplicació.
63 .
DataWindowBt->OnClick
Define1->OnClick
Define1Click
RadioButton1Click
RadioButton3Click
RadioButton5Click
Debug1->OnClick
SetAxis1->OnClick
LoadMeasure->OnClick
LoadMeasureClick
ActionOpenDialogExecute
SpectraDisconnectBtClick
LockinDisconnectBtClick
DebuggThreadTerminate
SendInstructionBtClick
FormClose
LoadConfigurationClick(TObject
*Sender)
SaveConfiguration1Click(TObject
*Sender)
LoaConfiguration-
>OnClick
Al clicar a al menú principal a "File->Save
Configuration" executarem l'acció del botó
"ConfigurationF->SaveBtClick". S'obrirà una
finestra per escollir l'ubicació on guardar-lo
SaveConfiguration1-
>OnClick
SpectraProLockinConnexin
1->OnClick
Al clicar a al menú principal a "File->Load
Configuration" executarem l'acció del botó
"ConfigurationF->OpenBtClick". S'obrirà
una finestra per escollir l'arxiu de
configuració a carregar
Al clicar a l'opció "Connexion->SpectraPro
and Lock-in Connexion" del menú principal
mostra la finestra de connexió manual del
Monocromador i Lock-in
DataWindowBtClick(TObject
*Sender)
Mostra la finestra de dades de l'escaneig.
Timer1Timer(TObject *Sender)
Si cliquem a "Graph->Set Axis" o bé amb el
botó dret a sobre de les gràfiques a "Set Axis"
es mostra la finestra per modificar els eixos.
Per defecte estan en automàtic
Al clicar sobre la opció "Debug Mode-
>Debug" del Menú principal mostra la
finestra de DebugMode. Segons es trobi la
connexió amb els aparells habilitarà o no els
botons
Debug1Click(TObject *Sender)
Si cliquem al menú principal a "Graph-
>Auto" pasem a automàtic tota la definició
dels eixos i borrem les dades que s'hagùessin
introduït manualment. Cridem a la funció
"AutoScale"
Define1Click(TObject *Sender)
SetAxis1Click(TObject *Sender)
Si existeixen dades a les gràfiques es fa un
autoscale.
Al Menú principal si cliquem a sbre de la
opció "Load Measure" ens permetrà carrega
una mesura.
LoadMeasureClick(TObject *Sender)
Al clickar sobre la opció de càrrega de dades,
s'executa aquesta funció. Ens obre una
finestra per escollir l'arxiu de dades a obrir.
Una vegada seleccionat executarà la funció
"LoadData"
ActionOpenDialogExecute(TObject
*Sender)
Inspecciona que l'arxiu seleccionat tingui el
format correcte i carrega les dades de la
mesura correspontents a la part gràfica. Si no
és pot carregar donarà un missatge d'error.
LoadData(char * filename)
SpectraProLockinConnexin1Click(TO
bject *Sender)
Quan s'està comunicant amb el DebugMode i
aquests temps expira s'enten que la
comunicació a lfallat. Tanca el Thread
corresponent i habilita els botons
corresponents
AutoScale()
64 .
SpectraDisconnectBtClick
LockinDisconnectBtClick
ScanIni
ThreadTerminate
FormClose
SpectraDisconnectBtClick
LockinDisconnectBtClick
WriteSpectraPro
WriteReadLockin
FormClose
WriteSpectraPro
WriteLockin
WriteLockByte
ThreadTerminate
SpectraDisconnectBtClick
LockinDisconnectBtClick
FormClose
WriteLockin
ThreadTerminate
SpectraDisconnectBtClick
LockinDisconnectBtClick
FormClose
WriteLockin
ThreadTerminate
Chart1->OnMouseMove
Chart2->OnMouseMove
Chart3->OnMouseMove
UndoZoom1->OnClick
UndoZoom2->OnClick
UndoZoom3->OnClick
Al moure el ratolí per sobre de la gràfica
"ChannelB" ens apareixerà a " l'StatusBar"
una casella amb les coordenades X i Y.
Chart2MouseMove(TObject
*Sender,TShiftState Shift, int X, int
Y)
Al moure el ratolí per sobre de la gràfica
"ChannelB" ens apareixerà a " l'StatusBar"
una casella amb les coordenades X i Y.
Chart3MouseMove(TObject
*Sender,TShiftState Shift, int X, int
Y)
UndoZoom2Click(TObject *Sender) Al clicar amb el botó dret a sobre de la
gràfica "Channel2" i seleccionar la opció
"UndoZoom" posa els eixos tal com estan
definits manualment o si estan en automàtic
crida a la funció "AutoScale1Click"
UndoZoom3Click(TObject *Sender) Al clicar amb el botó dret a sobre de la
gràfica "Q.Efficiency" i seleccionar la opció
"UndoZoom" posa els eixos tal com estan
definits manualment o si estan en automàtic
crida a la funció "AutoScale3Click"
Al moure el ratolí per sobre de la gràfica
"ChannelA" ens apareixerà a " l'StatusBar"
una casella amb les coordenades X i Y.
Chart1MouseMove(TObject
*Sender,TShiftState Shift, int X, int
Y)
Temps d'espera que es dona quan enviem
l'ordre de lectura del canal 2. Aquest temps
és igual al "Time Constant" dels paràmetres
del Lock-in
Timer5Timer(TObject *Sender)
Quan s'està realitzant un escaneig i aquest
temps expira s'enten que la conexió ha fallat.
Es tanca el Thread de comunicacions i
s'habiliten els botons corresponents
Timer2Timer(TObject *Sender)
Espera de temps que es dona una vegada
enviem una ordre pel port abans de llegir del
mateix.
Timer3Timer(TObject *Sender)
Temps d'espera que es dona quan enviem
l'ordre de lectura del canal 1. Aquest temps
és igual al "Time Constant" dels paràmetres
del Lock-in
Timer4Timer(TObject *Sender)
Al clicar amb el botó dret a sobre de la
gràfica "Channel1" i seleccionar la opció
"UndoZoom" posa els eixos tal com estan
definits manualment o si estan en automàtic
crida a la funció "AutoScale1Click"
UndoZoom1Click(TObject *Sender)
65 .
UndoZoom1Click
UndoZoom2Click
UndoZoom3Click
ShowTextFile1->OnClick
HideGraph->OnClick
DeleteGraph->OnClick
ShowGraph1->OnClick
ChangeColor1->OnClick Si cliquem amb el botó dret del ratolí a sobre
duna mesura apareix un menu. Al clicar a
"Change Colour" ens permet escollir el color
que volem donar-li a les gràfiques associades.
ChangeColor1Click(TObject *Sender)
AutoScale3Click(TObject *Sender)
Si cliquem amb el botó dret del ratolí a sobre
duna mesura apareix un menu. Al clicar a
"Delete Graph" esborra la mesura
seleccionada de llista.
DeleteGraphClick(TObject *Sender)
Mira si hi ha alguna mesura a la gràfica
"Channel1". S'autoescala en funció de les
dades que tingui.
AutoScale1Click(TObject *Sender)
Si cliquem amb el botó dret del ratolí a sobre
d'una mesura apareix un menu. Al clicar a
sobre de "Hide Graph" les gràfiques
associades a la mesura despareixen. La
mesura no s'esborra de la llista.
Si cliquem amb el botó dret del ratolí a sobre
duna mesura apareix un menu. Al clicar a
"Show Graph" si la mesura no apareixia a les
gràfiques aquesta s'inclou
ShowGraph1Click(TObject *Sender)
AutoScale2Click(TObject *Sender)
Mira si hi ha alguna mesura a la gràfica
"Q.Efficiency". S'autoescala en funció de les
dades que tingui.
Si cliquem amb el botó dre del ratolí a sobre
duna mesura apareix un menu. Al clicar a
sobre de "ShowTextFile1Click" mostra el text
associat a la gràfica. Sinó existeix o està mal
definit mostra un error.
ShowTextFile1Click(TObject
*Sender)
Mira si hi ha alguna mesura a la gràfica
"ChannelB". S'autoescala en funció de les
dades que tingui.
HideGraphClick(TObject *Sender)
66 .
Apèndix 3.3 Taula de funcions de l’objecte ScanThread
TMainForm TErrorF
TConfigurationF ScanThread
TConnexionF TSetAxisF
TSaveF Application
TLockinConfigScanF
Funció Cridada per:
ConfigurationF->SendData
ScanThread
Execute()
ScanIni()
LockinConfig
WriteLockin
ScanIni
ScanIni
ScanIni
ScanIni
ScanIni
ScanIni
VisualComponentsDraw
ScanIni
MainForm->Timer2
En el moment que cliquem al botó "Start" del
"MainForm" es crida a la funció
"ConfigurationF.SendData". Si els
paràmetres de configuració són correctes es
crea una instancia del Thread de
comunicacions
ScanThread(bool
CreateSuspended)
Configura els paràmetre del Lock-in per la
mesura. Crida a la funció "WriteLockByte" i
obre la finestra "LockinConfigScan" durant
la configuració del Lock-in.
LockinConfig()
VisualComponentsDraw()
Qefficiency()
ThreadTerminate()
Llegeix pel port sèrie la mesura del canal
sol·licitat. Esperant rebre un string finalitzat
en "\r\n*". Mostra per pantalla la dada
rebuda.
Canvia de canal de lectura perquè es vagin
alternant les lectures del canalA i CanalB.
Conforme es van realitzant mesures va
afegint les dades a les gràfiques. A més a més
mostra les dades en el "DataWindowF".
Realitza el càlcul de la E.Q.E. segons la
fórmula: E.Q.E.=
(ChannelA/ChannelB)xReferència
Finalitza el Thread de comunicacions.
Deshabilita els Timers i habilita els botons i
camps corresponents
WriteLockin()
ReadLockin()
FLIP()
Enviar al monocromador la longitud d'ona a
la que s'ha de moure. Defineix el temps
d'espera de lectura "Timer3" del "MainForm"
WriteSpectraPro()
Llegeix del port sèrie la resposat del
monocromador. En espera de rebre l'echo i
un "ok".
ReadSpectraPro()
Execute() Funció que s'executa al iniciar-se el Thread.
Aquesta funció crida a "ScanIni"
ScanIni() Funció principal on es realitza l'escaneig i
tanca el Thread a l'acabar. A més a més
defineix el Timer2 del MainForm.
ScanThread
Envia al Lock-in el canal que vol llegir. Una
vegada seleccionat es llegeix el valor. Per
realitzar aquestes operacions crida a la funció
"WriteLockByte"
TShowTextFileF
TDebuggingF
TDataWindowF
DebuggingThread
Comentari
TAttentionF
Funció per enviar els paràmetres del Lock-in.
S'envia caràcter a caràcter esperant rebre
l'Echo i la cadena "\r\n*" al final. Se li pasa
com a paràmetre l'String a enviar. Defineix el
temps d'espera de lectura "Timer3" del
"MainForm"
WriteLockByte(String send)
67 .
Apèndix 3.4 Taula de funcions de l’Objecte TAttentionF
TMainForm TErrorF
TConfigurationF ScanThread
TConnexionF TSetAxisF
TSaveF Application
TLockinConfigScanF
Funció Cridada per:
WinMain->Application
Button1->OnClick
Button2->OnClick
Button1Click
ErrorF->FormClose
Al clicar a sobre de "NO" borrarem de la
finestra de "ConfigurationF->Edit2" la
referència seleccionada i tancarem la finestra.
Button1Click(TObject *Sender)
FormClose(TObject *Sender,
TCloseAction &Action)
Tanca la finestra "TAttentionF".
Al executar el programa crea l'objecte de la
classe Tform. Finestra d'atenció a l'usuari per
preguntar-li si vol sobreescriure la Referència
existent amb la que ha seleccionat.
TAttentionForm(TComponent* Owner)
Comentari
Al clicar a sobre del botó "YES" intentarà
sobreescriure la Referència que hagim
seleccionat. A més a més cridarà a
ConfigurationF->Attention
Button1Click(TObject *Sender)
TAttentionF
TShowTextFileF
TDebuggingF
TDataWindowF
DebuggingThread
TAttentionF
Apèndix 3.5 Taula de funcions de l’Objecte TConnexionF
TMainForm TErrorF
TConfigurationF ScanThread
TConnexionF TSetAxisF
TSaveF Application
TLockinConfigScanF
Funció Cridada per:
WinMain->Application
SpectraDisconnectBtClick(TObject *Sender)
LockinConnectBt-
>OnClick
Al clicar al botó "ConnectLockin" crida a la
funció MainForm->ComLockinConnexion.
Per intentar connectar-se al Lock-in
LockinConnectBtClick(TObject *Sender)
LockinDisconnectBt-
>OnClick
Al clicar en " "DisconnectLockin" Mira si hi
ha algun Thread de comunicacions obert i el
tanca. Deshabilita els Timers. Crida a les
funcions MainForm->CloseComm i
MainForm->ScreenDisabled per tal de tancar
la comunicació del port sèrie amb l'aparell i .
Habilita/Deshabilita els botons correspoents
LockinDisconnectBtClick(TObject *Sender)
SpectraConnectBt-
>OnClick
SpectraDisconnectBt-
>OnClick
Al clicar en " "DisconnectSpetraPro150"
Mira si hi ha algun Thread de comunicacions
obert i el tanca. Deshabilita els Timers. Crida
a les funcions MainForm->CloseComm i
MainForm->ScreenDisabled per tal de tancar
la comunicació del port sèrie amb l'aparell i .
Habilita/Deshabilita els botons correspoents
Comentari
TConnexionForm(TComponent* Owner) Al executar el programa crea l'objecte de la
classe Tform. Finestra de connexió manual
dels aparells.
SpectraConnectBtClick(TObject *Sender) Al clicar al botó "ConnectSpetraPro150"
crida a la funció MainForm->MainForm-
>ComSpectraConnexion. Per intentar
connectar-se al mocromodador
TConnexionF
TShowTextFileF
TDebuggingF
TDataWindowF
DebuggingThread
TAttentionF
68 .
Apèndix 3.6 Taula1 de funcions de l’Objecte TConfigurationF
TMainForm TErrorF
TConfigurationF ScanThread
TConnexionF TSetAxisF
TSaveF Application
TLockinConfigScanF
Funció Cridada per:
WinMain->Application
ConfigurationF->OnCreate
InitialWaveLengthEdChange
FinalWaveLengthEdChange
IntervalEdChange
TimeConstantEdChange
FullScaleSensitivityEdChange
MainForm->StartScanClick
OpenBt->OnClick
SaveBt->OnClick
StopScanBt->OnClick Al clicar al botó "ConfigurationF-
>StopScanBt" activarem la funció
"MainForm->StopScanBtClick" per parar
la mesura en curs.
StopScanBtClick(TObject *Sender)
MainForm-
>SaveConfiguration1Click
SaveBtClick(TObject *Sender) Executarà la funció "SaveConfiguration"
Al crear-se la finestra de configuració de la
mesura mira si s'han carregat els
paràmetres de configuració guardats. En
cas contrari als camps "Filter timer
constant control" i "Full-scale Sensitivity
control" carrega els valors 2µs i 2nV
respectivament. La resta de paràmetres els
deixa en blanc a la espera de ser introduïts
per l'usuari. Per últim en funció dels
paràmetres carregats activarà els botons
correspoents.
FormCreate(TObject *Sender)
Cada vegada que pitgem una tecla a sobre
d'un camp dins els paràmetres de
configuració de la mesura compara amb la
resta de camps si la dada es coherent. En
cas que tots els camps tinguin dades
compreses dins els límits i que siguin
coherents per la mesura habilitarà el botó
"MainForm->StartScan". A més a més si
pitgem el botó "MainForm->StartScan"
crearà una instància de l'ScanThread per
realitzar la mesura.
Habilitarà/deshabilitarà els botons
corresponents.
SendData()
MainForm-
>LoadConfigurationClick
Al clicar al botó "Load Configuration" de
TConfigurationF o al Menu principal del
MainForm s'executarà aquesta funció.
Intentarà llegir els paràmetres de
configuració i guardar-los a la carpeta de
configuració del programa "MainForm-
>ConfigurationApp". Sinó la pot guardar
donarà un missatge d'error. Amb l'adreça
de la Referència intenta carregar-la, sinó
pot dona un missatge d'error "MainForm-
>LoadDataRef".
OpenBtClick(TObject *Sender)
Comentari
Al executar el programa crea l'objecte de la
classe Tform. Finestra on l'usuari pot
carregar la Referència i paràmetres de la
mesura.
TConfigurationForm(TComponent*
Owner)
TConfigurationF
TShowTextFileF
TDebuggingF
TDataWindowF
DebuggingThread
TAttentionF
69 .
SaveBtClick
InitialWaveLengthEd-
>OnChange
TimeConstantEd->OnChange
SaveConfiguration()
FormClose(TObject *Sender,
TCloseAction &Action)
TimeConstantEdChange(TObject *Sender)
IntervalEdKeyPress(TObject *Sender, char
&Key)
IntervalEd->OnCKeyPress Cada vegada que modifiquem el camp
"IntervalEd" s'executarà aquesta funció.
Comprobarà que introduïm números. No
permetrà qualsevol altre paràmetre
InitialWaveLengthEd-
>OnKeyPress
Cada vegada que modifiquem el camp
"InitialWaveLengthEd" s'executarà
aquesta funció. Comprobarà que introduïm
números. No permetrà qualsevol altre
paràmetre
InitialWaveLengthEdKeyPress(TObject
*Sender, char &Key)
FinalWaveLengthEd-
>OnKeyPress
Cada vegada que modifiquem el camp
"FinalWaveLengthEd" s'executarà aquesta
funció. Comprobarà que introduïm
números. No permetrà qualsevol altre
paràmetre
FinalWaveLengthEdKeyPress(TObject
*Sender, char &Key)
Cada vegada que modifiquem el camp
"FinalWaveLengthEd" s'executarà aquesta
funció. Comprobarà que el valor que
introduïm sigui correcte i en cas que tots
els parametres de configuració siguin
coherents per fer l'escaneig habilitarà el
botó "MainForm->StartScan".
IntervalEd->OnChangeIntervalEdChange(TObject *Sender)
Si s'executa la funció per "MainForm-
>FormClose" aleshores es guarda la
configuració a la capeta de programa amb
el nom "Configuration.ini" (Aquesta serà
la configuració que es carregarà quan
tornem a executar el programa). Si
s'executa la funció per "SaveBtClick"
aleshores s'obre una finestra perquè
l'usuari guardi la configuració actual on
Cada vegada que modifiquem el camp
"InitialWaveLengthEd" s'executarà
aquesta funció. Comprobarà que el valor
que introduïm sigui correcte i en cas que
tots els parametres de configuració siguin
coherents per fer l'escaneig habilitarà el
botó "MainForm->StartScan".
InitialWaveLengthEdChange(TObject
*Sender)
Cada vegada que modifiquem el camp
"TimeConstantEd" s'executarà aquesta
funció. Comprobarà que el valor que
introduïm sigui correcte i en cas que tots
els parametres de configuració siguin
coherents per fer l'escaneig habilitarà el
botó "MainForm->StartScan".
FinalWaveLengthEd-
>OnChange
Cada vegada que modifiquem el camp
"FinalWaveLengthEd" s'executarà aquesta
funció. Comprobarà que el valor que
introduïm sigui correcte i en cas que tots
els parametres de configuració siguin
coherents per fer l'escaneig habilitarà el
botó "MainForm->StartScan".
FinalWaveLengthEdChange(TObject
*Sender)
Cada vegada que modifiquem el camp
"FullScaleSensitivityEd" s'executarà
aquesta funció. Comprobarà que el valor
que introduïm sigui correcte i en cas que
tots els parametres de configuració siguin
coherents per fer l'escaneig habilitarà el
botó "MainForm->StartScan".
FullScaleSensitivityEdChange(TObject
*Sender)
FullScaleSensitivityEd-
>OnChange
70 .
Button2->OnClick
Button1->OnClick
UpDown1->OnClick
UpDown1->OnClick
Una vegada carregada la referència l'hem
de valida amb "OK". Al clicar intenta
guardar la refererència a la carpeta de
programa. Si existeix una referència amb
el mateix nom cridarà a la funció
"Attention". S'obrirà una finestra que ens
dirà si volem sobreescriure la referència
existent. Si cliquem "Yes" la sobreescriurà
i si cliquem "No" tancarà la finestra sense
guardar la nova referència carregada. Si hi
h algún error aquest es mostrarà per
pantalla sinó borrarà el camp "Reference
Selected. To check click OK" i escriurà al
camp "Reference Selected. To check click
OK" l'adreça de la nova
referència.Habilita/deshabilita els botons
corresponents.
En clicar a sobre de "UpDown1" (Filter
timer constant control) ens carregarà el
valor que pertoqui.
Al clicar al botó"choose" ens obrirà una
finestra per escollir la referència.
Executarà la funció "MainForm-
>LoadDataRef" carregant la referència i
ens mostrarà la ubicació a la casella
"Reference Selected. To check click OK".
Si no es carrega bé dona un missatge
d'error.
Button2Click(TObject *Sender)
En clicar a sobre de "UpDown2" (Full-
scale sensitivity control) ens carregarà el
valor que pertoqui.
UpDown2Click(TObject
*Sender,TUDBtnType Button)
UpDown1Click(TObject
*Sender,TUDBtnType Button)
Button1Click(TObject *Sender)
TimeConstantEdKeyPress(TObject
*Sender,char &Key)
FullScaleSensitivityEdKeyPress(TObject
*Sender, char &Key)
Cada vegada que modifiquem el camp
"TimeConstantEd" s'executarà aquesta
funció. Comprobarà que introduïm
números. No permetrà qualsevol altre
paràmetre
TimeConstantEd-
>OnCKeyPress
FullScaleSensitivityEd-
>OnKeyPress
Cada vegada que modifiquem el camp
"FullScaleSensitivityEd" s'executarà
aquesta funció. Comprobarà que introduïm
números. No permetrà qualsevol altre
paràmetre
Apèndix 3.7 Taula de funcions de l’Objecte TDataWindowF
71 .
TMainForm TErrorF
TConfigurationF ScanThread
TConnexionF TSetAxisF
TSaveF Application
TLockinConfigScanF
Funció Cridada per:
WinMain->Application
resize(TObject *Sender) DataWindowF->OnResize Al modificar la grandaria de la finestra, tots
els camps de dades s'apaten a la mateixa.
Comentari
TDataWindowF(TComponent* Owner) Al executar el programa crea l'objecte de la
classe Tform. Finestra que mostrarà les dades
de la mesura que s'estigui realitzant.
FormCreate(TObject *Sender) DataWindowF->OnCreate Estableix el tamany de la finestra. Per defete
serà de 220mm d'alçada i 430 d'amplada
TDataWindowF
TShowTextFileF
TDebuggingF
TDataWindowF
DebuggingThread
TAttentionF
Apèndix 3.8 Taula de funcions de l’Objecte TDebuggingF
TMainForm TErrorF
TConfigurationF ScanThread
TConnexionF TSetAxisF
TSaveF Application
TLockinConfigScanF
Funció Cridada per:
WinMain->Application
DebuggingF->OnCreate
SendInstructionBt->OnClick
Lockin->OnCkick
Spectrometre->OnClick
ClearScreenBt->OnClick
DebuggingF->OnClose
Esborra les dades dels camps "Instruction
Sent" i "Reply".
FormClose(TObject *Sender,TCloseAction
&Action)
ClearScreenBtClick(TObject *Sender)
Tanca la finestra de Debug i en cas que
estigui el "DebugThread" corrent el tanca.
Borra tots els camps i habilita el botó "Send
Intruction" si la màquina que està
seleccionada està connectada i no s'està
executant cap escaneig
Comproba que no s'estigui executant cap
escaneig. Borra la intrucció del camp
"Instruction to Send" i la còpia al camp
"Instruction sent". Crea una instància del
thread de debug "DebuggingThread" per
enviar les dades a l'aparell seleccionat. I
configura el "MainForm->Timer1" donant un
temps màxim en rebre resposta
Al clicar a sobre del "RadioButton" del
spectrometre, mira si l'aparell està connectat
pel port sèrie i que no s'estigui fent un
escaneig. Si això es compleix habilita el botó
"Send Instruction" sinó el deshabilita.
SpectrometreClick(TObject *Sender)
TDebuggingF
TDataWindowF
DebuggingThread
Al executar el programa crea l'objecte de la
classe Tform. Finestra que mostrarà
hiperterminal adaptat a la aplicació. Podrem
enviar i rebre dades de cada intrument
individualment
TDebuggingF(TComponent* Owner)
TAttentionF
SendInstructionBtClick(TObject *Sender)
Comentari
FormCreate(TObject *Sender)
Al clicar a sobre del "RadioButton" del Lock-
in, mira si l'aparell està connectat pel port
sèrie i que no s'estigui fent un escaneig. Si
això es compleix habilita el botó "Send
Instruction" sinó el deshabilita.
LockinClick(TObject *Sender)
TDebuggingF
TShowTextFileF
72 .
Apèndix 3.9 Taula de funcions de l’Objecte TErrorF
TMainForm TErrorF
TConfigurationF ScanThread
TConnexionF TSetAxisF
TSaveF Application
TLockinConfigScanF
Funció Cridada per:
WinMain->Application
ErrorF->OnClose
Al executar el programa crea l'objecte de la
classe Tform. Finestra d'error d'escitura de la
referència a la carpeta de programa. És una
finestra d'informació.
TErrorF(TComponent* Owner)
Comentari
FormClose(TObject *Sender,
TCloseAction &Action)
Al tancar la fiinestra habilita els botons
corresponents de la finestra "AttentionF".
Tanca les finestres "ErrorF" i "AttentionF"
TErrorF
TShowTextFileF
TDebuggingF
TDataWindowF
DebuggingThread
TAttentionF
Apèndix 3.10 Taula de funcions de l’Objecte DebuggingThread
TMainForm TErrorF
TConfigurationF ScanThread
TConnexionF TSetAxisF
TSaveF Application
TLockinConfigScanF
Funció Cridada per:
DebuggingThread
Execute()
DebuggingIni
DebuggingIni
DebuggingIni
ReadSpectraPro
WriteReadLockin
MainForm->Timer1
Espera rebre l'Echo de tots els caràcters
enviats, rebre les dades i la cadena "\r\n*".
Al rebre aquesta cadena indicarà que la s'ha
acabat la transmissió i per tant tancarem el
Thread de Debug
"DebuggThreadTerminate". Mostrarà al
camp "Reply" el que vagi rebent.
WriteReadLockin()
Finalitza el Thread de Debug. Deshabilita el
Timer i habilita els botons i camps
corresponents
DebuggThreadTerminate()
Execute()
Llegeix les dades rebudes del port sèries.
Espera rebre un "ok" que indicarà que la
instrucció s'ha enviat correctament. Tot el
que vagi rebent pel port ho mostrarà al camp
"Reply" . Quan rebem "l'ok" tanca el el
Thread de Debug "DebuggThreadTerminate"
ReadSpectraPro()
WriteSpectraPro() Envía la intrucció pel port sèrie. Defineix el
"MainForm->Timer3" per donal un temps
d'espera abans de la lectura.
En funció del de quin aparell estigui
seleccionat:
a) Spectrometre: Enviarà la instrucció pel
port sèrie "WriteSpectraPro" en espera de
rebre l'Echo i l'ok "ReadSpectraPro".
b) Lock-in: Enviarà caràcter a caràcter la
instrucció "WriteReadLockin" en espera de
rebre l'echo i la cadena "\r\n*"
DebuggingIni()
Comentari
DebuggingThread(bool CreateSuspended) En el moment de clicar "Sent Instruction" es
crea una instància del Thread de Debug per
comunicar-nos amb l'aparell seleccionat
DebuggingF-
>SendInstructionBt
Comproba que el Thread està actiu (No l'ha
aturat algun esdeveniment). En cas afirmatiu
crida a la funció "DebuggingIni" per tal
d'enviar la instrucció seleccionada.
Deshabilita els RadioButtons "Lock-in" i
·Spectrometre" i el camp
"SendInstructionEd"
DebuggingThread
TShowTextFileF
TDebuggingF
TDataWindowF
DebuggingThread
TAttentionF
73 .
Apèndix 3. 11 Taula de funcions de l’Objecte TLockinConfigScanF
TMainForm TErrorF
TConfigurationF ScanThread
TConnexionF TSetAxisF
TSaveF Application
TLockinConfigScanF
Funció Cridada per:
WinMain->Application
TLockinConfigScanF
MainForm-Timer2
Comentari
Al executar el programa crea l'objecte de la
classe Tform. Finestra que ens dius que s'està
configurant el Lock-in. Durant la
configuració del Lock-in l'aplicació quedarà
bloquejada. Si passa el temp "Timer2" i per
tant la comunicació no respond donarà un
missatge d'error
TLockinConfigurationScanF(TComponent* Owner)
FormClose(TObject *Sender,TCloseAction &Action) Tanca la finestra "TLockinConfigScanF".
TLockinConfigScanF
TShowTextFileF
TDebuggingF
TDataWindowF
DebuggingThread
TAttentionF
Apèndix 3.12 Taula de funcions de l’Objecte TSaveF
TMainForm TErrorF
TConfigurationF ScanThread
TConnexionF TSetAxisF
TSaveF Application
TLockinConfigScanF
Funció Cridada per:
WinMain->Application
SaveF->OnCreate
OkButton->OnClick Cridarà a la funció "MainForm-
>ActionSaveMeasureExecute" per tal de
guardar la mesura. A més a més tancarà la
finestra "TSaveF"
OkButtonClick(TObject *Sender)
Comentari
TSaveF(TComponent* Owner) Al executar el programa crea l'objecte de la
classe Tform. Finestra que ens permetrà
guardar la mesura realitzada amb el nom que
vulguem. A més a més podrem introduïr un
comentari.
Al camp "Name of file (without extension")
posarà per defecte el nom de l'arxiu com (dia-
mes-hora-any).
FormCreate(TObject *Sender)
TSaveF
TShowTextFileF
TDebuggingF
TDataWindowF
DebuggingThread
TAttentionF
Apèndix 3.13 Taula de funcions de l’objecte TShowTextFileF
TMainForm TErrorF
TConfigurationF ScanThread
TConnexionF TSetAxisF
TSaveF Application
TLockinConfigScanF
Funció Cridada per:
WinMain->Application
MainForm-
>ShowTextFile1Click
Comentari
TSaveF(TComponent* Owner) Al executar el programa crea l'objecte de la
classe Tform. Finestra que ens permetrà
visualitzar al informació de la gràfica
associada
Show() Mostra la finestra "ShowTextFileF" amb el
text associat a la gràfica que s'havia guardat.
TShowTextFileF
TShowTextFileF
TDebuggingF
TDataWindowF
DebuggingThread
TAttentionF
74 .
Apèndix 3.14 Taula de funcions de l’objecte TSetAxisF
TMainForm TErrorF
TConfigurationF ScanThread
TConnexionF TSetAxisF
TSaveF Application
TLockinConfigScanF
Funció Cridada per:
WinMain->Application
ChangeButton1->OnClick
ChangeButton2->OnClick
ChangeButton3->OnClick
RadioButton1->OnClick
RadioButton2->OnClick
RadioButton1->OnClick
RadioButton2->OnClick
RadioButton1->OnClick
RadioButton2->OnClick
RadioButton5Click(TObject *Sender) Al clicar a sobre del RadioButton
"Auto"Passem a automàtic la definició
d'eixos de la gràfica "Q.Efficiency"
RadioButton6Click(TObject *Sender) Al clicar a sobre del RadioButton "Manual"
de la gràfica "Q.Efficiency" deshabilitem la
opció dels esixos en automàtic. Introcuïm per
defecte uns valors dels eixos de "0"
RadioButton3Click(TObject *Sender) Al clicar a sobre del RadioButton
"Auto"Passem a automàtic la definició
d'eixos de la gràfica "Channel B"
RadioButton4Click(TObject *Sender) Al clicar a sobre del RadioButton "Manual"
de la gràfica "ChannelB" deshabilitem la
opció dels esixos en automàtic. Introcuïm per
defecte uns valors dels eixos de "0"
Al clicar a sobre del RadioButton "Manual"
de la gràfica "ChannelA" deshabilitem la
opció dels esixos en automàtic. Introcuïm per
defecte uns valors dels eixos de "0"
RadioButton2Click(TObject *Sender)
ChangeButton3Click(TObject *Sender) Mira que tinguem la gràfica del
"Q.Efficiency" en manual. Si tots els eixos
introduïts són correctes i cliquem a sobre de
"ChangeButton3" es canviaran
automàticament els eixos de la gràfica
"Q.Efficiency" als definits.
Al clicar a sobre del RadioButton
"Auto"Passem a automàtic la definició
d'eixos de la gràfica "Channel A"
RadioButton1Click(TObject *Sender)
Mira que tinguem la gràfica del "Channel A"
en manual. Si tots els eixos introduïts són
correctes i cliquem a sobre de
"ChangeButton1" es canviaran
automàticament els eixos de la gràfica
"ChannelA" als definits.
ChangeButton1Click(TObject *Sender)
ChangeButton2Click(TObject *Sender) Mira que tinguem la gràfica del "Channel B"
en manual. Si tots els eixos introduïts són
correctes i cliquem a sobre de
"ChangeButton2" es canviaran
automàticament els eixos de la gràfica
"ChannelB" als definits.
TSetAxisF
TShowTextFileF
TDebuggingF
TDataWindowF
DebuggingThread
TAttentionF
Comentari
TSetAxisF(TComponent* Owner) Al executar el programa crea l'objecte de la
classe Tform. Finestra que ens permetrà
definir els eixos manualment per a cada
gràfica.
75 .
Edit1->OnKeyPress
Edit2->OnKeyPress
Edit3->OnKeyPress
Edit4->OnKeyPress
Edit5->OnKeyPress
Edit6->OnKeyPress
Edit8->OnKeyPress
Edit9->OnKeyPress
Edit10->OnKeyPress
Edit11->OnKeyPress
Edit12->OnKeyPress
Edit1KeyPress
Edit2KeyPress
Edit3KeyPress
Edi4KeyPress
Edit5KeyPress
Edit6KeyPress
Edit7KeyPress
Edit8KeyPress
Edit9KeyPress
Edit10KeyPress
Edit11KeyPress
Edit12KeyPress
Edit1->OnChange
Edit2->OnChange
Edit3->OnChange
Edit4->OnChange
Edit12KeyPress(TObject *Sender, char
&Key)
Al introduïr dades als eixos, només permet
introduïr números.
Edit11KeyPress(TObject *Sender, char
&Key)
Al introduïr dades als eixos, només permet
introduïr números.
Edit10KeyPress(TObject *Sender, char
&Key)
Al introduïr dades als eixos, només permet
introduïr números.
Comprova que els eixos estiguin compressos
entre els valors eix x=10000 i eix x=0, eix
y=10000 i eix y=-10000. A més a més mira
que els valors siguin coherents. Si tot això es
compleix activa el botó "Change" de la
gràfica corresponent.
ActiveButtonChange()
Al introduïr dades als eixos, només permet
introduïr números.
Edit3KeyPress(TObject *Sender, char
&Key)
Al introduïr dades als eixos, només permet
introduïr números. Crida a la funció
Edit5KeyPress(TObject *Sender, char
&Key)
Al introduïr dades als eixos, només permet
introduïr números.
Edit7KeyPress(TObject *Sender, char
&Key)
Al introduïr dades als eixos, només permet
introduïr números.
Edit6KeyPress(TObject *Sender, char
&Key)
Al introduïr dades als eixos, només permet
introduïr números.
Edit4KeyPress(TObject *Sender, char
&Key)
Edit2Change(TObject *Sender) Crida a la funció "ActiveButtonChange" que
comprobará que els eixos són correctes
Edit3Change(TObject *Sender) Crida a la funció "ActiveButtonChange" que
comprobará que els eixos són correctes
Crida a la funció "ActiveButtonChange" que
comprobará que els eixos són correctes
Edit1Change(TObject *Sender)
Edit9KeyPress(TObject *Sender, char
&Key)
Edit4Change(TObject *Sender) Crida a la funció "ActiveButtonChange" que
comprobará que els eixos són correctes
Al introduïr dades als eixos, només permet
introduïr números.
Edit1KeyPress(TObject *Sender, char
&Key)
Al introduïr dades als eixos, només permet
introduïr números.
Edit2KeyPress(TObject *Sender, char
&Key)
Al introduïr dades als eixos, només permet
introduïr números.
76 .
Edit5->OnChange
Edit6->OnChange
Edit7->OnChange
Edit8->OnChange
Edit9->OnChange
Edit10->OnChange
Edit11->OnChange
Edit12->OnChangeEdit12Change(TObject *Sender) Crida a la funció "ActiveButtonChange" que
comprobará que els eixos són correctes
Edit9Change(TObject *Sender) Crida a la funció "ActiveButtonChange" que
comprobará que els eixos són correctes
Edit10Change(TObject *Sender) Crida a la funció "ActiveButtonChange" que
comprobará que els eixos són correctes
Edit11Change(TObject *Sender) Crida a la funció "ActiveButtonChange" que
comprobará que els eixos són correctes
Edit6Change(TObject *Sender) Crida a la funció "ActiveButtonChange" que
comprobará que els eixos són correctes
Edit7Change(TObject *Sender) Crida a la funció "ActiveButtonChange" que
comprobará que els eixos són correctes
Edit8Change(TObject *Sender) Crida a la funció "ActiveButtonChange" que
comprobará que els eixos són correctes
Edit5Change(TObject *Sender) Crida a la funció "ActiveButtonChange" que
comprobará que els eixos són correctes
77 .
Apèndix 4. 1 Fluxograma de funcions de l’Objete WinMain
78 .
Apèndix 4. 2 Fluxograma de funcions de l’Objete TMainForm
79 .
Apèndix 4. 3 Fluxograma de funcions de l’Objete ScanThread
80 .
Apèndix 4. 4 Fluxograma de funcions de l’Objete TAttentionF
81 .
Apèndix 4. 5 Fluxograma de funcions de l’Objete TConfigurationF
82 .
Apèndix 4. 6 Fluxograma de funcions de l’Objete TConfigurationF
83 .
Apèndix 4. 7 Fluxograma de funcions de l’Objete TDataWindowF
Apèndix 4. 8 Fluxograma de funcions de l’Objete TShowTextF
84 .
Apèndix 4. 9 Fluxograma de funcions de l’Objete TDebugginF
85 .
Apèndix 4. 10 Fluxograma de funcions de l’Objete DebuggingThread
86 .
Apèndix 4. 11 Fluxograma de funcions de l’TLockinConfigF
Apèndix 4. 12 Fluxograma de funcions de l’TSaveF
87 .
Apèndix 4. 13 Fluxograma de funcions de l’TSetAxisF
88 .
Apèndix 4. 14 Fluxograma de funcions de l’Objete TErrorF
89 .
Apèndix 5. 1 Format de l’arxiu *.dat de la mesura
Canal A Lock-in (V) Canal B Lock-in (V) E.Q.E
-0.170150 0.170150 0.800000
-0.170250 0.170250 0.500000
-0.170100 0.169700 0.700000
-0.169700 0.169650 0.600000
-0.169950 0.170250 0.900000
-0.170100 0.170050 0.600000
-0.169700 0.169650 0.400000
1000
1050
1100
Longitud d'ona (λ)
200
250
300
400
Apèndix 5. 2 Format de l’arxiu *.txt de la mesura
File name: Thu_Apr_21_22_36_51_2011_00.dat
Time: Thu Apr 21 22:38:14 2011
Comments: Pr ova de Mesura
Spectrometer Parameters:
Initial Wavelength: 200
Final Wavelength: 900
Interval: 1
Lock-in Parameters:
Filter Timer Constant Control: 2 s
Full-scaled sensitivity control: 500 mV