Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Industriële technologie

Omzetten van de databases van de native PLCnext Datalogger naar CSV-bestanden

Het loggen van waarden van een industriële applicatie is een hoofdkenmerk voor veel klanten, en in sommige applicaties kan het aantal variabelen erg hoog zijn, dus een native en gemakkelijke manier om deze datalogging te configureren is vereist.

Hieronder duiken we in de native Datalogging Service Component en kijken we hoe we een CSV-bestand van deze service kunnen genereren.


Meer informatie over de onderdelen van de Datalogging Service vindt u via deze links:

  • De datalogger configureren en gebruiken van OPC UA Historical Access
  • Real-time datalogger – PLCnext Info Center

Als je de Datalogging-sessies hebt geconfigureerd, heb je een *.db-bestand met al je gelogde waarden van de variabelen. Dit *.db-bestand is een databasebestand, maar dit formaat heeft een tool zoals Sqlite3 of een DB-browser nodig als we door de waarden willen bladeren.

Veel klanten zijn al bekend met de *.csv-bestanden, dus we zullen zien hoe we deze database kunnen exporteren naar een csv-bestand. De Sqlite3-tool die in elke PLCnext-controller aanwezig is, biedt alle benodigde tools om deze export te maken.

Wanneer de database is gemaakt, kunnen we de gewenste naam voor de database instellen, maar we kunnen geen specifieke naam instellen voor de tabel in de database die de waarden bevat. Gelukkig kan de Sqlite3-tool ons helpen door de tabellen in de database te tonen, met het commando "Sqlite3 .tables".
Je kunt alle specifieke commando's vinden op de helppagina van Sqlite3 of op deze pagina:Sqlite3.

Als we de naam van de tabel weten, kunnen we alle gegevens uit deze tabel selecteren en deze gegevens exporteren naar een csv-bestand.

Om het proces een beetje te vergemakkelijken, zal ik je twee scripts koppelen om een ​​export uit een database te maken.
Natuurlijk kunt u het script aanpassen aan uw behoeften!

Helaas kunnen we geen *.sh-bestanden uploaden, dus hieronder vindt u de inhoud van de twee bestanden.

Eerst het bestand voor het ISO8601 Timestamp-formaat:

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

En het tweede bestand voor het RAW Timestamp-formaat:

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

Aangezien deze bestanden scripts zijn, vergeet niet de uitvoerbare vlag aan het bestand toe te voegen:

chmod +x ExportSQL2CSV_*.sh

Dan kunnen we het script aanroepen. Hier is de oproep van het script:

./ExportSQL2CSV_ISO.sh <PathToDatabase>

Wanneer het script klaar is, vindt u een CSV-bestand met de naam van uw database en de DateTime van de eerste invoer van de database, zoals het volgende:

U hebt nu een CSV-bestand met alle gegevens die u hebt vastgelegd met de native DataLogger-servicecomponenten.

U kunt nog verder gaan door het aanmaken van dit bestand elk uur of elke dag te automatiseren met de tool cron .

Als je vragen of opmerkingen hebt, neem dan gerust contact met ons op!


Industriële technologie

  1. De opdrachtregelinterface
  2. C Bestandsverwerking
  3. C - Koptekstbestanden
  4. Van CM naar EMS naar MSP:de evolutie van een industrie
  5. COVID-19 heeft 3D-printen in de schijnwerpers geduwd
  6. Hoe haal ik het meeste uit mijn leadgeneratie-investering?
  7. De 4 industrieën die het meest profiteren van machine learning
  8. De integratie van de ISO 9001-norm in de strategie van fabrikanten
  9. Wat is een Mill-bestand?
  10. Statische bestanden weergeven met Go
  11. Gebruik de IXMLSerializable-interface om een ​​klasse uit een XML-bestand te vullen