Popularny post Marcel_S Napisano 4 stycznia Popularny post Udostępnij Napisano 4 stycznia Firma Arduino głównie jest znana ze swoich płytek deweloperskich o tej samej nazwie. W sprzedaży jest wiele rodzajów Arduino, ale czy wiedziałeś, że Arduino ma w swojej ofercie sterowniki PLC? Arduino Opta jest to sterownik micro PLC wyprodukowany we współpracy z firmą Finder, która specjalizuje się w projektowaniu i produkcji komponentów elektromechanicznych, takich jak przekaźniki. Chociaż projekt miał swoją premierę już dość dawno, to do tej pory nie był pokazywany szerzej na Forbocie. Mam nadzieję, że ten artykuł opisujący moje pierwsze uruchomienie tego sterownika będzie pomocny dla osób, które chcą rozpocząć przygodę z Arduino Opta. W tym artykule przedstawię Ci: Czym właściwie jest Arduino Opta? Twoje pierwsze kroki z tym sterownikiem. Jakie funkcje i możliwości oferuje? Projekt: implementacja sterowania temperaturą w terrarium. Arduino Opta PLC. Źródło zdjęcia. Czym właściwie jest Arduino Opta? Sterownik charakteryzuje się swoją małą skalą. Mikro PLC oznacza, że jest to urządzenie wyprodukowane w standardzie zwykłego sterownika, ale w mniejszej skali - np. mniej wejść i/lub wyjść, mniej funkcjonalności. Takie rozwiązania sprawdzą się w mniej skomplikowanych aplikacji. A jakie parametry cechują sterownik? Generalna specyfikacja PLC. Źródło zdjęcia. Sterownik jest certyfikowany, co oznacza, że można go stosować w przemyśle - ograniczeniem są parametry techniczne, takie jak pamięć, klasa ochrony IP, itp. Sterownik na pewno nie ma problemu z szybkością przez swój dwurdzeniowy procesor STM32. Parametry wejść analogowych. Źródło zdjęcia. Parametry wejść cyfrowych i wyjść przekaźnikowych. Źródło zdjęcia. Maksymalny prąd wyjściowy na pojedyncze wyjście sterownika wynosi 10 A. W sterowniku zastosowano wyjścia przekaźnikowe, które są o wiele wolniejsze od tranzystorowych. Przez to czas przełączania stanu wyjść jest rzędu milisekund, ale w zamian możliwe jest przełączanie stosunkowo wysokich prądów, przy jednoczesnej izolacji sygnałów. Po więcej informacji nt. danych technicznych odsyłam do dokumentacji sterownika. Pierwsze kroki z Arduino Opta: micro PLC Producent oferuje bezpłatny kurs, który wprowadzi Cię w podstawy sterowników logicznych, a także pokaże jak możesz stworzyć swoje pierwsze programy. Są to świetne materiały dla początkujących. Dowiecie się czym są sterowniki PLC, jakie są języki programowania lub jak odczytywać wartości analogowe z czujnika temperatury. Dodatkowo kurs wprowadzi Cię w techniki łączenia ze sobą kilku sterowników za pomocą standardu Modbus TCP/IP. Dla zainteresowanych polecam mój bliźniaczy artykuł, w którym omówiłem dokładniej czym są sterowniki PLC. Pomoże Ci przy pierwszych uruchomieniach programów na Arduino Opta. A teraz dość gadania i przejdźmy do praktyki! W poniższym artykule testuję Arduino PLC Starter Kit, który możecie zakupić na Botlandzie. Na zestaw składają się: sterownik Arduino Opta WiFi. moduł DIN Simul8 (przełączniki). moduł DIN Celcius (płytka grzewcza wraz z czujnikiem temperatury). Co oferuje Arduino Opta? Sterownik z dedykowanym środowiskiem programistycznym Arduino PLC IDE to naprawdę potężne narzędzie. Nie sposób w jednym artykule zmieścić wszystkich dostępnych możliwości, dlatego poniżej znajdziesz skrót tych najważniejszych, a potem przejdziemy do realnego wykorzystania Arduino Opta. Do testów oscyloskopu i trybów debugowania wykorzystałem środowisko Arduino PLC IDE. WiFi i Bluetooth zostały przetestowane w Arduino IDE. Wszystkie adresy ukryłem - lepiej dmuchać na zimne 🙂. a) Proste programowanie i diody Sterownik zaprogramujemy za pomocą USB-C w bardzo szybki i przyjemny sposób. Do dyspozycji na sterowniku mamy kilka diod, których zachowanie możemy zaprogramować w taki sposób, jaki chcemy. b) Cyfrowy oscyloskop W Arduino PLC IDE możemy śledzić konkretne wartości włączając oscyloskop i dodając do niego interesującą nas zmienną. Wygenerowany wykres możemy analizować i pobrać. Dodanie do oscyloskopu zmiennej sens_temp_cels, która symuluje temperaturę. Widok oscyloskopu. c) WiFi Wykorzystuję Arduino Opta WiFi, więc głupio byłoby nie przetestować jego tytułowej funkcjonalności. Na początku połączyłem się z moim domowym WiFi za pomocą przykładu Scan Network Advanced. Wykrycie dostępnych sieci WiFi i wypisanie ich na Serial Monitor. Udane połączenie z moją siecią WiFi. Do połączenia wykorzystałem ten przykład. Czas na rozmowę! Wykorzystuję przykład WiFiAdvancedChatServer, dzięki któremu mogę stworzyć chat server i wysyłać wiadomości do sterownika. Za pomocą laptopa połączę się bezprzewodowo z serwerem i wyślę wiadomość. Sterownik będzie połączony z moim komputerem stacjonarnym za pomocą przewodu, na którym wyświetlę odebraną wiadomość. Przykład musiałem lekko zmodyfikować, aby wyświetlał znaki, a nie pełne wiadomości. Wtedy lepiej działało 😉. Połączenie do WiFi i utworzenie chat server. Strona Arduino Opta. Połączenie do serwera za pomocą komendy telnet <IP> i wpisanie wiadomości. Strona laptopa. Odebrana wiadomość i rozłączenie klienta. Strona Arduino OPTA. d) Ethernet i Modbus Niestety nie byłem w stanie przetestować tych funkcjonalności, dlatego odsyłam do materiałów od Finder 🙂. e) Bluetooth Low Energy Oprócz WiFi jest także możliwość połączenia się ze sterownikiem za pomocą Bluetooth! Skan pobliskich urządzeń z włączonym Bluetooth. Opta wykrył mój telefon. Wykorzystałem przykład Arduino BLE Scan. f) Live debug mode Środowisko Arduino PLC IDE oferuje podglądanie stanu zmiennych na żywo. Było to bardzo przydatne, gdy tworzyłem algorytm do sterowania terrarium, który przedstawię w dalszej części tego artykułu. Podgląd zmiennych na żywo. Aktywowane zmienne są podświetlone. Wyświetlany jest także odliczony czas timera obok jego wyjścia ET. g) Debugowanie Wykonywany kod można debugować, zaznaczając odpowiednie punkty stopu. Wynik debugowania. W prawym dolnym rogu możemy zauważyć status sterownika HALTED, co oznacza, że przez debugowanie został zatrzymany. Twój pierwszy projekt wykorzystując Opta! W imię zasady Learning-by-doing i w celu przedstawienia możliwości sterownika wymyślmy problem, na podstawie którego krok po kroku przeprowadzę Cię przez podstawy programowania tej jednostki. Zaprojektujmy program sterujący ogrzewaniem terrarium. Nie jestem ekspertem zoologii. Użycie algorytmu na żywych jednostkach na własną odpowiedzialność! System ma działać zgodnie z następującymi zasadami: Standardowe ogrzewanie: Terrarium jest ogrzewane co minutę, aby utrzymać temperaturę 27°C, gdy drzwi są zamknięte. Zamknięcie zrealizujemy za pomocą symulacji krańcówki - wykorzystamy przełącznik. Zakładamy, że jeżeli drzwi są otwarte, to zmienna drzwi = 1. Jeżeli są zamknięte, to drzwi = 0. Reakcja na otwarcie drzwiczek: W stanie otworzonego terrarium niemożliwe jest załączenie grzałki. Jeśli drzwiczki zostaną otwarte i zamknięte, system natychmiast podnosi temperaturę do 30°C. Tryb manualny: Użytkownik może włączyć ogrzewanie ręcznie za pomocą przełącznika. Grzałka działa w tym trybie, dopóki przełącznik nie zostanie zwolniony. Informacja dla programisty: Po podłączeniu sterownika do komputera i włączeniu terminala powinny co 5 sekund pojawiać się informacje o: Temperaturze. Stanie drzwi (otwarte/zamknięte). Informacje mogą pojawić się także po wciśnięciu przycisku na PLC (USER). Zaprojektowany algorytm powinien uwzględniać bezpieczeństwo i zapewniać płynne przełączanie między trybami pracy. Włączenie grzałki powinno być zasygnalizowane włączeniem LED 1 na PLC. Połączenie układu Zanim zabierzemy się do programowania musimy wykonać odpowiednie połączenia między sterownikiem a modułami. Starter Kit oferuje przewody, za pomocą których możemy wszystko połączyć. Poniżej znajduje się schemat, w jaki sposób należy połączyć układ: Schemat połączeniowy dla naszego ćwiczenia. Powyższy układ połączono następująco: +24 V połączono razem między modułami. Osobne połączenia wykonano dla GND. Wyjście przełączników w DIN SIMUL8: nr 1 → I1. nr 8 → I2. Do wyjścia przekaźnikowego nr 1 podłączono na wejście +24 V. Wyjście z niego podłączono do INPUT HEAT 1. Gdy wyjście będzie aktywne, to rozpocznie się grzanie płytki. OUTPUT VOLTAGE w Din Celcius połączono do I7. Tym wejściem będziemy odczytywali temperaturę. Kolory przewodów: Czerwony - +24 V. Czarny - GND. Niebieski - sygnały logiczne/informacyjne. Znaczenie wejść i wyjść, i zmienne odpowiadające za nie: I1 - grzanie manualne (grzanie_manual). I2 - otworzenie drzwiczek (drzwi). I7 - temperatura terrarium (temperatura_terrarium). Przycisk USER na PLC - wysłanie informacji o stanie układu (info). Wyjście nr 1 - załączenie grzania terrarium (grzalka). LED STATUS 1 - informacja o załączeniu grzania (led_grzanie). Jeżeli uruchamiasz sterownik po raz pierwszy, to skorzystaj z lekcji Getting Started na stronie Arduino. Lekcja nauczy Cię jak skonfigurować sterownik i upewnić się, że wszystko działa. Oprogramowanie 1. Deklaracja zmiennych Zacznijmy od zadeklarowania wejść i wyjść. Robi się to w tabeli, co gwarantuje przejrzystość i czytelność. Konfiguracja wejść programowalnych. I7 ustawiamy jako wartość analogową o rozdzielczości 12 bitów. Konfiguracja wyjść programowalnych. Konfiguracja LED. Konfiguracja przycisku USER umieszczonego na PLC. Arduino OPTA umożliwia dodanie kilku programów, które będą równolegle wykonywane. Przyda nam się to, bo nasz projekt będzie się składał z: Pętli głównej odpowiedzialnej za: Pracę manualną. Pracę automatyczną. Przełączanie między pracą automatyczną a manualną. Wykrycie otworzenia terrarium. Załączanie grzałki. Skryptu, który będzie przeliczał wartość wyjściową czujnika temperatury na temperaturę wyrażoną w stopniach Celsjusza. Skryptu wyświetlającego informację o stanie układu. 2. Tryb manualny Sprawa jest prosta - załączając I1 włączamy grzałkę. Dodajmy nowy program: Dodawanie nowego programu. Po wybraniu New program wyskoczy okno: Wybieramy język LD, czyli najpopularniejszy język programowania PLC. Program nazwiemy main. Istnieją 4 rodzaje programów: Opisy typów programów. Źródło zdjęcia. Wybierzemy Fast, bo będzie to nasz główny program, w którym będą odbywały się najważniejsze rzeczy. Wyskoczy nam okno programu: Poświęćmy chwilę na wyjaśnieniu jak działa język LD. Język drabinkowy korzysta ze styków i cewek. Styki symbolizują wejścia, a cewki wyjścia. Rodzaje styków i cewek: -| |- - styk normalnie otwarty. Aktywuje się, gdy przypisana zmienna wynosi 1. -| / |- - styk normalnie zamknięty. Aktywuje się, gdy przypisana zmienna wynosi 0. -| S |- - styk set. Po aktywacji zmienna pozostaje aktywna do momentu resetu. -| R |- - resetuje zasetowany styk. -| P |- - styk wykrywający zbocze narastające zmiennej. -| N |- - styk wykrywający zbocze opadające zmiennej. -( )- - cewka normalnie otwarta. Aktywacja poprzez 1 na wejściu. -( / )- cewka normalnie zamknięta. Aktywacja poprzez 0 na wejściu. Po dwukrotnym naciśnięciu na styk pojawi się okno, w którym możemy skonfigurować go, np. przypisać do niego zmienną: Konfiguracja styku. Nie zapominajmy o diodzie, która ma nas informować o grzaniu. Cewkę dodamy poprzez wciśnięcie ikony coil: Ikona Coil. Bądź poprzez wciśnięcie prawego przycisku myszki i wybranie odpowiedniej opcji: Opcja dodania Coil. A oto nasz tryb manualny: Dobrym nawykiem jest stosowanie markerów. Są to zmienne w pamięci, w których przechowuje się wynik operacji logicznej. Wynik załączenia grzania przypiszmy do markera, a następnie za pomocą markera ustawmy odpowiednie cewki. Utwórzmy zmienną lokalną: Dodanie zmiennej lokalnej. Zmienna lokalna. I przenieśmy przypisanie wyjść do następnej linijki za pomocą markera. Dodanie kolejnej linijki kodu. Tryb manualny W taki sposób zbudowaliśmy nasz pierwszy funkcjonalny program! Aby go przetestować, należy przesłać go do sterownika. Opcja wysłania programu do sterownika. Po przesłaniu programu możemy włączyć podgląd (watch) i zobaczyć jak się zachowują nasze zmienne: Watch. Należy uniemożliwić grzanie, gdy drzwiczki są otwarte: Styk NC blokuje przepływ sygnału do cewek. Widzimy, że przy otwartych drzwiach grzałka nie działa. 3. Pobranie informacji o temperaturze Aby pobrać informację o temperaturze wewnątrz terrarium, posłużymy się poradnikiem. W skrócie: Poniżej przedstawiam program w języku ST do przeliczania wartości z czujnika na temperaturę: Dodajemy nowy program i nowe zmienne globalne. 4. Zamknięcie drzwiczek Teraz zajmijmy się grzaniem do 30 stopni, gdy drzwiczki zostaną zamknięte. Dodajmy następujące instrukcje w main: Jeżeli zamkną się drzwi (zbocze opadające na zmiennej drzwi), to ustawi się flaga drzwi_N_flaga (potrzebna do dalszej części kodu). Jeżeli osiągniemy 30 stopni, to resetujemy flagę. Dodatkowo tworzymy nowy tryb grzania (tryb_drzwi_N). Napiszmy skrypt w języku ST, który będzie obsługiwał zmienną tryb_drzwi_N: Jeżeli flaga zamknięcia drzwi jest aktywna, to włączamy tryb grzania. Jeżeli osiągnięto temperaturę 30 stopni, to włączamy odpowiednią flagę, a w main wyłączamy drzwi_N_flaga. 5. Standardowe ogrzewanie Stwórzmy tryb standardowego grzania. W tym celu stwórzmy zmienną odliczanie, dzięki której będziemy sygnalizować, czy mamy odliczać minutę do grzania. Dodatkowo utworzymy program w trybie Init, który wykona się tylko raz przy włączeniu sterownika. Wystartujemy w nim odliczanie. Zawartość programu Init. Zmienna jest typu bool. W zastosowaniach przemysłowych praca maszyny musi się odbyć po jawnym sygnale operatora, więc nasze rozwiązanie nie jest zgodne ze sztuką. Jednak na cele edukacyjne i hobbystyczne to nam ułatwia sprawę. Do mierzenia czasu służą timery. Aby go dodać klikamy opcję New Block: Dodanie bloku. W Object browser wyszukujemy timer TON. TON działa w następujący sposób: Opis timera TON. Źródło zdjęcia: Arduino PLC IDE. Obsługa trybu standardowego. Powyższy kod działaja w następujący sposób: Jeżeli odliczanie jest załączone i nie osiągnięto temperatury 27 stopni, to odliczamy 60 sekund. Po odliczeniu czasu wyłączamy odliczanie (reset) i załączamy tryb standardowy. Jeżeli osiągniemy 27 stopni, to załączamy znowu odliczanie i ściągamy flagę trybu standardowego. Dodajemy program, który obsłuży flagi i wykryje przekroczenie 27 stopni. Zauważ, że jest on bardzo podobny do trybu drzwi. Dodajemy włączenie grzałki pod wpływem trybu standardowego. Dodatkowo widoczne jest zabezpieczenie, w którym przy otworzonych drzwiach nie ma możliwości grzania - styk NC drzwi. Jeżeli dotrwałeś do tego momentu, to chciałbym Ci serdecznie pogratulować. Właśnie stworzyliśmy system ogrzewania do terrarium! Działanie programu. Przedstawiłem tryb manualny i reakcję na zamknięcie drzwi. Czerwona dioda na DIN CELSIUS sygnalizuje grzanie. 6. Informacja dla programisty Stwórzmy ostatnią część projektu, jakim jest wyświetlanie co pewien czas, bądź na żądanie, pewnych parametrów związanych z algorytmem. Wykorzystamy bardzo ciekawą funkcjonalność narzędzia Arduino PLC IDE - połączenie Sketcha z Arduino IDE i algorytmu sterowania z Arduino PLC IDE. Shared variables to zmienne, które będą wymieniane między algorytmem sterowania, a Sketchem. W Shared Variables w Outputs wpisujemy zmienne, które chcielibyśmy śledzić: Tworzymy nowy skrypt o nazwie do_zmiennych_OUT, w którym będziemy przypisywali wartości do zmiennych w Sketchu: Następnie tworzymy skrypt, który co wciśnięcie przycisku lub co 5 sekund wyświetli informacje o statusie algorytmu: Program do przesyłu informacji. Funkcja, która umożliwia wysłanie informacji do odbiornika. Przetestujmy wyświetlanie informacji w Serial monitor w Arduino IDE: Nasz program jest skończony! Podsumowanie To była bardzo długa i intensywna bitwa… Ale udało się! Poznaliśmy razem dużo możliwości sterownika. WiFi, Bluetooth, równoległość wykonywania operacji, sterowanie temperaturą, wyświetlanie informacji to tylko niektóre z możliwości tego PLC. Trzeba przyznać, że to potężna jednostka, która ma ogrom potencjalnych zastosowań. To naprawdę wszechstronne urządzenie, które może ułatwić wiele zadań i sprawdzić się w różnych projektach. Jest łatwe w obsłudze i daje dużo możliwości, co czyni je świetnym wyborem do nowoczesnych rozwiązań. ________ Informacja: zestaw z Arduino Opta na potrzeby niniejszego artykułu dostarczyła firma Botland - oficjalny dystrybutor Arduino. 4 Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) 11 stycznia Udostępnij 11 stycznia @Marcel_S dzięki za chęć podjęcia tematu oraz opisania pierwszych wrażeń z Arduino Opta! Podziękowania również dla Botlandu za wypożyczenie sprzętu do testów. Mam nadzieję, że taki wpis pomoże osobom, które dopiero planują rozpocząć swoją przygodę z Arduino w wydaniu PLC 😉 Link do komentarza Share on other sites More sharing options...
BlackJack 12 stycznia Udostępnij 12 stycznia (edytowany) Autor nie poruszył kilku ważnych aspektów. Cena. porównywalna do LOGO8, Eaton E4, czy każdego innego sterownika programowalnego. Możliwość dołączenia modułów rozszerzeń? Oczywiście każdy musi sobie rozważyć za i przeciw sam. Edytowano 13 stycznia przez Treker Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) 13 stycznia Udostępnij 13 stycznia @BlackJack może dodasz kilka słów od siebie (z punktu widzenia osoby, która zna dobrze PLC) - czy/gdzie widzisz miejsce na tego typu produkty? Ja patrzę na to też z trochę innego punktu widzenia - może jest to produkt dla osób, które znają Arduino (a nie znają PLC) i musza zrobić coś przemysłowego? Oczywiście nie chodzi tu o sterowania całą fabryką, tylko o trochę mniejsze projekty. Tutaj w ramach inspiracji linki do przykładowych wdrożeń tego rozwiązania: https://www.arduino.cc/pro/case-studies-amb-vapor-monitoring/ https://www.arduino.cc/pro/case-studies-steelcase/ https://www.arduino.cc/pro/case-studies-stratford-festival/ Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »