Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Technologie industrielle

Conversion des bases de données du Datalogger PLCnext natif en fichiers CSV

L'enregistrement des valeurs d'une application industrielle est une caractéristique principale pour de nombreux clients et, dans certaines applications, le nombre de variables peut être très élevé. Il est donc nécessaire de disposer d'un moyen natif et simple de configurer cet enregistrement de données.

Ci-dessous, nous allons plonger dans le composant natif du service d'enregistrement de données et voir comment nous pouvons générer un fichier CSV à partir de ce service.


Vous pouvez trouver plus d'informations sur les composants du Datalogging Service dans ces liens :

Une fois que vous avez configuré les sessions Datalogging, vous aurez un fichier *.db contenant toutes vos valeurs enregistrées des variables. Ce fichier *.db est un fichier de base de données mais ce format nécessite un outil comme Sqlite3 ou un navigateur de base de données si nous voulons parcourir les valeurs.

Beaucoup de clients connaissent déjà les fichiers *.csv donc nous allons voir comment faire un export de cette base de données dans un fichier csv. L'outil Sqlite3 présent dans chaque contrôleur PLCnext fournit tous les outils nécessaires pour effectuer cette exportation.

Lorsque la base de données est créée, nous pouvons définir le nom que nous voulons pour la base de données, mais nous ne pouvons pas définir un nom spécifique pour la table présente dans la base de données contenant les valeurs. Heureusement l'outil Sqlite3 peut nous aider en affichant les tables présentes dans la base de données, avec la commande "Sqlite3 .tables".
Vous pouvez trouver toutes les commandes spécifiques dans la page d'aide de Sqlite3 ou dans cette page :Sqlite3.

Lorsque nous connaissons le nom de la table, nous pouvons sélectionner toutes les données de cette table et exporter ces données dans un fichier csv.

Pour faciliter un peu le processus, je vais vous lier deux scripts pour faire un export depuis une base de données.
Vous pouvez bien sûr adapter le script à vos besoins !

Malheureusement, nous ne pouvons pas télécharger les fichiers *.sh. Vous trouverez donc ci-dessous le contenu des deux fichiers.

Tout d'abord, le fichier pour le format d'horodatage ISO8601 :

ExportSQL2CSV_ISO.sh
#!/bin/bash

name_of_database="${1:?Missing database}"
name_of_database_no_ext=${name_of_database::-3}

#Get the name of the table
name_of_table=$(sqlite3 $name_of_database .ta)

#Get the DateTime of the first entry to name the output file
DateTime=$(sqlite3 $name_of_database "SELECT strftime('%Y_%m_%d_%H_%M_%S',Timestamp) from $name_of_table limit 1;")

#Create the filename
output_filename=${name_of_database_no_ext}_${DateTime}.csv

#Make the export to the csv file
sqlite3 -header -csv -separator ";" $name_of_database "SELECT * from $name_of_table;"\
> $output_filename

Et le deuxième fichier pour le format RAW Timestamp :

ExportSQL2CSV_RAW.sh
#!/bin/bash

name_of_database="${1:?Missing database}"
name_of_database_no_ext=${name_of_database::-3}

#Get the name of the table
name_of_table=$(sqlite3 $name_of_database .ta)

#Get the DateTime of the first entry to name the output file
DateTime=$(sqlite3 $name_of_database "SELECT strftime('%Y_%m_%d_%H_%M_%S',(Timestamp - 4611686018427387904)/10000000 - 62135596800,'unixepoch') from $name_of_table limit 1;")

#Create the filename
output_filename=${name_of_database_no_ext}_${DateTime}.csv

#Make the export to the csv file
sqlite3 -header -csv -separator ";" $name_of_database "SELECT \
strftime('%Y-%m-%d %H:%M:%f',(Timestamp - 4611686018427387904)/10000000 - 62135596800,'unixepoch') AS Time,\
* from $name_of_table;"\
> $output_filename

Comme ces fichiers seront des scripts, n'oubliez pas d'ajouter le drapeau exécutable sur le fichier :

chmod +x ExportSQL2CSV_*.sh

Ensuite, nous pouvons appeler le script. Voici l'appel du script :

./ExportSQL2CSV_ISO.sh <PathToDatabase>

Lorsque le script est terminé, vous trouverez un fichier CSV avec le nom de votre base de données et le DateTime de la première entrée de la base de données comme suit :

Vous avez maintenant un fichier CSV avec toutes les données que vous avez enregistrées à l'aide des composants natifs du service DataLogger.

Vous pouvez aller encore plus loin en automatisant la création de ce fichier toutes les heures ou tous les jours avec l'outil cron .

Si vous avez des questions ou des remarques, n'hésitez pas à nous contacter !


Technologie industrielle

  1. L'interface de ligne de commande
  2. Gestion des fichiers C
  3. C - Fichiers d'en-tête
  4. De CM à EMS à MSP :l'évolution d'une industrie
  5. COVID-19 a mis l'impression 3D sous les projecteurs
  6. Comment tirer le meilleur parti de mon investissement dans la génération de prospects ?
  7. Les 4 industries qui bénéficient le plus du machine learning
  8. L'intégration de la norme ISO 9001 dans la stratégie des industriels
  9. Qu'est-ce qu'un fichier Mill ?