DATALOGGER LIGHT - uproszczona wersja biblioteki Datalogger WAGO
Ponieważ projekty jakie realizujemy dla naszych Klientów na sterownikach PLC WAGO serii PFC są coraz bardziej rozbudowane, postanowiliśmy zoptymalizować użycie jednej z podstawowych funkcjonalności jaką jest logowanie danych pomiarowych do plików CSV. Prezentowane rozwiązanie jest to mocno odchudzona funkcjonalnie wersja Dataloggera WAGO - napisana całkowicie od podstaw przez nas. Brak jest tutaj jakichkolwiek wodotrysków typu wizualizacje itp. itd. Interesował nas surowy zapis danych do plików CSV w formacie akceptowanym przez Dataplotter WAGO. Biblioteka miała zajmować jak najmniej miejsca w sterowniku i umożliwiać uruchomienie dużej liczby instancji z interwałem cyklicznego zapisu ustawionym na 1s.
Zachowana została możliwie największa kompatybilność z nomenklaturą oryginalnego Dataloggera. W ten sposób ktoś kto już korzystał z Dataloggera nie będzie miał żadnych problemów z użyciem naszej biblioteki. Małym wyjątkiem jest konfiguracja automatycznych prefixów / sufixów nazw generowanych plików w oparciu o bieżącą datę - zrobiliśmy to zupełnie inaczej niż WAGO.
Funkcjonalność:
- zapis do 80 kanałów pomiarowych
- dane zapisywane są na karcie SD
- zapis cykliczny lub na zewnętrzne zdarzenia
- możliwość synchronizacji zapisu z zewnętrznym dostępem do dysku z poziomu programu użytkownika
- automatyczne dzielenie plików po przekroczeniu rozmiaru 25MB
- automatyczne dodawanie prefixu / sufixu do nazwy tworzonych plików zgodnie z formatem zdefiniowanych przez użytkownika:
- YYYY
- YYYY MM
- YYYY MM DD
- YYYY MM DD HH
Zgodnie z zaleceniami WAGO wszelkie "czasożerne" operacje takie jak np. zapis plików powinny być wywoływane na tasku z priorytetem 15. W zależności od jakości zastosowanej karty SD nie powinno być problemu z jednoczesnym uruchomieniem 30 instancji Datalogger Light z interwałem zapisu 1s. Oczywiście mowa tutaj o gwarantowanym zapisie co 1s. Dla większej ilości instancji zapis na kartę nadal będzie się poprawnie odbywać, jednak nie zdołamy uzyskać znaczników czasowych co 1s. Możemy przejść na wyższy priorytet tasku, co przyczyni się na zwiększenie szybkości operacji, ale należy pamiętać, żeby task dostepu do dysku miał priorytet najniższy ze wszystkich pracujących tasków.
DataloggerLight + FileDirCleaner = pełna integracja
W programie dla jednego z naszych Klientów zadeklarowane mamy 240 instancji DataloggerLight, które dokonują cyklicznego logowania danych z:
- 60 zadajników pomieszczeniowych
- 60 liczników energii elektrycznej
- 120 urządzeń MBUS (ciepłomierze / wodomierze)
Logi każdego z urządzeń zapisywane są w jego indywidualnym katalogu roboczym:
W związku z tym pojawiła się potrzeba zabezpieczenia przed zapełnieniem karty SD. Do kompletu dołożone zostały zatem 3 instancje FileDirCleaner doposażone na poziomie aplikacji użytkownika w sekwencery, które przemiatają nazwy podkatalogów urządzeń pomiarowych.
Taka konfiguracja umożliwia usuwanie archiwalnych plików, starszych niż zadana ilość dni, celem zwolnienia miejsca na karcie SD. Operacje skanowania katalogów i kasowania plików zsynchronizowane są z operacjami zapisu na dysk.
HISTORIA WERSJI:
1.0.2 (30.11.2020)
- poprawki wydajności
1.0.1 (11.04.2020)
- zmiana nazwy biblioteki, namespace'a, dostępu do niektórych zmiennych
- kilka kosmetycznych zmian
- wydzielenie niektórych funkcji do biblioteki Common
1.0.0 (25.03.2020)
- pierwsze wydanie publiczne
Pliki do ściągnięcia:
hasło do archiwum 7zip: "12345"
Paczka zawiera bibliotekę dla środowiska e!Cockpit oraz przykładowy program prezentujący sposób użycia.
|