Język bloków funkcyjnych (CFC) | Kurs programowania w Codesys odc. 9

Z tego artykułu dowiesz się:

  • jak działa język CFC,
  • jak przygotować projekt,
  • jak stworzyć pierwszy program w CFC.

Witamy w kolejnej części naszego kursu programowania w Codesys. Ostatnio dowiedziałeś/łaś się jak działa debugger oraz jak efektywnie debugować kod programu dla sterownika PLC. W tym odcinku poznasz kolejny język dostępny w środowisku Codesys – język CFC (od ang. Continuous Function Chart).

Jest to język graficzny: wstawiamy do do funkcji poszczególne elementy i łączymy je w sieć, tworząc zorganizowany schemat. Chcesz dowiedzieć się więcej? Zapraszamy na kolejny odcinek kursu!

Kurs programowania w Codesys

Część I – Podstawowe funkcjonalności środowiska Codesys

  • 1. Pierwsze kroki w Codesys. Jak stworzyć program? | Kurs programowania w Codesys odc. 1
  • 2. Pierwsze podłączenie i przygotowanie Codesys do pracy ze sterownikiem PLC | Kurs programowania w Codesys odc. 2
  • 3. Język drabinkowy (LD) | Kurs programowania w Codesys odc. 3
  • 4. Typy danych w Codesys, rodzaje zmiennych, sposoby ich tworzenia | Kurs programowania w Codesys odc. 4
  • 5. Język schematów blokowych (FBD) | Kurs programowania w Codesys odc. 5
  • 6. Tworzenie podstawowej wizualizacji HMI | Kurs programowania w Codesys odc. 6
  • 7. Język strukturalny (ST) | Kurs programowania w Codesys odc. 7
  • 8. Diagnostyka w Codesys – jak sprawdzać działanie oprogramowania i sterownika? | Kurs programowania w Codesys odc. 8
  • 9. Język bloków funkcyjnych (CFC) | Kurs programowania w Codesys odc. 9
  • 10. Funkcja, blok funkcyjny, program – zmodyfikuj program w Codesys dla lepszej funkcjonalności | Kurs programowania w Codesys odc. 10
  • Część II – Zaawansowane funkcje i możliwości środowiska Codesys

  • 11. Komunikacja EtherCAT – konfiguracja i przykładowa aplikacja | Kurs programowania w Codesys odc. 11
  • 12. Softmotion – synchronizacja serwonapędów przy pomocy sterownika PLC| Kurs programowania w Codesys odc. 12
  • 13. Komunikacja Modbus RTU i TCP/IP – jak skonfigurować najpopularniejszy protokół komunikacyjny w Codesys? | Kurs programowania w Codesys odc. 13
  • 14. Tworzenie projektów w Codesys ze sterownikami bezpieczeństwa Safety | Kurs programowania w Codesys odc. 14
  • 15. Konfiguracja maszyny CNC z wykorzystaniem sterownika PLC – obsługa G-Code | Kurs programowania w Codesys odc. 15
  • 16. Integracja sterownika PLC z systemem SCADA w Codesys| Kurs programowania w Codesys odc. 16
  • 17. Połączenie i skomunikowanie sterownika PLC z robotem Kawasaki w Codesys| Kurs programowania w Codesys odc. 17
  • Dodatkowe materiały i lekcje dla kursantów:

  • 1. Jak stworzyć wirtualny serwonapęd w Codesys? Instrukcja krok po kroku.
  • Czym jest język CFC i jak działa?

    Język CFC, podobnie jak język drabinkowy oraz język strukturalny, jest zdefiniowany w międzynarodowej normie IEC 61131-3. W tym języku użytkownik tworzy kod za pomocą bloków funkcyjnych i innych elementów, które można dowolnie umieszczać w programie. Wstawione elementy łączy się w sieć w celu utworzenia schematu blokowego. Można także wstawiać sprzężenia zwrotne.

    Kolejność wykonywania schematu bloków funkcyjnych jest oparta na przepływie danych. Ponadto jeden blok funkcyjny może przetwarzać wiele przepływów danych. Język CFC warto stosować, gdy wyjścia są ściśle funkcją bieżących wejść (innymi słowy, gdy nie występują zmienne stanu, takie jak sprzężenia boole’owskie, cewki ustawiające/resetujące lub flagi).

    Jak stworzyć projekt w języku CFC?

    Przejdźmy do środowiska Codesys. Tak samo, jak w przypadku języka drabinkowego i języka ST, poznasz możliwości działania oprogramowania. Zapewne wiesz już jak utworzyć nowy program. Jeżeli jednak przegapiłeś/aś wcześniejsze odcinki, zapoznaj się z podstawami przedstawionymi w odcinku 1.

    Przy tworzeniu nowego projektu musisz zmienić język programowania na Continuous Function Chart (CFC).

    Zmiana języka na CFC, źródło: ASTOR

    Aby zacząć pracę nad programem, otwórz segment o nazwie PLC_PRG. Znajdziesz go w drzewku głównym, domyślnie znajdującym się po lewej stronie ekranu.

    Otwarcie PLC_PRG z drzewka głównego programu Codesys, źródło: ASTOR

    Poznasz teraz elementy języka CFC, które oferuje Codesys. Po otwarciu programu PLC_PRG, po prawej stronie zobaczysz okno Toolbox.  Jeżeli nie widzisz takiego okienka, kliknij w prawym górnym rogu w głównym menu opcję View, a następnie wybierz ToolBox.

    Podobnie jak w innych językach graficznych w Codesys, znajdziesz w nim wszystkie elementy (obiekty) wykorzystywane podczas tworzenia programu.

    Zawartość Toolbox Codesys, źródło: ASTOR

    W Toolboxie znajdują się elementy, które zostaną wykorzystane do utworzenia programu. Na górze listy narzędzi znajduje się element Pointer. Gdy ta pozycja jest zaznaczona, kursor ma kształt strzałki, dzięki której można zaznaczać elementy w oknie edytora w celu ich pozycjonowania i edycji. Pozostałe elementy zostały opisane poniżej:

    • Control Point – dodaje punkt kontrolny na linii łączącej elementy. Użycie umożliwia ręczne kształtowanie linii.
    • Input – odczytuje zmienną i przesyła wartość do podłączonego bloku.
    • Output – wynik operacji z podłączonego bloku przesyłamy do zmiennej.
    • Box – wewnątrz niego zostaną wykonane operacje z wykorzystaniem zmiennych wejściowych. Może to być funkcja, blok funkcyjny lub program.
    • Jump – po osiągnięciu stanu wysokiego następuje pominięcie kodu programu aż do miejsca, w którym jest odpowiadający mu Label.
    • Label – miejsce, do którego ma być wykonany skok od przypisanego elementu Jump.
    • Return – po osiągnięciu stanu wysokiego kończy się wykonywanie danego programu.
    • Composer – przepisanie zmiennych do elementów struktury.
    • Selector – przepisanie elementów struktury do zmiennych.
    • Connection Mark – tworzą połączenie równoznaczne z łączeniem linią. Source jest wejściem, a Sink wyjściem.
    • Input Pin – dodawanie wejścia do bloku, o ile ma on taką możliwość.
    • Output Pin – dodawanie wyjścia do bloku, o ile ma on taką możliwość.

    Tworzenie programu w języku CFC

    Tworzenie programów w języku CFC w Codesys ma prostą mechanikę, podobną do poznanej w LD lub FBD. Zasada działania to „przeciągnij i upuść”.

    Na początku dodaj element Box, poprzez przeciągnięcie go z Toolboxa na puste pole robocze. Element ten będzie określony jako timer TON. W środku elementu zapisz typ TON, a także dowolną nazwę timera, wyświetlającą się nad boxem.

    Umieszczanie elementu Box w języku CFC, źródło: ASTOR

    Następnie dodaj wejścia do utworzonego timera. Zrobisz to poprzez przeciągnięcie elementu Input do przestrzeni roboczej, a następnie połączenie z timerem. Następnie zadeklaruj zmienną wejściową, klikając na element Input.

    Umieszczanie i podłączenie elementu Input w języku CFC, źródło: ASTOR

    Analogicznie dodaj kolejny input, określający czas opóźnienia timera.

    Kolejnym boxem, który dodamy, będzie CTU – licznik liczący w górę. Przeciągnij box do przestrzeni roboczej, a następnie w jego środku napisz CTU i nadaj mu nazwę. Następnie dodaj zmienne wejściowe (takim samym sposobem, jak w przypadku timera), lecz na wejściu CU podłącz tą samą zmienną, która została podłączona do wyjścia Q timera.

    Umieszczanie i podłączenie elementu Output w języku CFC, źródło: ASTOR

    Dodaj element Output i połącz go z wyjściem PV. Do wyjścia Q podłączysz inny element, tj. Connection Mark – Source, czyli znacznik źródła danych, który posłuży nam do przekazania danych w kolejnym etapie programowania.

    Całość schematu powinna wyglądać tak, jak na poniższej grafice.

    Dodanie licznika do programu, źródło: ASTOR

    Ostatnim krokiem jest dodanie elementu o nazwie Connection Mark – Sink oraz nadanie mu dokładnie tej samej nazwy, jak poprzednio dodany Connection Mark – Source. Pozwoli to na otrzymywanie danych z wyjścia, do którego został podpięty element Sink. Następnie do jego wyjścia podepnij element Output i nazwij „Wyjscie_licznik”. Element ten wejdzie w stan wysoki, gdy licznik osiągnie wartość zadaną. Końcowy schemat ma wyglądać tak jak na poniższej grafice.

    Końcowy wygląd programu, źródło: ASTOR

    Tak oto udało się stworzyć pierwszy program w języku CFC. Uruchom symulator i przetestuj jego działanie. Jak to zrobić, dowiesz się z odcinka 1 kursu Codesys.

    Program ten zlicza załączenia się wejścia do timera z zadanym opóźnieniem. Jeżeli liczba załączeń będzie równać się wartości zadanej licznika, stan wysoki zostanie załączony i przekazany poprzez elementy Connection Mark, do wyjścia, które poinformuje o stanie licznika.

    W tym odcinku to już wszystko. Poznałeś/aś podstawy CFC, wiesz już jak tworzyć programy z jego wykorzystaniem – w związku z tym poeksperymentuj z pozostałymi bloczkami funkcyjnymi!

    W kolejnym odcinku poznasz funkcje, bloki funkcyjne w Codesys, dowiesz się, czym są, jak i gdzie się je stosuje oraz czym się cechuje program, a także jak je modyfikować dla lepszej funkcjonalności.

    Do zobaczenia!

    Mateusz Steczkowski
    mateusz.steczkowski@astor.com.pl

    Czy ten artykuł był dla Ciebie przydatny?

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

    Ten artykuł nie był jeszcze oceniony.

    Mateusz Steczkowski
    Mateusz SteczkowskiAbsolwent Akademii Górniczo – Hutniczej w Krakowie na kierunku Automatyka i Robotyka na wydziale IMIR. Pasjonat Formuły 1.

    Opublikuj

    Twój adres e-mail nie zostanie opublikowany.

    Czytaj więcej