Comment stocker les données d'une centrale de mesure sur une carte mémoire

par Carolyn Ivans | Mis à jour le : 06/22/2016 | Commentaires : 5

Les thèmes principaux du Blog


Recherche sur le Blog


Langages du blog

English
Français (French)


Abonnez-vous au Blog

Recevez un courriel lorsqu'un nouvel article est posté. Choisissez les sujets qui vous intéressent le plus.


Entrez votre adresse courriel :



Suggérer un article

Y a-t-il un sujet que vous souhaiteriez nous voir aborder ? Laissez-nous un message.

Leave this field empty

Centrale de mesure et carte microSD

Vous avez besoin d'ajouter de la mémoire externe pour vos données, à votre centrale de mesure en utilisant des cartes mémoire flash. Mais connaissez-vous l'instruction CRBasic à utiliser pour le faire ? Dans cet article, je vais vous aider à choisir l'instruction la plus adaptée à votre application. Dans un prochain article, je discuterais de certaines questions plus complexes et vous donnerez des conseils et des astuces.

Si vous n'êtes pas familier avec les cartes mémoire, vous trouverez peut-être utile de relire l'article du blog "Pourquoi utiliser et comment choisir une carte mémoire".

Comment puis-je stocker des données sur une carte mémoire ?

Il y a deux instructions de base qui sont couramment utilisésafin d'écrire les données des tables d'une centrale de mesure sur une carte mémoire :

  1. L'instruction CardOut()
  2. L'instruction TableFile()avec l'Option 64

Ces instructions sont ajoutées entre les instructions DataTable()et EndTable(), comme cela est indiqué dans les exemples plus loin dans cet article. Notez que vous ne pouvez pas utiliser à la fois CardOut() and TableFile() Option 64 dans la même table de données. Vous devez choisir quelle instruction est le mieux pour vous. Alors, pourquoi y a t-il deux instructions pour stocker des données sur une carte ? Y-at-il une méthode meilleure que l'autre?

Avant de répondre à ces questions, il est important de comprendre que la taille maximale d'un fichier stocké sur une centrale de mesure est de 2 Go. En effet, le datalogger supporte nativement des entiers signés de 4 octets. Ce type de données peut représenter un nombre aussi grand que 231, ou en termes d'octets, soit environ 2 Go. Par conséquent, 2 Go est la longueur maximale de fichier, qui peut être représenté dans la table de répertoire de la centrale de mesure, et par conséquent, qui est la taille maximale du fichier.

Partially because of this file size limitation, and also due to the high cost of large memory cards, Campbell Scientific dataloggers did not support memory cards larger than 2 GB prior to operating system (OS) 25 in the CR1000 or CR3000. However, as demands for high-frequency data and greater data storage grew, support for cards up to 16 GB was added to the datalogger operating system.

Le support pour les cartes de plus de 2 Go présenté une énigme. Comment pouvons-nous écrire plus de 2 Go de données sur une carte si la taille maximale d'un fichier final de stockage est de 2 Go ? La solution a été fournie par l'ajout d'une nouvelle option (Option 64) à l'instruction TableFile(), qui permet de stocker plus de fichier à partir du même tableau de données. Par conséquent, de nombreux petits fichiers peuvent être créés à partir de la même table de données, permettant ainsi le stockage final jusqu'à 16 Go de données d'un tableau de données.

Donc, avant OS 25, seule l'instruction CardOut() était disponible pour stocker des données sur une carte, et un seul fichier peut être créé pour chaque table de données. Cependant, avec OS 25 et plus tard, TableFile() Option 64 est également disponible pour stocker plus d'un fichier pour une table de données sur une carte.

Y a-t-il une méthode d'écriture de données sur une carte mieux que l'autre ?

Un avantage de l'instruction CardOut() est qu'il est très simple de l'ajouter à votre programme. Plus d'informations sur l'instruction CardOut() sont disponibles dans les fichiers d'aide éditeur CRBasic.

Dans de nombreuses applications, cependant, l'instruction TableFile()  avec l'Option 64 présente plusieurs avantages par rapport à l'instruction CardOut(). Ces avantages comprennent :

  • Permettre d'écrire plusieurs petits fichiers à partir de la même table de données afin que le stockage d'une seule table puisse dépasser 2 Go. The TableFile() instruction controls the size of its output files through the NumRecsTimeIntoInterval, and Interval parameters. L'instruction TableFile() contrôle la taille de ses fichiers de sortie à travers les paramètres NumRecsTimeIntoInterval et Interval .
  • Temps de compilation plus rapide, lorsque de petites tailles de fichiers sont spécifiés
  • Récupération facile des dossiers fermés via l'utilitaire de contrôle de fichiers, FTP ou e-mail
  • Les dossiers fermés sont des fichiers sécurisés. Chaque fois qu'un fichier est ouvert pour l'écriture, il peut être endommagé en cas de perte de courant ou si l'écriture est interrompue pour une raison quelconque. TableFile() Option 64 va fermer les fichiers à l'heure programmée ou à l'intervalle d'enregistrement. Une fois que ces fichiers sont fermés, ils sont à l'abri de ce type de corruption.

Exemple de programme avec l'instruction CardOut()


Public batt_volt
DataTable (Test,1,1000)
	DataInterval (0,15,Sec,10)
	CardOut (0,-1)
	Sample (1,batt_volt,FP2)
EndTable
BeginProg
	Scan (1,Sec,0,0)
		Battery (batt_volt)
		CallTable Test
	NextScan
EndProg

Exemple de programme avec l'instruction TableFile() 


Public batt_volt, OutStat As Boolean, LastFileName As String * 32
DataTable (Test,1,1000)
	DataInterval (0,15,Sec,10)
	TableFile ("CRD:Test_",8,10,0,1,Min,OutStat,LastFileName)
	Sample (1,batt_volt,FP2)
EndTable
BeginProg
	Scan (1,Sec,0,0)
		Battery (batt_volt)
		CallTable Test
	NextScan
EndProg

Recommandé pour vous : Pour en apprendre d'avantage sur l'instruction TableFile() avec l'Option 64, consulter “la note technique ''A Better Way to Write High-Frequency Data to 16 GB and Smaller CF Cards”.

Collecte et accès aux données

Les fichiers CardOut() sont ouverts pour l'écriture aussi longtemps que l'instruction CardOut() est en cours d'exécution et sont donc toujours disponibles pour la collecte de données à distance. Avec TableFile() Option 64, le fichier le plus récent est ouvert et disponible pour la collecte à distance. Aprèsle fichier est fermé, les données ne sont accessibles que par la première récupération du fichier (par exemple, via le fichier utilitaire de contrôle, FTP, e-mail ou copie des fichiers de la carte).

Pour les deux instructions CardOut() et TableFile() Option 64, les fichiers ouverts sur la carte deviennent une extension de la mémoire de la table. A n'importe quel moment toutes les données sont récupérées via l'utilitaire Collect ou Custom Collect de LoggerNet, PC400 ou RTDAQ, la SRAM interne est recherchée d'abord, puis la carte. Si un fichier se trouve sur la carte avec le même nom et le fichier en-tête que la table de données dans la mémoire interne, les données de la carte sont ajoutées à ce fichier.

Note: Pour être considérés comme identiques, le fichier doit avoir été créé sur la même centrale de mesure en utilisant le même programme.

Vous pouvez afficher vos données de carte de mémoire à l'aide du logiciel de support d'enregistrement de données, telles que View Pro une application client Pro le package logiciel LoggerNet. Vous pouvez également accéder à vos données de carte de mémoire à travers le programme du datalogger en utilisant la syntaxe d'accès de la table de données telles que TableName.FieldName. (Reportez-vous au fichier d'aide de l'éditeur CRBasic.)

Recommandé pour vous : Pour de plus amples informations, Lire l'article du blog "How to Programmatically Access Stored Data Values".

Logiciel CardConvert

A noter que pour les deux CardOut() et TableFile() Option 64, les données sont stockées sur la carte au format TOB3. TOB3 est un format binaire qui intègre des fonctionnalités pour améliorer la fiabilité des cartes CF. le format TOB3 est différent des formats de fichiers de données créées lorsque les données sont collectées via une liaison de communication, qui est le format de TOA5 ou ASCII. Par conséquent, les fichiers de données qui sont lus directement à partir de la carte CF sont à convertir dans un autre format pour être lisible par l'utilisateur. Vous pouvez convertir des fichiers de TOB3 à TOA5 ou d'autres formats en utilisant le logiciel CardConvert qui est inclus dans LoggerNet, PC400 et PC200W.

Conclusion

J'espère que cet article vous a aidé à comprendre combien il est facile d'ajouter une instruction CardOut() ou TableFile() à un programme CRBasic qui dirigera votre enregistreur pour stocker des données sur une carte mémoire. (Pour plus de détails sur chacune de ces instructions, consultez les fichiers d'aide de l'éditeur CRBasic.) Dans un prochain article, je vais répondre à certaines questions sur les cartes plus complexes et vous donner des conseils.

Si vous avez des questions sur les cartes mémoire, n'hésitez pas à les poster ci-dessous.