logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Sterownik pompki C.O. w BASCOM - histereza nie działa poprawnie

inspector_electro 10 Lis 2016 08:37 1227 13
  • #1 16051953
    inspector_electro
    Poziom 22  
    Posty: 908
    Pomógł: 18
    Ocena: 28
    Witam kolegów.

    Potrzebuję sterownika pompki do C.O. Znalazłem program napisany w BASCOM i przerobiłem go nieco do swoich potrzeb. Działa wszystko prócz HISTEREZY.
    Przy powolnym narastaniu temperatury, która skacze +/- pompka włącza się i wyłącza, czyli histereza nie działa. Histerezę zrobiłem wg. porad z forum.

    Czy może ktoś pomóc?
    Oto kod:



    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
  • #2 16052132
    Konto nie istnieje
    Konto nie istnieje  
  • #3 16052156
    inspector_electro
    Poziom 22  
    Posty: 908
    Pomógł: 18
    Ocena: 28
    Źle się wyrazilem. Pompka docelowo będzie ustawiona na którymś z portów. Natomiast sterowanie pompką zasymulowałem tekstem na wyświetlaczu "pracuje, nie pracuje". Jest to w kodzie na samym dole. Program dziala i to jest ten kod, ale histereza nie dziala jak należy.
  • #4 16052232
    namok
    Poziom 25  
    Posty: 529
    Pomógł: 91
    Ocena: 73
    Nie analizawałem programu ale:
    Temperatura w Twoim przypadku jest zazwyczaj wolnozmienna. Jeśli jej wartość skacze to znaczy że jest coś nie tak i histereza na wartości temperatury nic nie da. Albo wyczyść sygnał jakimś filtrem albo daj histerezę opartą o czas(akcepuj nową wartość jeśli utrzymuje się przez czas większy niż zadany).
    A może po prostu histereza jest źle zaimplementowana.
  • #6 16052245
    namok
    Poziom 25  
    Posty: 529
    Pomógł: 91
    Ocena: 73
    Tyle że to jest obejście problemu. Sterowanie w oparci o "zły" pomiar nie jest dobrym rozwiązaniem. Sprawdź ten czujnik "na biurku" czy też ma skoki.
  • #7 16052249
    inspector_electro
    Poziom 22  
    Posty: 908
    Pomógł: 18
    Ocena: 28
    Wiem że to nie najlepsze rozwiązanie, ale nie ogarniam tej histerezy. Na biurku zachowuje się identycznie. Zresztą każdy tak się będzie zachowywał. Przynajmniej DS18b20. Tyle że to są skoki po przecinku. Ale to wystarczy do "szarpania" sterowaniem.
  • Pomocny post
    #8 16052267
    Konto nie istnieje
    Konto nie istnieje  
  • #9 16052272
    namok
    Poziom 25  
    Posty: 529
    Pomógł: 91
    Ocena: 73
    inspector_electro napisał:
    Wiem że to nie najlepsze rozwiązanie, ale nie ogarniam tej histerezy. Na biurku zachowuje się identycznie. Zresztą każdy tak się będzie zachowywał. Przynajmniej DS18b20. Tyle że to są skoki po przecinku. Ale to wystarczy do "szarpania" sterowaniem.

    Skąd masz takie informacje. Jeśli byłoby tak jak piszesz to nie nadawałby się do niczego.
    Napisz może jakie są wartości tych skoków.
  • #10 16052507
    inspector_electro
    Poziom 22  
    Posty: 908
    Pomógł: 18
    Ocena: 28
    Nigdy nie używałeś DS-a?. Jeszcze nie spotkałem się z czymś takim, jak
    "zamrożone" wyświetlanie temperatury. Zawsze skacze +/- 01/02 st. C. Tak Też jest u mnie. Testowałem na innym i jest tak samo. Zresztą mam w domu kilka termometrów na DS18B20 i na żadnym nie ma odczytu 20.0 st.C i stoi w miejscu.
    Zawsze skacze o te 2 dziesiąte stopnia.
  • #11 16052528
    janek1815
    Poziom 38  
    Posty: 4513
    Pomógł: 372
    Ocena: 1055
    Jakoś mi nie skacze co chwila. Mam podłączone 5 do jednego atmela i nie zauważyłem żadnych skoków. Być może dlatego że najpierw odczytuję a potem wyswietlam. Z drugiej strony każde wyświetlenie powodowało by różne wskazania po przecinku a nic takiego się nie dzieje. Nie jest to jednostkowy przypadek bo takich sterowników po 5 czujników mam 13 szt. Na żadnym nie ma takich zmian.
  • #12 16052538
    inspector_electro
    Poziom 22  
    Posty: 908
    Pomógł: 18
    Ocena: 28
    W tej chwili w pokoju mam 22,5 st. i wskakuje 22,6 i spada 22,5 i znowu 22,6.
    Nie jest tak cały czas. Jest tak "randomowo". Nie mam pojęcia od czego to zależy.

    Dodano po 13 [minuty]:

    Dzięki Niveasoft. Kurcze ustawiałem zmienną HIST jako integer, ale wydawało mi się że jest źle. Teraz ustawiłem z powrotem i jest ok. Jak temperatura spadnie nawet o 0.1 st. i wzrośnie to już się nie załącza, dopiero przy zadanej.
    Tak czy siak działa.
    Dziękuję wszystkim za chęć pomocy.
  • #13 16052597
    Konto nie istnieje
    Konto nie istnieje  
  • #14 16052605
    inspector_electro
    Poziom 22  
    Posty: 908
    Pomógł: 18
    Ocena: 28
    niveasoft napisał:

    W takim który stoi i mierzy temperaturę pokoju powinno się albo zapewnić osłonę, albo liczyć z tym że każdy zefirek/zawirowanie powietrza ma prawo wpłynąć na wynik czujnika który ma rozdzielczość 0,1st.


    I o to mi właśnie chodziło. Gdyby czujnik był przykręcony np. tak jak piszesz, do radiatora, wynik by nie skakał. Teraz dopiero zrozumiałem, że gdybym czujnik miał
    przypięty do rury przy piecu, moje zmagania z histerezą zakończyły by się znacznie
    wcześniej. To jest właśnie testowanie termometru na "palec" :)

Podsumowanie tematu

✨ Użytkownik poszukiwał pomocy w związku z problemem z histerezą w sterowniku pompki C.O. napisanego w BASCOM. Po przeróbkach kodu, histereza nie działała poprawnie, co skutkowało częstym włączaniem i wyłączaniem pompki przy niewielkich zmianach temperatury. Użytkownicy forum sugerowali różne podejścia, w tym zastosowanie filtrów do sygnału oraz zmianę typu zmiennej histerezy z Single na Integer. Ostatecznie, po kilku próbach, użytkownik ustawił histerezę jako Integer i problem został rozwiązany, co pozwoliło na stabilniejsze działanie pompki. Dyskusja poruszała również kwestie związane z dokładnością pomiarów czujnika DS18B20 oraz wpływem warunków otoczenia na odczyty temperatury.
Wygenerowane przez model językowy.
REKLAMA