Porozmawiaj z nami
Czat udostępnia Firmao.pl CRM
NEWSY / BLOG POZNAJ MITSUBISHI ELECTRIC ODDZIAŁ POLSKA

Korporacja Mitsubishi Electric, posiadająca 90 lat doświadczenia w zakresie dostarczania niezawodnych, wysokiej jakości innowacyjnych produktów w dziedzinie automatyki przemysłowej, produkcji, marketingu i sprzedaży urządzeń elektrycznych i elektronicznych. Programowalne sterowniki PLC, rozwiązania napędowe, roboty przemysłowe, panele dotykowe, wycinarki laserowe i sterownie CNC firmy Mitsubishi Electric zaliczają się do produktów najwydajniejszych na rynku i gwarantują sukcesy firmy już od ponad 30 lat.

KATALOG PRODUKTÓW POZNAJ FINDER

Od 1954 Finder pracował wyłącznie w zakresie przekaźników i timerów. Nasz wysoki stopień specjalizacji zaowocował ponad 10.000 różnych produktów w jednej z najszerszych dostępnych ofert. Firma szeroko się rozwija i inwestuje w przyszłość uzupełniając gamę swojego asortymentu. Prócz przekaźników oferuje rozwiązania przemysłu elektrycznego do zastosowań domowych jak i komercyjnych poprzez przekaźniki, urządzenia przeciwprzepięciowe, termostaty panelowe, zasilacze i liczniki energii. Gama asortymentu obejmuje ponad 12 tysięcy produktów.

BLOG WAGO POZNAJ WAGO

WAGO jest producentem urządzeń automatyki przemysłowej i budynkowej oraz systemów połączeń dla elektrotechniki i elektroniki. Powstanie w 1951 roku firmy WAGO było wyrazem przekonania o słuszności obranego kierunku i stworzyło podwaliny pod dalszy rozwój technologii. Z czasem stała się ona standardem na całym świecie i teraz nie sposób wyobrazić sobie nowoczesnej instalacji elektrycznej czy systemu automatycznego sterowania bez wyrobów WAGO.

SKLEP I ZAMÓWIENIA POZNAJ EATON

Eaton Electric jest producentem najwyższej jakości automatyki przemysłowej, aparatury sygnalizacyjnej, łączeniowej, zabezpieczającej i instalacyjnej oraz systemów rozdziału energii niskiego napięcia. Międzynarodowe nagrody oraz certyfikaty są dowodem, iż produkty Eaton Electric odpowiadają najnowszym standardom bezpieczeństwa i wymaganiom jakości. Wszystkie nasze wyroby gwarantują długoletnie działanie.

MENU PROFIL

Kurs programowania sterowników PLC na przykładzie pompowni w e!COCKPIT – cz. 4/5

1291 wyświetleń, autor: Łukasz Kurzawa.

Artykuł z serii: Kurs programowania PLC na sterowniku WAGO PFC


W czwartym odcinku po pracach przygotowawczych w dwóch poprzednich odcinkach przyszedł czas na crème de la crème pisania programu na sterowniki – algorytm sterowania. Coś, co stanowi serce programu, a dzięki czemu maszyna pracuje zgodnie z zamysłem programisty.

W tym odcinku:

  • Zaprojektujemy i omówimy algorytm sterowania pompownią w trybie automatycznym i ręcznym.
  • Utworzymy blok funkcyjny sterowania pompami napisany w języku tekstowym ST.
  • Przetestujemy symulacyjnie działanie algorytmu sterowania.

Algorytm sterowania pompownią

Pracę nad algorytmem zaczniemy od opisu słownego. Najczęściej w taki sposób  programista sterowników dostaje wytyczne od technologa czy projektanta z innej branży co ma zrobić .

Zasadę działania naszego układu sterowania można streścić w kilku punktach:

  1. Na raz może pracować tylko jedna pompa.
  2. W trybie automatycznym, gdy poziom wody się podniesie powyżej nastawy lub załączy się czujnik pływakowy poziomu maksymalnego, to załącz pompę. Wyłączenie pompy ma nastąpić po opadnięciu poziomu w studni poniżej nastawy poziomu wyłączenia pompy lub załączenia się czujnika pływakowego poziomu suchobiegu.
  3. Pompy mają pracować naprzemiennie – po cyklu załączenia i wyłączenia pompy P1 po ponownym podniesieniu się poziomu w studni ma załączyć się i wyłączyć pompa P2. Potem ponownie P1, P2 itd.
  4. Jeśli jedna pompa jest w trybie ręcznym, to druga pracuje tak, jakby pierwsza była odstawiona.

Przejdźmy teraz do przedstawienia algorytmu sterowania w trybie automatycznym w sposób bliższy programiście, czyli za pomocą schematu sekwencji SFC:

Rys. 1. Graf SFC algorytmu sterowania pompownią w trybie automatycznym.

W kroku S1 obydwie pompy są wyłączone. Jeśli poziom ścieków się podniesie oraz pompa P1 jest dostępna, to przechodzimy do kroku S2. Jeśli poziom ścieków się podniesie, a pompa P1 nie jest dostępna, a jest dostępna P2, to przejdź do kroku S4. Pamiętajmy, że czytając schematy SFC, jeśli nie jest opisane inaczej, w rozgałęzieniach alternatywnych tranzycje sprawdzamy od lewej do prawej, czyli jeśli obydwie tranzycje są prawdziwe, to idziemy do kroku wskazywanego przez tranzycję po lewej stronie.

W kroku S2 załączamy pompę P1, w kroku S4 załączamy pompę P2. W kroku S3 analogicznie do kroku S1 znowu nie załączamy żadnej z pomp, ale tym razem jeśli się poziom wody podniesie, to najpierw mamy spróbować załączyć pompę P2, a jeśli się nie uda, to dopiero wtedy załączamy pompę P1. W ten sposób jest realizowana w sekwencji praca naprzemienna pomp.

Algorytm sterowania pompy w trybie ręcznym sprowadza się do załączenia pompy po naciśnięciu przycisku “Start”. Warto zwrócić uwagę, że pompa ma się załączyć po wykryciu zbocza narastającego sygnału “Start”. Rzecz w tym, że załączenie pompy w trybie ręcznym to musi być świadoma decyzja operatora. Niedopuszczalna jest sytuacja, że pompa wystartuje natychmiast po przełączeniu w tryb ręczny, bo np. ktoś zablokował przycisk “Start” albo jest zwarcie na wejściu cyfrowym.

Instrukcja CASE … OF w języku ST jako sposób implementacji sekwencji

Język tekstu strukturalnego ST (ang. Structured Text) jest jednym z dwóch języków tekstowych opisywanych przez normę IEC-61131 obok listy instrukcji IL. Jest w przeciwieństwie do IL językiem wysokopoziomowym, co oznacza, że pozwala on na wprowadzenie wyższego poziomu abstrakcji. Nie znającym tego języka polecam kurs programowania w ST opublikowany przez WAGO.

W naszym projekcie wykorzystamy instrukcję wyboru CASE … OF. Jej składnia została wyczerpująco opisana w czwartej części wspomnianego już kursu, więc nie będziemy tutaj jej omawiać. W programowaniu sterowników PLC jej popularnym zastosowaniem jest implementacja sekwencji. Schemat tego wzorca implementacji sekwencji jest następujący:

  1. Zaktualizuj wartość kroku aktywnego w tym cyklu.
  2. Sprawdź, który krok jest aktywny.
  3. Sprawdź warunki tranzycji.
  4. Jeśli jest prawdziwa, to zmień krok aktywnego w następnym cyklu.
  5. Wykonaj sterowania w oparciu o aktywny aktualnie krok.

Poniżej zamieściłem prosty przykład, jak to wygląda w programie e!COCKPIT.

Rys. 2. Przykład implementacji sekwencji w języku ST.

W polu zmiennych bloku funkcyjnego znajdują się dwie zmienne “usiAktywKrok” oraz “usiAktywKrok_n” (pole nr 1). Pierwsza oznacza krok aktywny w tym cyklu wykonania programu, zaś druga krok aktywny w następnej pętli programowej. Istotna jest inicjalizacja tych zmiennych – w pierwszym cyklu programu graf jest nieaktywny, a aktywny się staje dopiero w następnym cyklu.

W kodzie programu następują po sobie kolejne elementy zgodnie z przedstawionym powyżej schematem, czy aktualizujemy aktywny krok w tym cyklu (pole nr 2), sprawdzamy, który krok jest aktywny (pole nr 3), sprawdzamy warunek przejścia (pole nr 4), jeśli jest prawdziwy, to zmieniamy krok aktywny w następnym cyklu (pole nr 5), oraz wykonujemy sterowanie (pole nr 6).

Na samym końcu znajduje się instrukcja wykonania sterowań. Ich wykonanie jest uzależnione od aktualnie aktywnego kroku, którym jest zmienna “usiAktywKrok” będąca warunkiem wyboru dla instrukcji CASE … OF. W przykładzie ustawiam tylko zmienną “xZalUrz1” na “TRUE”, jeśli aktywny jest drugi krok, ale równie dobrze wynikiem wykonania sterowania może być wywołanie funkcji, bloku funkcyjnego lub np. akcji. Warunek wykonania sterowania może być też bardziej rozbudowany i uzależniony nie tylko od aktywnego kroku sekwencji, ale także od np. innej zmiennej w złożonym warunku logicznym.

Implementacja algorytmu sterowania

Na powyższym rysunku wrzuciłem implementację algorytmu sterowania w trybie automatycznym wykonaną zgodnie z opisem metody w poprzednim punkcie. Skupię się na kilku sprawach, nad którymi warto się zatrzymać.

Rys. 3. Blok funkcyjny sterowania pompami – implementacja sekwencji algorytmu sterowania w trybie automatycznym.

Formatowanie kodu źródłowego. Używając tabulatur tekst układa się w logiczne kolumny, co ułatwia jego czytanie oraz analizowanie. Warunku przejścia w poszczególnych IF-ach układałem tak, że każdy składnik warunku, niezależnie czy warunek jest typu “x_1 AND x_2 AND …. AND x_n” czy też “x_1 OR x_2 OR …. OR x_n”, zaczyna się w nowej linii, chyba że w warunku danego typu mamy do czynienia z drugą operacją logiczną, jak np. w sprawdzeniu, czy poziom w studni opadł, gdzie w kaskadzie OR’ów mamy warunek typu AND (pole nr 1).

Warunki tranzycji są zwięzłe, czytelne i powtarzalne dzięki zastosowaniu zmiennych generowanych przez blok kontroli pompy, jak np. flaga dostępności pompy w trybie automatycznym (pole nr 2). Spróbujcie sobie wyobrazić, że wszystkie składniki warunku tej zmiennej są wpisywane do warunków przejścia w każdym miejscu, gdzie używamy zbiorczej flagi.

Każdy krok opisuję komentarzem (pole nr 3). Zapisuję w nim numer kroku oraz przypisaną akcję, a nad warunkami przejścia piszę aktualny krok oraz krok docelowy. Ułatwia do później rozczytywanie kodu algorytmu bez spoglądania do grafu SFC.

Rys. 4. Blok funkcyjny sterowania pompami – wykonanie sterowań.

W drugiej części bloku funkcyjnego znajduje się wykonanie sterowań. Do ich użycia użyłem bloków funkcyjnych przerzutników RS (pole nr 1). Wywołując blok funkcyjny w ST w nawiasie umieszczamy zmienne wejściowe i wyjściowe bloku – wejściowe są oznaczane za pomocą znaku “:=”(pole nr 2), a wyjściowe “=>”(pole nr 3) .

Pierwszą zmienną wejściową jest “S”, czyli warunek załączenia pompy. W nim mamy dwa składniki, czyli sprawdzenie aktywnego kroku w trybie automatycznym oraz naciśnięcie przycisku start w trybie ręcznym.

Drugim jest “R”, czyli warunek wyłączenia pompy. Na niego składa się nie tylko sprawdzenie stanu algorytmu w stanie automatycznym, ale także wszystkie pozostałe sytuacje, w których pompa powinna zostać wyłączona, czyli wciśnięty przycisk “Stop” w trybie ręcznym, stan odstawienia pompy czy też praca drugiej pompy.

Ostatnia zmienna to zmienna wyjścia “Q”, która ustawia sygnał załączenia pompy.

Krótkie zadanie dla Was. Przeanalizujcie kod źródłowy powyższego bloku i odpowiedzcie na następujące pytania:

1. Co się dzieje w sytuacji, gdy pomiar poziomu ścieków będzie uszkodzony i będzie przekłamywał albo w ogóle przestanie działać? Czy pompownia dalej będzie pracować? Na podstawie których sygnałów?

2. Co się dzieje, jak w trybie ręcznym jest równocześnie wciśnięty “Start” oraz “Stop” pompy?

Testowanie i symulacja

Na obrazku wrzuciłem tylko fragment podglądu kodu źródłowego bloku funkcyjnego sterowania pompami ze względu na jego objętość oraz oczywiście nasz wirtualny pulpit sterowniczy, który utworzyliśmy w poprzedniej części.

Rys. 5. Symulacja.

Edytor języka ST w Codesys 3 pozwala na dość wygodny podgląd, co się dzieje w trybie online w naszym kodzie. Po symbolach zmiennych wyświetlają się ich aktualne wartości, czyli zgodnie z naszym rysunkiem po zmiennej typu:

  • BOOL wyświetla się wartość “TRUE” na niebieskim tle lub “FALSE” na tle czarnym (pole nr 1). Zwróćcie uwagę, że identyczna kolorystyka jest stosowana w podglądzie online w edytorze LAD.
  • INT i inne typy całkowitoliczbowe w prostokącie na pomarańczowym tle (pole nr 2).
  • REAL na w prostokącie na pomarańczowym tle (pole nr 3). Zwróćcie uwagę, że prostokąt jest dużo dłuższy, co pozawala na lepszą orientację w kodzie. Inną rzeczą wartą uwagi jest wyświetlanie się wartości zmiennej “i_rPozZal”, która miała w momencie wykonania screenshota wartość równą dokładnie 90 i jest wyświetlana bez przecinka, co może mylić co do typu zmiennej.

I teraz to, co najciekawsze – przetestujcie napisany przeze mnie program! W jaki sposób do tego podejść? Wróćcie do opisu słownego, do grafu SFC i sprawdźcie każdy scenariusz. Dzięki wirtualnemu pulpitowi nie będzie to trudne.

Co to znaczy każdy scenariusz? To znaczy, że musicie sprawdzić każdą sytuację przewidzianą przez opis słowny, a także każdą przez nią nieprzewidzianą a możliwą. Sprawdźcie:

  • Pracę naprzemienną pomp – czy załączają się zgodnie z sekwencją.
  • Czy w przypadku błędnego ustawienia poziomów załączenia i wyłączenia pomp lub też nieprawidłowego działania przetwornika sondy hydrostatycznej  czujniki pływakowe mają dominujący wpływ na sterowanie pompami, czy też może nie?
  • Czy blokady działania pomp działają prawidłowo?
  • Czy pompy są sterowane prawidłowo, kiedy obydwie są w trybie automatycznym lub obydwie są w trybie ręcznym? A co w sytuacji, gdy pracują w różnych trybach?

DO POBRANIA

Program e!COCKPIT można pobrać ze strony producenta >> TUTAJ. <<

Projekt programu z tej części kursu: Program PLC do e!COCKPIT

Podsumowanie

W tym odcinku kursu zaimplementowaliśmy algorytm sterowania pompownią. Omówiliśmy w tym celu sposób implementacji sekwencji w języku ST, utworzyliśmy blok funkcyjny oraz przetestowaliśmy jego działanie.

W następnym, już ostatnim odcinku serii, rozbudujemy ekran główny wizualizacji.


Więcej z serii: Kurs programowania PLC na sterowniku WAGO PFC
5 czerwca 2018 / Kategoria: ,
  • Autor: Łukasz Kurzawa
  • Jestem absolwentem studiów inżynierskich Automatyki i Robotyki na Wydziale Elektroniki Politechniki Wrocławskiej. Moje zainteresowania zawodowe koncentrują się wokół automatyzacji procesów ciągłych (przemysł chemiczny, gospodarka wodno-ściekowa, HVACR, energetyka). Zapraszam do czytania moich publikacji oraz do kontaktu.
  • Profil Autora

KOMENTARZE

NAJNOWSZE PUBLIKACJE OD UŻYTKOWNIKÓW I FIRM

Zautomatyzowana fabryka samochodów Tesli – seria filmów

Seria filmów przedstawia jak produkowane są samochody marki Tesla. Należy zwrócić uwagę na wysoki stopień zautomatyzowania fabryki. Taka inwestycja została zapewne podjęta przez wyraźne zalety korzystania z automatyki, jakimi są powtarzalność wyrobów, z którą nie może konkurować praca ręczna, niski koszt pracy oraz wysoka jakość. Ktoś kiedyś powiedział, że robot nigdy nie przyjdzie pijany do

Zautomatyzowana fabryka samochodów Tesli – seria filmów

5 systemów automatycznego parkingu – Film.

Film przedstawia jak można zautomatyzować garaż na 5 różnych sposobów. W każdym z nich system przestawia samochody tak, aby jak najszybciej i przy użyciu jak najmniejszej energii wyciągnąć odpowiednie auto na powierzchnię. Link do źródła

5 systemów automatycznego parkingu – Film.

Amazon Warehouse Robots – Zautomatyzowany magazyn Amazona.

Film pokazuje jak radzi sobie największy sklep internetowy na świecie – Amazon. Potrafi on zrealizować tak dużą ilość zamówień między innymi dzięki inteligentnym magazynom. Prostą (przenoszenie paczek z miejsca na miejsce), ale i trudną (duży ciężar niektórych paczek, powtarzalna, nudna robota) pracę człowieka zastąpiono pracą robota. “Magazynierzy” poruszają się bezpiecznie po terenie hali, dzięki komunikowaniu

Amazon Warehouse Robots – Zautomatyzowany magazyn Amazona.

Darmowe symulatory PLC, HMI oraz programowania robotów.

Autor prezentuje darmowe sposoby na ćwiczenie swoich umiejętności na symulatorach PLC, HMI oraz programowania robotów. Wszystkie oprogramowania są legalne i można je pobrać ze strony producentów. Masz chęci do nauki, ale nie możesz przeznaczyć na to pieniędzy? Ten film jest właśnie dla Ciebie. Link do źródła reklama:

Darmowe symulatory PLC, HMI oraz programowania robotów.

ITM Polska, Subcontracting, Modernlog, Focast, 3D Solutions – Podsumowanie Targów 5-8.06.2018, Poznań

Dźwięki pracujących maszyn, liczne rozmowy, spotkania kooperacyjne oraz ciekawe konferencje – za nami Targi ITM Polska Innowacje – Technologie – Maszyny oraz odbywające się w tym samym czasie Targi Logistyki, Magazynowania i Transportu MODERNLOG, Targi Skanu i Druku 3D SOLUTIONS, Forum Odlewnicze FOCAST oraz Targi Kooperacji Przemysłowej SUBCONTRACTING. Przez cztery dni na każdym metrze kwadratowym

ITM Polska, Subcontracting, Modernlog, Focast, 3D Solutions – Podsumowanie Targów 5-8.06.2018, Poznań

Połączenie serwonapędu IndraDrive CS i sterownika Siemens S7-1200 po PROFINET

Serwonapędy w zastosowaniach automatyki przemysłowej służą do precyzyjnego przemieszczania i pozycjonowania. Układem wykonawczym ruchu jest serwo-silnik, natomiast sterowanie realizowane przez sterownik. Dodatkowo wykorzystuje się enkodery, rezolwery lub tachometry jako sprzężenie zwrotne. Sterowanie na podstawie sygnału zwrotnego polega na ruchu wału silnika o konkretny kąt, wykonanie określonej liczby obrotów lub przemieszczeniu z konkretną prędkością. Istotną cechą

Połączenie serwonapędu IndraDrive CS i sterownika Siemens S7-1200 po PROFINET



MOŻESZ SIĘ TYM ZAINTERESOWAĆ




Wszystko stanie się prostsze po zalogowaniu :)

Przypomnij hasło

Nie masz konta? Zarejestruj się

Forgot your password?

Enter your account data and we will send you a link to reset your password.

Your password reset link appears to be invalid or expired.

Close
z

Przetwarzamy pliki... jeszcze chwilka…