Tabele danych w sterowniku PLC

Wiktor Susfał Akademia Unitronics Tagi: , , , ,
Tabele Danych PLC - główne

Jak skonfigurować tabele danych dla sterownika PLC w celu prostej archiwizacji wartości zmiennych?

O czym tu przeczytasz?

Ta część Akademii PLC Elmark powstała w celu przybliżenia funkcjonalności, jaką są tabele danych. Użytkownik może utworzyć tabele o dowolnej strukturze, które następnie sterownik PLC przechowuje w swojej pamięci.

Liczne opcje eksportu, w tym do arkuszy kalkulacyjnych programu Excel powodują, że jest to dobry sposób na archiwizację danych.

Podczas lektury tego wpisu zapoznasz się z przykładem wprowadzającym do tabel danych dla sterowników PLC serii Vision i Samba. Następnie, zaprezentujemy dodatkowe narzędzie od Unitronics – DataXport, które pozwoli na wygodny eksport danych z PLC.

Prezentowane tu przykłady wykonano na sterowniku serii Vision – V430-J-RH-6.

Tabele danych PLC – wprowadzenie

Tabele konfigurowane są oczywiście w oprogramowaniu VisiLogic. Odpowiednia opcja, która pozwala na zdefiniowanie nowej tabeli znajduje się w dwóch lokalizacjach:

  • w drzewku projektu „Project Explorer” po lewej stronie okna,
  • na górnym pasku narzędzi.
Dodawanie tabel danych do programu PLC
Dodawanie tabel danych do programu PLC

Dodawanie tabeli

Z najważniejszych ustawień, przede wszystkim należy:

  • nadać tabeli unikalną nazwę,
  • określić liczbę kolumn (max. 32) i wierszy (tabele w VisiLogic nie mogą być dynamicznie zwiększane),
  • określić typ danych zawartych w każdej kolumnie.

W tym przypadku założymy, że do tabeli zapisywane będą wartości: wskazanego bitu systemowego i zmiennej „float” oraz data i czas „pomiaru”. Co więcej, data i czas będą traktowane jak zmienne tekstowe („string”). Zacznijmy od określenia struktury tabeli.

Dodawanie tabeli do programu PLC

Podczas definiowania typów danych dla kolumn, widoczne były pewne dwie opcje (poniższe zdjęcie po lewej):

  • „Read Only” – sprawia, że dana kolumna nie może być nadpisana dla żadnego rekordu tabeli podczas działania programu;
  • „Part of Project” – dane z wybranej kolumny są przeniesione do pamięci nieulotnej (flash), a to znaczy, że nie zostaną nigdy utracone; zapis do tych kolumn jest również niemożliwy.

Z uwagi na to, że założeniem naszego programu jest, aby sterownik zapisywał do tabeli dane „pomiarowe” na bieżąco, obie opcje pozostały niezaznaczone.

Opcje służące do definiowania kolumny dla tabeli danych
Opcje służące do definiowania kolumny dla tabeli danych
Sprawdzenie wymaganego miejsca dla tabeli w pamięci PLC
Sprawdzenie wymaganego miejsca dla tabeli w pamięci PLC

Drugie z powyższych zdjęć (po prawej) pokazuje opcję, za pomocą której można sprawdzić, ile miejsca w pamięci zajmie każda z tabel. Nie ma tu znaczenia czy jakieś dane już zostały zapisane – sterownik rezerwuje od razu wymagany obszar pamięci dla wszystkich rekordów.

Przygotowanie danych dla tabeli

Wiadomo, że dane zapisywane w tabelach mogą pochodzić z różnych źródeł. Dlatego, że jest to etap, który różni się dla każdej aplikacji, omówiono jedynie jego najważniejsze części.

Pierwszą z nich jest zastosowanie konwersji daty i czasu pochodzących z RTC sterownika do formatu tekstowego. Jest to możliwe dzięki bloczkowi „RTC to ASCII” pochodzącemu z zakładki „Strings”.

Użytkownik określa dla niego zarówno zmienną całkowitą „MI” przechowującą datę lub czas, jak i format tych danych. Należy pamiętać, że taki łańcuch znaków wymaga więcej pamięci niż pojedyncza zmienna „MI”. W rzeczywistości więc, podana zmienna „MI” to jedynie początek wektora zmiennych, w których zapisana jest ta informacja. W naszym przypadku potrzeba pięciu zmiennych „MI” dla daty i kolejnych pięciu dla czasu.

Konwersja daty i czasu na format tekstowy w VisiLogic
Symulacja zmiennych zapisywanych do tabel
Symulacja zmiennych zapisywanych do tabel

Oprócz powyższej konwersji danych z RTC do formatu tekstowego, w prosty sposób zasymulowano wartości zmiennych „BOOL” oraz „FLOAT”. W przypadku tej drugiej wykorzystano kreator formuł matematycznych wbudowany w VisiLogic.

Program sterownika można pobrać w przedostatniej sekcji tego wpisu.

Interakcja z tabelą w programie sterownika

Budując schemat drabinkowy programu można rozwinąć zakładkę „Data Tables” z górnego pasku narzędzi i zobaczyć wszystkie dostępne funkcje operacji na tabelach. Istnieje możliwość zarówno prostego odczytu/zapisu wierszy, jak i kopiowania/przeszukiwania bądź też czyszczenia zawartości tabel.

Z uwagi na mnogość tych opcji, w tym przypadku zaprezentujemy jedynie zapis do tabeli oraz opcję kopiowania.

Do wprowadzenia danych jako rekordu tabeli, służy bloczek „Data Tables Write Row” z zakładki „Data Tables”. Należy dla niego określić:

  • nazwę tabeli, do której zapisujemy dane;
  • numer rekordu do nadpisania (oczywiście może być to zmienna);
  • zmienną, z której należy czerpać dane – do każdej kolumny zdefiniowanej w tabeli.
Zapis do tabeli danych z poziomu programu PLC
Zapis do tabeli danych z poziomu programu PLC
Obsługa zmiennej przechowującej numer aktualnego wiersza w tabeli
Obsługa zmiennej przechowującej numer aktualnego wiersza w tabeli

Oczywiście, należy zadbać o odpowiednią obsługę zmiennej, która przechowuje numer wiersza tabeli, do którego zapisujemy. W naszym przypadku zwiększamy ją o 1 po każdym zapisie, a gdy osiągnie wartość 100 – zerujemy.

Interakcja z tabelą – kopiowanie zawartości

Powyższe rozwiązanie może być mało czytelne dla operatora dlatego, że kolejny pomiar zapisywany jest do kolejnych (dalszych) wierszy tabeli. To sprawia, że tabelę należy ręcznie przeszukiwać, aby odnaleźć aktualny rekord.

Rozwiązaniem może być aplikacja, w której „najświeższy” rekord byłby przechowywany w pierwszym (zerowym) wierszu tabeli.

Można to osiągnąć w tym przypadku na przykład poprzez:

  • „przesuwanie” wszystkich wierszy począwszy od pierwszego (zerowego) o jeden „w dół”, tracąc tym samym informacje o wierszu ostatnim;
  • zapisywanie nowego pomiaru do wiersza zerowego.

W tym przypadku, takie przesuwanie możemy zrealizować kopiując wiersze (0 – 98) z posiadanej tabeli, a następnie zapisując je znów do tej tabeli, lecz tym razem do wierszy (1 – 99).

Za operację kopiowania odpowiada bloczek „Data Tables Copy Rows” z zakładki „Data Tables”. Ustawiamy go przed bloczkiem zapisu do tabeli i uzupełniamy jak na poniższym zdjęciu.

Kopiowanie wierszy z tabeli w programie PLC
Kopiowanie wierszy z tabeli w programie PLC
Wyłączanie wybranych poziomów drabinki z programu PLC
Wyłączanie wybranych poziomów drabinki z programu PLC

Należy pamiętać, że numer wiersza, od którego kopiujemy, jak i numer wiersza, od którego wklejamy dane oraz liczba kopiowanych rekordów mogą być również zmiennymi.

Ostatnią rzeczą jest usunięcie bloczka inkrementującego zmienną „MI10″ (numer aktualnego wiersza). Jest tak dlatego, że od teraz zapis prowadzimy tylko do wiersza nr 0 (należy zmodyfikować również bloczek „Write Row”). Dodatkowo, klikając PPM na numer trzeci poziomu drabinki i wybierając opcję „Disable” wyłączymy z programu bloczek sprawdzający, czy numer rekordu przekroczył 100 (patrz – powyższe zdjęcie po prawej).

Eksport danych z PLC

Jak już napisano we wstępie, Unitronics dostarcza narzędzia do wygodnego, w tym również automatycznego, eksportu danych z tabel PLC. Takim programem jest „DataXport”. Można go pobrać ze strony producenta (należy przewinąć stronę do sekcji „Download Software Utilities” i rozwinąć ją).

Pobieranie programu DataXport
Pobieranie programu DataXport

Przygotowanie PLC do komunikacji z DataXport

Przed przystąpieniem do pracy z programem „DataXport” należy dodać do programu sterownika bloczek, który odpowiada za nadanie mu nazwy – „PLC NAME”. Nazwa powinna być dowolna i unikalna.

Drugą rzeczą jest wyeksportowanie struktury posiadanej tabeli danych do pliku *.upd, do znanej lokalizacji na dysku. Obydwa etapy są przedstawione na poniższych zdjęciach.

Nadanie nazwy w programie PLC
Nadanie nazwy w programie PLC
Tabele danych - eksport struktury z programu PLC na dysk komputera
Tabele danych – eksport struktury z programu PLC na dysk komputera

Praca z programem DataXport

W programie tym można dodać dowolną ilość połączeń („Sites”) z posiadanymi PLC. Dla każdego połączenia definiujemy port COM lub połączenie Ethernet, na którym zachodzi komunikacja na linii komputer – PLC. Następnie, dla każdego połączenia osobno definiujemy, które tabele danych oraz w jaki sposób są pobierane do arkuszy kalkulacyjnych MS Excel.

Warto dodać, że istnieje możliwość używania wstępnie zaprojektowanych szablonów arkuszy MS Excel, np. w celu dodawania wykresów do danych pobieranych z PLC. Przykładowe rozwiązanie, które przeprowadza użytkownika przez pierwszy projekt w DataXport, przedstawia poniższy film.

Projekt w DataXport

Po obejrzeniu powyższego filmu warto zapamiętać najważniejsze rzeczy:

  • można dodać połączenie z wieloma PLC w ramach jednego projektu DataXport;
  • szablony arkuszy Excel muszą być zapisane w ściśle określonej lokalizacji, którą domyślnie jest:

…\Unitronics\Unitronics DataXport\Excel Templates;

  • szablon arkusza musi mieć identyczną nazwę, co połączenie („Site”), w którym jest wykorzystywany;
  • nie ma obowiązku używania szablonów.

Do pobrania

Wypełniając poniższy krótki formularz możesz pobrać:

  • dwa projekty w VisiLogic (różniące się sposobem zapisu do tabel) sporządzone w ramach wpisu,
  • projekt programu DataXport,
  • szablon arkusza MS Excel użyty w ramach wpisu.

Zachęcamy jednak do samodzielnego wykonywania opisywanych tu działań

Podsumowanie

Tak jak zazwyczaj, temat poruszony podczas tego wpisu jest w rzeczywistości nieco bardziej rozbudowany. Nie ma możliwości w krótkiej notce poruszyć wszystkich funkcjonalności narzędzia, jakimi są tabele danych wraz z programem DataXport.

Jeśli masz pytania lub pomysły na użycie zaprezentowanych tu funkcjonalności, napisz do nas na adres:

sterowniki@elmark.com.pl

Po więcej informacji udaj się na kanał YouTube Producenta. Znajdziesz tam wiele filmów, z których można czerpać wiedzę na temat zaawansowanych funkcji VisiLogic.

Aby uzyskać dostęp do większej liczby lekcji, powróć na stronę startową kursu.