Profil użytkownika
| posty użytkownika | ||||
| Pierwsza stronaPoprzednia strona14 / 15Następna stronaOstatnia strona | ||||
|
|
||||
|
janusz
|
def setDmuchawaMoc(self, value):
Widać że oczekuje na wartość Value w moim odczuciu czeka na liczbę KM dla dmuchawy w zakresie 25-40 już ci podam jak to będzie ci pomocne Sub Ustaw_Dmuchawe(Na As Integer) Dim MyRequest As Object, arr Dim Bk As String On Error Resume Next Select Case Na Case 25 Bk = "/?com=02010002000F020019009903" Case 26 Bk = "/?com=02010002000F02001A00B403" Case 27 Bk = "/?com=02010002000F02001B004003" Case 28 Bk = "/?com=02010002000F02001C00EE03" Case 29 Bk = "/?com=02010002000F02001D001A03" Case 30 Bk = "/?com=02010002000F02001E003703" Case 31 Bk = "/?com=02010002000F02001F00C303" Case 32 Bk = "/?com=02010002000F02002000E803" Case 33 Bk = "/?com=02010002000F020021001C03" Case 34 Bk = "/?com=02010002000F020022003103" Case 35 Bk = "/?com=02010002000F02002300C503" Case 36 Bk = "/?com=02010002000F020024006B03" Case 37 Bk = "/?com=02010002000F020025009F03" Case 38 Bk = "/?com=02010002000F02002600B203" Case 39 Bk = "/?com=02010002000F020027004603" Case 40 Bk = "/?com=02010002000F02002800DF03" End Select Set MyRequest = CreateObject("WinHttp.WinHttpRequest.5.1") MyRequest.Open "GET", str_Url & Bk MyRequest.SetCredentials str_User, str_Password, 0 MyRequest.send End Sub [Verb/b] Czy to jest konwersja na KM ? Na to wygląda |
|||
|
|
||||
|
janusz
|
Ja dokładnie tak działam wysyłam do sterownika ( "kody maszynowe") skrótowo KM
dla sterownika są jednoznaczne a zapis c.setDmuchawaMoc(mocDmuchawaPrzedmuch); jest zmieniany w bibliotece na KM i jeżeli wartość mocDmuchawaPrzedmuch nie będzie on liczbą to może KM będzie nieczytelny dla biblioteki ale takiej wiedzy nie posiadam |
|||
|
|
||||
|
janusz
|
Ok drukuje to widać po komendzie print
Tylko jak wysyłasz dane do sterownika ? Jest bynajmniej w VB typ zmiennej i tak przykładowo jeżeli zechcesz dodać 2 wartości 57 + 3 to wynik powinien być 60 a przedrostek str mi mówi że dodajesz zmienną typu string str(c.getTempCO()) i w takiej sytuacji otrzymasz wynik dla 57 +3 =573 gdy zadeklarujesz z przedrostkiem mówiącym że to zmienna typu wartość np Val wynik będzie 60 tylko jak w pythonie określać zmienne na obecną chwilę nie wiem i tu może być błąd bo sterownik otrzyma od kompilatora dane nie zgodne z oczekiwaniem bo widać ze zgłasza błąd dotyczący DATA a to są dane w bajtach wiec dla nas nie czytelne no chyba ze znamy strukturę i potrafimy dokonać konwersji |
|||
|
|
||||
|
janusz
|
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 |
|||
|
|
||||
|
janusz
|
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 |
|||
|
|
||||
|
janusz
|
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 |
|||
|
|
||||
|
janusz
|
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 |
|||
|
|
||||
|
janusz
|
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 |
|||
|
|
||||
|
janusz
|
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 |
|||
|
|
||||
|
janusz
|
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 |
|||
|
|
||||
|
janusz
|
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 |
|||
|
|
||||
|
janusz
|
glaca1900 napisał » 2014-04-06 14:58 re: energotop Czy wiesz ile godzin trzeba testować coś nowego, aby stwierdzić, że jest OK lub do de? . Zdajemy sobie z tego doskonale sprawę że testy powinny trwać do czasu uzyskania pewności że jest Ok a nie do de Na potwierdzenie zasadności prowadzenia sterownika wg. własnej koncepcji załączam własne wykresy generowane z mojego "oprogramowania" prezentujące prace kotła 1 Wykres z dnia 4-04-2014 sterownik prowadzony przez 24 h z "własnego oprogramowania" Temp zew spada poniżej do -1,3 spadki temp CWU a kociołek idzie jak po przysłowiowym sznurku linia trendu zużycia opału stała ![]() 2 Wykres z dnia 6-04-2014 Do godz 7:30 prowadzony wg mojego "oprogramowania" dalej pracuje samodzielnie ![]() Tak więc ja widzę zasadność w dalszych pracach a "ekszpertom" powiem wara od nas Janusz |
|||
|
|
||||
|
janusz
|
Verb nigdzie nie wysiadaj bo to by oznaczało porażkę
Jeden "złośliwiec" nie może mieć wpływu na to co robicie Jak pisałem nie zabierałem głosu w tej dyskusji bo nie moje środowisko programowania ale bardzo wam kibicuję i chętnie poczytam o dalszych waszych spostrzeżeniach To że macie inny język programowania mi nie przeszkadza chodzi o myśl w nim zawartą Potrafię odczytać wasz kod i przerobić na własne potrzeby a im więcej pomysłów tym lepiej dla rozwiązania Janusz |
|||
|
|
||||
|
janusz
|
![]() Nie zabierałem głosu bo nie piszę w Pythonie a wątek tego języka dotyczy Moja wiedza pozwala mi na wykonanie tego zadania ale w Visual Basic i taki programik do sterowania sobie wyskrobałem Biorąc pod uwagę wasze opinie że tryb ręczny jest niepewny postanowiłem "sterować" inaczej czyli wprowadzam korekty do pracy automatycznej Jak raz w nocy straciłem połączenie ze sterownikiem (reset kompa po aktualizacji ) to nie wielka strata do rana pracował na ustawieniach jakie ostatnio zostały zadane Jaki osiągnąłem efekt ? Wyprostowałem na wykresach linię temp Co prawie do ideału Na palniku zmian brak jak było ok tak jest Ale zużycie spadło i to wcale nie mało Więc może dobierzcie sie do korekty pracy automatycznej |
|||
|
|
||||
|
janusz
|
Pytanie do zawsze pomocnego kol Seba
Czy jest możliwe poznanie zasady konstruowania końcówki "?com" dla trybu grzanie dla zadanej wartości : Temp Co , czasu pracy podajnika , mocy dmuchawy oraz czasu postoju podajnika ? np ?com=02010002002802002F00D203" 'tmp co na 47 Janusz |
|||
|
|
||||
|
janusz
|
To może jako aktywny zaapelujesz do ES
żeby tak jak pliki arch i params pozostały na karcie to by było super rozwiązanie wszystko pod ręką |
|||
|
|
||||
|
janusz
|
Wpisując w przeglądarce http://ip_strownika/sync/sync.dat
pobierze ci ten plik lub http://ip_strownika/sync/sync.tmp wyświetli go na stronie tylko problem jest taki że po takim zapytaniu plik jest "ubijany" Można to bez niszczenia pliku zapytać programowo ja odczytuję za pomocą Visual Basic bo taką mam wiedzę Oczywiście połączenie przez stronę esterownik kończy się likwidacją plików |
|||
|
|
||||
|
janusz
|
No tak zgadza się
lecz takiej sytuacji nie przewidziałem że na moje żądanie tak zareaguje Więc jak nie będę go molestował to powinien pisać do jednego pliku ? |
|||
|
|
||||
|
janusz
|
Ok logiczne
Tylko jak mam połączenie z internetem nieaktywne ? to jak może pytać jak nie ma dostępu ? Włamał się hakerką pachnie
|
|||
|
|
||||
|
janusz
|
Mam jeszcze małe pytanie
W katalogu sync sterownik zapisuje dane do plików sync.tmp lub sync.dat dane z dnia 07-03 do godz 09:00 zapisywał do sync.dat a od godz 10:00 rozpoczął zapisywać do sync.tmp nie potrafię wyłapać reguły w tym sposobie zapisu może nie tak istotny problem ale warto by było wiedzieć Janusz |
|||
| Pierwsza stronaPoprzednia strona14 / 15Następna stronaOstatnia strona | ||||
!


