Jak tworzyć oraz konfigurować bazę zmiennych w środowisku Cscape? | Kurs programowania PLC od podstaw | Odc. 3

Z tego artykułu dowiesz się:

  • Jakie są typy zmiennych dostępnych w Cscape?
  • Jak tworzyć zmienne w obiekcie I/O Names?
  • Jak tworzyć zmienne z poziomu programu logicznego?
  • Jak zrobić import i export listy zmiennych?
  • Jak wykorzystać zmienne w programie sterującym?

W poprzednim artykule poznałeś/aś środowisko Cscape oraz nauczyłeś/aś się organizacji pracy podczas tworzenia projektów. Teraz czas na dalsze działania i naukę kolejnych podstaw niezbędnych do programowania sterowników Horner. Kolejnym ważnym dla Ciebie krokiem będzie przygotowanie listy zmiennych oraz nauka właściwego ich wykorzystania w programie sterującym. Umiejętność tę będziesz wykorzystywał w każdym tworzonym projekcie, dlatego zapraszamy do dalszej lektury!

Kurs programowania PLC od podstaw dla automatyków i elektryków

Podstawy programowania sterowników PLC

  • 1. Wprowadzenie. Jak skonfigurować, podłączyć oraz uruchomić sterownik PLC?
  • 2. Jak tworzyć i edytować projekty w oprogramowaniu Cscape?
  • Programowanie sterownika PLC w języku drabinkowym

  • 3. Jak tworzyć oraz konfigurować bazę zmiennych w środowisku Cscape?
  • 4. Jak korzystać ze styków, cewek i bloków operacji arytmetycznych w programie sterującym?
  • 5. Jak odmierzać czas w programie sterującym i jak konfigurować timery?
  • 6. Jak porównywać wartości i wykorzystać wyniki operacji logicznych?
  • 7. Jak zliczać impulsy i konfigurować liczniki?
  • 8. Jak konwertować typy zmiennych i przemieszczać zmienne w programie?
  • 9. Jak sterować wykonywaniem programu logicznego? Instrukcja skoku warunkowego
  • Programowanie zintegrowanego panelu HMI

  • 10. Jak budować ekrany operatorskie z obiektami do wizualizacji i zadawania wartości zmiennych?
  • 11. Jak umożliwić nawigację między ekranami operatorskimi oraz jak korzystać z gotowych obiektów graficznych w środowisku Cscape?
  • 12. Jak wizualizować zmienne analogowe oraz jak modyfikować ich wartości przy pomocy obiektów dostępnych w oprogramowaniu Cscape?
  • 13. Jak korzystać z obiektu menu?
  • 14. Konfiguracja i obsługa alarmów w sterownikach PLC
  • 15. Kontrolka Data Trend
  • Komunikacja sterowników PLC w sieci szeregowej i Ethernet

  • 16. Komunikacja szeregowa Modbus RTU Master i Slave
  • 17. Komunikacja CsCAN
  • 18. Komunikacja Ethernet Modbus TCP
  • 19. Wysyłanie wiadomości Email w sterowniku PLC
  • Zaawansowane funkcje sterownika PLC

  • 20. Regulator PID
  • 21. Składowanie danych: Data logging oraz karta MicroSD
  • 22. Trendy historyczne oraz receptury w programie
  • 23. Setpoint, backup i restore danych oraz generowanie raportów z poziomu sterownika
  • 24. Hasła i zabezpieczenia w programie, ustawienia języka oraz edytor dostępny w narzędziu, opcja autodokumentacji / Dodatkowe ustawienia i możliwości edycji
  • Krok 1: Jakie typy zmiennych wykorzystywane są w środowisku Cscape?

    Zmienna to podstawowy element programów sterujących w sterownikach PLC, posiadający cztery podstawowe atrybuty:

    • unikalną nazwę (identyfikator, tag) – służy do identyfikowania zmiennej w programie,
    • unikalny adres referencyjny – umożliwia dostęp do miejsca przechowywania zmiennej w wewnętrznej pamięci sterownika PLC,
    • typ – określa rodzaj przechowywanych w niej danych oraz sposób reprezentacji jej wartości. W zależności od typu, zmienna przechowywana jest w określonym obszarze pamięci sterownika,
    • bieżącą wartość – wartość zmiennej, która może być zmieniana oraz odczytywana w trakcie wykonywania programu.

    W zależności od typu wartości, jakie zmienna może przyjmować, określany jest jej rodzaj. Sterowniki Horner pozwalają na obsługę następujących typów zmiennych:

    • zmienne bitowe – służą do opisywania stanów, a ich wartości interpretowane są jako ciągi bitów (każdy bit może przyjmować wartość 0 lub 1),
    Typ
    Nazwa
    Ilość bitów
    Opis
    Bool
    Boolean
    1
    Pojedynczy bit. Może on posiadać tylko wartość ‘0’ lub ‘1’.
    byte
    Byte
    8
    Ciąg 8 kolejnych bitów. Wartości typu bajt są stosowane, jeżeli ustawienia poszczególnych bitów mają większe znaczenie niż sama wartość.
    word
    Word
    16
    Ciąg 16 kolejnych bitów. Wartości typu bajt są stosowane, jeżeli ustawienia poszczególnych bitów mają większe znaczenie niż sama wartość.
    Dword
    Double Word
    32
    Ciąg 32 kolejnych bitów. Wartości typu bajt są stosowane, jeżeli ustawienia poszczególnych bitów mają większe znaczenie niż sama wartość.
    • zmienne rejestrowe – służą do przechowywania wartości liczbowej (np. 123.5) i wykorzystywane do obsługi poszczególnych bloków funkcyjnych; pojedynczy rejestr jest 16-bitowy,
    Typ
    Nazwa
    Ilość bitów
    Opis
    int
    Integer
    16
    Wartość 16-bitowa ze znakiem. Typ ten jest stosowany, jeżeli przewidywane jest, że wartość będzie mieścić się w przedziale -32 768 do +32 768
    dint
    Double Integer
    32
    Wartość 32-bitowa ze znakiem. Typ ten jest stosowany, jeżeli przewidywane jest, że wartość będzie mieścić się w przedziale -2 147 483 648 do +2 147 483 648
    real
    Floating Point
    32
    Wartość 32-bitowa. Wartości te są przechowywane i przetwarzane w formacie IEEE pojedynczej precyzji (sześć cyfr). Wartość musi mieścić się w przedziale od – 3.40282E+38do +3.40282E+38
    Lreal
    Long Floating Point
    64
    Wartość 64-bitowa. Wartości te są przechowywane i przetwarzane w formacie IEEE pojedynczej precyzji (sześć cyfr). Wartość musi mieścić się w przedziale od –1.797693E+308 do +1.797693E+308
    • zmienne string – przechowują kody znaków ASCII,
    Typ
    Nazwa
    Ilość bitów
    Opis
    string
    String
    Jeden znak na 8 bitach
    Ciąg znaków o zmiennej długości. Każdy ze znaków jest reprezentowany przez jeden bajt.

    Krok 2: Jak zorganizowana jest pamięć w sterownikach Horner?

    Zmienne wykorzystywane w programie mogą wykorzystywać poniższe obszary pamięci:

    Obszar pamięci
    typ zmiennej
    rozmiar zmiennej
    ilość zmiennych
    opis
    %s
    bit systemowy
    1 bit
    256
    1-bit systemowy sygnał dyskretny
    %SR
    rejestr systemowy
    16 bitów
    256
    16-bitowy rejestr systemowy
    %T
    bit bez podtrzymania
    1 bit
    16384
    1-bitowy sygnał dyskretny bez podtrzymania wartości po zaniku napięcia zasilania
    %M
    bit z podtrzymaniem
    1 bit
    16384
    1-bitowy sygnał dyskretny z podtrzymaniem wartości po zaniku napięcia zasilania
    %R
    rejestry z podtrzymaniem
    16 bitów
    50000
    16-bitowe rejestry z podtrzymaniem wartości po zaniku napięcia zasilania
    %K
    bit klawiatury
    1 bit
    256
    1-bitowy sygnał dyskretny dający bezpośredni dostęp z poziomu programu do wszystkich przycisków umieszczonych na panelu HMI
    %D
    bit ekranowy
    1 bit
    1023
    Flagi cyfrowe wykorzystywane do sterowania wyświetlanymi ekranami na panelu HMI. Jeśli bit jest ustawiony, pojawi się dany ekran.

    Pamięć odpowiedzialna za rejestrowanie stanów sygnałów wejściowych i wyjściowych zorganizowana jest w następujący sposób:

    Obszar pamięci
    typ zmiennej
    rozmiar zmiennej
    ilość zmiennych
    opis
    %i
    Wejście dyskretne
    1 bit
    2048
    1-bitowe wejście dyskretne, najczęściej wykorzystywane do podłączenia przełączników czynników dyskretnych
    %q
    Wyjście dyskretne
    1 bit
    2048
    1-bitowe wyjście dyskretne, najczęściej wykorzystywane do podłączenia fizycznych wyjść
    %ai
    Wejście analogowe
    16 bitów
    512
    16-bitowe rejestry wejściowe analogowe stosowane w celu zebrania danych wejściowych, takich jak napięcia, temperatury pochodzących z dołączonych urządzeń
    %aq
    Wyjście analogowe
    16 bitów
    512
    16-bitowe rejestry wyjściowe do przesyłania informacji analogowych takich jak napięcia, prądy podłączonych urządzeń

    Krok 3: Jak zarządzać zmiennymi w oprogramowaniu Cscape?

    Operacje na zmiennych takie jak dodawanie, usuwanie i edycja możliwe są po wybraniu opcji I/O Names, znajdującej się w oknie Project Navigator oprogramowania Cscape.

    Nową zmienną dodasz, wybierając przycisk Add, a następnie uzupełniając parametry odnoszące się do jej adresu, typu i unikalnej nazwy. Opcjonalnie wykorzystując pole komentarza możesz podać informację, do czego wykorzystywana będzie tworzona zmienna.

    Nowa zmienna pojawia się na liście dostępnych zmiennych w programie.


    Programowanie w akcji!

    Dodasz teraz zmienne, które wykorzystasz w programie.

    W sposób zaprezentowany powyżej uzupełnij bazę kolejnymi zmiennymi:

    %m00001 1 Impuls_100ms 
    %m00002 1 Zawor_napelniajacy_ZB1
    %m00003 1 Zawor_oprozniajacy_ZB1
    %m00004 1 Zawor_napelniajacy_ZB2
    %m00005 1 Zawor_oprozniajacy_ZB2
    %m00006 1 Zawor_oprozniajacy_ZB3

    Aby usunąć lub zmodyfikować zmienną, zaznacz konkretną pozycję na liście i wybierz przycisk Remove lub Edit.

    Dodatkowo dostępna jest opcja Where, która poinformuje Cię, gdzie wybrana zmienna została wykorzystana w kodzie.

    Środowisko Cscape daje możliwość importowania bazy zmiennych z arkusza kalkulacyjnego. W tym celu skopiuj przygotowany zestaw zmiennych przy użyciu schowka systemowego, a następnie wklej je do okna I/O Names, używając przycisku Paste.

    Uwaga: Przy tworzeniu zestawu w arkuszu kalkulacyjnym zwróć uwagę, by pierwsza kolumna zawierała adres zmiennej, kolejna kolumna – liczbę bitów, a ostatnia kolumna – unikalną nazwę.

    Możliwy jest także eksport zmiennych przy użyciu opcji Copy all. Następnie w arkuszu kalkulacyjnym wybierz polecenie Wklej. Na wyeksportowanych elementach możesz dalej pracować, dowolnie je edytując.

    Teraz w arkuszu kalkulacyjnym przygotuj listę zmiennych z poniższej grafiki i wklej ją do bazy zmiennej w programie Cscape.

    Dodawanie zmiennych możliwe jest również z poziomu programu sterującego.

    Czas rozpocząć programowanie w języku drabinkowym!

    W tym celu w projekcie utwórz pierwszy szczebel kodu. Z górnego paska wybierz ikonę styku i umieść ją na szarym tle. Obok umieść ikonę cewki.

    Elementy drabinki będą omówione w dalszej części kursu, na razie wykorzystamy tylko te dwa na potrzebę stworzenia zmiennych.

    Kolejno kliknij dwukrotnie na wybranym elemencie i w oknie edycyjnym podaj adres i nazwę zmiennej. Typ zmiennej konfigurowany jest automatycznie. Tak wprowadzone dane wystarczą do utworzenia nowej zmiennej w bazie programu.

    Jest to bardzo szybkie rozwiązanie, jednak nie polecane do tworzenia dużego i złożonego zestawu zmiennych – nie daje ono pełnej kontroli i podglądu tworzonej bazy. Bardzo użyteczne okazuje się w przypadku tworzenia pojedynczych zmiennych pomocniczych.

    Przypisywanie zmiennych z bazy do wybranych elementów drabinki realizowane jest tą samą drogą. W otwartym oknie, otwierającym się po kliknięciu w element, wpisujemy nazwę lub adres, pod którym znajduje się zmienna.

    Na potrzeby tworzonego programu do styku normalnie otwartego przypisz zmienną programową o nazwie T_100ms i adresie %S004 (wystarczy w miejscu Address wpisać „s4”), natomiast do cewki przypisz zmienną o nazwie Impuls_100ms i adresie %M00001 (wystarczy w miejscu Address wpisać „m1”).

    Zmienna T_100ms o adresie %S004 ustawia wartość 1 co 100 ms, co powoduje przepływ sygnału co kolejne 100 ms i cykliczne zasilanie cewki. Inne zmienne programowe znaleźć można w tablicy I/O names.


    W kolejnym artykule z cyklu kurs „Programowanie oraz konfiguracja sterowników PLC zintegrowanych z hmi”: Jak korzystać ze styków, cewek i bloków operacji arytmetycznych w programie sterującym?

    • Jak dodać do programu sterującego styki, cewki i bloki arytmetyczne w środowisku Cscape?
    • Jak utworzyć prostą logikę programu sterującego?
    • Jak skompilować stworzony program i wgrać go do sterownika?
    • Jak śledzić wykonywany program i jak monitorować wartości wykorzystanych zmiennych?

    Czy ten artykuł był dla Ciebie przydatny?

    Średnia ocena artykułu: 0 / 5. Ilość ocen: 0

    Ten artykuł nie był jeszcze oceniony.

    Kamil Zajdel
    Kamil ZajdelAbsolwent Akademii Górniczo – Hutniczej na kierunku Automatyka i Robotyka. Od kilku lat związany z ASTORem i programowaniem sterowników PLC. Współtwórca kursu programowania PLC dla automatyków i elektryków.

    Opublikuj

    Twój adres email nie zostanie opublikowany.

    Czytaj więcej