source: Sophya/trunk/Poubelle/archTOI.old/arcunit.h@ 577

Last change on this file since 577 was 436, checked in by ansari, 26 years ago

vendredi soir...

File size: 6.2 KB
Line 
1#define ARCUNIT_H
2
3
4/*======================================================================*/
5/* */
6/* arcunit.h : conversion en mesure physique */
7/* */
8/*======================================================================*/
9
10
11
12/* ---------------------------- prototypes des fonctions ------------------------------ */
13/* -------------------------------------------------------------------------------------------- */
14
15
16double bolo_muV (param_bolo* param_pt, reglage_bolo* reglage_pt, int valbrut,int indice_bolo);
17double bolo_temp (param_bolo* param_pt, reglage_bolo* reglage_pt, double R,int indice_bolo);
18
19double DAC_muV (param_bolo* param_pt, reglage_bolo* reglage_pt, int indice_bolo);
20double DAC_muA (param_bolo* param_pt, reglage_bolo* reglage_pt, int indice_bolo);
21
22int voyant_EVO(block_type_dilution* blk);
23int voyant_EVF(block_type_dilution* blk);
24int commande_EVO(block_type_dilution* blk);
25int commande_EVF(block_type_dilution* blk);
26int commande_EVB(block_type_dilution* blk);
27int commande_EVV(block_type_dilution* blk);
28
29
30double pression_entree_3He(block_type_dilution* blk);
31double debit_3He(block_type_dilution* blk) ;
32double pression_sortie_3He(block_type_dilution* blk) ;
33double pression_entree_4He(block_type_dilution* blk) ;
34double debit_4He(block_type_dilution* blk) ;
35double pression_sortie_4He(block_type_dilution* blk) ;
36double pression_air_vanne(block_type_dilution* blk) ;
37double pression_pompe_charbon(block_type_dilution* blk);
38double pression_membranne(block_type_dilution* blk) ;
39double pression_externe(block_type_dilution* blk) ;
40double tension_pile_10T(block_type_dilution* blk) ;
41double tension_pile_p18D(block_type_dilution* blk) ;
42double tension_pile_m18D(block_type_dilution* blk) ;
43double tension_pile_10B(block_type_dilution* blk) ;
44double tension_pile_p18B(block_type_dilution* blk) ;
45double tension_pile_m18B(block_type_dilution* blk) ;
46double tension_pile_Ch(block_type_dilution* blk) ;
47int switch_pile_5(block_type_dilution* blk) ;
48int switch_pile_15(block_type_dilution* blk) ;
49double temperature_caisson_haut1(block_type_dilution* blk) ;
50double temperature_caisson_haut2(block_type_dilution* blk) ;
51double temperature_caisson_bas1(block_type_dilution* blk) ;
52double temperature_caisson_bas2(block_type_dilution* blk) ;
53double temperature_caisson_tube_helium(block_type_dilution* blk) ;
54double temperature_caisson_piles(block_type_dilution* blk) ;
55double temperature_caisson_driver_moteur(block_type_dilution* blk) ;
56double pression_helium_bain(block_type_dilution* blk) ;
57double pression_pirani(block_type_dilution* blk) ;
58
59
60
61
62/* cette fonction transforme un char (sur 8 bit) en double avec une echelle logarythmique */
63/* elle est en particulier utilisée pour calculer les coef de la regul */
64
65double val_double(char x);
66
67/* cette fonction transforme un char (sur 8 bit) en entier int4 (echelle logarythmique) */
68/* elle est en particulier utilisée pour fixer le courant sur les bolometres */
69
70unsigned int4 val_long(char x);
71
72int new_val_dac(int a,char code);
73
74
75
76/* ---------------------------- define utilise pour les calculs ------------------------------ */
77
78
79#define bol_micro_volt(val,gain) ((1e7*(double)val)/(65536.*gain))
80/* avec gain = (double)parametr.bolo[bolo].bolo_gain*gain_ampli(reglage.bolo[bolo]) */
81
82
83/* gains 0 .. 15 pour MLPA /// gain 16..19 pour BEBO /// gain 20..22 pour BEDIF */
84#define def_gains double gains_reels[32]={1,2,4,8,10,20,40,80,100,200,400,800,1000,2000,4000,8000,0.5,2.5,10,50,0.93,3.777,18.974};
85 /* gain bediff 10->9.3 40->37.77 200->189.74 */
86
87#define gain_ampli(aa) gains_reels[gainbrut(aa)]
88
89
90
91#define bit_piles_5V 1
92#define bit_piles_15V 2
93#define bit_piles_auto 4
94
95
96/* signification des bit lus dans switch_dil */
97#define switch_EVF 0x00000080 /* contact fin de course vanne fermee */
98#define switch_EVO 0x00000040 /* contact fin de course vanne ouverte */
99
100/* les bit suivants sont envoyés par telecommande et relus dans switch_dil */
101#define switch_helium 0x00200000 /* 13: commande sond niveau helium */
102#define switch_pile_par_5 0x00100000 /* 12: mise en parallele des piles pour le 5V */
103#define switch_pile_par_15 0x00080000 /* 11: mise en parallele des piles pour le 15V */
104#define vanne_EVB 0x00008000 /* 7: commande vanne brooks */
105#define vanne_EVO 0x00010000 /* 8: commande vanne EVO */
106#define vanne_EVV 0x00020000 /* 9: commande vanne EVV */
107#define vanne_EVF 0x00040000 /* 10: commande vanne EVF */
108#define chauffage1 0x00004000 /* 6: chauffage 1 */
109#define chauffage2 0x00002000 /* 5: chauffage 1 */
110#define chauffage3 0x00001000 /* 4: chauffage 1 */
111#define chauffage4 0x00000800 /* 3: chauffage 1 */
112#define chauffage5 0x00000400 /* 2: chauffage 1 */
113#define chauffage6 0x00000200 /* 1: chauffage 1 */
114#define chauffage7 0x00000100 /* 0: chauffage 7 */
115
116#ifndef ARCUNIT_H
117enum{nbit_chauffage7,nbit_chauffage6,nbit_chauffage5,nbit_chauffage4,nbit_chauffage3
118 ,nbit_chauffage2,nbit_chauffage1,nbit_vanne_EVB,nbit_vanne_EVO
119 ,nbit_vanne_EVV,nbit_vanne_EVF,nbit_switch_pile_par_15,nbit_switch_pile_par_5,nbit_switch_helium};
120
121/* position des mesures sur les multiplexeurs */
122/* J10A -> temperatures basses t_b1 t_b2,t_b3 t_b4 36 37 41 35 */
123/* J10B -> temperatures basses t_a1 t_a2,t_a3 t_a4 38 11 34 28 */
124/* J1?? -> temperatures hautes t_h1 t_h2,t_h3 t_h4 */
125
126enum{
127/* multiplex11..18:*/ t_a2 ,mul12_ ,p_haut ,p_memb ,t_h1 ,t_h4 ,t_h3 ,t_h2
128/* multiplex21..28:*/, mul21_ ,mul22 ,p_charb,p_R4 ,mul25_ ,p_C3 ,p_R3 ,t_a4
129/* multiplex31..38:*/, mul31_ ,p_C4 ,p_air ,t_a3 ,t_b4 ,t_b1 ,t_b2 ,t_a1
130/* multiplex41..48:*/, t_b3 ,d_4He ,RP_He ,t_pile ,d_3He ,j_he3 ,j_he7 ,j_he4
131/* multiplex51..58:*/, j_he5 ,j_he1 ,j_he8 ,j_he2 ,j_he6 ,pirani ,mul57 ,mul58
132/* multiplex61..68:*/, p_m18B ,p_10B ,p_m18D ,mul64 ,p_p18B ,p_10T ,p_Ch ,p_p18D
133 };
134/* reste libres : mul 12 - 21 - 22 - 25 - 31 - 44 - 57 - 58 - 64 */
135/* T_A1 EST AUSSI LE DRIVER DU MOTEUR DE PIVOT */
136
137#endif
138
139#define val_multiplex(qq) (0.0003052*(double)((qq)-0x8000))
140#define val_temperature(qq) ((val_multiplex(qq)<0.2)?-99:((1146.3/(val_multiplex(qq)-0.1)) - 245.13))
141
142
Note: See TracBrowser for help on using the repository browser.