W nowym sofcie do sterowników PELLO dodaliśmy obsługę BUFORA. Więcej informacji na forum lub w tym pliku
Forum  eSterownik.pl  Uwagi do działania Biblioteki. Subskrybuj
Pierwsza stronaPoprzednia strona3 / 6Następna stronaOstatnia strona
2014-04-07 14:59
  konto usunięte Posty: 10188 Ostrzeżenie: 0
janusz napisał » 2014-04-05 22:06
Ale zużycie spadło i to wcale nie mało
Tutaj warto być ostrożnym, ciepło jest, spalanie spada.
janusz napisał » 2014-04-05 22:06
Więc może dobierzcie sie do korekty pracy automatycznej
Próbowałem, jestem ciekaw jak to zrobiłeś.
U mnie skrypt odpala, ale uruchamia tylko podajnik zgodnie z nastawą, dmuchawa nie startuje:/
2014-04-07 21:29
  janusz Posty: 540 Ostrzeżenie: 0
Verb napisał : "Interesujące, jak możesz i chcesz to otwórz nowy wątek i napisz coś więcej."
Problem w tym czy w takim wątku dotyczącym " VB " będą chętni do rozmowy


Martwy wątek nie ma sensu ale przyznam że bardzo chętnie bym wymienił sie doświadczeniami z osobą piszącą w VB


Pytasz jak to zrobiłem?
Łącze sie ze sterownikiem za pomocą biblioteki  WinHttp 
pewnie podobna w działaniu do tej jakiej używacie
" #conn = httplib"
u mnie to proste definiuję obiekt
Set MyRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
otwieram połączenie 
MyRequest.Open "GET", str_Url & "/?com=02010005000B0100018403"
Uruchamia dmuchawę  trybie ręcznym

    MyRequest.SetCredentials NazwaUsera, Password, 0
    MyRequest.Send
i poszło dmuchawa załączona
mogę programowo zmienić chyba wszystko w sterowniku
Lecz nie namawiam Cię na naukę nowego języka 
Ale jak byś chciał .....
Piszesz że Twój  skrypt coś nie działa ?
Zapodaj może fragment kodu (skryptu ) lub cały gdzie ma startować dmuchawa 
może dam radę przerobić żeby zatrybiło 
Jak za duże na forum prześlij na priv 
odpowiem 


Janusz



2014-04-07 21:53
  konto usunięte Posty: 10188 Ostrzeżenie: 0
W bibliotece "sterownik" wpisano sprawdzanie statusu. Zmieniałem na False.
Skrypt się uruchamia, ale log sypie błędami komunikacji. Być może coś przeoczyłem.
Spróbuję jeszcze po http.

Za cienki jestem na kolejny język, ledwo ten ogarnąłem. Nieraz byłem gotów to rzucić w kąt, bo nie szło jak chciałem. Niby nigdy nie jest za późno na naukę, ale mnie to przychodzi dość opornie :/

Kodu automatu, na razie nikomu nie udostępniam. Nie da się sensownie wyciąć kawałka, dotyczącego wyłącznie wątku dmuchawy
Chciałbym by nowy tryb trafił do ES, a docelowo do naszych sterów.
Poczekajmy, być może będę musiał szukać innego rozwiązania, wtedy Twoja wiedza będzie bardzo potrzebna.


2014-04-07 22:18
  Stan Posty: 2564 Ostrzeżenie: 0
janusz napisał » 2014-04-07 19:29
Verb napisał : "Interesujące, jak możesz i chcesz to otwórz nowy wątek i napisz coś więcej."
Problem w tym czy w takim wątku dotyczącym " VB " będą chętni do rozmowy


Martwy wątek nie ma sensu ale przyznam że bardzo chętnie bym wymienił sie doświadczeniami z osobą piszącą w VB


Pytasz jak to zrobiłem?
Łącze sie ze sterownikiem za pomocą biblioteki  WinHttp 
pewnie podobna w działaniu do tej jakiej używacie
" #conn = httplib"
u mnie to proste definiuję obiekt
Set MyRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
otwieram połączenie 
MyRequest.Open "GET", str_Url & "/?com=02010005000B0100018403"
Uruchamia dmuchawę  trybie ręcznym

    MyRequest.SetCredentials NazwaUsera, Password, 0
    MyRequest.Send
i poszło dmuchawa załączona
mogę programowo zmienić chyba wszystko w sterowniku
Lecz nie namawiam Cię na naukę nowego języka 
Ale jak byś chciał .....
Piszesz że Twój  skrypt coś nie działa ?
Zapodaj może fragment kodu (skryptu ) lub cały gdzie ma startować dmuchawa 
może dam radę przerobić żeby zatrybiło 
Jak za duże na forum prześlij na priv 
odpowiem 


Janusz






To akurat ja pisałem
Ale nie istotne.


Ja zrozumiałem że Twój sterownik jest w trybie automatycznym a Ty możesz mu wysłać kolejne zestawy poleceń do wykonania.
Gdyby tak było to byłoby to bardzo interesujące gdyż utrata komunikacji powodowałaby tylko pracę z ostatnimi parametrami.
Może inaczej, rozumiem to tak wysyłasz polecenie włącz podajnik na 3 sekundy, włącz dmuchawę na 30 sekund z mocą 39% i sterownik w trybie automatyczny to robi, w razie utraty połączenia wykonuje dalej te sekwencję.


Tak to zrozumiałem, i myślę że Verb też , ale teraz piszesz o trybie ręcznym więc nie wiem?
2014-04-07 22:25
  konto usunięte Posty: 10188 Ostrzeżenie: 0
Stan napisał » 2014-04-07 20:18
Tak to zrozumiałem, i myślę że Verb też
Dokładnie tak.
2014-04-07 22:36
  janusz Posty: 540 Ostrzeżenie: 0
Verb napisał : Kodu automatu, na razie nikomu nie udostępniam. Nie da się sensownie wyciąć kawałka, dotyczącego wyłącznie wątku dmuchawy 


Chyba źle mnie odczytałeś 


W przykładach Ven-a jest fragment skryptu 
# Dmuchawa
    def getDmuchawa(self):
        if (bool(self.s_statusdata)):
            return self.s_statusdata[32] & (1 << 0) != 0;
            
    def setDmuchawa(self, state):
        if (state):
            self._getRequest("02010005000B0100018403");
        else:
            self._getRequest("02010005000B010000B503");

    def getDmuchawaMoc(self):
        if (bool(self.s_statusdata)):
            return self.s_statusdata[39];
który ja odczytuje następująco że w zależności od odczytanego statusu dmuchawy 
można wysłać polecenie 
self._getRequest("02010005000B0100018403 ")załącza dmuchawę i nie ma bata dmuchawa musi zastartowaćVerb napisał:W bibliotece "sterownik" wpisano sprawdzanie statusu. Zmieniałem na False. Skrypt się uruchamia, ale log sypie błędami komunikacji. Być może coś przeoczyłem.


a  status dmuchawy odczytujemy z zapytania 
02010006000000006103
jest on podawany jako (39) element zwracanej tablicy zawiera wartość  0 dla wyłączonej 1 dla włączonej
Lecz powiem że bez nawet fragmentu typu w/w nie pokazującego  co wysyłasz co sterownika kicha...
Janusz

2014-04-07 22:39
  konto usunięte Posty: 10188 Ostrzeżenie: 0
janusz napisał » 2014-04-07 20:36
Lecz powiem że bez nawet fragmentu typu w/w nie pokazującego  co wysyłasz co sterownika kicha...
Muszę iść do pracy, jutro jak się wyśpię, spróbuję złapać logi.
2014-04-07 22:56
  janusz Posty: 540 Ostrzeżenie: 0
Stan napisał: "Ja zrozumiałem że Twój sterownik jest w trybie automatycznym a Ty możesz mu wysłać kolejne zestawy poleceń do wykonania.
Gdyby tak było to byłoby to bardzo interesujące gdyż utrata komunikacji powodowałaby tylko pracę z ostatnimi parametrami.
Może inaczej, rozumiem to tak wysyłasz polecenie włącz podajnik na 3 sekundy, włącz dmuchawę na 30 sekund z mocą 39% i sterownik w trybie automatyczny to robi, w razie utraty połączenia wykonuje dalej te sekwencję."

Tak sterownik w trybie Auto
 Ja po prostu koryguję ustawienie jakie ma obecnie
np nakazuje zmienić moc dmuchawy ,czas postoju w podawaniu lub czas podawania paliwa
i co najistotniejsze to ja decyduję kiedy ma rozpocząć a kiedy zakończyć pracę  
wiem ile ma podać paliwa co jaki czas podać  z jaką siłą dmuchnąć  
na tej podstawie wyliczam trend temp Co i w zależności od potrzeb 
zwiększam moc palnika lub ją zmniejszam
i to by było na tyle
sorry jeżeli wprowadziłem zamieszanie
Janusz
2014-04-07 23:34
  Stan Posty: 2564 Ostrzeżenie: 0
Chyba łapię, czyli wystarczy że w naszych skryptach podmienimy polecenia symboliczne na te nazwijmy to "kody maszynowe" i powinno działać.
A ja to się ma do instrukcji będących już wpisanych wewnątrz sterownika, nie kłócą się ze sobą ? My wysyłamy polecenie włącz i skrypt sam odmierza czas po czym wysyła wyłącz itd.
2014-04-08 12:54
  janusz Posty: 540 Ostrzeżenie: 0
Stan napisał » 2014-04-07 21:34
Chyba łapię, czyli wystarczy że w naszych skryptach podmienimy polecenia symboliczne na te nazwijmy to "kody maszynowe" i powinno działać.



Już blisko 
np wysłanie do sterownika polecenia
self._getRequest("02010005000B0100018403 ") załączy dmuchawę (w trybie ręcznym)


self._getRequest("02010002002802003900E603") ustawi temp Co na wartość 57 deg (w trybie auto)


self._getRequest("02010002000F02001E003703") ustawi moc dmuchawy na wartość 37 %  (w trybie auto)


self._getRequest("020100020023020046003E03") ustawi czas postoju podajnika na 70 sek (w trybie auto)


itd....


Każdej zmianie wartości odpowiada inne polecenie
To po prostu nic innego jak zmiana dokonana za pomocą panela www
zmieniasz wartość panel wysyła do sterownika odpowiednie polecenie


Napisałeś fajną funkcję sprawdzającą temp.CO i to już jest początek
Ja też mam taką funkcje którą to cyklicznie (kontrolka timer) sprawdzam temp Co
i na tej podstawie ustalam ( zmienna typu logicznego o nazwie "Wzrost") stan temp Co (TCO)
Jeżeli  TCO wzrasta w porównaniu do poprzedniego odczytu  zmienna Wzrost otrzymuje wartość true
Następny odczyt  if  Wzrost=true i TCO zbliża się do temp żądanej nakazuję sterownikowi aby zakończył tryb pracy
Natomiast przy spadku jeżeli  Wzrost = false 
if TCO w spadku zbliża się do temp żądanej nakazuję sterownikowi wznowienie pracy


Takich if-ow jest więcej bo przy spadkach temp koryguję moc palnika skracając np czas postoju podajnika  
podnosząc moc dmuchawy itp...  tak skrótowo by to wyglądało


Czy u was można to wykonać podejrzewam że tak 


Janusz
 

2014-04-08 14:37
  Stan Posty: 2564 Ostrzeżenie: 0
janusz napisał » 2014-04-08 10:54
Stan napisał » 2014-04-07 21:34
Chyba łapię, czyli wystarczy że w naszych skryptach podmienimy polecenia symboliczne na te nazwijmy to "kody maszynowe" i powinno działać.



Już blisko 
np wysłanie do sterownika polecenia
self._getRequest("02010005000B0100018403 ") załączy dmuchawę (w trybie ręcznym)


self._getRequest("02010002002802003900E603") ustawi temp Co na wartość 57 deg (w trybie auto)


self._getRequest("02010002000F02001E003703") ustawi moc dmuchawy na wartość 37 %  (w trybie auto)


self._getRequest("020100020023020046003E03") ustawi czas postoju podajnika na 70 sek (w trybie auto)


itd....


Każdej zmianie wartości odpowiada inne polecenie
To po prostu nic innego jak zmiana dokonana za pomocą panela www
zmieniasz wartość panel wysyła do sterownika odpowiednie polecenie


Napisałeś fajną funkcję sprawdzającą temp.CO i to już jest początek
Ja też mam taką funkcje którą to cyklicznie (kontrolka timer) sprawdzam temp Co
i na tej podstawie ustalam ( zmienna typu logicznego o nazwie "Wzrost") stan temp Co (TCO)
Jeżeli  TCO wzrasta w porównaniu do poprzedniego odczytu  zmienna Wzrost otrzymuje wartość true
Następny odczyt  if  Wzrost=true i TCO zbliża się do temp żądanej nakazuję sterownikowi aby zakończył tryb pracy
Natomiast przy spadku jeżeli  Wzrost = false 
if TCO w spadku zbliża się do temp żądanej nakazuję sterownikowi wznowienie pracy


Takich if-ow jest więcej bo przy spadkach temp koryguję moc palnika skracając np czas postoju podajnika  
podnosząc moc dmuchawy itp...  tak skrótowo by to wyglądało


Czy u was można to wykonać podejrzewam że tak 


Janusz
 




Jasne, i odbywa się to wszystko bez pośrednictwa biblioteki sterownik.
Dokończę to co robię teraz i chyba spróbuję zrobić to samo po Twojemu, no chyba że w międzyczasie ES udostępni poprawkę z "bezpiecznikiem" do sterownika.
Dzisiaj zrobiłem parę zmian w swoim skrypcie, muszę je wypróbować i udostępnię nową wersję.
2014-04-08 15:01
  janusz Posty: 540 Ostrzeżenie: 0
Jak zrobią poprawkę to można myśleć o własnym procesie sterowania


Na chwilę obecną ja nie podejmę takiego ryzyka
Jak przerwie połączenie gdy załączę podajnik to dla mnie dramat 
wywali cały zasobnik do pieca 


Janusz 


Ps 
Mam połączenie na kablu a i tak zdarza się że gubię połączenie 
2014-04-08 15:31
  Stan Posty: 2564 Ostrzeżenie: 0
janusz napisał » 2014-04-08 13:01
Jak zrobią poprawkę to można myśleć o własnym procesie sterowania


Na chwilę obecną ja nie podejmę takiego ryzyka
Jak przerwie połączenie gdy załączę podajnik to dla mnie dramat 
wywali cały zasobnik do pieca 


Janusz 


Ps 
Mam połączenie na kablu a i tak zdarza się że gubię połączenie 



Myślałem że jak jesteś w trybie automatycznym to nie ma takiej możliwości ?
Przed taką możliwością bronię się przekaźnikiem czasowym umieszczonym na sterowaniu podajnikiem.
Samo umieszczenie RPi i podłączenie bezpośrednie do sterownika (przez switch umieszczony w kotłowni i wszystko na wspólnym zasilaniu) powoduje że nawet jak się wywali cała reszta sieci domowej to kocioł działa.
2014-04-08 15:44
  janusz Posty: 540 Ostrzeżenie: 0
Oczywiście ale to wymagało dodatkowych nakładów finansowych
i własnej  robocizny  
a  o sobie powiem tak nie jestem leniwy jak twierdzi małżonka  lecz "energooszczędny"


Janusz
2014-04-08 15:49
  Stan Posty: 2564 Ostrzeżenie: 0
Energooszczędny )) , dobre - muszę to "sprzedać" swojej małżonce. 
2014-04-08 16:07
  janusz Posty: 540 Ostrzeżenie: 0
Stan  Wiesz czego brakuje mi w sterowniku 
Opcji która po zakończeniu cyklu pracy pozwali na uruchomienie dmuchawy z określoną mocą  i przez określony czas może być opcjonalne 
Ja bym decydował jak długo i z jaką mocą pracuje dmuchawa celem dopalenia opału


Ty i Verb macie dobry kontakt z ES może im coś takiego zaproponujecie  można to zaadoptować z opcji pieca zasypowego ( przedmuchy)


Janusz
2014-04-08 16:18
  Stan Posty: 2564 Ostrzeżenie: 0
Przecenisz (i to mocno) ten dobry kontakt
Coś takiego mam w TRK a dzisiaj będę testował bloki uruchamiane jeden raz w cyklu grzania, właśnie z myślą o dopalaniu na różnych etapach.
Wpadł mi też pomysł na dopalanie (tylko dopalanie) regulowane od temperatury spalin, jak się wyrobię to dzisiaj jakąś wstępną wersję przetestuję.
2014-04-08 16:23
  konto usunięte Posty: 10188 Ostrzeżenie: 0
Janusz, ja to mam tak:

def dopalanie():
        print (time.asctime(time.localtime()) + ": CO: " + str(c.getTempCO()) + "°C. " + " CWU: " + str(c.getTempCWU()) + "°C. " + " Spaliny: " + str(c.getTempSpaliny()) + "°C. - Dopalanie.");
        c.setDmuchawa(True);
        c.setDmuchawaMoc(mocDmuchawaDopalanie);
        time.sleep(czasDopalanie);



2014-04-08 16:35
  janusz Posty: 540 Ostrzeżenie: 0
Verb dokładnie o takie coś chodzi
Linia skryptu
 print (time.asctime(time.localtime()) + ": CO: " + str(c.getTempCO()) + "°C. " + " CWU: " + str(c.getTempCWU()) + "°C. " + " Spaliny: " + str(c.getTempSpaliny()) + "°C. - Dopalanie.");
wymaga dłuższej analizy nie wszystko jest dla mnie tak jednoznaczne jak w VB 
a skrypt
c.setDmuchawa(True);
        c.setDmuchawaMoc(mocDmuchawaDopalanie);
        time.sleep(czasDopalanie);


To jest to !


Stan jak  udostępnisz  skrypt TRK  to do końca bo chyba ostatni gdzie była funkcja sprawdzania temp Co

jakoś brakowało mi zakończenia pętli While 



2014-04-08 16:49
  konto usunięte Posty: 10188 Ostrzeżenie: 0
Janusz. Dasz radę coś z tego odczytać ?
Tak wygląda uruchomienie skryptu, bez getStatus, na sterowniku w trybie auto.

Serial(port='com1', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=15, xonxoff=False, rtscts=False, dsrdtr=False)
SENT<- b'\x02\x01\x00\x05\x00\x14\x00\x00\xa8\x03'
HEAD-> b'\x02\x01\x06\x05\x00\x14\x08\x00'
DATA-> b'\x02\x01\x06\x05\x00\x14\x08\x000.1.9.20Z\x03'
Bajty startowe: OK
Rozkaz potwierdzony: OK
Suma kontrolna: OK
Polaczony z sterownikien wersja fw: 0.1.9.20
Tryb: 0 - reczny, 1 - auto
Tryb: 1
SENT<- b'\x02\x01\x00\x06\x00\x00\x00\x00a\x03'
HEAD-> b'\x02\x01\x06\x06\x00\x00L\x00'
DATA-> b'\x02\x01\x06\x06\x00\x00L\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x00\xea\x00\xc1\x00#\x02\x11\x02\x9e\x019\x02a\x03\x04\x00\x01\x00\x007\n\x00\x00\x00\x00\x02\x0e\x04\x08\x0e+-\x01\x01\x00\x01\x01\xd7\x00\xd2\x00\x00\x14\x02\x00\x00\x0b\x1b\x00\x00\x0e\x04\x05\x0b:9\xeeb\x00\x05\xd2\x00\xbe\x00\x00\x00r\x03'
Bajty startowe: OK
Rozkaz potwierdzony: OK
Suma kontrolna: OK
SENT<- b'\x02\x01\x00\x05\x00\r\x01\x00\x01\x8d\x03'
HEAD-> b'\x02\x01\x15\x05\x00\r\x02\x00'
DATA-> b'\x02\x01\x15\x05\x00\r\x02\x00\x08\x00a\x03'
Bajty startowe: OK
Rozkaz potwierdzony: BŁAD
Suma kontrolna: OK
SENT<- b'\x02\x01\x00\x06\x00\x00\x00\x00a\x03'
HEAD-> b'\x02\x01\x06\x06\x00\x00L\x00'
DATA-> b'\x02\x01\x06\x06\x00\x00L\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x00\xea\x00\xc1\x00#\x02\x11\x02\x9e\x019\x02a\x03\x04\x00\x01\x00\x007\n\x00\x00\x00\x00\x02\x0e\x04\x08\x0e+-\x01\x01\x00\x01\x01\xd7\x00\xd2\x00\x00\x14\x02\x00\x00\x0b\x1b\x00\x00\x0e\x04\x05\x0b:9\xeeb\x00\x05\xd2\x00\xbe\x00\x00\x00r\x03'
Bajty startowe: OK
Rozkaz potwierdzony: OK
Suma kontrolna: OK
SENT<- b"\x02\x01\x00\x05\x00\x0c\x01\x00\x00'\x03"
HEAD-> b'\x02\x01\x15\x05\x00\x0c\x02\x00'
DATA-> b'\x02\x01\x15\x05\x00\x0c\x02\x00\x08\x00\xb2\x03'
Bajty startowe: OK
Rozkaz potwierdzony: BŁAD
Suma kontrolna: OK
SENT<- b'\x02\x01\x00\x05\x00\x0b\x01\x00\x00\xb5\x03'
HEAD-> b'\x02\x01\x15\x05\x00\x0b\x02\x00'
DATA-> b'\x02\x01\x15\x05\x00\x0b\x02\x00\x08\x00\xe9\x03'
Bajty startowe: OK
Rozkaz potwierdzony: BŁAD
Suma kontrolna: OK
SENT<- b'\x02\x01\x00\x06\x00\x00\x00\x00a\x03'
HEAD-> b'\x02\x01\x06\x06\x00\x00L\x00'
DATA-> b'\x02\x01\x06\x06\x00\x00L\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x00\xea\x00\xc1\x00#\x02\x11\x02\x9e\x019\x02a\x03\x04\x00\x01\x00\x007\n\x00\x00\x00\x00\x02\x0e\x04\x08\x0e+-\x01\x01\x00\x01\x01\xd7\x00\xd2\x00\x00\x14\x02\x00\x00\x0b\x1b\x00\x00\x0e\x04\x05\x0b:9\xeeb\x00\x05\xd2\x00\xbe\x00\x00\x00r\x03'
Bajty startowe: OK
Rozkaz potwierdzony: OK
Suma kontrolna: OK
Tue Apr  8 14:44:04 2014: CO: 56.9°C.  CWU: 54.7°C.  Spaliny: 86.5°C. - Oczekiwanie.
Pierwsza stronaPoprzednia strona3 / 6Następna stronaOstatnia strona
Użytkownicy online: Emilpasa, Sahryn66