Elektroda.pl
Elektroda.pl
X
Computer ControlsComputer Controls
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Atmega32] Prosty sterownik PLC

elektronockaut 14 Mar 2020 17:07 4416 38
  • [Atmega32] Prosty sterownik PLC

    Dzień dobry,

    Dzisiaj przedstawiam część dużego projektu którym pochwalę się za kilka miesięcy. Tą częścią jest bardzo prosty sterownik PLC z minimalną ilością elementów, zrealizowany na mikroprocesorze Atmega32.
    Całość została wykonana w wersji THT co jest celowe. Miało by mi ułatwić pomiary podczas wystąpienia ewentualnej awarii, bez demontażu całej płytki z gotowej szafy sterowniczej. Dodatkowo kluczowe układy scalone ULN2003, LTV847, Atmega32 umieściłem na podstawkach więc w razie czego wymiana potrwa krótką chwilę. Na wejścia cyfrowe podaje się napięcia dodatnie. Na wyjściach uzyskuje się zaś „minusy” co również jak najbardziej było moim celem. Urządzenie jest tak proste, że nie ma sensu więcej się rozpisywać na jego temat. Generalnie swoje założenia osiągnąłem, i jestem zadowolony z konstrukcji mimo jej prostoty i starodawnych rozwiązań. Nie udostępniam schematu, a jedynie wzór płytki, i przykład konfiguracji w Bascom.

    Parametry:
    - Zasilanie 24V DC
    - 10 wejść cyfrowych [0-24V DC] (LTV847/PC847)
    - 3 wejścia analogowe [0-24V DC] (zabezpieczone przed odwrotną polaryzacją)
    - 14 wyjść cyfrowych 0,5A [GND] (ULN2003)

    [Atmega32] Prosty sterownik PLC

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    elektronockaut
    Poziom 6  
    Offline 
    elektronockaut napisał 204 postów o ocenie 120, pomógł 0 razy. Jest z nami od 2019 roku.
  • Computer ControlsComputer Controls
  • #2
    krisRaba
    Poziom 29  
    Hmm, jak na warunki przemysłowe, to trochę w tym słabiutko z filtracją ;-) Gdzie jakieś kondensatory odsprzęgające, filtry, zabezpieczenia różnorakie?
    Przed budową własnego cuda warto sobie rozebrać choć jeden moduł znanego producenta jako punkt odniesienia ;-)
    Chyba że toto ma pracować na biurku lub jedynie we własnym sosie, tzn. wszystko czego nie ma na tej płytce będzie w szafce, np. przekaźniki do separacji galwanicznej wraz z zabezpieczeniem na cewce itp.

    Podejście, że jeśli to przestanie działać, to w szafce będziesz ten moduł diagnozował i mierzył elementy THT też jest mało przemysłowe. Jeśli już dajesz takie coś, bez możliwości diagnostyki jak w prawdziwych PLC, to takiego klocka powinieneś mieć w zapasie.
    Dałeś rozłączalne przyłącza i super. W klocku coś nie działa no to sru, uszkodzony wylatuje, wstawiasz zamiennik, proces idzie dalej, a Ty możesz sobie na biurku dłubać i szukać problemu. Jak znajdziesz to podmiana komponentu i znowu masz moduł rezerwowy ;-)
  • #3
    elektronockaut
    Poziom 6  
    Sterownik będzie pracował w maszynie której buduję, a ta z kolei będzie działać w domu. Wszystko będę miał w niej rezerwowo, bo jest dość ważna. Rozebrałem w życiu nie jedno PLC i powiem szczerze że to zrobione jest dość dobrze, bo naprawdę są różne. Nie każde da się diagnozować programowo jak piszesz (nie będę tu wymieniał konkretnych marek). Jeśli chodzi o zabezpieczenia wyjść... Sterowane są przez słynne darlingtony ULN które w swej architekturze posiadają diody zabezpieczające. Wyjścia będą sterować przekaźnikami i lampkami, więc problemu bym tu raczej nie widział. Zobaczymy w praktyce ;) Raczej nie przewidywał bym problemów i przyszłych usterek.
  • #5
    wodzinek212
    Poziom 12  
    Przy 24v stabilizator 7805 moze się grzać. P=(Uwe-Uwy) x Iwy. Przykręcić przynajmniej jakiś radiator.
  • Computer ControlsComputer Controls
  • #6
    elektronockaut
    Poziom 6  
    wniedzie napisał:
    Teraz można za parę dych kupić od Chińczyka moduły FX1N, eleganckie, z obudową, wszystkomające
    Może i tak, ale ja akurat w tym jednym projekcie potrzebuję coś bardziej pewnego, i łatwego w naprawie. Obecnie "wiem co mam w środku". Poza tym skoro wszystko bym kupił gotowe i tylko poskładał, to jaki by to był projekt DiY? ;)

    Co do stabilizatora fakt jest ciepły, ale nie gorący. Coś może profilaktycznie dokręcę, ale nie jest to naprawdę konieczne.
  • #7
    ukixx
    Poziom 20  
    Projekt bardzo fajny, podoba mi się że jest jeszcze ktoś kto potrafi zrobić coś samemu. Oczywiście jest to zmora dla serwisanta (nie autora) bo nie wie co jest wklepane w programie i co za co odpowiada. Mam nadzieję że te diody zabezpieczające wejścia analogowe to jakieś schottky np. 1N5819, a nie zenerki czy zwykłe 1N4007. Brakuje tylko jakiegoś wyświetlacza i chyba coś zjadło dwie ścieżki od środkowego PC847 na płytce.
  • #8
    FastProject
    Poziom 28  
    A dlaczego ma to nazwę PLC? To jest jakoś programowalne, czy to tylko przekaźnik sygnału z wejścia na wyjście?
  • #10
    FastProject
    Poziom 28  
    ukixx napisał:
    A dlaczego ma to nie być PLC? Sterownik jest programowalny przez ISP, program można napisać w czymkolwiek, nawet w asemblerze ;)

    No to bardziej jest to sterownik mikroprocesorowy...tak mi się przynajmniej wydaje. Nie będę się upierał bo nie o to chodzi.
  • #11
    ukixx
    Poziom 20  
    A to PLC nie jest mikroprocesorowy? Skoro da się go zaprogramować, można na każdym wyjściu zrobić funkcję logiczną z sygnałów wejściowych to jest to PLC. Gdyby zrobił na bramkach i nie dało się przeprogramować to PLC by nie był. Przecież nie musi to być taki kombajn jak S7-300 czy coś jeszcze większego. PLC oznacza Programmable Logic Controller, czyli coś co da się zaprogramować i realizuje funkcje logiczne, a ten projekt to wszystko spełnia.
  • #12
    kacper_82
    Poziom 12  
    Języki programowania sterowników PLC określa norma IEC 61131-3. I nie przypuszczam, aby była w niej mowa o asemblerze.
  • #13
    spec220
    Poziom 15  
    Schludnie to wygląda, ale jestem skłonny przyznać rację kolegom. Do typowego PLC sporo tu brakuje, a w szczególności dedykowanego środowiska w którym podczas wyboru określonego modelu będę miał skonfigurowane wejścia oraz wyjścia, oraz metodę programowania (graficzna, bądź pisana)
    Kiedyś "coś" podobnego kupiłem na słynnym portalu aukcyjnym, z tym że to się nie nazywało PLC, tylko przystawka do programowania po ISP z możliwością testowania procka (taki rozbudowany zestawik na bazie STK500)
  • #14
    Marek_Skalski
    Moderator DIY
    @elektronockaut Cieszę się widząc nowe projekty w dziale.
    Moje uwagi, które może w przyszłości wykorzystasz:
    - Można zrobić zgrabną konstrukcję na elementach SMD, a do testowania wykorzystać pola testowe, szczególnie gdy płytka ma 2 warstwy. Miejsca będzie wtedy bardzo dużo i zmieszczą się też opisy.
    - Dwustronna płytka zamówiona w profesjonalnej firmie, z opisami będzie miała tutaj dużą wartość, szczególnie w odniesieniu do układów w podstawkach, które nie mają oznaczonej orientacji i łatwo się pomylić przy wymianie. Sam już zauważyłeś ten problem oznaczając polaryzację zasilania.
    - Złącza powinny mieć dobre podparcie. Mam obawy, czy dokręcając śruby nie wyłamiesz ich z tej płytki. Inna opcja, to dodanie wsporników/łączników między górą i dołem, co znacznie usztywni konstrukcję i zwiększy jej wytrzymałość.
    - Naprawdę warto dodać elementy buforujące zasilanie (kondensatory) oraz odsprzęgające (ferryty lub dławiki). To kosztuje grosze, a wpływa istotnie na niezawodność konstrukcji. Tym bardziej, że i tak masz tam kilka elementów SMD.
    - Zasilanie prowadzone wzdłuż całej płytki warto zamienić na układ gwiazdy. Mniejsze zakłócenia, cieńsze ścieżki, łatwiejsze ich prowadzenie.
    - Brakuje mi wylewki masy jako ekranu (bezprądowej, nie biorącej udziału w zasilaniu). O ile na biurku taki układ działa zazwyczaj dość dobrze, to po instalacji w docelowym miejscu mogą się zdarzać problemy bardzo trudne do wyjaśnienia i usunięcia. Często przyczyną jest brak ekranowania (shielding).
    - Na wejściach analogowych warto dać niewielkie pojemności, które stanowiąc lokalne bufory ładunku, pozwolą na szybsze pomiary ADC. Bez kondensatorów, z uwagi na wartości rezystorów w dzielniku, trzeba się pogodzić z gorszą charakterystyką przetwarzania wynikającą z dość dużej rezystancji na wejściu.
  • #15
    elektronockaut
    Poziom 6  
    ukixx napisał:
    Mam nadzieję że te diody zabezpieczające wejścia analogowe to jakieś schottky np. 1N5819, a nie zenerki czy zwykłe 1N4007. Brakuje tylko jakiegoś wyświetlacza i chyba coś zjadło dwie ścieżki od środkowego PC847 na płytce.
    Dokładnie, są to diody 1N5819. Zabezpieczają wejście przed odwrotną polaryzacją. Wyświetlacza nie potrzebowałem. Dlatego wyprowadziłem sobie RX i TX, bo wyswietlacz będzie w zupełnie innym miejscu niż sterownik (trochę tajemniczo, ale za kilka miesięcy podzielę się całością ;) ). Ścieżki zjadłem ja... piny XTAL nie działają jako wejścia, a ja nie wziąłem tego pod uwagę podczas projektowania. Miało być 12 wejść a nie 10 jak jest obecnie. W załączniku płytka jest poprawiona, i nie ma tych ścieżek.

    spec220 napisał:
    Do typowego PLC sporo tu brakuje, a w szczególności dedykowanego środowiska w którym podczas wyboru określonego modelu będę miał skonfigurowane wejścia oraz wyjścia, oraz metodę programowania (graficzna, bądź pisana)
    Fakt jest to bardzo ubogie urządzenie, ale co ma do tego środowisko programowania ? Dedykowałem mu środowisko Bascom ;)

    kacper_82 napisał:
    Języki programowania sterowników PLC określa norma IEC 61131-3. I

    A co kolego powiesz o PLC firmy IDEC albo ADAM ? Stare modele mają swój język nie określony w żadnej normie. Czy przez to nie są już PLC ? Pracują do dziś na pewnych liniach produkcyjnych.

    Generalnie mi jest obojętne czy zrobiłem sterownik PLC, czy przekaźnik programowalny, czy zwał jak zwał. Ważne że spełnia moje założenia i w moim projekcie jako jego część sprawdzi się dobrze.
  • #16
    pawelr98
    Poziom 38  
    elektronockaut napisał:

    A co kolego powiesz o PLC firmy IDEC albo ADAM ? Stare modele mają swój język nie określony w żadnej normie. Czy przez to nie są już PLC ? Pracują do dziś na pewnych liniach produkcyjnych.

    Generalnie mi jest obojętne czy zrobiłem sterownik PLC, czy przekaźnik programowalny, czy zwał jak zwał. Ważne że spełnia moje założenia i w moim projekcie jako jego część sprawdzi się dobrze.


    Ja się uczyłem, że PLC pracuje na podstawie cyklu, ma system czasu rzeczywistego oraz funkcje diagnostyki zapewniające niezawodną pracę.
    Zapewne trochę nad wyrost względem prostych rozwiązań ale tak się teraz uczy.

    A dlaczego posiadanie dedykowane środowiska jest ważne ?
    Upraszcza pracę.
    Nie trzeba zbytnio zagłębiać się w kwestie sprzętowe tylko interesują nas rejestry oraz sam program.

    Sterowniki komercyjne też czasem wykorzystują języki nieujęte w normie, natomiast te "standardowe" muszą mieć.
    LD, ST, SFC,FBD to podstawy. IL ("assembler") w najnowszej normie już niezalecany ale nadal chyba sterowniki go mają.
  • #17
    ukixx
    Poziom 20  
    Tylko że to nie jest komercyjny produkt a projekt DIY. Z zasady działania jest to PLC, równie dobrze można powiedzieć że maluch nie jest samochodem bo samochód to Ferrari czy Mercedes.
  • #18
    andrzejek23
    Poziom 18  
    Zrobiłeś Kolego całkiem zgrabną płytkę do procka, ale nazywanie tego sterownikiem PLC to, delikatnie mówiąc, nadużycie semantyczne.

    Moderowany przez tmf:


    Szanowni koledzy,
    To jest dział DIY. Ma sens dyskusja nad prezentowanym urządzeniem, jego konstrukcją, funkcjonalnością itd. Dyskusje o tym czy to jest PLC czy nie, szczególnie jeśli to jest już kolejny taki sam post, nic nie wnoszą i będą usuwane.
    Proponuję jednak docenić starania kolegi, który zaprezentował swoje urządzenie, zgłaszać konstruktywne uwagi zawierające propozycje poprawek, albo się po prostu nie odzywać.

  • #19
    elektronockaut
    Poziom 6  
    Może po prostu uznajmy że jest to programowany zespół przekaźników, albo jeśli komuś pasuje to nazwę to "cuś". Myślę że wątpliwości rozwiane ;) czy ktoś ma jakieś pytania lub sugestie do mojego "cusia"?
  • #20
    63rob
    Poziom 1  
    elektronockaut napisał:
    Może po prostu uznajmy że jest to programowany zespół przekaźników, albo jeśli komuś pasuje to nazwę to "cuś". Myślę że wątpliwości rozwiane ;) czy ktoś ma jakieś pytania lub sugestie do mojego "cusia"?



    Kolega jest zdecydowanie zbyt skromny :). Przecież do tej płytki sterownika istnieje od wielu lat powszechnie znane, lubiane i bardzo przyjemne w stosowaniu środowisko do "rysowania programów" w kodzie LD a nazywa się LDmicro. Do tego bardzo użyteczne forum.
    Czyli jednak jest to pełnoprawny PLC.
    Jest nawet nowa wersja 2019 :
    https://github.com/LDmicro/LDmicro/releases/tag/5.3.0.4
  • #21
    Simon79
    Poziom 18  
    Potwierdzam, używam od wersji 2.2. W najnowszej, oprócz ATMEG, PIC'ów pojawił się STM a nawet ESP8266. Wystarczy odpowiednio skonfigurować i mamy: I/O, ADC, PWM, UART itd.
    W układach "automatyki domowej", nie przemysłowej, gdzie nie musimy się obawiać zakłóceń i EMC, z powodzeniem można stosować.
    Co do nazewnictwa, nawet proste mikro sterowniki, które są raczej przekaźnikami programowalnymi, potocznie zwane są PLC.
    Projekt bardzo ładnie wykonany, szkoda tylko , że nie dobrałeś jakiejś gotowej obudowy, np Z104.
  • #22
    elektronockaut
    Poziom 6  
    Kiedyś bawiłem się chwilę LDmicro, ale zrezygnowałem bo nie dało się na stałe przypisać pinów do wejść i wyjść. Tworząc program każdorazowo trzeba było je przypisywać do styków i cewek. Czy w nowej wersji jest to poprawione?

    Co do mojej obudowy... Myślałem o tym na początku, ale zrezygnowałem bo chcę mieć szybki dostęp do płytki. Jestem teraz na etapie budowy szafki, i taka forma pasuje mi najbardziej choćby z powodu szybkiej wymiany kluczowych podzespołów, które umieszczone są na podstawkach.

    [Atmega32] Prosty sterownik PLC
  • #23
    krisRaba
    Poziom 29  
    Przynajmniej masz ekranowanie od spodu ;)
  • #24
    Robercikxxx
    Poziom 12  
    Jak będzie się bardzo grzał stabilizator z 24V na 5V ,zawsze możesz włożyć przetwornice taką:
    https://allegro.pl/oferta/przetwornica-step-down-1a-in-5-40v-out-3-3v-8436387544
    Ona ma wydajność do 1A ale takie 800mA na spokojnie możesz taki prąd pobierać.
    U Ciebie co prawda takiego prądu nie będzie ale w razie co będziesz wiedział że jest jakieś wyjście.
    Ta co wysłałem jest na 3.3V ale na 5V też są ;)
  • #26
    elektronockaut
    Poziom 6  
    Robercikxxx napisał:
    ,zawsze możesz włożyć przetwornice

    Zobaczę z czasem, ale szczerze powiedziawszy bardziej ufam LM7805 z racji jego prostszej konstrukcji ;). Dzięki

    Jawi_P napisał:
    Uderza jednak brak właściwego zasilania szczególnie Atmegi


    W torze zasilania jest: ceramik 100nF -> Stabilizator -> ceramik 100nF -> elektrolit 4,7uF -> ceramik smd 100nF bezpośrednio przy nóżkach zasilania Atmiegi. Czy to aż tak uderzająco mało ? Dodam że nie nastawiłem się na używanie ADC choć przyszłościowo wyprowadziłem pod nie wejścia na złącza. Dodatkowo dioda shotky która zabezpiecza przez choćby pickami napięcia ujemnego. Uważam że niezbędne minimum jest zapewnione, a już na pewno nie jest to uderzające ;)
  • #27
    andrzejlisek
    Poziom 28  
    wodzinek212 napisał:
    Przy 24v stabilizator 7805 moze się grzać. P=(Uwe-Uwy) x Iwy. Przykręcić przynajmniej jakiś radiator.


    Robercikxxx napisał:
    Jak będzie się bardzo grzał stabilizator z 24V na 5V ,zawsze możesz włożyć przetwornice taką:
    https://allegro.pl/oferta/przetwornica-step-down-1a-in-5-40v-out-3-3v-8436387544
    Ona ma wydajność do 1A ale takie 800mA na spokojnie możesz taki prąd pobierać.
    U Ciebie co prawda takiego prądu nie będzie ale w razie co będziesz wiedział że jest jakieś wyjście.
    Ta co wysłałem jest na 3.3V ale na 5V też są ;)


    Jakiś czas temu miałem problem z obniżeniem napięcia 12V do 5V przy poborze ok. 500mA na 5V. Wstawiłem szeregowo dwa stabilizatory, jeden to 7809, a drugi 7805 po to, żeby różnica napięć była podobna (ilość ciepła zależy od różnicy napięć i poboru mocy). Okazuje się, że to nie wystarczyło, w tym przypadku układ służył do zasilania diod LED i po kilkudziesięciu sekundach diody przygasały, a oba stabilizatory robiły się gorące, więc przy jednym byłoby jeszcze gorzej. Problem udało się rozwiązać dopiero przy użyciu dużo droższej przetwornicy impulsowej DC/DC, nie było problemów ze świeceniem diod, a i temperatura przetwornicy była niższa.

    Z powyższego wnioskuję, że jak producent pisze, że stabilizator ma wydajność prądowa 1A, to stabilizator przepuści 1A, ale tylko przy minimalnej różnicy napięć i przez czas kilku sekund. Nie udało się doszukać, jaka jest wydajność prądowa przy ciągłym obciążeniu, ale myślę, że góra 200-300A, im większa różnica napięć tym mniejsza ta wydajność.

    W takim razie myślę, że lepiej zastosować szeregowo stabilizatory tak, żeby na każdym z nich było nie więcej niż 3-4V różnicy a jak będzie nadal problem z działaniem, to jedynym wyjściem będzie stabilizator DC/DC. Radiator to tylko półśrodek, bo zapobiegnie się przegrzaniu się stabilizatora, a i tak będzie wytwarzać taką samą ilość ciepła. A w komputerach jest wentylator dlatego, że mocno upakowany procesor z wentylatorem jest tańszy w produkcji niż procesor tak zbudowany, żeby wytwarzał jak najmniej ciepła.
  • #28
    Janusz_kk
    Poziom 27  
    andrzejlisek napisał:
    Z powyższego wnioskuję, że jak producent pisze, że stabilizator ma wydajność prądowa 1A, to stabilizator przepuści 1A, ale tylko przy minimalnej różnicy napięć i przez czas kilku sekund. Nie udało się doszukać, jaka jest wydajność prądowa przy ciągłym obciążeniu,


    Oczywiście że jest, trzeba tylko umieć czytać pdf-y :) jest tabelka "thermal data" i tam dla danej obudowy podana jest oporność cieplna złącze-otoczenie, dla to220 wynosi 50st/W, a tem max złącza rto 125st, czyli jeżeli masz w pudełku 30st i stabilizator ma mieć max powiedzmy 100st daje nam to 70st/W czyli 70/50=1,4W możesz na nim max wydzielić, dla prądu 1A daje to 1,4V czyli na granicy stabilizacji, jak miałeś pobór 0,5A to dawało 2,8V +5V =7,8V a dawałeś 9V ze wcześniejszego stabilizatora, czyli sam widzisz że za dużo co sprawdza się z twoim opisem.
  • #29
    elektronockaut
    Poziom 6  
    Spokojnie, na razie temperatura jest znośna i bez radiatora. Zobaczymy w praniu, ale póki co dziękuję za podsunięcie rozwiązań. W razie czego zakupię kilka sztuk impulsowych przetworniczek 5V, gdyby faktycznie zaczęło to być uciążliwe.
    Ja z praktyki zawsze przyjmowałem 1,5V wyższego napięcia niż te znamionowe stabilizatora. W obecnym przypadku prąd wynosi kilkanaście miliamperów więc stabilizator jest ciepły. Zobaczymy jak poskładam szafkę, i uruchomię wszystkie wyjścia.
  • #30
    Jawi_P
    Poziom 34  
    elektronockaut napisał:
    W torze zasilania jest: ceramik 100nF -> Stabilizator -> ceramik 100nF -> elektrolit 4,7uF -> ceramik smd 100nF bezpośrednio przy nóżkach zasilania Atmiegi. Czy to aż tak uderzająco mało ?

    Nie, ale gdzie to widać? Patrzyłem na fotki płytek.