Codesys: Struktury danych w CODESYS: Praktyczne zastosowanie tablic i struktur – Part #6

controlbyte.pl 1 tydzień temu

Darmowy zarys kursu CODESYS

  1. Lekcja #1: Czym jest? Dlaczego powinieneś go znać?! – PART 1
  2. Lekcja #2: Jak zainstalować Codesys? – PART 2
  3. Lekcja #3: Napisz swój pierwszy program w Codesys: Structured Text – Part #3
  4. Lekcja #4: Jak stworzyć wizualizację Codesys w aplikacji? – Part #4
  5. Lekcja #5: Wprowadzenie do zmiennych w CODESYS – Part #5
  6. Lekcja #6: Struktury danych w CODESYS: Praktyczne zastosowanie tablic i struktur – Part #6
  7. Lekcja #7: Zaawansowane typy danych. Wyliczenia i zmienne lokalne vs. globalne – Part #7
  8. Lekcja #8: Operatory – Wprowadzenie i praktyczne zastosowania – Part #8
  9. Lekcja #9: Kontrola przepływu programu: IF, CASE i pętle – Part #9

W programowaniu PLC praca z bardziej złożonymi strukturami danych jest niezbędna do obsługi obliczeń numerycznych, zbiorów danych i ustrukturalizowanych informacji. Efektywne wykorzystanie tych struktur poprawia czytelność programu, optymalizuje zużycie pamięci i upraszcza zarządzanie danymi. W tej sekcji omówiono liczby zmiennoprzecinkowe (REAL), tablice (ARRAYS) i struktury (STRUCTURE) w CODESYS, przedstawiając ich znaczenie oraz praktyczne zastosowanie.

Liczby zmiennoprzecinkowe (REAL) w CODESYS

Liczby zmiennoprzecinkowe służą do przechowywania wartości dziesiętnych, które są niezbędne do reprezentowania wielkości fizycznych, takich jak temperatura, ciśnienie czy przepływ. Wiele pomiarów rzeczywistych wymaga precyzji wykraczającej poza liczby całkowite, co sprawia, iż typy danych zmiennoprzecinkowych są nieodzowne w automatyce przemysłowej.

W CODESYS liczby zmiennoprzecinkowe są klasyfikowane na dwa główne typy:

  • REAL: Zajmuje 32 bity, oferując umiarkowaną precyzję i zakres.
  • LONG REAL: Zajmuje 64 bity, zapewniając rozszerzony zakres i wyższą precyzję.

Zalety liczb zmiennoprzecinkowych

  • Umożliwiają precyzyjne przedstawienie wartości dziesiętnych.
  • Niezbędne do odczytów z czujników analogowych i skomplikowanych obliczeń.
  • Pozwalają na obliczenia z ułamkami w systemach sterowania, unikając błędów zaokrągleń liczb całkowitych.

Aby dokładniej poznać te typy danych, możesz uzyskać dostęp do pomocy online CODESYS w sekcji Typy danych -> REAL i LONG REAL.

Deklarowanie zmiennej zmiennoprzecinkowej w CODESYS

  1. Otwórz CODESYS i przejdź do PLC_PRG.
  2. Zadeklaruj zmienną zmiennoprzecinkową w następujący sposób: rResult : REAL := 1,345678;
  3. Naciśnij Enter, aby potwierdzić deklarację.
  4. Zaloguj się do symulatora PLC i rozpocznij wykonanie.
  5. Obserwuj przybliżenie wyświetlanej wartości.

Ponieważ zmienne zmiennoprzecinkowe są przechowywane w formacie binarnym, niektóre wartości dziesiętne nie mogą być reprezentowane dokładnie. Po najechaniu kursorem na wartość, CODESYS wyświetla pełną przechowywaną wartość, dając pełniejszy obraz wewnętrznej reprezentacji.

Aplikacja: Liczby zmiennoprzecinkowe są często wykorzystywane w projektach automatyki, które wymagają precyzyjnych obliczeń numerycznych, takich jak algorytmy sterowania PID, monitorowanie temperatury i regulacja ciśnienia.

Tablice w CODESYS

Tablica to uporządkowana kolekcja wielu elementów tego samego typu danych, umożliwiająca efektywną organizację i manipulację powiązanymi wartościami. Tablice w CODESYS zapewniają uporządkowany sposób przechowywania wielu wartości bez konieczności deklarowania osobnych zmiennych dla każdej z nich.

Korzyści z używania tablic

  • Zmniejszenie liczby zadeklarowanych zmiennych.
  • Umożliwienie łatwego indeksowania i iteracji przez wiele wartości.
  • Poprawa organizacji struktury danych w aplikacjach sterujących.

Deklarowanie tablicy w CODESYS

  1. Otwórz CODESYS i przejdź do PLC_PRG.
  2. Użyj następującej składni do zadeklarowania tablicy: ARR_Data : ARRAY[0..10] OF INT;
  3. To polecenie tworzy tablicę liczb całkowitych z 11 elementami (od indeksu 0 do 10).
  4. Aby zainicjować tablicę wartościami, skorzystaj z funkcji Auto Declare:
    • Otwórz Edit → Auto Declare.
    • Wprowadź nazwę tablicy i ustaw wartości inicjalizacyjne.
    • Kliknij OK, aby potwierdzić.

Dostęp do elementów tablicy

Aby pobrać lub zmodyfikować element tablicy:

iVar := aArray[3];

To przypisuje wartość przechowywaną w indeksie 3 tablicy aArray do zmiennej całkowitej iVar.

Testowanie tablicy w CODESYS

  1. Zaloguj się do symulatora PLC.
  2. Zaznacz opcję Simulation.
  3. Uruchom program i obserwuj wartości.
  4. Zmodyfikuj konkretne elementy tablicy i sprawdź zmiany w środowisku uruchomieniowym.

Tablice są szczególnie przydatne do przechowywania danych z czujników, implementacji buforów, obliczeń iteracyjnych i przetwarzania wsadowego w aplikacjach PLC.

Deklarowanie i używanie struktur w programie

Struktury w CODESYS umożliwiają programistom definiowanie niestandardowego typu danych, który grupuje ze sobą wiele powiązanych zmiennych. Dzięki temu kod staje się bardziej czytelny, skalowalny i wydajny, zwłaszcza przy pracy nad dużymi projektami automatyzacji.

Definiowanie niestandardowej struktury

Aby zdefiniować nowy typ struktury, wykonaj następujące kroki:

TYPE ST_Motor: STRUCT rSpeed: REAL; rCurrent: REAL; rVoltage: REAL; iTemperature: INT; xThermalSensor: BOOL; END_STRUCT; END_TYPE

Ta struktura reprezentuje silnik, przechowując jego prędkość, prąd i stan roboczy.

Deklarowanie zmiennych strukturalnych

Po zdefiniowaniu struktury, możemy zadeklarować zmienne tego typu:

PROGRAM PLC_PRG VAR stMotor_1 : ST_Motor; stMotor_2 : ST_Motor; END_VAR

Każdy silnik ma teraz swoje niezależne zmienne dla prędkości, prądu i stanu

Przypisywanie wartości do członków struktury

Aby przypisać wartości do członków struktury:

stMotor_1.rSpeed := 300.6; stMotor_2.rSpeed := 500.3;

Ta metoda zapewnia klarowne i zorganizowane zarządzanie danymi w aplikacjach PLC.

Używanie struktur w dużych projektach

Struktury są szczególnie przydatne w dużych projektach automatyzacji, gdzie istnieje wiele instancji podobnych komponentów. Na przykład, zamiast tworzyć oddzielne zmienne dla wszystkich silnika, można użyć tablic struktur. Ułatwia to zarządzanie wieloma silnikami, sprawiając, iż program staje się modułowy i skalowalny.

Różnica między strukturami a zmiennymi lokalnymi

  • Struktury są definiowane globalnie i mają zastosowanie w całym projekcie.
  • Zmienne lokalne istnieją tylko w obrębie funkcji lub programu, w którym zostały zadeklarowane.
  • Struktury używają prefiksu ST pisanego wielkimi literami w deklaracji, podczas gdy instancje zmiennych stosują notację małymi literami.

Najlepsze praktyki używania struktur w CODESYS

1. Używaj struktur do grupowania powiązanych danych

  • Struktury poprawiają modularność, grupując podobne zmienne razem.
  • Zmniejszają liczbę indywidualnych deklaracji zmiennych.
  • Zwiększają czytelność i łatwość utrzymania kodu.

2. Używaj tablic struktur w aplikacjach na dużą skalę

  • Tablice struktur upraszczają obsługę wielu podobnych komponentów (np. silników, czujników).
  • Umożliwiają łatwą iterację przez wiele obiektów dzięki pętli.

3. Definiuj struktury globalnie w celu ponownego wykorzystania

  • Pomaga utrzymać spójność w całym projekcie.
  • Zmniejsza redundancję i zwiększa możliwość ponownego wykorzystania.

4. Stosuj spójną konwencję nazewnictwa

Zapewnij znaczące i intuicyjne nazwy dla lepszej czytelności.

Używaj st jako prefiksu dla struktur (np. stMotor).

Podsumowanie:

Artykuł ten omawia wykorzystanie tablic i struktur w CODESYS, pokazując, jak je deklarować, inicjalizować i efektywnie wykorzystywać w programowaniu PLC. Przez praktyczne przykłady autor wyjaśnia, jak te struktury danych mogą poprawić organizację kodu i implementację logiki sterowania. Czytelnicy zdobędą wiedzę na temat efektywnego zarządzania danymi strukturalnymi w aplikacjach CODESYS.

Darmowy zarys kursu CODESYS

  1. Lekcja #1: Czym jest? Dlaczego powinieneś go znać?! – PART 1
  2. Lekcja #2: Jak zainstalować Codesys? – PART 2
  3. Lekcja #3: Napisz swój pierwszy program w Codesys: Structured Text – Part #3
  4. Lekcja #4: Jak stworzyć wizualizację Codesys w aplikacji? – Part #4
  5. Lekcja #5: Wprowadzenie do zmiennych w CODESYS – Part #5
  6. Lekcja #6: Struktury danych w CODESYS: Praktyczne zastosowanie tablic i struktur – Part #6
  7. Lekcja #7: Zaawansowane typy danych. Wyliczenia i zmienne lokalne vs. globalne – Part #7
  8. Lekcja #8: Operatory – Wprowadzenie i praktyczne zastosowania – Part #8
  9. Lekcja #9: Kontrola przepływu programu: IF, CASE i pętle – Part #9
Idź do oryginalnego materiału