Instructions
30
11.6 EXEMPLE D’INTERROGATION RAPIDE
Le programme suivant permet d’effectuer une interrogation rapide de 100 mesures avec une cadence
de 100 ms. Le décodage de la mesure s’effectue selon la table de la sonde 231. Le lagage utilisé est
le Turbo Basic.
cls
p=0 : dim X1(200) ‘tableau des mesures à récupérer
gosub ROUTINE01
gosub ROUTINE02
print:print «Saisie de 100 mesures...(cf pictogramme ‘COM’ de l’appareil)»
beep
for N=1 to 100
delay 0.08 ‘ ajoute 20 mS pour de temps de traitement du C.A 43
gosub ROUTINE03
X1(N)=K
next N
beep
print : print «Afchage des 100 mesures saisies:» : print
for N=1 to 100
print «Valeur mesurée:»;X1(N)
delay 0.1
next N
print :print «**** Fin de programme ****» : close #1
end
‘==================== S O U S - P R O G R A M M E S ======================
ROUTINE01: ‘table du capteur 231...
B(1)=00000:F(1)=000033:CF(1)=4.666e-2:Q(1)=00.000
B(2)=00033:F(2)=000250:CF(2)=9.953e-3:Q(2)=01.211
B(3)=00250:F(3)=000820:CF(3)=5.438e-3:Q(3)=02.340
B(4)=00820:F(4)=002640:CF(4)=3.022e-3:Q(4)=04.322
B(5)=02640:F(5)=011776:CF(5)=1.893e-3:Q(5)=07.300
B(6)=11776:F(6)=143360:CF(6)=1.294e-3:Q(6)=14.360
return
ROUTINE02:
print «initialisation RS232 sur COM1...»
open «COM1:1200,N,8,1,RS» AS #1
return
ROUTINE03:
print #1,chr$(34);
if p=0 then A$=input$(1,#1):p=1 ‘suppression du tout 1er caractère
A$=input$(3,#1) : A$=left$(A$,2) ‘capture 3 caract. & garde 2 premiers
A1A2% = asc(left$(A$,1)) : B1B2% = asc(right$(A$,1))
A1% = x(A1A2%/16) : B1% = x(B1B2%/16)
A2% = A1A2% - 16*A1% : B2% = B1B2% - 16*B1%
R=((B2%*256+A1%*16+A2%)*2^B1%)/80
gosub ROUTINE04
return
ROUTINE04:
K=-1
for I=6 to 1 step -1
if R >= B(I) then
K=R*CF(I)+Q(I)
ptr = I
goto LABEL01
end if
next I
LABEL01:
return










