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

Układ wykrywania drgań styków

20 Kwi 2011 11:29 2154 9

  • Poziom 11  
    Koledzy,

    od kilku dni męczę się z tworzeniem w/w układu do selekcji rozłączników termicznych, ze względu na występowanie drgań styków.
    Problem (moim zdaniem) tkwi w szybkości liczenia i częstości skanowania wejść. Początkowo próbowałem wykonać ten układ na PLC z wykorzystaniem szybkich liczników. Układ owszem, liczy drgania z okresem odświeżania 5us, tyle, że jak się okazało po przebadaniu iluś tam egzemplarzy kryterium prawidłowego działania nie leży w ilości impulsów wygenerowanych stykami - te dobre generują powtarzalną ilość impulsów, natomiast te wadliwe (podłączony do nich przekaźnik podczas przełączania brzęczy/strzela) generują raz więcej, raz mniej.
    postanowiłem zastosować inne kryterium - czas ustabilizowania się połączenia styk-styk. Tutaj PLCkowi dziękuję.
    Zastosowałem PIC16F877 (jako prototyp - docelowo ma być PIC16F84) z 20MHz rezonatorem. Programuję w Asemblerze, żeby szybciej:) O tyle, o ile układ jest w stanie policzyć impulsy i powpisywać w kolejkę, oo tyle przetworzenie i wykrycie stanu ustalonego sprawia kostce (lub mi) problem. Stąd pytanie do Was: Czy któryś z Kolegów potrafiłby coś powiedzieć na temat drgania styków? Czy szacunkowo taka kość, jaką zastosowałem, jest w stanie przeanalizować drgania styków? Jak zauważyłem, drgania wygasają po upływie mniej niż 5ms. Próbowałem kolejkować stan wejścia na 8-bitowym rejestrze przesuwnym, z użyciem różnego opóźnienia między wpisami, do wykrycia stanu ustalonego, ale stan ten występuje od razu. Czy działanie kostki jest a) za wolne? b) za szybkie? jaką częstotliwość mogą mieć drania styków, których powierzchnia elastyczna to ok.0,25cm2? czy ta częstotliwość jest zależna od prądu lub napięcia na stykach?

    za wszelkie sugestie będę bardzo wdzięczny. Mam nadzieję, że umieściłem temat w odpowiednim miejscu.

    Pozdrawiam
  • Relpol przekaźniki
  • Pomocny post
    Moderator Mikrokontrolery Projektowanie
    Tak dla rozjaśnienia: http://mikrokontrolery.blogspot.com/2011/04/przycisk-drgania-stykow-debouncing.html

    To co opisujesz wygląda na strasznie skomplikowane, a w rzeczywistości jest baaaardzo proste. Nie liczymy ilości drgań bo na pewno jest przypadkowa, ale czas w którym styk jest stabilny na jednym stanie. Jak długi czas? To już zależy od styków albo od Ciebie.

    Oczywiście że ten PIC da sobie radę, a nawet będzie się nudzić.

    Dodano po 37 [minuty]:

    Po ponownym przeczytaniu zrozumiałem, że chodzi Ci o coś innego: urządzenie do segregowania rozłączników na dobre i złe. Czy tak?

    Jeżeli tak, to raczej sugerowałbym pomiar okresu trwania drgań, a nie ich ilości.
    To także ten PIC zrobi a nawet będzie się nudzić jak już pisałem.


    Leszo napisał:
    Programuję w Asemblerze, żeby szybciej:)

    Całkiem niepotrzebnie - szybkość nie jest aż tak ważna.
  • Relpol przekaźniki

  • Poziom 11  
    dondu napisał:
    urządzenie do segregowania rozłączników na dobre i złe. Czy tak?

    Tak
    dondu napisał:

    Jeżeli tak, to raczej sugerowałbym pomiar okresu trwania drgań, a nie ich ilości.
    To także ten PIC zrobi a nawet będzie się nudzić jak już pisałem.

    No właśnie tak jak pisałem doszedłem do wniosku, że tak będzie najlepiej. problematyczne jest wykrycie końca drgań - zrobiłem to na 8-bitowym rejestrze przesuwnym z różnymi interwałami wpisu ale wychodzi mi, że jest zawsze OK. powodem, jak myślę, może być:
    -za szybko mierzę i te 8 próbek wypada akurat w jednym położeniu (1 peaku)
    -za wolno mierzę i wykrywam koniec przy początku (tylko że wtedy już szybciej nie można - stąd mój post)
    -za krótko próbkuję - trzeba by zastosować dłuższa kolejkę
    -ogólnie kiepska metoda - można po pierwszym peaku zacząć odliczanie czasu i liczyć impulsy. po dwóch różnych okresach porównać licznik i sprawdzić, czy jest taki sam - jeżeli tak, to drgania mieszczą się w jakimś przedziale, jeżeli nie, to to się rozbiegają i rozłącznik jest do śmieci.

    Tak czy inaczej Kolego dondu dziękuję za pomoc - skoro PIC da radę to coś wymyślę. Skoro mówisz, że procek będzie się nudził, to mam jeszcze jedno pytanie do Ciebie: w prototypie zastosowałem kwarc 20MHz - czy wystarczyłoby 8MHz?

    Pozdrawiam
  • Poziom 38  
    No ale rozłącznik termiczny vel bezpiecznik termiczny jest urządzeniem jednorazowym.
    Po jednorazowym zadziałaniu jego dalsze zachowanie jest nieobliczalne.
    Trzeba wymienić.

  • Poziom 11  
    dondu napisał:
    Pytasz o docelowy PIC16F84?

    Maksymalna częstotliwośc przerwań z Timer0:
    20MHz / 4 / 256 = 19531,25 Hz
    8MHz / 4 / 256 = 7812,5 Hz

    Według mnie spokojnie 8MHz wystarczy.


    liczyłem impulsy licznikiem w plc o czestotliwosci probkowania 100kHz, filtr 5us, czyli parametry max no i naliczał mi od 20 do 60 pulsow. tyle, że przy takim jednostajnym skanowaniu łapał co któryś impuls, a przy przerwaniu ukłąd powinien reagować na każdy impuls w paśmie. w dodatku dzwieki wydawane przez styki przekaznika nie brzmiały wyżej niż tony wysokie:)

    Dodano po 1 [minuty]:

    janbernat napisał:
    No ale rozłącznik termiczny vel bezpiecznik termiczny jest urządzeniem jednorazowym.
    Po jednorazowym zadziałaniu jego dalsze zachowanie jest nieobliczalne.
    Trzeba wymienić.

    to taki skrót - chodzi o wyłączniki z wkładką bimetalową do zabezpieczania przed przegrzaniem transformatorów spawalniczych.
  • Pomocny post
    Moderator Mikrokontrolery Projektowanie
    Ja nadal obstaję przy tym, iż powinieneś liczyć czas drgań a nie impulsy których może być losowa ilość w tym samym czasie dla różnych rozłączników.
    Dlatego skanując wejście z częstotliwością 7812 Hz okres pomiędzy skanami to:
    1 / 7812 = 128µs
    czyli załatwia Twój problem, bo okres drgań styków zapewne będzie w milisekundach.


    Nie wiem czy dobrze Ciebie rozumie.

  • Poziom 11  
    Ja również chcę liczyć czas a nie impulsy. ilość impulsow podalem jako wyjasnienie, ze stosując filtr 5us (nie powiem dokładnie co to jest za parametr ale chyba minimalny wykrywalny okres) rozrzut liczby naliczonych impulsow jest dosc duzy (w %) co mogloby swiadczyc o dużo krótszym okresie niz okres probkowania.

    Oczywiscie parametrem cechującym dany styk pod wzgledem drgan musi byc czas ustalania sie danego stanu - moze wyjsc 100 impulsow w ciagu 5ms i bedzie to nie zauwazone przez uklad sterujacy, oraz moze byc 5 impulsow w ciagu 100ms, co spowoduje drganie wrzystkich stycznikow.

    myslalem tez, że moze probkowanie stanu wejscia moze byc synchroniczne wgledem programu - byloby szybciej ale mniej dokladnie (rozne czasy probek). a jezeli zrobic to na przerwaniach, to chyba 7812Hz jest minimalna czestotliwoascia (przy timerze ustawionym na 255 taktow). jezeli pisze raczej glupoty to prosze popraw mnie - jestem amatorem w temacie mikrokontrolerow.

    pozdrawiam
  • Użytkownik usunął konto