Bufory Historii w HMI serii DOP-B Panele operatorskie serii DOP-B posiadają wbudowaną funkcjonalność rejestrowania wartości pobranych z określonego urządzenia dołączonego do HMI. Do dyspozycji mamy 12 niezależnych buforów. Jeden bufor historii można sobie wyobrazić jako arkusz w kratkę, który ma nie więcej niż 16 kolumn i określoną ilość wierszy. Podczas jednego polecenia zapisu, pobierane są wymagane dane i umieszczane w tym samym wierszu w kolejnych kolumnach. Przy takiej organizacji, możemy jednocześnie zapisywać nawet 192 wartości 16-o bitowe. Czym jest Bufor Danych Najczęściej dane dla bufora pobierane są z sterownika PLC ale mogą być pobierane również z innych urządzeń np. falowników, serwonapędów, termoregulatorów, a także z samej pamięci panela. Jako dane dla bufora należy rozumieć ciągły blok danych znajdujący się np. w rejestrach sterownika PLC. Jeśli zapisujemy 4 wartości a bufor zaczyna się od adresu D2000(rejestr w PLC), to znaczy, że bufor obejmuje rejestry D2000,D2001,D2002 i D2003. Definiowanie bufora historii Po uruchomieniu aplikacji DOPsoft i otwarciu lub utworzeniu nowego projektu, klikamy menu {Options} a następnie {History Buffer Setup...}. Powinno ukazać się okno jak poniżej. Aby dodać kolejny bufor używamy przycisku {Add}, po czym ukaże się nam okno edytora bufora historii. Poniżej widok edytora z przykładowymi nastawami. Strona 1 z 6
Położenie Bufora Danych W polu [Address] wpisujemy adres pierwszego elementu bufora historii, w naszym przypadku jest nim rejestr D2000 w sterowniku PLC dołączonym do portu opisanego lako Link1. Z listy [Data Length(Word)] wybieramy wartość 4, gdyż tyle kolejnych rejestrów chcemy zapisywać w naszym buforze. W polu [Sample Number] wpisujemy ilość rekordów, które chcemy przechowywać w pamięci. W naszym przypadku chcemy zapisywać dane co 2 sekundy i pamiętać okres ostatnich przynajmniej 26 i pół minuty, zatem możemy wpisać 800 co daje nam trochę ponad 26 i pół minuty. Kiedy dane są zapisywane do bufora? Każdy bufor historii można wyzwalać niezależnie. Istnieją jednak mechanizmy, które pozwalają np. na jednoczesny zapis w kilku buforach. Każdy bufor może pracować w jednym z dwóch trybów: Tryb TIMER W tym trybie możemy ustalić co jaki czas ma następować samoczynny zapis danych do bufora. Ten typ wyzwalania jest przydatny podczas cyklicznego zbierania danych np. o temperaturze, ciśnieniu czy wilgotności. Dzięki temu dysponujemy zapisem, który pozwala sprawdzić w jakich warunkach przebiegał dany proces technologiczny. W bloku Trigger ustawiamy funkcję [timer] a następnie zaznaczamy opcję [Sample cycle(ms)] i w polu tekstowym wpisujemy wartość 2000, co daje nam oczekiwany odstęp pomiędzy zapisami równy 2 sekundy. Jeśli nasz projekt przewiduje, że interwał zapisu ma być zmienny, wówczas wybieramy opcję [Cystom cycle(ms)] i w polu wybieramy adres rejestru np. w PLC, który będzie zawierał wartość dla interwału. Rejestr ten może również znajdować się w obszarze bufora i podlegać później zapisaniu w historii. Tryb PLC W tym trybie nie mamy do ustawienia żadnych parametrów. O chwili zapisu będzie decydowało urządzenie, które ustawi odpowiedni bit w Control Block. Na rysunku po prawej stronie widać, że Control Block został skonfigurowany tak, iż rejestr D0 w sterowniku PLC odpowiada za wyzwalanie zapisu w buforach historii. Jeśli do rejestru D0 wpiszemy wartość 16, wówczas uruchomimy zapis do piątego bufora historii. Po wpisaniu do D0 wartości 48, uruchomimy jednoczesny zapis w buforze 5 i 6. Pierwsze 12 bitów rejestru D0 pozwala nam na jednoczesne wyzwalanie zapisu w dowolnych buforach. Strona 2 z 6
Data i czas zapisu danych Ważna informacja! Kolejne wyzwalanie buforów nie może występować częściej niż czas wpisany przy opcji [Auto Reset Flags]. Wynika to z faktu iż panel przegląda rejestry Control Block co zadany czas i wykonuje wymagane czynności, a następnie zeruje rejestry Control Block. umożliwia dodanie informacji o dacie i godzinie, kiedy zapisano próbki. Wzorcem czasu jest wbudowany w panel HMI zegar czasu rzeczywistego. W polu [Time Format] i [Date Format] można ustawić odpowiednio format czasu i daty. W uzasadnionych przypadkach można użyć skróconego formatu czasu lub daty. Automatyczne zatrzymywanie zapisu po zapełnieniu bufora umożliwia włączenie funkcji blokowania rejestracji danych po zapełnieniu się bufora. Najczęściej nie używamy tej opcji i pozostawiamy ją nie zaznaczoną, dzięki czemu panel zapisuje kolejne próbki nawet po zapełnieniu się bufora. Do naszej dyspozycji pozostają wówczas najnowsze próbki. Jeśli bufor ma długość 800 próbek, to po zapisaniu 801-ej próbki, pierwsza próbka jest tracona i pozostają dostępne próbki od 2 do 801. Przechowywanie danych po wyłączeniu zasilania umożliwia włączenie mechanizmu archiwizowania zebranych danych. W opcji [Retained] możemy wskazać nośnik, na którym będą archiwizowane dane. Do wyboru mamy {HMI} pamięć panela, oraz inne typy nośników, o ile dany model nimi dysponuje. Obecnie do wyboru mogą być jeszcze {USB Disc} nośnik typu pendrive sformatowany w systemie FAT32 oraz {SD} czyli nośnik włożony do gniazda czytnika kart pamięci SD, również formatowany jako FAT32. Warto używać szybkich kart aby skracać czas zapisu danych. Po określeniu miejsca przechowywania danych należy jeszcze w polu [File Name] podać 8-o znakową nazwę pliku. Sugerowane jest używanie podstawowych znaków alfanumerycznych. Nie podajemy kropki oraz rozszerzenia pliku. Format zapisu danych (CSV) umożliwia zdefiniowanie opisu kolumn oraz formatu danych, które będą zapisywane na nośniku w pliku typu CSV. Z listy [Format] wybieramy sposób interpretowania wartości. Nie można osobno określić typu wartości dla każdego elementu a jedynie globalnie dla całego bufora. Jednakże możliwe jest późniejsze doprecyzowanie ilości cyfr przed i po przecinku co pozwoli na zapisywanie np. temperatur w postaci 28.6 zamiast 286. Podczas definiowania eksportu do pliku CSV należy również określić nazwy kolumn i ich parametry. W tym celu używamy klawisza przy opcji [Column Name]. W oknie edytora pól, wypełniamy kolejno pola opisując nazwę kolumny [Time], [Date] oraz podając nazwy kolumn dla kolejnych parametrów w buforze. Parametr [Integer] określa ilość cyfr przed przecinkiem a [Fraction] ilość cyfr po przecinku. Strona 3 z 6
Przykład konfiguracji bufora dla temperatury i wilgotności Naszym zadaniem będzie zdefiniowanie bufora do przechowania informacji o temperaturze i wilgotności środowiska w trakcie procesu suszenia drewna. Zakładamy, że rejestracja temperatury i wilgotności będzie się odbywała co jedną minutę, proces suszenia trwa 10 dni. Z obliczeń wynika, że będziemy musieli przechować 60*24*10, czyli 14400 próbek. Dane mają być przechowywane na zewnętrznym nośniku dołączonym do portu USB. Dane do archiwizacji znajdują się w sterowniku PLC pod adresami: D231(temperatura) i D232(wilgotność), obie w formacie całkowitym bez znaku oraz zapisane z dokładnością jednego miejsca po przecinku. Definicja bufora powinna przyjąć poniższy wygląd. Oraz definicja szczegółów formatu CSV. Strona 4 z 6
Przykład konfiguracji wykresu dla temperatury i wilgotności Naszym celem jest zaprezentowanie danych z bufora, w którym znajdują się zebrane dane według opisu z poprzedniego przykładu. W przybliżeniu, chcemy uzyskać poniższy wykres. Ma on się charakteryzować dwoma listwami zakresowymi, osobną dla temperatury(czerwona) i osobną dla wilgotności(niebieska). Dodatkowo ma posiadać dwie linie pomocnicze wskazujące dolną(niebieska) i górną(różowa) granicę temperatury, które będą nastawiane przez operatora. Oraz kilka linii pomocniczych ułatwiających odczytanie wartości z wykresu. W tym celu użyjemy komponentu History / Historical Trend Graph do stworzenia wykresu wraz z listwą dla temperatury, oraz Drawing / Scale do stworzenia listwy dla wilgotności. Po nałożeniu komponentu Historical Trend Graph i Scale, ustawiamy dla komponentu Scale parametr [Style] na wartość {Rotation 180} oraz [Color] na wartość {RGB(0,0,255)}. Pozostałe parametry pozostawiamy domyślne i zmieniamy położenie oraz wymiary komponentu tak, aby pasowały do wykresu. W komponencie Historical Trend Graph ustawiamy kolejno: Sekcja STYLE Curve Field, na wartość 2, gdyż z bufora historii będziemy pobierali dwie dane Grid Number i Horiz, na wartość 8 aby powstały linie pomocnicze pasujące do listw Grid Line Color, kolor szary(linie pomocnicze) Border Color, kolor biały (linia obrysu komponentu) Background Color, kolor biały (tło wykresy) Foreground Color, kolor biały (tło komponentu listwy z opisami) Sekcja DATA Buffer ID, wybieramy właściwy numer bufora, domyślnie nr 1 Memory Format, Unsigned Decimal(format odczytywanych danych) Global Range, zaznaczamy, a przyciskiem [Set scale] uruchamiamy kolejne okno o Display scale, wybieramy {Display On Right Side} o Display mark, zaznaczamy o Text color, wybieramy kolor czerwony o Main scale num, ustawiamy wartość 5 o Sub scale num, ustawiamy wartość 1 Minimum/Maximum, ustawiamy 0 / 200 (granice czerwonej skali dla temperatury) Strona 5 z 6
Display High Value, zaznaczamy i podajemy adres w PLC, pod którym będzie wartość dla różowej linii(górnej), oraz ustawiamy kolor linii na różowy Display Low Value, zaznaczamy i podajemy adres w PLC, pod którym będzie wartość dla niebieskiej linii(dolnej), oraz ustawiamy kolor linii na niebieski Sekcja TIME/DATE Time Format, format pokazywanego czasu {hh:mm} Date, format pokazywanej daty {yy/mm/dd} Display time/date Labels, ustawiamy, że chcemy widzieć trzy etykiety: 3 Sekcja z zakładkami (CURVE) Curve1, o [Enable], zaznaczamy o Date No., wybieramy wartość {0} (kanał zapisujący temperaturę), o Line Color, ustawiamy kolor czerwony Curve2, o [Enable], zaznaczamy o Date No., wybieramy wartość {1} (kanał zapisujący wilgotność) o Line Color, ustawiamy kolor niebieski Emulator pendrive na USB z wbudowanym serwerem FTP W sytuacji gdy dostęp do nośnika pamięci może być utrudniony, można zastosować urządzenie które posiada wbudowany nośnik pamięci nie ulotnej i potrafi symulować urządzenie typu pendrive, a z drugiej strony jest jednocześnie serwerem FTP. Dzięki takiemu rozwiązaniu, właściwe osoby mogą przy pomocy lokalnej sieci teleinformatycznej, zalogować się na serwer FTP i pobrać pliki z nośnika. Taki emulator można również nabyć w firmie Induprogress. Ważna informacja! Należy pamiętać aby przed pobraniem plików z emulatora, użyć przycisków na panelu HMI w celu eksportu wszystkich wymaganych informacji oraz logicznego odmontowania nośnika pamięci. Jest to ważne! W przeciwnym wypadku narażamy się na utratę informacji na nośniku w emulatorze. eserver jako alternatywna metoda zbierania danych Alternatywą dla nośników pamięci oraz emulatorów, jest zastosowanie panela HMI z łączem ethernet, np. DOP-B03E211, DOP-B07E515 czy DOP-B10E615 oraz bezpłatnego oprogramowania eserver dostarczanego przez producenta. Po zainstalowaniu aplikacji i jej skonfigurowaniu, uzyskujemy możliwość niezależnego pobierania dowolnych informacji z urządzeń dołączonych do maksymalnie 16 paneli HMI. Dane mogą być gromadzone bezpośrednio w arkuszach kalkulacyjnych(wymagany Ms-Office) lub w bazach danych Ms- SQL, MySQL lub Oracle poprzez mechanizmy ODBC. Dodatkowo dzięki eserver, będziemy mogli również archiwizować i modyfikować receptury w panelach HMI. Zastosowanie łączy ethernet owych daje również możliwość aktualizacji oprogramowania w HMI i PLC oraz monitorowania on-line. Otrzymujemy również możliwość zdalnego sterowania panelami przy pomocy aplikacji eremote na zasadzie zdalnego pulpitu. Strona 6 z 6