Interprétation des données. Campbell Scientific SR50 A, SR50 AT
Capteur de mesure de distance sonore SR50A
•
•
•
•
•
•
•
•
•
•
•
•
•
Déplacer le cavalier sur l’entête Run/Program
(Fonctionnement/Programmation).
Brancher le connecteur DB9 sur le SR50A
On peut maintenant alimenter le SR50A en branchant le connecteur et en alimentant le capteur en courant. Le voyant DEL vert devrait rester allumé lorsque l’alimentation est branchée correctement.
Régler l’Hyperterminal ou le programme de communications que vous utilisez de la façon suivante : o
Vitesse de transmission : 38400 o
Bits d’information : 8 o
Parité : None o
Bits d’arrêt : 1 o
Contrôle de flux : XON/XOFF o
Ligne de retard de
25 ms (selon le réglage ASCII)
Sélectionner au menu Hyperterminal Transfer -> Send Text File
(
Transfert -> Envoyer fichier-texte
)
Sélectionner le nouveau fichier-texte à transférer et le transfert devrait commencer.
Au début, le voyant DEL devrait rester allumé de façon constante.
Lorsque le transfert des données commence, le voyant DEL clignote rapidement avec chaque ligne reprogrammée.
Une fois le transfert terminé, le voyant DEL reste encore allumé de façon constante. Lorsqu’une erreur survient ou est survenue, le voyant DEL clignote.
Lorsque le voyant DEL clignote, tenter une fois de plus de programme de reprogrammation.
Lorsque la reprogrammation réussit, débrancher le capteur du bloc d’alimentation.
Remettre le cavalier de la position de programmation à la position de fonctionnement.
Remonter le capteur.
Vérifier le fonctionnement du capteur en obtenant une mesure.
9. Interprétation des données
Bien que cet aspect ne soit pas commun, le SR50A peut sortir occasionnellement des indicateurs de lecture invalides lorsqu’il ne peut pas obtenir de mesure. Pour obtenir des valeurs de distance-cible, une lecture 0.0 s’affiche habituellement.
Pour obtenir des données de profondeur de neige, une valeur -999 correspond à une valeur d’indicateur d’erreur. Une lecture de température invalide apparaît aussi par une valeur -999. Pour les mesures de profondeur de neige, on peut filtrer les données lorsqu’on procède à leur analyse.
Quant il s’agit de traiter des lectures invalides, il faut examiner de près une fonction de commande. Par exemple, lorsqu’on utilise le capteur pour amorcer une alarme de niveau d’eau, on devrait utiliser plusieurs lectures afin de s’assurer qu’une seule lecture invalide ne déclenchera pas une situation d’alarme.
10. Exemples de programmes d’enregistreur de données
Dans les exemples suivants de programme d’enregistreur de données, on a utilisé seulement les enregistreurs de données CR1000 et CR10X. La programmation des enregistreurs de données CR800, CR850 et CR3000 est en fait la même que celle du CR1000. Se reporter aussi aux exemples de programmation du CR10X pour un enregistreur de données CR23X.
- 21 -
Capteur de mesure de distance sonore SR50A
10.1 Exemple de programmation 1 SR50A, SDI-12 “M1!”,
Enregistreur de données CR10X
;{CR10X}
;
;Dans cet exemple, le SR50A a été monté à une hauteur de 2,5 mètres du sol.
;Le CR10X transmit une commande SDI-12 au SR50A, lequel affiche une
;valeur de distance compensée de non-température (Raw_Dist) et une valeur de qualité de signal.
;On utilise deux emplacements d’entrée pour stocker les données d’entrée.
*Programme du tableau 1
01: 60 intervalle d’exécution (secondes)
;Mesurer la sonde de température 107 :
1: Temp. (107) (P11)
1: 1 Reps
2: 1 SE Channel ;Canal SE 1 utilisé pour cet exemple
3: 1 Excite all reps w/E1 ;Excite canal1 utilisé pour cet exemple
4: 1 Loc [ Temp_C ]
(Température en Celsius)
5: 1.0 Multiplier
6: 273.15 Offset ;Cela convertit la valeur en Kelvin
;Utiliser la commande « M1! » du SDI-12 pour recevoir la distance et la qualité de signal du
SR50A
2: SDI-12 Recorder (P105)
1: 0 SDI-12 Address
2: 1 Start Measurement (aM1!)
3: 1 Port ;Utiliser les ports 5-8 pour le CR23X
4: 3 Loc [ Raw_Dist ]
(Distance brute)
5: 1.0 Multiplier
6: 0.0 Offset
;Appliquer la compensation de température d’air à la distance:
3: Z=F x 10^n (P30)
1: 273.15 F
2: 0 n, Exposant de 10
3: 5 Z Loc [ Ref_Temp ]
(Référence température)
4: Z=X/Y (P38)
1: 9 X Loc [ T_Kelvin ]
2: 5 Y Loc [ Ref_Temp ]
3: 6 Z Loc [ Mult1 ]
5: Z=SQRT(X) (P39)
1: 6 X Loc [ Mult1 ]
2: 6 Z Loc [ Mult1 ]
;On obtient la distance à la surface de neige en multipliant la correction de la température
;à la valeur de distance brute
6: Z=X*Y (P36)
1: 3 X Loc [ Raw_Dist ]
(Distance brute)
2: 6 Y Loc [ Mult1 ]
3: 7 Z Loc [ DistToSnw ]
(Distance neige)
;Régler la distance initiale en mètres à partir du SR50A jusqu’au sol :
7: Z=F x 10^n (P30)
1: 2.5 F
2: 00 n, Exponent of 10
3: 2 Z Loc [ DisToGnd ]
(Distance-sol)
8: Z=X-Y (P35)
1: 2 X Loc [ DisToGnd ]
(Distance-sol)
2: 7 Y Loc [ DistToSnw ]
(Distance-neige)
3: 8 Z Loc [ SnowDepth ]
(Profondeur-neige)
- 22 -
Capteur de mesure de distance sonore SR50A
;Sortie de données horaire
9: If time is (P92)
1: 0 Minutes (Secondes --) into a
2: 60 Interval (mêmes unités que ci-dessus)
3: 10 Set Output Flag High (Flag 0)
10: Set Active Storage Area (P80)
1: 1 Final Storage Area 1
2: 60 Array ID
11: Real TIme (P77)
1: 1220 Year,Day,Hour/Minute (midnight = 2400)
12 : Sample (P70)
1: 1 Reps.
2: 8 Loc [ SnowDepth ]
(Profondeur-neige)
;La valeur de qualité de signal du SR50A peut aussi être mémorisée sur option
13: Sample (P70)
1: 1 Reps
2: 4 Loc [ Sig_Qual ]
(Qualité de signal)
*Programme du tableau 2
02: 0.0000 Intervalle d’exécution (secondes)
*Sous-programmes du tableau 3
Fin du programme
10.2 Exemple de programmation 2
SR50AT, SDI-12 “M3!”, Enregistreur de données CR10X
;{
CR10X}
;
;Dans cet exemple, le SR50AT a été monté à une hauteur de 2,5 mètres du sol.
;
;Le CR10X transmit une commande SDI-12 au SR50AT, lequel affiche la
;valeur de distance compensée de température (en mètres),
;la valeur de qualité de signal et la température.
;
;On utilise les trois emplacements d’entrée pour stocker les données d’entrée.
*Programme du tableau 1
01: 60 Intervalle d’exécution (secondes)
;Utiliser la commande « M3! » du SDI-12 pour recevoir la distance, la qualité de signal et la température
1: SDI-12 Recorder (P105)
1: 0 SDI-12 Address
2: 3 Start Measurement (aM3!)
3: 1 Port ;Utiliser les ports 5-8 pour le CR23X
4: 3 Loc [ SR50ATDIS ]
5: 1.0 Multiplier
6: 0.0 Offset
;Régler la distance initiale en mètres à partir du SR50A jusqu’au sol:
2: Z=F x 10^n (P30)
1: 2.5 F
2: 00 n, Exponent of 10
3: 2 Z Loc [ DisToGnd ] (distance-sol)
;Soustraire la distance de la surface de neige de la distance-sol
;afin d’obtenir la profondeur de neige.
3: Z=X-Y (P35)
1: 2 X Loc [ DisToGnd ] (distance-sol)
2: 3 Y Loc [ SR50ATDIS ]
3: 6 Z Loc [ SnowDepth ] (Profondeur-neige)
- 23 -
Capteur de mesure de distance sonore SR50A
;Sortie de données horaire
4: If time is (P92)
1: 0 Minutes (Secondes --) en un
2: 60 Interval (same units as above)
3: 10 Set Output Flag High (Flag 0)
5: Set Active Storage Area (P80)
1: 1 Final Storage Area 1
2: 60 Array ID
6: Real Time (P77)
1: 1220 Year,Day,Hour/Minute (midnight = 2400)
7: Sample (P70)
1: 1 Reps
2: 8 Loc [ SnowDepth ] (Profondeur-neige)
;Mémoriser la valeur de qualité de signal
8: Sample (P70)
1: 1 Reps
2: 4 Loc [ Sig_Qual ] (Signal_Qualité)
;Mémoriser la lecture de température du SR50AT
9: Sample (P70)
1: 1 Rép.
2: 5 Loc [ SR50AT_T ]
*Programme du tableau 2
02: 0.0000 Execution Interval (secondes)
*Table 3 Subroutines
End Program
10.3 Exemple de programmation 3
SR50A, SDI-12 “M1!”, Enregistreur de données CR1000
'Enregistreur de données de la série CR1000
'Dans cet exemple, le SR50A a été monté à une hauteur de 2,5 mètres du sol.
'Le CR1000 transmet une commande 'SDI12 au SR50A,
'lequel affiche une valeur de distance brute et une qualité de signal.
'Déclarer des variables publiques :
Public SR50(2)
Alias SR50(1)=Raw_Dist
(Distance_Brute)
Alias SR50(2)=SignalQuality
(qualité de signal)
Public Temp_Corr_Distance
(Température_Correction_Distance)
Public Air_Temp
(Air_Température)
Public Snow_Depth
(Neige_Profondeur)
'Déclarer la distance initiale en mètres du SR50A jusqu’au sol:
Const Initial_Distance = 2.5
'Définir les tableaux de données :
Data Table (Tableau1,Vrai,-1)
DataInterval
Sample
End Table
(1,Snow_Depth,FP2)
- 24 -
Capteur de mesure de distance sonore SR50A
'Main Program :
BeginProg
(60,Sec,0,0)
'Mesurer le SR50A:
'Utiliser la commande « M1! » de SDI-12 pour recevoir la distance
'et la qualité de signal du SR50AT.
(SR50(),1,0,"M1!",1,0)
'Mesurer la sonde de température 107 :
Therm107
'Utiliser Air_Temp pour calculer la distance corrigée :
Temp_Corr_Distance=Raw_Dist*(SQR((Air_Temp+273.15)/273.15))
'Soustraire la distance corrigée de la distance initiale du SR50A jusqu’au sol :
Snow_Depth=Initial_Distance-Temp_Corr_Distance
Température_Distance_Corrigée)
'Call Data Table and Store Data :
Call Table (Table 1)
NextScan
EndProg
10.4 Exemple de programmation 4
SR50AT, SDI-12 “M4!”, Données de profondeur de neige,
Enregistreur de données CR1000
'Enregistreur de données de la série CR1000
'Le programme d’échantillons suivant obtient les données de profondeur de neige
'directement d’un capteur SR50AT.
'Ce programme a été écrit uniquement pour la version de SR50AT. Pour un capteur SR50A,
'on ne peut pas sortir une profondeur valide tant que l’enregistreur de données n’a pas
'passé une valeur de température au SR50A par l’intermédiaire de la commande prolongée
SDI-12.
'Déclarer les variables publiques
Public PTemp, batt_volt
Public SR50ADistanceToGround
'Une fois le SR50AT installé, il faut mettre dans ce paramètre la distance entre le SR50AT
'et le sol. Une fois le transfert réussi au SR50AT, le SR50AT mémorisera le paramètre dans la mémoire EE et gardera en mémoire la valeur même lorsqu’on débranche l’appareil.
Public NewDistanceToGround
(Nouvelle distance-sol)
Public SR50AReturnValues(3) as FLOAT
Public XtendedDistValStr as STRING * 16
Public ExtendedCMDResult as FLOAT
Alias SR50AReturnValues(1) = SR50A_SnowDepth_Meters
Alias SR50AReturnValues(2) = SR50A_QualityVal
Alias SR50AReturnValues(3) = SR50A_AirTempC
'Déclarer d’autres variables
'Exemple:
'Dim Counter
Dim SDI12commandstring as STRING * 16
'Déclarer les constantes
'Exemple:
'CONST PI = 3.141592654
- 25 -
Capteur de mesure de distance sonore SR50A
'Définir les tableaux de données
DataTable (Test,1,-1)
DataInterval
(1,batt_volt,FP2,0,False)
(1,PTemp,FP2)
Sample
Sample
(1,SR50A_AirTempC,IEEE4)
EndTable
'Programme principal
BeginProg
(60,Sec,0,0)
PanelTemp
Battery
(PTemp,250)
(Batt_volt)
'Une fois installé, entrer la distance réelle entre le SR50AT et le sol, et ce
'sans presence de neige. En cas de doute, il est préférable d’utiliser une valeur légèrement
'plus élevée qu’une valeur plus petite. Des erreurs apparaîtront dans la valeur sous d’erreurs
'de décalage dans les valeurs de profondeur de neige.
Lorsqu’on entre une nouvelle valeur pour la variable NewDistanceToGround (nouvelle
' distance-sol) (non-zéro), le code suivant transmettra cette valeur au SR50AT.
If NewDistanceToGround > 0.0 then
'Convertira la valeur à virgule flottante à une chaîne de texte pour la commande
SDI-12.
XtendedDistValStr FormatFloat (NewDistanceToGround,"%4.3f")
'Pour transmettre la valeur distance-sol (en mètres) au SR50A, la commande
étendue
'SDI-12 est comme suit :
'aXDM.MMM!- où M.MMM est la valeur, notamment 2,345 mètres
SDI12commandstring = "XM;" + XtendedDistValStr + "!"
'Transmettre la commande SDI-12 au capteur
SDI12Recorder
'Relire la valeur distance-sol dans le SR50A pour confirmer
(SR50ADistanceToGround,1,0,"R0!",1.0,0)
'Si le capteur est présent, confirmer que la valeur a été transmise correctement.
'Ne jamais utiliser plus de 3 décimaux de précision pour la nouvelle valeur.
If ExtendedCMDResult = 1.0 then
'Remettre à zéro la valeur afin de s’assurer qu’il n’y aura plus de tentative de mise à
'jour de la valeur distance-sol.
NewDistanceToGround 0.0
'Relire la valeur distance-sol à partir du SR50A pour la confirmer.
'Cette relecture n’est pas nécessaire mais recommandée
SDI12Recorder
EndIf
EndIf
'Lire la profondeur de neige à partir du SR50A, la commande « M4! » retourne la profondeur
'avec la qualité et la température
- 26 -
Capteur de mesure de distance sonore SR50A
'Appeler les tableaux de données
'Exemple:
CallTable
NextScan
EndProg
10.5 Exemple de programmation 5
SR50A, Mode RS-232, CR1000
'Enregistreur de données de la série CR1000
'Dans cet exemple, le SR50A est monté à une hauteur de 2,5 mètres du sol.
'On utilise le SR50A en mode RS-232 (les cavaliers internes sont en place).
'Le CR1000 transmet une chaîne en série au SR50A, lequel est en mode « Mesurer sur le mode d’invitation à émettre »,
'puis reçoit une chaîne en série en retour, laquelle est analysée en valeurs distinctes.
'Câblage : Noir : Mise à la terre de prise d’alimentation
' Clair : Mise à la terre de prise d’alimentation
' Rouge : +12V,
: C1
' Vert
'Déclarer les variables
'Déclarer SR50AData en tant que chaîne cotée avec un maximum de 50 caractères.
Dim SR50AData as STRING * 50
Public ParseVals(5) as FLOAT
Alias ParseVals(1)=SerialAddress
Alias ParseVals(2)=Raw_Distance
Alias ParseVals(3)=SignalQuality
Alias ParseVals(4)=Diagnostics
Alias ParseVals(5)=Chcksum
Public Temp_Corr_Distance
Public Air_Temp
Public Snow_Depth
'Déclarer la distance initiale en mètres du SR50A jusqu’au sol
Const Initial_Distance=2.5
'Définir les tableaux de données
DataTable (Table1,True,-1)
DataInterval
Sample
(0,60,Min,10)
(1,Snow_Depth,FP2)
EndTable
'Programme principal
BeginProg
'Ouvrir le port RS232 pour les communications 9600 bauds est le port implicite :
(Com1,9600,0,0,2000)
(60,Sec,0,0)
'Mesurer le SR50A:
'Transmettre la commande en série « p33<CR> »
(Com1,"p33"+chr(13),"",0,0)
'Vider la mémoire tampon en série
SerialFlush
'Recevoir une chaîne en série du SR50A
(SR50AData,Com1,200,13,50)
SplitStr (ParseVals,SR50AData,"",5,0)
'Mesurer la sonde de température 107 :
- 27 -
Capteur de mesure de distance sonore SR50A
'Utiliser Air_Temp (température d’air) pour calculer la distance corrigée :
Temp_Corr_Distance=Raw_Distance*(SQR((Air_Temp+273.15)/273.15))
'Soustraire la distance corrigée de la distance initiale du SR50A jusqu’au sol :
Snow_Depth=Initial_Distance - Temp_Corr_Distance
'Appeler le tableau de données et stocker les données :
(Table1)
NextScan
EndProg
10.6 Exemple de programmation 6
SR50AT, mode RS-23, CR1000
'Enregistreur de données de la série CR1000
'Dans cet exemple, le SR50A est monté à une hauteur de 2,5 mètres du sol.
'On utilise le SR50A en mode RS-232 (les cavaliers internes sont en place).
'Le CR1000 transmet une chaîne en série au SR50A, lequel est en mode « Mesurer sur le mode d’invitation à émettre »,
'puis reçoit une chaîne en série en retour, laquelle est analysée en valeurs distinctes.
'Câblage : Noir : Mise à la terre de prise d’alimentation
' Clair : Mise à la terre de prise d’alimentation
' Rouge : +12V,
' Vert
'Déclarer les variables
'Déclarer SR50AData en tant que chaîne cotée avec un maximum de 50 caractères.
Dim SR50AData as STRING * 50
Public ParseVals(6) as FLOAT
Alias ParseVals(1)=SerialAddress
Alias ParseVals(2)=Dist_To_Snow
Alias ParseVals(3)=SignalQuality
Alias ParseVals(4)=SR50AT_Temp
Alias ParseVals(5)=Diagnostics
Alias ParseVals(6)=Chcksum
Public Snow_Depth
'Déclarer la distance initiale en mètres du SR50AT jusqu’au sol :
Const Initial_Distance=2.5
'Définir les tableux de données
DataTable (Table1,True,-1)
DataInterval
(1,Snow_Depth,FP2)
EndTable
'Programme principal
BeginProg
'Ouvrir le port RS232 pour les communications 9600 bauds est le port implicite :
(Com1,9600,0,0,2000)
(10,Sec,0,0)
'Mesurer le SR50A:
'Transmettre la commande en série « p33<CR> »
SerialOut
'Vider la mémoire tampon en série
(Com1)
- 28 -

Öffentlicher Link aktualisiert
Der öffentliche Link zu Ihrem Chat wurde aktualisiert.