Comment superviser l'utilisation des données de votre modem cellulaire Campbell : Partie 1

par Nathanael Wright | Mis à jour le : 01/16/2019 | Commentaires : 0

Mots clés :

CR1000X CR300 CR310 CR6 M2M

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

La centrale de mesure CR310-CELL210 avec une page de code CRBasic

Saviez-vous que vous pouvez gérer l'utilisation des données à l'aide du code du programme CRBasic sur nos nouvelles centrales d'acquisition de données avec modems cellulaires intégrés et nos modules cellulaires externes de la marque Campbell Scientific ? Dans cette série en deux parties, je vais d'abord vous montrer comment faire cela en utilisant le code CRBasic d'une CR310-CELL210. Ce code fonctionne pour tous les modèles de centrales de mesure de la série CR300 équipés d'un modem cellulaire intégré. Il fonctionnera également pour nos modules cellulaires externes CELL2XX lorsque vous les utilisez avec les enregistreurs de données CR300, CR310, CR6, ou CR1000X. Notez les exigences de compatibilité du système d'exploitation des centrales de mesure ci-dessous :

Regard vers l'avenir : Dans le deuxième article de cette série, je vous montrerai comment gérer l'utilisation de vos données à l'aide de commandes série avec nos modules cellulaires externes de la série CELL2XX utilisant les centrales de mesure CR800, CR850, CR1000, ou CR3000.

Le contexte général

Les centrales de mesure CR300, CR310, CR1000X et CR6 enregistrent l'utilisation des données cellulaires, qui peuvent être utilisées dans vos programmes d'enregistreur de données pour désactiver les interfaces et exécuter une variété de fonctions. Ces valeurs sont déjà enregistrées dans un tableau Paramètres (Settings) masqués sous certains des noms de champs suivants :

Settings.CellUsageToday
Settings.CellUsageYesterday
Settings.CellUsageMonth
Settings.CellUsageLastMonth

L'enregistrement de ces données est aussi simple que l'ajout des valeurs à une DataTable CRBasic, comme indiqué ci-dessous :

DataTable(CELL_DIAGNOSTICS, True, -1)
	Sample(1, Settings.CellUsageToday, FP2)
	Sample(1, Settings.CellUsageYesterday, FP2)
	Sample(1, Settings.CellUsageMonth, FP2)
	Sample(1, Settings.CellUsageLastMonth, FP2)
EndTable

Étapes pour le contrôle et l'affichage des variables 

Pour plus d'options permettant de contrôler les variables et la façon dont elles sont affichées, suivez le processus en quatre étapes décrit ci-dessous.

#1 - Déclarer les variables et définir les unités

Pour commencer à gérer l'utilisation de vos données à l'aide du code CRBasic, commencez par déclarer votre ou vos variables et affectez des unités à ces variables. Dans mon exemple ci-dessous, j'utilise "cell_todays_usage", "cell_yesterdays_usage", "cell_this_months_usage" et "cell_last_months_usage".

Public cell_todays_usage
Public cell_yesterdays_usage
Public cell_this_months_usage
Public cell_last_months_usage

Units cell_todays_usage = KB
Units cell_yesterdays_usage = KB
Units cell_this_months_usage = KB
Units cell_last_months_usage = KB

#2 - Créer une DataTable (table de données)

Si vous souhaitez stocker les informations d'utilisation dans une DataTable, créez une nouvelle DataTable ou ajoutez les valeurs à une DataTable existante. Ci-dessous, l'exemple est inclus avec des options supplémentaires pour l'utilisation d'hier (yesterday), l'utilisation de ce mois-ci (this month) et l'utilisation du mois dernier (last month) : 

DataTable(CELL_DIAGNOSTICS, True, -1)
	Sample(1, cell_todays_usage, FP2)
	Sample(1, cell_yesterdays_usage, FP2)
	Sample(1, cell_this_months_usage, FP2)
	Sample(1, cell_last_months_usage, FP2)
EndTable

#3 - Définissez la ou les variable(s) déclarée(s)

Dans votre séquence Scan(), définissez la ou les variable(s) que vous avez déclarées égales à Settings.CellUsageToday ou aux autres valeurs d'utilisation des données indiquées ci-dessous. En utilisant vos variables, vous pouvez les comparer à des instructions conditionnelles pour programmer le comportement de votre enregistreur.

cell_todays_usage = Settings.CellUsageToday
cell_yesterdays_usage = Settings.CellUsageYesterday
cell_this_months_usage = Settings.CellUsageMonth
cell_last_months_usage = Settings.CellUsageLastMonth

#4 - Ecrivez vos valeurs dans une table.

Si vous enregistrez vos données dans une table, assurez-vous que vous écrivez vos valeurs en utilisant l'instruction CallTable(). Pour éviter d'interrompre la lecture de nos autres capteurs pendant le fonctionnement normal du programme, j'ai placé mon instruction CallTable() dans une SlowSequence. (Ceci est plus pertinent si vous utilisez un plus grand nombre de commandes que ce que nous utilisons dans cet exemple et peut ne pas être nécessaire dans votre situation.) Assurez-vous d'utiliser l'instruction CallTable() si vous enregistrez les valeurs.

SlowSequence
	Scan (10, Min, 0, 0)
		cell_todays_usage = Settings.CellUsageToday
		cell_yesterdays_usage = Settings.CellUsageYesterday
		cell_this_months_usage = Settings.CellUsageMonth
		cell_last_months_usage = Settings.CellUsageLastMonth
      		CallTable CELL_DIAGNOSTICS
	NextScan

Exemple de programme final

Une fois les étapes franchies, votre programme devrait ressembler à celui-ci :

'Declare Public Variables
Public battery_voltage
Public panel_temperature_c

'cell modem diagnostics information
Public cell_todays_usage      : Units cell_todays_usage = KB
Public cell_yesterdays_usage  : Units cell_yesterdays_usage = KB
Public cell_this_months_usage : Units cell_this_months_usage = KB
Public cell_last_months_usage : Units cell_last_months_usage = KB

DataTable(CELL_DIAGNOSTICS, True, -1)
	Sample(1, Settings.CellUsageToday, FP2)
	Sample(1, Settings.CellUsageYesterday, FP2)
	Sample(1, Settings.CellUsageMonth, FP2)
	Sample(1, Settings.CellUsageLastMonth, FP2)
EndTable

DataTable(TEST_DATA, True, -1)
	DataInterval(0, 5, Min, 10)
	Minimum(1, battery_voltage, FP2, True, False)
	Sample(1, panel_temperature_c, FP2)
EndTable

'Main Program
BeginProg
		Scan (1,Sec,0,0)
			PanelTemp (panel_temperature_c,60)
			Battery (battery_voltage)
			CallTable TEST_DATA
		NextScan
	
	SlowSequence
 		Scan (10, Min, 0, 0)
			cell_todays_usage = Settings.CellUsageToday          'reported in KB
			cell_yesterdays_usage = Settings.CellUsageYesterday  'reported in KB
			cell_this_months_usage = Settings.CellUsageMonth     'reported in KB
			cell_last_months_usage = Settings.CellUsageLastMonth 'reported in KB
      
				CallTable CELL_DIAGNOSTICS
		NextScan
	EndSequence
EndProg

Plus de valeurs que vous pouvez utiliser 

D'autres valeurs concernant le modem cellulaire intégré sont disponibles que vous pouvez utiliser. Vous trouverez ci-dessous une liste restreinte :

Settings.CellRSSI 'read RSSI (signal strength) from tower
Settings.CellUsageToday		'usage reported in KB
Settings.CellUsageYesterday	'usage reported in KB
Settings.CellUsageMonth		'usage reported in KB
Settings.CellUsageLastMonth	'usage reported in KB
Settings.CellInfo	'Cell Info. The information that shows in DevConfig's Cellular Network Status field.
Settings.CellStatus	'Status of the cellular modem.
Settings.CellRSRP	'Reference signal received power for LTE in dbm.
Settings.CellECIO	'Reference signal received quality for 3G.
Settings.CellRSRQ	'Reference signal received quality for 4G.
Settings.CellState	'State that the modem is in. "Network ready." Lets me know my modem is good to go. 
CellState can be the following (but not limited to):
				'"Power off.",
				'"Powering up.",
				'"Powered up.",
				'"SIM authorized.",
				'"Setting baud rate.",
				'"Waiting for baud rate.",
				'"Baud rate set.",
				'"Baud rate failure.",
				'"Power off. Waiting for retry.",
				'"Powered up. SIM auth failure.",
				'"Querying modem.",
				'"Waiting for network registration.",
				'"Configuring modem.",
				'"Dialing.",
				'"Dialing (retry).",
				'"Dialed.",
				'"PPP negotiation.",
				'"Network ready.",
				'"PPP closing.",
				'"PPP paused.",
				'"PPP dropped.",
				'"Terminal AT command mode.",
				'"Firmware update mode.",
				'"Shutting down."

Vous pouvez télécharger CR3XX Settings example program qui utilise ces informations.

Conclusion

Vous pouvez piloter et programmer les fonctions de contrôle dans votre centrale de mesure en fonction de l'utilisation des données et d'autres valeurs associées aux modems cellulaires internes et externes de Campbell Scientific. Les options disponibles incluent : Settings.CellUsageToday, Settings.CellUsageYesterday, Settings.CellUsageMonth, et Settings.CellUsageLastMonth.

Remerciements : Tous mes exemples de code sont dérivés du code créé par Gary Roberts, chef de produit sur les communications et les produits logiciels de Campbell Scientific, Inc.

J'espère que vous avez trouvé cet exemple de programme utile. Essayez d'utiliser le code pour avoir des informations pratiques sur le modem et affichez un commentaire ci-dessous au sujet de votre expérience. Aussi, postez toutes les questions que vous pourriez avoir.

N'oubliez pas : Dans l'article suivant, nous explorerons l'utilisation des commandes série avec nos modules externes de la série CELL2XX en utilisant les centrales de mesure CR800, CR850, CR1000, et CR3000.


Partagez cet article



A propos de l'auteur

nathanael wright Nathanael Wright est ingénieur d'application chez Campbell Scientific, Inc. Il fournit un soutien technique pour les centrales d'acquisition de données, les instruments et l'équipement de communication. Nathanael est titulaire d'un baccalauréat en informatique et en administration des affaires et d'une maîtrise en administration des affaires. De plus, Nathanael a plus de 10 ans d'expérience dans le domaine des communications IP. En dehors du travail, il aime danser, faire de la randonnée, publier des livres et jouer avec l'équipement informatique.

Voir tous les articles de cet auteur.


Commentaires

Please log in or register to comment.