Z tego artykułu dowiesz się:
- Czym są bloki UDFB,
- Jak stworzyć swój własny blok funkcyjny w oprogramowaniu Cscape,
- Jak przebiega proces tworzenia własnych bloków w Cscape
- Jakie możliwości oferują bloki UDFB
Czym są włąściwie UDFB?
Jak sama nazwa wskazuje UDFB (User Defined Function Blocks) to bloki funkcyjne, które są tworzone przez użytkowników. To bardzo efektywny proces tworzenia kodu wielokrotnego użytku. Bloki te są obsługiwane zarówno w języku LD, ST, FDB oraz IL. Składają się one ze standardowych instrukcji. Do definiowania bloków konieczne jest korzystanie z oprogramowania Cscape w wersji 9.90 SP3 lub nowszej. (oprogramowanie można pobrać za darmo z naszej strony)
Porównanie bloku UDFB do podprogramu:
- Wywoływanie
- Podprogramy są wywoływane za pomocą instrukcji call
- UDFB mogą być umieszczane bezpośrednio w głównych blokach logicznych
- Instancje
- Podprogramy mają jedną instancję
- Bloki UDFB mogą mieć wiele instancji
- Zmienne
- Podprogramy posiadają pojedynczy zestaw zmiennych
- UDFB posiada zestaw zmiennych dla każdej instancji
Jak wygląda proces wprowadzania bloków UDFB?
1. Tworzenie własnego bloku UDFB
2. Użycie instancji bloku w schemacie logicznym
3. Proces debugowania pojedynczego przypadku
4. Namnażanie kolejnych instancji bloku UDFB, gdziekolwiek ich potrzebujesz w swoim programie
Jak wygląda proces tworzenia bloku UDFB
1. Nazwanie bloku UDFB
2. Przypisanie zmiennych wejściowych
3. Przypisanie zmiennych lokalnych dla danego bloku funkcyjnego
4. Przypisanie zmiennych wyjściowych
5. Stworzenie logiki
Zobaczysz teraz jak stworzyć prosty blok funkcyjny, który oblicza objętość cieczy w pionowym cylindrycznym zbiorniku. W przypadku tego bloku zmienne rozkładają się w następujący sposób:
- Zmienne wejściowe
- Średnica zbiornika w jednostkach liniowych (np. metry)
- Wysokość napełnienia zbiornika w jednostkach liniowych (np. metry)
- Zmienne lokalne
- Brak
- Zmienne wyjściowe
- Objętość cieczy w jednostkach sześciennych (np. metry3)
Aby obliczyć objętość, blok funkcyjny musi skorzystać ze wzoru na pole podstawy zbiornika, które jest równe πr2.
Tworzenie bloku w Cscape
Przejdź teraz do oprogramowania Cscape, aby stworzyć swój blok funkcyjny.
Masz problemy ze środowiskiem Cscape? Zapraszamy na kurs PLC, gdzie od podstaw nauczysz się jak pracować w tym środowisku 🙂
Zanim rozpoczniesz, upewnij się, że masz włączoną logikę drabinkową opartą na tagach. Aby to zrobić, wejdź w menu Tools, następnie wybierz Application Settings. Upewnij się, że zaznaczone na zdjęciu poniżej okienko jest wybrane. Jeżeli nie jest, to wybierz je i następnie zatwierdź przyciskiem OK.

Wybieranie logiki drabinkowej opartej na tagach
Następnie, aby utworzyć nowy projekt z językiem drabinkowym opartym na tagach, kliknij przycisk File. Ukaże się następujące okno. Wybierz opcję zaznaczoną na zdjęciu poniżej i następnie kliknij przycisk OK.

Wybieranie opcji Advanced ladder
Po upewnieniu się, że wszystko jest poprawnie przygotowane, przejdź do górnego rogu ekranu.

Dodawanie nowego bloku UDFB
Po wybraniu bloku nazwij go Liq_Vol. Po utworzeniu bloku funkcyjnego możesz zobaczyć ekran, który przypomina podprogram. (Pamiętaj, że to nie jest to samo).

Ekran bloku UDFB w oprogramowaniu Cscape
Dla wybranego bloku została utworzona nowa pozycja w oknie zmiennych naszego projektu.
Zacznij od przypisania zmiennych potrzebnych do obliczenia objętości cieczy. W oknie Program Variables zaznacz blok Liq_Vol i kliknij go prawym przyciskiem myszy.

Deklaracja zmiennych w oknie program variables
Następnie wybierz opcję Add Variable w celu dodania zmiennej.
Pokaże się okno z możliwością wyboru typu zmiennej. Tak jak na początku artykułu wspominaliśmy, mamy do wyboru zmienne wejściowe, lokalne oraz wyjściowe.

Wybór typu zmiennej
W przypadku naszego bloku musimy zdefiniować zmienne wejściowe oraz wyjściowe. Przejdź najpierw do zmiennych wejściowych. W tym celu wybierz pozycję Input Parameter.
Następnie zmień nazwę zmiennej na Diameter (oznaczający średnicę).

Przypisywanie nazwy zmiennej
Następnie zmień typ zmiennej na REAL
Ostatnią zmienną, którą musisz dodać do swojego projektu, jest objętość. Postępuj analogicznie jak w przypadku dwóch pierwszych zmiennych, tylko na początku zamiast Input Parameter wybierz Output Parameter, oznaczający zmienną wyjściową. W tym przypadku nazwij ją Volume oraz ustal jej typ jako REAL. Finalnie twoje okno zmiennych powinno wyglądać następująco:

Finalny wygląd okna ze zmiennymi
Następnie w oknie programu (przypominającym podprogram) dodaj styk normalnie otwarty i nazwij go s[6].
Kolejnym krokiem jest zdefiniowanie operacji matematycznej. W tym celu rozwiń menu Math Operations i wybierz blok Expression. Dodaj go do linii, w której masz styk s[6].

Finalna postać wyrażenia matematycznego wpisanego w bloku funkcyjnym
Blok zostanie zapisany w oknie [UDFBs]. Będziesz go mógł dodawać z poziomu menu.
Następnie możesz przejść do okna Data Watch w celu sprawdzenia poprawności obliczeń. Kliknij okienko odpowiadające za funkcję Data Watch.

Sprawdzanie poprawności bloku za pomocą funkcji Data Watch
Pokazane zostaną wartości naszych zmiennych oraz wartość wyjściowa – objętość. Możesz dowolnie zmieniać wartości i obserwować zmianę wyniku. Jak widać na załączonym zdjęciu, obliczenia zostały wykonane poprawnie.

Obliczenia wykonane w bloku funkcyjnym
Możliwości oraz ograniczenia wynikające z zastosowania bloków UDFB:
- Można je łączyć szeregowo (maksymalnie 1 UDFB na szczebel w naszym programie)
- Bloki UDFB mogą być chronione przez ochronę OEM
- Bloki UDFB mogą być zarówno importowane, jak i eksportowane
Zachęcamy także do zapoznania się z pozostałymi możliwościami oprogramowania Cscape i nauki jego użytkowania podczas naszego darmowego kursu programowania PLC od podstaw.