Do Projektu iAutomatyka dołączyli:

https://iautomatyka.pl/wp-content/uploads/2019/11/Flight_data_recorder_displayed_at_HAL_Museum_7893.jpg

CZARNA SKRZYNKA w CoDeSys’ie na bazie wyświetlacza IFM


Czarna skrzynka – pierwsze skojarzenie to niekoniecznie czarne pudełko na pokładzie samolotu. Na co dzień urządzenie, które nie budzi zainteresowania, może nawet zapomniane, ale zawsze będące w centrum uwagi gdy dochodzi do niespodziewanych i nieoczekiwanych zdarzeń urządzeń mechanicznych, a w szczególności gdy są one bezpośrednio związane ze zdrowiem czy życiem człowieka. Drogi czytelniku, automatyku, programisto, zachęcam aby poświęcić kilka minut na przeczytanie poniższego artykułu i chwilę refleksji nad pytaniem „Czy ja przypadkiem nie potrzebuję takiej aplikacji?”.

W poniższym artykule chciałbym podzielić się swoimi spostrzeżeniami i pokazać, iż w dziedzinie sterowników PLC wspomaganych wyświetlaczem firmy IFM można zbudować rejestrator danych.

Rejestracja – czego, jak i gdzie?

Wymagania są proste. Spróbujmy przyjrzeć się powyższemu zagadnieniu w aspekcie trzech osobnych założeń. Pozwoli to łatwiej i wygodniej zrozumieć etap wykonania aplikacji.

REJESTRACJA WSZYSTKIEGO

Hasło takie nie musi oznaczać niemożliwego. Wszystko zależy od wielkości aplikacji i występujących w niej liczby sygnałów tych bardziej znaczących i tych, które mogą być pominięte. Na poziomie tego etapu wymagana jest selekcja sygnałów, tzn. takie ich pogrupowanie w sensowną całość, aby podczas procesu analizy danych czarnej skrzynki logicznie przechodzić pomiędzy skorelowanymi ze sobą sygnałami (np. jeżeli wychylamy joystick to czy sterownik wystawił sygnał PWM na danym wyjściu). Załóżmy, że projekt dotyczy prostego pojazdu/maszyny, gdzie mamy do czynienia ze skończoną liczbą sygnałów realizowaną przez sterownik PLC (np. 20 wejść / 10 wyjść / 20 sygnałów) to mamy jak najbardziej skończoną liczbę danych – pamiętajmy, że to programista decyduje jakie dane będziemy zapisywali.


JAK NAJCZĘŚCIEJ

Tutaj należ zrobić selekcję sygnałów, na te które są szybko zmienne i potrzebujemy posiadać informacje o nich w interwałach np. milisekundowych (np. położenie enkodera silnika), i na te które możemy rejestrować w przedziałach sekundowych lub nawet rzadziej (np: temperatura powietrza). Optymalizacja taka zapewni właściwe wykorzystanie funkcji obliczeniowych procesora sterownika oraz pozwoli na skuteczny zapis danych do obszarów pamięci – musimy pamiętać, że procesy zapisu do pamięci także potrzebują czasu na ich realizację.

ALE GDZIE?

Rodzina wyświetlaczy mobilnych firmy IFM (np. CR1201) wyposażona jest w pamięć o wielkości ok. 1GB do wykorzystania na potrzeby aplikacji. Zastosowanie takiego wyświetlacza to bardzo wygodne rozwiązanie, gdyż łączy ono funkcje wizualizacji danego procesu na ekranie monitora, a jednocześnie stanowi „magazyn” do przechowywania rejestrowanych danych. Gdy tylko dodamy fakt, że wyświetlacz taki może pełnić niezależną funkcję sterownika (bez obsługi dodatkowego sterownika PLC) to jest to wtedy potężne narzędzie, za pomocą którego jesteśmy w stanie wykonać potrzebną aplikację z poziomu tylko i wyłącznie jednego urządzenia. A gdyby mimo wszystko 1GB wbudowanego obszaru pamięci nie był wystarczający, wówczas do wyświetlacza możemy podłączyć zewnętrzną pamięć USB. Wyświetlacz zapewnia również informację o czasie rzeczywistym RTC (Real Time Clock).

Aplikacja – wykorzystanie bibliotek

Sterowniki i wyświetlacze firmy IFM posiadają bogate zaplecze w postaci bibliotek, dzięki którym zdecydowanie wygodniej i prościej można wykonać dany projekt. Gotowe biblioteki dostarczają szereg użytecznych bloków funkcyjnych czy funkcji potrzebnych do realizacji czarnej skrzynki, z których oczywiście zrobimy pożytek. W dużym skrócie opiszę najważniejsze z nich:

  • ifm_PDM360NG_USB_V020000.lib, ifm_PDM360NG_USB_LL_V020000.lib – Obsługa transferu danych pomiędzy wyświetlaczem a pamięcią zewnętrzną USB.
  • Ifm_PDM360NG_FILE_V010000.lib – Konwersje sygnałów aplikacji do paczek bajtowych oraz zapis przygotowanych paczek do pliku *.csv.
  • Ifm_PDMng_util_V010301.lib – Inicjalizacja wbudowanej pamięci FLASH (1GB).

Już tylko w powyższych czterech bibliotekach mamy dostęp do ponad 40 różnych bloków funkcyjnych czy funkcji. Poniżej znajduje się fragment środowiska CoDeSys z menadżerem bibliotek:

  • lista bibliotek (lewy, górny obszar);
  • zawartość jednej biblioteki (lewy, dolny obszar);
  • opis wejść/wyjść danego bloku z biblioteki (prawy, górny obszar);
  • graficzne przedstawienie bloku funkcyjnego (prawy, dolny obszar);


BLOKI FUNKCYJNE 

Poniżej przedstawię kluczowe bloki funkcyjne, za pomocą których wykonamy aplikację rejestracji danych do pamięci w postaci pliku *.csv. W ich opisie skupię się na najważniejszych wejściach / wyjściach. Pełna dokumentacja znajduje się w bibliotekach.

INIT_DATA_MEMORY – Blok inicjalizujący wbudowaną pamięć FLASH (1GB).

  • INIT_MEMORY – Inicjalizacja pamięci po podaniu jednego impulsu (zbocze narastające).
  • DONE – potwierdzenie w postaci stanu wysokiego o pomyślnej inicjalizacji bloku. Informacja ta jest niezbędna do zapisu danych w pamięci wewnętrznej wyświetlacza.

USB_STORAGE_HANDLER – Blok realizujący obsługę zewnętrznej pamięci masowej USB.

  • REMOVE – bezpieczne usuwanie pamięci USB.
  • USB_PATH – scieżka zapisu danych.
  • USB_INSERTED – informacja o podłączonym pendrive.

COPY_PDM_TO_USB – Blok obsługujący transfer danych z pamięci wewnętrznej wyświetlacza na pamięć zewnętrzną USB.

  • ENABLE – aktywacja bloku.
  • COPY – aktywacja kopiowania.
  • LOCAL_FILE – informacja jaki plik ma być kopiowany.
  • DONE – potwierdzenie o pomyślnym zakończeniu kopiowania danych.

WRITE_CSV_8BYTE – Blok realizujący zapis przygotowanych paczek danych do pliku *.csv. Jest to najważniejszy blok w etapie gromadzenia danych, swoisty gateway pomiędzy sterownikiem a użytkownikiem.

  • Enable – aktywacja bloku.
  • Write_event – impuls do zapisu paczki danych.
  • Data – paczka danych w postaci macierzy.
  • Ringmode – tryb zapisu w pętli.
  • Filesize – aktualna wielkość pliku *.csv.

Powyżej opisałem najważniejsze funkcje danych bloków. Bloki pozwolą na wykonanie aplikacji, wystarczy kilka linijek kodu, aby cieszyć się własną czarną skrzynką. Należy pamiętać jednak, że rejestracja danych do pliku to dopiero połowa sukcesu, albowiem prędzej czy później nastąpi żmudny etap dekodowania i analizy zgromadzonych danych. Dlatego bardzo ważne jest, aby skomplikowany i czasochłonny proces analizy był  poprzedzony rozsądną i przemyślaną selekcją sygnałów na etapie przygotowywania aplikacji.

Kończąc już mój artykuł przedstawiam fragment danych zapisanych w pliku *.csv. Sygnały rejestrowane były z częstotliwością jednej 8-bajtowej paczki na sekundę. Edycja pliku w środowisku Excel.

Dane po konwersji (data, godzina, wartości liczbowe)



Utworzono: / Kategoria: , , ,

Reklama

Newsletter

Zapisz się i jako pierwszy otrzymuj nowości!

Zapoznałem się i akceptuję klauzulę informacyjną.



.
NAJNOWSZE PUBLIKACJE OD UŻYTKOWNIKÓW I FIRM

Reklama



MOŻESZ SIĘ TYM ZAINTERESOWAĆ