Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www

gosztekseba 18 Jul 2015 00:12 12165 18
Automation24
  • Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www

    Witam,

    Chciałbym przedstawić swoją konstrukcję, która była tematem mojej pracy na studiach inżynierskich.

    W dzisiejszych czasach prawie nikt już nie bawi się bramkami logicznymi, licznikami, rejestrami, które zostały wyparte przez sterowniki PLC. Urządzenia te wykorzystujemy do wykonywania pewnych zadań/sekwencji, ale dla przeciętnego kowalskiego ceny firmowych sterowników np. Siemensa są nie do przełknięcia(nie poruszając tematu chińskich sterowników). Dlatego większość ludzi decyduje się na naukę języka C/Basic i wykorzystaniu mikrokontrolera AVR lub ostatnio ARM aby zaoszczędzić pieniądze, co jest słusznym posunięciem. A co jeśli mieliśmy do czynienia wcześniej ze sterownikami PLC i nie chcemy uczyć się od podstaw języka C oraz wertować noty katalogowe mikrokontrolera szukając który bit, którego rejestru odpowiada za dany preskaler w przypadku użycia Timera itd.? Tu z pomocą może przyjść środowisko LDmicro, dzięki któremu możemy napisać program w języku drabinkowym LAD i przekonwerterować go do pliku wsadowego .hex, który wgrywamy poprzez programator do mikrokontrolera. Jest to też dobre rozwiązanie dla osób zaczynających swoją przygodę z AVR - bardzo łatwo nauczyć się graficznego sposobu programowania mikrokontrolera i może być pomostem między językiem C, którego naukę szczerze polecam. Sam zanim zacząłem korzystać z LDmicro miałem dobrze opanowany język C.

    Podstawowym założeniami przy budowie tego sterownika były:

    – ogólnodostępne części elektroniczne,
    – programowanie przy pomocy języka drabinkowego za pomocą zewnętrznego złącza,
    – izolacja mikrokontrolera od obwodów wejścia i wyjścia (ja musiałem bo było to narzucone, ale wymagane nie jest),
    – uniwersalne wejścia cyfrowe,
    – wyjścia tranzystorowe o wydajności min. 1A,
    – sygnalizacja stanu wejść i wyjść za pomocą diod LED,
    – obwody drukowane o grubości ścieżek możliwych do wytrawienia metodą termotransferu,
    – stosunkowo niski koszt konstrukcji przy zachowaniu dobrych parametrów,
    – moduł ethernetowy podłączany do sterownika za pomocą wejść cyfrowych(możliwość wysterowania samych przekaźników bezpośrednio z modułu ethernetowego),
    – zasilanie modułu ethernetowego bezpośrednio ze sterownika.


    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www


    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www
    Obwód wejść:

    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www


    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www

    Obwód wejściowy zbudowany jest w taki sposób, aby wejście było uniwersalne 5-24V. Poprzez zastosowanie transoptora PC817 porty wejściowe sterownika oraz komputer podłączony pod sterownik są odizolowane od obwodów wejściowych. Poprzez zastosowanie rezystora 2,7 kΩ, prąd płynący przez diodę transoptora jest ograniczony do wartości bezpiecznych dla tego elementu. Rezystor ten także realizuje funkcję uniwersalności wejścia. Jeżeli na wejściu pojawi się stan wysoki o potencjale 5-24V, transoptor zwiera do masy bazę tranzystora PNP BC556. Jak wiadomo, tranzystor bipolarny typu PNP po podaniu na bazę stanu niskiego, zaczyna przewodzić na złączu emiter-kolektor. Do każdego portu wejściowego mikrokontrolera podłączone zostały dwa rezystory 1kΩ, jeden ograniczający prąd przy pojawieniu się stanu wysokiego, a drugi zwiera port do masy w przypadku stanu niskiego na danym porcie. Układ zrealizowany jest w ten sposób, ponieważ porty wejściowe w mikokontrolerach uaktywniają się przy zwarciu ich do masy. Złącze JP1 wlutowane jest bezpośrednio w obwód centralny mikrokontrolera, a poszczególne wejścia X są zrealizowane na złączach ARK-5, które wyprowadzone są na zewnątrz sterownika.

    Obwód wyjść:

    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www


    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www

    Obwód wyjściowy sterownika zrealizowany został także w oparciu o transoptor PC817 podobnie jak w przypadku obwodu wejściowego. Ten zabieg z kolei zabezpiecza mikrokontroler sterownika oraz komputer w fazie programowania przed zakłóceniami pochodzącymi z obwodu wyjściowego. Firmowe sterowniki odizolowane są od obwodów wyjściowych w podobny sposób. Poszczególne porty wyjściowe sterownika wlutowane są bezpośrednio do złącza JP2 na płytce obwodów wyjściowych. Między transoptorami PC817, a portami mikrokontrolera znajdują się rezystory 1kΩ ograniczające prąd na wejściu transoptora. Obwód wyjściowy pracuje w podobny sposób jak w przypadku obwodu wejściowego, jeżeli chodzi o wysterowanie tranzystora na wyjściu transoptora, a różni się tylko typem tranzystora – tranzystor małej mocy BC556 zastąpiony został przez tranzystor średniej mocy BD140. W chwili pojawienia się „1” na wyjściu mikrokotrolera (cewka danego wyjścia została załączona), transoptor zwiera bramkę tranzystora BD140 do masy. Po pojawieniu się „0” na bramce tranzystora PNP, potencjał przyłożony do emitera tranzystora, pojawia się na jego kolektorze. Tranzystor jest średniej mocy, ponieważ wyjście potrzebuje większej wydajności prądowej niż wejście sterownika - w tym przypadku jest to 1,5A. Płytka została tak zaprojektowana, aby możliwa była zmiana napięcia na wyjściach sterownika – na złącze JP3 podawane jest 24V.

    Wejścia ADC podpięte są pod mikrokontroler tylko poprzez zabezpieczenie diodą zenera 5V1.

    Płytka centralna:

    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www

    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www

    Obwód sygnalizacji LED x2:

    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www

    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www


    Moduł ethernetowy :

    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www


    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www


    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www


    Podsumowując, sterownik zbudowany został z ogólnodostępnych elementów elektronicznych, a obwody drukowane wykonane w warunkach domowych. Wyjścia cyfrowe sterownika zostały zrealizowane w oparciu o klucze tranzystorowe BD140, charakteryzujące się między innymi maksymalnym prądem kolektora IC=1,5A. Ta cecha sterownika pozwala na załączanie nie tylko małych przekaźników, ale nawet dużych styczników z cewkami 24V. Płytki obwodów drukowanych zostały wykonane za pomocą metody termotransferu (żelazko), a wytrawione przy pomocy nadsiarczanu sodu (B327). Sterownik zasilany jest poprzez zmodyfikowany zasilacz impulsowy (ładowarka laptopowa) o mocy 90W. Zbudowany sterownik PLC_AVR udowadnia, że możliwe jest zbudowanie sterownika PLC w domowych warunkach, programowanego przy pomocy języka drabinkowego. Środowisko Ldmicro pozwala na zbudowanie bardziej zaawansowanego sterownika, z wyjściem PWM, obsługującego komunikację poprzez RS232 czy RS485, a także z dużo większą ilością wejść/wyjść. W oparciu o transmisję szeregową można także sterować wyświetlaczem graficznym pozwalającym na wizualizację procesu technologicznego. Przy budowie modułu ethernetowego wykorzystano mikrokontroler Atmega328P ze względu na większą ilość pamięci flash oraz pamięci RAM. Ten układ pozwala na bezproblemowe działanie stosu TCP/IP niezbędnego do działania w sieci. W module zastosowane zostało gotowe rozwiązanie w oparciu o układ ENC28J60. Płytka ta ze względów ekonomicznych nie została wykonana samodzielnie, ponieważ gotowy moduł wraz z gniazdkiem RJ45 kosztował tyle samo co sam układ ENC28J60. Moduł posiada zbyt mało pamięci flash, aby na stronie znalazły się obrazki, ładnie sygnalizując stany poszczególnych wyjść. Ten problem można rozwiązać na dwa sposoby:
     rozbudowa modułu o czytnik kart pamięci i umieszczenie na niej plików graficznych
     umieszczenie plików graficznych na zewnętrznym serwerze

    W wyżej przedstawionym module miało zostać wykorzystane drugie rozwiązanie, jednak w przypadku działania modułu w sieci wewnętrznej danego zakładu, bez dostępu do Internetu, strona główna modułu nie wyglądałaby dobrze bez wyświetlonych grafik. Założeniem dla modułu była prostota i szybkość działania, dlatego szata graficzna w przeglądarce internetowej jest czysto tekstowa. Można też uznać to za zaletę, ponieważ w razie podłączenia modułu do sieci Internet, użytkownicy smartfonów zużyją mniej danych pakietowych przy przeglądaniu strony bez plików graficznych. Moduł spełnia swoje zadanie, a może być wykorzystany także samodzielnie bez sterownika, załączając przekaźniki z cewką 5V. Jednak przy działaniu samodzielnym można sterować urządzeniami tylko na zasadzie włącz/wyłącz. Ze względu na obecność transoptorów na wejściu sterownika nie istniała potrzeba stosowania ich także na wyjściu modułu ethernetowego.

    Wygląd zewnętrzny sterownika:
    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www

    Opis wyprowadzeń sterownika:
    1 → Wyjścia cyfrowe Y0-Y7
    2 → GND wyjść cyfrowych sterownika
    3 → Sygnalizacja stanu wyjść
    4 → Sygnalizacja stanu wejść
    5 → +5V dla ADC oraz zasilania modułu ethernetowego
    6 → +24V dla wejść cyfrowych sterownika
    7 → Przewód zasilacza
    8 → Wejścia cyfrowe X0-X7
    9 → Wejścia analogowo-cyfrowe ADC0-ADC3
    10 → Złącze programowania (od spodu)

    Widok zewnętrzny modułu ethernetowego wraz z opisem wyprowadzeń:

    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www


    Opis wyprowadzeń modułu ethernetowego:
    11 → Zasilanie modułu (od góry GND +5V)
    12 → Wyjścia modułu (Od dołu X7-X0)
    13 → Przycisk zmiany adresu IP
    14 → Złącze ethernetowe RJ-45


    Współpraca sterownika z modułem ethernetowym
    Po zbudowaniu sterownika narodził się pomysł, aby do sterowania urządzeniem wykorzystać prosty serwer www, który pozwalałby na załączenie każdego z 8 wejść sterownika z poziomu dowolnej przeglądarki internetowej. W ten sposób mając przy sobie smartfon'a mamy możliwość sterowania danym urządzeniem z każdego miejsca na Ziemi, w którym mamy możliwość podłączenia się do Internetu. W sieci można znaleźć wiele przykładów serwerów www na mikrokontrolerze, ale najczęściej są to przykłady, w których ten serwer służy do wyświetlania danych z czujników (temperatury, wilgotności itd.) lub zdalnego załączenia przekaźnika(np. załączenie oświetlenia). Największym problemem w przypadku budowy takiego serwera jest konieczność napisania stosu TCP/IP. Autorzy strony internetowej http://www.tuxgraphics.org/ pracowali dość długo nad stworzeniem małego i szybkiego stosu TCP/IP pod mikrokontrolery, które posiadają bardzo mało pamięci operacyjnej oraz pamięci EEPROM. Programiści z tej strony internetowej stworzyli przy pomocy tego stosu serwer API w oparciu o małe 8-bitowe mikrokontrolery Atmega88, Atmega168 i Atmega328. Warstwa transportowa stosu składa się z dwóch podstawowych typów protokołów: UDP i TCP. Oba te protokoły różnią się od siebie tym, że protokół UDP nie daje żadnej gwarancji dotarcia pakietów danych do celu, ale jest szybszy od TCP. Protokół TCP zapewnia pewny kanał transmisji danych, w którym dotarcie danych jest potwierdzane przez odbiorcę. Protokół TCP do połączenia wymaga zgody drugiego urządzenia, a w przypadku protokołu UDP nie musi on uzyskiwać zgody - po prostu wysyła dane do określonego odbiorcy bez sprawdzania czy całość tych danych do niego dotarła. W stosie zawarty jest także protokół ARP, czyli protokół odwzorowania adresów. Protokół ten wysyła pytanie o adres MAC i czeka na odpowiedź urządzeń. Komunikat ARP przesyłany jest wewnątrz ramki sprzętowej (ethernet). W celu wysłania pakietu danych ustalony musi być adres sprzętowy (MAC) odpowiadający adresowi IP.Ze względu na małą moc obliczeniową mikrokontrolerów oraz fakt, że posiadają tylko 1-2kB pamięci RAM należało stworzyć taki stos, aby nie powodował pracy procesora na granicy możliwości. Można to osiągnąć na dwa sposoby: ograniczyć ilość równoległych połączeń(sesji) z serwerem (np. maksymalnie 2-3 połączeń równoległych) lub zmniejszyć ilość danych pojedynczego pakietu IP. Autorzy stosu pokazali przykład takiego serwera www na mikrokontrolerze, na którym opiera się moduł ethernetowy pracujący wraz z prezentowanym sterownikiem PLC_AVR. Stos podzielili oni na następujące pliki:

    enc28j60.c oraz plik nagłówkowy enc28j60.h → gotowy driver dla modułu ethernet dostarczony przez producenta układu ENC28j60.

    ip_arp_udp_tcp.c oraz plik nagłówkowy ip_arp_udp_tcp.c → wszystkie podstawowe funkcje
    stosu TCP.

    ip_config.h → plik nagłówkowy, który służy do konfiguracji stosu TCP.

    net.h → plik nagłówkowy, w którym zawarte są wszelkie definicje konieczne do obsługi drivera.

    timeout.h → plik nagłówkowy, w którym zawarte są funkcje potrzebnych opóźnień czasowych.

    websrv_help_functions.h →plik nagłówkowy dostarczony przez producenta modułu ethernetowe
    go, w którym znajdują się funkcje potrzebne do działania protokołu IP.
    Do programu głównego main.c zostały dołączone powyższe biblioteki i zostały one odpowiednio zainicjowane. W oryginalnym pliku main.c ze strony autorów stosu zostały wprowadzone zmiany, które dostosowały serwer do zastosowania w sterowniku.

    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www

    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www


    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www

    Możliwa jest także zmiana adresu IP serwera poprzez przytrzymanie przycisku na obudowie modułu:

    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www

    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www

    W załączniku dodaję także opis środowiska LDmicro (opis instrukcji oraz konfiguracja do pracy z danym mikrokontrolerem) stworzony przeze mnie dla osób, które będą chciały zacząć zabawę z tym środowiskiem. Co do płytek to ktoś może zadać pytanie dalczego jest ich aż tyle - wszystko osobno? A to dlatego, że założeniem miała być modułowa budowa i przy zmianie płytki centralnej z Atmegi 8 np na Atmegę 128 możemy zastosować większą ilość jednobajtowych płytek wejść oraz wyjść cyfrowych.

    Niestety nie posiadam już tego sterownika - musiałem oddać go wraz z projektem i nie posiadam żadnych zdjęć środka sterownika oraz modułu. Do zasilania mikrokontrolera była jeszcze płytka ze stabilizatorem napięcia oraz bezpiecznikiem, na którą wchodziło zasilanie z zasilacza 24V. Sterownik został sprawdzony na uczelnianej makiecie taśmociągu, z którą poradził sobie równie dobrze jak Siemens S7-300. Sterownik ten nie jest doskonały, ale też czas oraz miejsce w obudowie nie pozwalało mi zastosować chociaż komunikacji poprzez RS-232. Wszelkie kody źródłowe modułu ethernetowego wyślę na maila osobom zainteresowanym - proszę o kontakt na PW. Projekt nie był próbą stworzenia czegoś nowego, a próbą obniżenia kosztów związanych z zastosowaniem sterowników PLC. Projekt ten też udowadnia, że środowisko LDmicro nie jest takie złe jak go opisują ludzie na tym forum. Za opis programu LDmicro pozwalam sobie nałożyć prowizję ze względu na nakład pracy związany z tym opisem. Opis ten nie jest częścią projektu, a pomocą dla osób zainteresowanych.
    Attachments:

    Cool? Ranking DIY
    About Author
    gosztekseba
    Level 31  
    Offline 
    Has specialization in: komputery, linux, sterowniki plc
    gosztekseba wrote 1588 posts with rating 171, helped 119 times. Live in city Kielce. Been with us since 2008 year.
  • Automation24
  • #2
    ArturAVS
    Moderator HP/Truck/Electric
    Dlaczego między kolektorami transoptorów, a bazami tranzystorów wykonawczych brak rezystorów? To samo dotyczy podciągania baz do +Vcc.
  • #3
    kmmepl
    Level 13  
    Projekt fajny, ale są błędy w zasilaniu uC:
    Skoro używasz wejść ADC to dlaczego nie zasilasz pinu AVCC atmegi?
    Brak kondensatorów filtrujących ( 100nF) przy zasilaniu procesora.
    Brak podpiętego AREF do masy ( lub do zewnętrznego źródła odniesienia ).
    Brak rezystora podciągającego pin RESET do VCC.

    Braki te mogą wpłynąć na poprawne działanie mikrokontrolera, w następnych projektach pamiętaj o nich.
  • #4
    Tomekddd
    Level 23  
    Muszę przyznać że wykonałeś kawal dobrej roboty. Do dziś nie wiedziałem nawet o możliwości programowania procków drabinkowo.
    Skoro siedzisz w tym temacie może mógłbyś powiedzieć coś więcej o funkcjonalności takiego programowania tzn. co można a czego nie można w ten sposób napisać, jak wygląda obsługa czujników np. DS18B20?
    Pytam bo na mojej uczelni nikt nawet nie wspomniał o czymś takim a widzę tu mega potencjał.
  • #5
    gosztekseba
    Level 31  
    arturavs wrote:
    Dlaczego między kolektorami transoptorów, a bazami tranzystorów wykonaczych brak rezystorów? To samo dotyczy podciągania baz do +Vcc.


    Niech kolega zauważy,że transoptory nie podają napięcia na bazę tranzystora BD140, a zwierają ją do masy więc według mnie rezystory w tym przypadku nie są konieczne. Gdybym transoptorem podawał stan wysoki na bazę tranzystora to owszem według mnie byłoby to konieczne. W którym dokładnie miejscu chodzi o podciąganie bazy do Vcc?

    Dodano po 5 [minuty]:

    kmmepl wrote:
    Projekt fajny, ale są błędy w zasilaniu uC:
    Skoro używasz wejść ADC to dlaczego nie zasilasz pinu AVCC atmegi?
    Brak kondensatorów filtrujących ( 100nF) przy zasilaniu procesora.
    Brak podpiętego AREF do masy ( lub do zewnętrznego źródła odniesienia ).
    Brak rezystora podciągającego pin RESET do VCC.

    Braki te mogą wpłynąć na poprawne działanie mikrokontrolera, w następnych projektach pamiętaj o nich.



    Wykonałem dużo projektów w oparciu o mikrokontrolery i wiem, że przy dobrej filtracji zasilania w płytce zasilacza wraz ze stabilizatorem(której tutaj nie ma) nigdy nie było potrzeby dodatkowej filtracji przy samym procesorze. Pinu Reset nigdy też nie łączę z VCC i jakoś nigdy nie zdarzyło się żeby nie działało. Za to wykorzystując wewnętrzne źródło odniesienia nie zwarłém do masy ARef co jest słuszną uwagą, nie mniej jednak przy projekcie prostego termoregulatora, z podpiętym termometrem LM35 pod wejście ADC nie było żadnych problemów. Dziękuję za uwagi i Pozdrawiam

    Dodano po 5 [minuty]:

    Tomekddd wrote:
    Muszę przyznać że wykonałeś kawal dobrej roboty. Do dziś nie wiedziałem nawet o możliwości programowania procków drabinkowo.
    Skoro siedzisz w tym temacie może mógłbyś powiedzieć coś więcej o funkcjonalności takiego programowania tzn. co można a czego nie można w ten sposób napisać, jak wygląda obsługa czujników np. DS18B20?
    Pytam bo na mojej uczelni nikt nawet nie wspomniał o czymś takim a widzę tu mega potencjał.


    Na mojej uczelni także nikt nie wspomniał o tym i koledzy byli równie zdziwieni jak ja kiedy znalazłem ten program. Środowisko niestety nie obsługuje transmisji 1-wire, ale dobrym sposobem na ominięcie tego problemu jest termometr LM35 czy też PT100. W sumie w warunkach przemysłowych nikt nie używa czujników firmy Dallas. Sterownik ten obsługuje wszystkie czujniki w oparciu o wejście analogowe ADC także zależy to tylko od pomysłu i realizacji. Pozdrawiam
  • #6
    ArturAVS
    Moderator HP/Truck/Electric
    Zwierasz poprzez tranzystor transoptora bazę tranzystora PNP do masy. Jaki prąd płynie wtedy? Jest ograniczony jedynie złączami tranzystorów. Nie ma tu znaczenia stan niski, czy wysoki. Chodzi o ograniczenie prądu bazy. Mimo ogromu pracy jaki włożyłeś w ten projekt ( podoba mi się), te podejście świadczy o Twej niewiedzy w sterowaniu tranzystorów.


    Wpisz w wyszukiwarkę: atmega wyjście 24V.

    Na forum ATNEL, masz ładnie opisane.
    Tu na elektrodzie też chyba było.
  • Automation24
  • #7
    gosztekseba
    Level 31  
    Wcale nie neguję wypowiedzi kolegi, po prostu kierowałem się bodajże poniższym obrazkiem:

    http://4.bp.blogspot.com/-BLe-gqie3VE/TgRd4lt9yzI/AAAAAAAAAw8/edyW-b4Wt5I/s1600/bledy_schem_transoptor_przekaznik.gif

    Tak czy tak po kilkunastogodzinnym włączonym wyjściu (lampka biurkowa) załączona poprzez przeglądarkę www, nic się nie grzało i wszystko działało jak należy dlatego uznałem to jako poprawne rozwiązanie. Pozdrawiam serdecznie

    Dodano po 1 [minuty]:

    arturavs wrote:

    Wpisz w wyszukiwarkę: atmega wyjście 24V.

    Na forum ATNEL, masz ładnie opisane.
    Tu na elektrodzie też chyba było.


    Pierwszy obraz po wyszukaniu podanej wyżej frazy: Tam podajemy +24V na wyjście transoptora u mnie tego nie ma.

    https://obrazki.elektroda.pl/7152545800_1308851061.png
  • #8
    ArturAVS
    Moderator HP/Truck/Electric
    http://forum.atnel.pl/topic10686.html


    Poczytaj. Do rysunku który jest w temacie jako Q1 i Q3 podstawiasz transoptor.
  • #9
    gosztekseba
    Level 31  
    Przy następnej wykonanej płytce wyjść z pewnością przetestuję to rozwiązanie i porównam z tym użytym tutaj. Dziękuję za sugestie. Pozdrawiam
  • #10
    bvr
    Level 14  
    gosztekseba wrote:
    Pinu Reset nigdy też nie łączę z VCC i jakoś nigdy nie zdarzyło się żeby nie działało.


    Powiedział byś to klientowi czy pracodawcy dla którego zaprojektowałeś urządzenie a on wraca do Ciebie i mówi, że w 20% przypadków urządzenia się restują?

    Polecam app-note AVR042 - AVR Hardware Design Considerations.

    Quote:

    The reset line has an internal pull up resistor, but if the environment is noisy it can be insufficient and reset can therefore occur sporadically.


    Quote:

    To protect the RESET line further from noise, it is an advantage to connect a capacitor from the RESET pin to ground. This is not directly required since the AVR internally have a low pass filter to eliminate spikes and noise that could cause reset. Applying an extra capacitor is thus an additional protection.
  • #11
    gosztekseba
    Level 31  
    bvr wrote:
    gosztekseba wrote:
    Pinu Reset nigdy też nie łączę z VCC i jakoś nigdy nie zdarzyło się żeby nie działało.


    Powiedział byś to klientowi czy pracodawcy dla którego zaprojektowałeś urządzenie a on wraca do Ciebie i mówi, że w 20% przypadków urządzenia się restują?

    Polecam app-note AVR042 - AVR Hardware Design Considerations.

    Quote:

    The reset line has an internal pull up resistor, but if the environment is noisy it can be insufficient and reset can therefore occur sporadically.


    Quote:

    To protect the RESET line further from noise, it is an advantage to connect a capacitor from the RESET pin to ground. This is not directly required since the AVR internally have a low pass filter to eliminate spikes and noise that could cause reset. Applying an extra capacitor is thus an additional protection.


    Będę miał to na uwadze gdyż obudowa raczej odporna na zakłócenia nie jest, dziękuję za cytaty. Pozdrawiam
  • #12
    dondu
    Moderator on vacation ...
    Dementować czas zacząć:

    kmmepl wrote:
    Skoro używasz wejść ADC to dlaczego nie zasilasz pinu AVCC atmegi?

    Kierunek dobry lecz wniosek niewłaściwy. AVcc ma być zawsze pdołączony, a nie tylko w przypadku korzystania z ADC, o czym jasno wspomina producent mikrokontrolera: http://mikrokontrolery.blogspot.com/2011/04/minimalne-podlaczanie-pinow.html

    kmmepl wrote:
    Brak podpiętego AREF do masy ( lub do zewnętrznego źródła odniesienia ).

    Skąd takie informacje kolega posiada? Proszę czytać uważnie dokumentację: http://mikrokontrolery.blogspot.com/2011/03/avr-adc-podlaczenie.html


    gosztekseba wrote:
    Dziękuję za uwagi i Pozdrawiam

    Jak widzisz za wcześnie podziękowałeś za uwagi kol. kmmepl


    A to:
    bvr wrote:
    gosztekseba wrote:
    Pinu Reset nigdy też nie łączę z VCC i jakoś nigdy nie zdarzyło się żeby nie działało.


    Powiedział byś to klientowi czy pracodawcy dla którego zaprojektowałeś urządzenie a on wraca do Ciebie i mówi, że w 20% przypadków urządzenia się restują?

    weź sobie do serca oraz poczytaj o zakłóceniach: http://mikrokontrolery.blogspot.com/p/spis-tresci.html#dzial_zasilanie_zaklocenia

    Po za tym, projekt fajny. :)


    Edit:

    gosztekseba wrote:
    Tak czy tak po kilkunastogodzinnym włączonym wyjściu (lampka biurkowa) załączona poprzez przeglądarkę www, nic się nie grzało i wszystko działało jak należy dlatego uznałem to jako poprawne rozwiązanie.

    Bo to jest poprawne rozwiązanie, dopóki nie przekraczasz prądu kolektora tranzystora w transoptorze i wydzielonej mocy, co jak opisujesz nie miało miejsca.


    Zauważ jednak, że na schemacie, który wskazałeś:

    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www

    przekaźnik zawiera diodę zabezpieczającą (patrz symbol przekaźnika), a to jest bardzo istotne: http://mikrokontrolery.blogspot.com/2011/03/przekaznik-i-zaklocenia.html

    Jeśli więc przekaźnik nie zawiera w sobie tej diody, należy dodać ją na zewnątrz.
  • #13
    gosztekseba
    Level 31  
    Dziękuję za linki na pewno przyswoję tą wiedzę. Wszystko działało jak należy, ale fakt faktem jakie to zakłócenia występują na biurku czy przy makiecie w uczelnianym laboratorium. W sumię muszę przyznać, że największe zainteresowanie przyciągał nie sam sterownik, a sterowanie nim za pomocą przeglądarki www. Pozdrawiam
  • #14
    dondu
    Moderator on vacation ...
    Edytowałem poprzedni post więc doczytaj jeszcze końcową jego część.

    gosztekseba wrote:
    W sumię muszę przyznać, że największe zainteresowanie przyciągał nie sam sterownik, a sterowanie nim za pomocą przeglądarki www.

    Tak to na pewno jest najciekawsze :)

    Fajnie że przedstawiłeś nieco LDmicro, bo tylko kilka tematów mamy w tym zakresie na forum.
  • #15
    gosztekseba
    Level 31  
    Dla osób, które zaczynają swoją przygodę z mikrokontrolerami jest to naprawdę dobre wyjście. Wiadomo, że graficzny język programowania jest prostszy dla laika. Z czasem jednak napotyka się problem, którego ciężko jest rozwiązać przy pomocy tego języka graficznego i człowiek staje przed obliczem przyswajania języka C. Wtedy zauważa, że jednak programowanie w C jest bardziej optymalne pod względem zajętości pamięci i warto się go nauczyć. Jednak od czegoś trzeba zacząć, a dla prostych zadań nie ma znaczenia czy kod będzie zajmował 2-4kB ważne żeby działał. Powiem szczerze, że jeśli chodzi o pisanie w języku drabinkowym, to nieraz proste rzeczy łatwiej jest napisać w LDmicro niż w Step7 czy TiaPortal, z którymi robilśmy niemal wszystko na laboratorium. Wykonanie sterowania cewką jednym przyciskiem czy "skaczącej jedynki" to kwestia kilku minut w LDmicro, a w Siemensie zawsze coś jest nie tak i trzeba szukać przyczyny z reguły banalnej. Pozdrawiam

    dondu wrote:
    Edytowałem poprzedni post więc doczytaj jeszcze końcową jego część.


    Prosto zwięźle i na temat. Dziękuję za wyjaśnienie.
  • #16
    gosztekseba
    Level 31  
    W innym moim temacie znajduje się zmodyfikowana wersja tego sterownika, który posiada możliwość komunikacji z komputerem PC, urządzeniem mobilnym z systemem Android oraz innymi urządzeniami przemysłowymi.

    Link
  • #17
    wluczynski
    Level 1  
    witaj- gosztekszeba -bardzo prosze oprzesłanie wszystkich plików dla zrealizowania PLC na ATMEGA-dziekuje: wieslaw.luczynski(_at_)gmail.com
    wluczynski.
    wieslaw.luczynski(_at_)gmail.com 7.02.2017
  • #18
    winiar2014
    Level 10  
    Sterownik PLC w oparciu o mikrokontroler Atmega z dostępem przez www
    Witam, pomoże ktoś to połączyć, nie jestem pewien.

    pozdrawiam
  • #19
    gosztekseba
    Level 31  
    PB2(SS)-CS
    PB3(MOSI)- SI
    PB4(MISO)-SO
    PB5(SCK)-SCK

    Pozdrawiam