PLCnext Datalogger Data Exporteren naar CSV: Stapsgewijze Handleiding
Het loggen van waarden uit een industriële toepassing is een hoofdkarakteristiek voor veel klanten, en in sommige toepassingen kan het aantal variabelen echt 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 bekijken hoe we een CSV-bestand kunnen genereren vanuit deze service.
U kunt meer informatie vinden over de Datalogging Service componenten in deze links:
- Datalogger configureren en gebruiken vanuit OPC UA Historical Access
- Real-Time Datalogger – PLCnext Info Center
Zodra u de Datalogging sessies hebt geconfigureerd, heeft u een *.db bestand met al uw 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 de waarden willen bekijken.
Veel klanten zijn al bekend met *.csv bestanden, dus we zullen kijken hoe we een export van deze database naar een csv-bestand kunnen maken. Het Sqlite3-tool dat in elke PLCnext controller aanwezig is, biedt alle benodigde tools om deze export te maken.
Wanneer de database wordt aangemaakt, kunnen we de naam instellen die we willen voor de database, maar we kunnen geen specifieke naam instellen voor de tabel in de database die de waarden bevat. Gelukkig kan het Sqlite3-tool ons helpen door de tabellen in de database weer te geven, met het commando "Sqlite3 <NaamVanDatabase> .tables". U vindt alle specifieke commando's in de help-pagina van Sqlite3 of op deze pagina: Sqlite3.
Wanneer we de naam van de tabel weten, kunnen we alle gegevens uit deze tabel selecteren en exporteren naar een csv-bestand.
Om het proces iets te vergemakkelijken, link ik u twee scripts om een export vanuit een database te maken. Natuurlijk kunt u het script aanpassen voor 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 Tijdstempel formaat:
ExportSQL2CSV_ISO.sh
#!/bin/bash
name_of_database="${1:?Missing database}"
name_of_database_no_ext=${name_of_database::-3}
# Krijg de naam van de tabel
name_of_table=$(sqlite3 $name_of_database .ta)
# Krijg de DateTime van de eerste entry om de output bestandsnaam te maken
DateTime=$(sqlite3 $name_of_database "SELECT strftime('%Y_%m_%d_%H_%M_%S',Timestamp) from $name_of_table limit 1;")
# Maak de bestandsnaam
output_filename=${name_of_database_no_ext}_${DateTime}.csv
# Maak de export naar het csv bestand
sqlite3 -header -csv -separator ";" $name_of_database "SELECT * from $name_of_table;"\
> $output_filename
En het tweede bestand voor het RAW Tijdstempel formaat:
ExportSQL2CSV_RAW.sh
#!/bin/bash
name_of_database="${1:?Missing database}"
name_of_database_no_ext=${name_of_database::-3}
# Krijg de naam van de tabel
name_of_table=$(sqlite3 $name_of_database .ta)
# Krijg de DateTime van de eerste entry om de output bestandsnaam te maken
DateTime=$(sqlite3 $name_of_database "SELECT strftime('%Y_%m_%d_%H_%M_%S',(Timestamp - 4611686018427387904)/10000000 - 62135596800,'unixepoch') from $name_of_table limit 1;")
# Maak de bestandsnaam
output_filename=${name_of_database_no_ext}_${DateTime}.csv
# Maak de export naar het csv bestand
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
Omdat deze bestanden scripts zijn, vergeet niet de executable flag toe te voegen aan het bestand:
chmod +x ExportSQL2CSV_*.sh
Dan kunnen we het script aanroepen. Hier is de aanroep van het script:
./ExportSQL2CSV_ISO.sh <PadNaarDatabase>
Wanneer het script klaar is, vindt u een CSV-bestand met de naam van uw database en de DateTime van de eerste entry van de database zoals het volgende:
U heeft nu een CSV-bestand met alle gegevens die u heeft vastgelegd met de native DataLogger Service Componenten.
U kunt nog verder gaan door de creatie van dit bestand elk uur of elke dag te automatiseren met het tool cron.
Als u vragen of opmerkingen heeft, aarzel niet om contact met ons op te nemen!
Industriële technologie
- De Command-Line Interface Gebruiken met SPICE
- Van CM naar EMS naar MSP: De Evolutie van Elektronica-fabricage Traceren
- COVID-19 Benadrukt de Cruciale Rol van 3D-Printen in de Gezondheidszorg
- ROI van uw leadgeneratie-investering maximaliseren
- Top 4 industrieën gerevolutioneerd door Machine Learning
- ISO 9001 integreren in productiestrategie: kwaliteit en groei drijven
- Statische Bestanden Moeiteloos Serveren met Go: Een Bewezen Aanpak
- C++ Klasse Vullen vanuit XML met IXMLSerializable in PLCnext
- Wat Is Een Schruif? Uw Complete Gids voor Het Essentiële Hout- en Metaalbewerkingsgereedschap
- C Bestandsbehandeling: I/O onder de knie krijgen met fopen, fprintf, fread en fseek
- C Header-bestanden begrijpen: Typen, gebruik en best practices