Składowanie danych: Data logging
Kurs programowania PLC od podstaw
Odc. 21
Kontakt w sprawie artykułu: Kamil Zajdel - 2020-10-05
Z tego artykułu dowiesz się:
- jakie są możliwości składowania danych dla sterowników Horner,
- jak poprawnie konfigurować logowanie danych procesowych w Cscape na zewnętrznych nośnikach danych,
- jak obsługiwać menadżer pamięci zewnętrznej w sterownikach Horner?
W poprzednich artykułach dowiedziałeś/aś się już wiele o pracy w środowisku Cscape. Kolejnym krokiem jest poszerzenie wiedzy o metody gromadzenia danych i ich obsługi.
Kurs programowania PLC od podstaw dla automatyków i elektryków
Podstawy programowania sterowników PLC
Programowanie sterownika PLC w języku drabinkowym
Programowanie zintegrowanego panelu HMI
Komunikacja sterowników PLC w sieci szeregowej i Ethernet
Zaawansowane funkcje sterownika PLC
Sposoby składowania danych
Składowanie danych procesowych wykorzystywane jest w większości aplikacji przemysłowych. Gromadzenie ich pozwala np. prześledzić realizację procesu produkcyjnego, alarmy i wyjątki, jakie zwrócił system podczas pracy oraz wartości, jakie zadawał operator.
Składowanie danych może być realizowane przez zewnętrzne serwery bazodanowe np. Historian lub lokalnie, na kartach pamięci zainstalowanych w sterownikach, w postaci plików tekstowych csv.
Mechanizm Datalog Configuration pozwala na skonfigurowanie grup, nazw plików, adresów zmiennych, metek czasowych oraz częstotliwości, z jaką dane będą składowane w pliku. Programista ma pełną dowolność konfiguracji zmiennych, które będą logowane do plików. Pliki tworzą się automatycznie co godzinę, w strukturze katalogów określonych podczas konfiguracji.
Ten mechanizm umożliwia zapis do 100 rejestrów w maksymalnie 10 grupach, przy założeniu, że w grupach jest nie więcej niż 30 zmiennych. Dane składowane są do pliku csv rozdzielanego przecinkami. Dzięki temu zabiegowi, można bardzo łatwo zaimportować potrzebny plik do arkusza kalkulacyjnego xls i w nim dokonać analizy danych.
Mechanizm Write Removable Media Functional Block pozwala programiście, przy pomocy bloku funkcyjnego WRITE, na skonfigurowanie rejestru początkowego i wybranie ilości kolejnych rejestrów.
Rejestry będą zapisywane do pliku CSV/TXT o wskazanej nazwie. Częstotliwość zapisu danych do pliku uzależniona jest od przygotowanej logiki programu sterującego. Dane składowane w ten sposób można odczytać z plików – służy do tego dedykowany blok READ.
Wbudowany w sterowniki Horner menedżer pamięci zewnętrznej pozwala na:
• śledzenie statusu karty – informując o pojemności karty, ilości pamięci wolnej i wykorzystanej,
• określanie, jakie akcje będzie można wykonać na karcie MicroSD, np. zezwolenie na odczyt, zapis, usuwanie plików czy formatowanie całej karty.
Programowanie w akcji – Mechanizm Datalog Configuration!
Teraz nauczysz się skonfigurować logowanie danych na kartę pamięci przy pomocy Data Logger. Następnie utworzysz podprogram, który z poziomu logiki sterującej będzie realizował zapis i odczyt danych z karty pamięci.
Krok 1: Jak poprawnie skonfigurować logowanie danych?
Aby rozpocząć konfigurację logowania danych, wybierz z paska menu Program -> Datalog Configuration i zaznacz pole Enable Data Log.
Zacznij od ustawienia rejestrów globalnych. Aby wyświetlić okno konfiguracji, kliknij przycisk Global Attributes, a następnie w oknie konfiguracji wprowadź rejestr %R302 jako rejestr statusowy. Następnie wpisz rejestr %S07 jako sygnał aktywujący logowanie danych. Połączenie zmiennych Always On spowoduje, że proces logowania danych będzie na stałe załączony w sterowniku .
Kolejnym elementem konfiguracji jest definiowanie grup logowania. Aby dodać nową grupę, kliknij przycisk Add Group, a następnie wprowadź jej nazwę.
Krok 2: Jak stworzyć Data Log Groups?
Dla aplikacji utwórz dwie grupy: Zbiornik oraz Zawory. Aby poprawnie dodać wartość do grupy, kliknij przycisk Add Variable, a następnie wprowadź Adres, Nazwę oraz Typ Rejestru.
• dla grupy Zbiornik będą to zmienne typu REAL o adresach R1, R3, R5:
• dla grupy Zawory będą to zmienne typu bool o adresach od %M02 do %M08:
Jako programist(k)a masz pełną dowolność podczas konfiguracji zmiennych, które będą logowane w ramach grup. Pamiętaj jednak o tym, że nie może ich być więcej niż 30.
W kolejnym kroku ustaw rejestry kontrolne dla utworzonych grup. Kliknij przycisk Group Attributes, a następnie w oknie konfiguracji podaj:
• rejestr statusowy, w którym będzie przechowywany status logowania dla wskazanej grupy,
• rejestr wyzwalający logowanie dla grupy,
• częstotliwość logowania,
• ścieżkę dostępu, w której zostanie utworzony plik,
• format metki czasowej, z jaką będą zapisywane dane.
Zbiornik:
Zawory:
Po zakończeniu konfiguracji Data Log kliknij OK.
Krok 3: Jak skonfigurować dane z poziomu programu logicznego i bloków funkcyjnych?
W sekcji Subroutine Modules stwórz nowy podprogram o nazwie MicroSD i dodaj dwa szczeble programu.
Pierwszy z nich składa się z bloku funkcyjnego Write Removable Media oraz styku, do którego podłączysz zmienną %M12.
W bloku funkcyjnym Write Removable Media skonfiguruj:
• nazwę pliku – w tym przypadku ZB.txt,
• sposób zapisu pliku – czyli blok ma tworzyć nowy plik, dopisywać do istniejącego, czy nadpisać istniejący – w tym przypadku Create /Append,
• zaznacz opcję End of Row Now – dzięki temu po każdym zapisie kursor zostanie przeniesiony do kolejnego rekordu,
• liczbę kolumn w wierszu – w tym przypadku 3,
• adres referencyjny pierwszej zmiennej, którą chcesz logować – w tym przypadku %R1,
• typ składowanych zmiennych – w tym przypadku REAL,
• ilość zmiennych, jakie zapiszesz – w tym przypadku 3.
W celach diagnostycznych ustaw również rejestr statusowy %R308.
Analogicznie zbuduj drugi szczebel programu, tylko zamiast bloku Write wykorzystaj blok Read, a do styku podłącz zmienną %M13.
Parametry bloku Read Removable Media skonfiguruj następująco:
• w polu File Name podaj nazwę pliku, z którego chcesz czytać dane: ZB.txt,
• w polu file Offset podaj rejestr %R200, w którym będzie numer elementu w pliku, od którego chcesz zacząć czytać dane,
• w polu Destination podaj adres referencyjny, gdzie dane odczytane z karty będą zapisane – w tym przypadku %R202,
• w polu Type wskaż typ zmiennych, które odczytujesz – w tym przypadku REAL,
• w polu Number of Elements podaj ilość danych, które chcesz odczytać-w tym przypadku 3.
W celach diagnostycznych ustaw również rejestr statusowy %R310.
Zatwierdź wykonane operacji przyciskiem OK.
Krok 4: Jak wywołać program?
Przejdź do programu Main. Stwórz w nim szczebel z blokiem Call wywołujący podprogram o nazwie MicroSD.
W edytorze ekranów dodaj ekran operatorski. Sprawdź na nim, jak działają funkcje zapisu i odczytu danych z karty. Stwórz w tym celu nowy ekran o nazwie MicroSD i dodaj do niego obiekty Numeric Data o następujących adresach:
- %R01 – Zbiornik 1,
- %R03 – Zbiornik 2,
- %R05 – Zbiornik 3,
- %R200 – Offset,
- %r202 – Zbiornik 1,
- %R204 – Zbiornik 2,
- %R206 – Zbiornik 3.
Dodaj również dwa przełączniki o typie Momentary o adresach:
- %M12 odpowiedzialny za zapis do pliku,
- %M13 odpowiedzialny za odczyt z pliku.
Aby móc sprawdzić status karty zainstalowanej w sterowniku, dodaj na ekran obiekt Removable Media Menager. W sekcji Operations to Allow zezwól operatorowi na wykonanie wszystkich akcji na karcie pamięci, jakimi są:
- usuwanie pojedynczych plików,
- usuwanie wszystkich plików,
- formatowanie karty,
- zmiany w katalogu,
- podgląd pliku,
- ładowanie aplikacji.
Tak przygotowany program wgraj do sterownika i przetestuj jego działanie. Podczas trwania procesu napełniania i opróżniania zbiorników zapisz kilka rekordów do pliku Zb.txt, wyzwalając zmienną %M12 odpowiedzialną za zapis. Następnie spróbuj odczytać dane zapisane w pliku, ustawiając odpowiedni Offset.
Podsumowanie: z tego artykułu nauczyłeś/aś się, w jaki sposób składować dane na sterowniku Horner oraz w jaki sposób się nimi posługiwać.
Z kolejnego artykułu dowiesz się , do czego w sterownikach Horner można wykorzystać karty MicroSD.