Od dnia 16.10.2024 zostały wyłączone stacjonarne numery telefonów. Zapraszamy do kontaktu pod numerem: 574 443 555.
Forum  eSterownik.pl  Biblioteka w Pythonie do obsługi sterownika Subskrybuj
Pierwsza stronaPoprzednia strona2 / 18Następna stronaOstatnia strona
2014-03-03 02:01
  adkwapniewski Posty: 219 Ostrzeżenie: 0
Tu https://drive.google.com/file/d/0B_qzH0FjDyZdaV91cnJOMWF6Mmc/edit?usp=sharing jest programik wykorzystujący zmodyfikowany skrypcik przez kol DarekB



Dodałem temp podłogi. Działa na Windzie do uruchomienia wymagany .NET4 (http://www.microsoft.com/pl-pl/download/details.aspx?id=17851)






Proszę o info (jak się komuś uda uruchomić) czy temp zew jest prawidłowa ? 
2014-03-03 08:28
  seba Posty: 355 Ostrzeżenie: 0 ELEKTRO-SYSTEM
VERB napisał » 2014-03-02 13:32
W trybie ręcznym termik nie działa ?
Ciut niebezpieczne - utrata połączenia w trakcie pracy daje niezłe fajerwerki...
Oczywiście, że termik działa a trybie ręcznym. Przecież jego działanie nie zależy od softu - jest to zabezpieczenie sprzętowe a nie programowe - dmuchawa jest odłączana elektrycznie.
Dzisiaj rano sprawdzałem i potwierdzam, że termik działa i  w trybie ręcznym i automatycznym.
2014-03-03 08:44
  konto usunięte Posty: 7174 Ostrzeżenie: 0
OK. Nigdy wcześniej się nad tym nie zastanawiałem, nie wiem jak i kiedy działa.

Może inaczej - co daje ustawienie w zaawansowanych Maksymalna temperatura CO [°C]: jak sterownik ma się zachować po przekroczeniu tej temperatury ?
2014-03-03 08:55
  seba Posty: 355 Ostrzeżenie: 0 ELEKTRO-SYSTEM
Ten parametr to w pewnym sensie pozostałość po wczesnych wersjach, w których był jeszcze był PIN do ustawień zaawansowanych. Służyło jedynie do ograniczenia zakresu ustawień temp. CO dla użytkownika. Dzisiaj również do tego służy, ale ze względu na brak ochrony przed dostępem do ustawień zaawansowanych straciło sens - użytkownik ma bezproblemowy dostęp do ustawień zaawansowanych.
Dodatkowo po przekroczeniu temp. MAX. załączana jest pompa CO.
2014-03-03 09:33
  konto usunięte Posty: 7174 Ostrzeżenie: 0
Czyli tak: termik to wyłącznik bimetalowy, który w razie przekroczenia krytycznej temperatury CO, wyłączy dmuchawę, ew. podajnik, albo i cały ster.

Jak zrobić, by po przekroczeniu Maksymalna temperatura CO [°C]: wyłączył się podajnik i dmuchawa ? Da się ?

U mnie temperatura 60st jest krytyczna.
Skrypt ma pilnować i to robi.. póki ma kontrolę nad sterem ;]
2014-03-03 10:17
  Stan Posty: 630 Ostrzeżenie: 0
seba napisał » 2014-03-03 07:28
VERB napisał » 2014-03-02 13:32
W trybie ręcznym termik nie działa ?
Ciut niebezpieczne - utrata połączenia w trakcie pracy daje niezłe fajerwerki...
Oczywiście, że termik działa a trybie ręcznym. Przecież jego działanie nie zależy od softu - jest to zabezpieczenie sprzętowe a nie programowe - dmuchawa jest odłączana elektrycznie.
Dzisiaj rano sprawdzałem i potwierdzam, że termik działa i  w trybie ręcznym i automatycznym.



U Verba jego próg zadziałania jest za wysoki.
Tak se myślę, że może w związku z tą biblioteką pythona dorobić w sofcie funkcję wykrywania utraty połączenia z kompem sterującym i przestawienie wówczas sterownika w domyślny tryb eCoal auto ?


Patrzyłem że na tym Raspbery Pi można to zrobić od drugiej strony, tzn wykrycie, nie bardzo się da przestawić ster, ale można zrobić wyłączenie np podajnika i dmuchawy.
Ale bardziej elegancko byłoby gdyby ta funkcja była w sterowniku.
2014-03-03 11:05
  seba Posty: 355 Ostrzeżenie: 0 ELEKTRO-SYSTEM
Dodamy zabezpieczenie przy utracie połączenia z biblioteką - zatrzymanie podajnika i dmuchawy...
2014-03-03 11:42
  konto usunięte Posty: 7174 Ostrzeżenie: 0
Może wklepać w ster w kolejnej testowej, i przy okazji dać możliwość zejść z parametrem Maksymalna temperatura CO [°C]: do poziomu 60st ?
Przekroczenie max zadanej temperatury - przejście w tryb ręczny z włączoną pompą CO + alarm.
2014-03-03 13:09
  Stan Posty: 630 Ostrzeżenie: 0
Posprzątałem temat, posty nie związane przeniesione do "Luźnych rozmów"
2014-03-03 13:26
  adkwapniewski Posty: 219 Ostrzeżenie: 0
Proszę o rozwianie wątpliwości dot zwracanej temp zew.:


Jeśli temp zewn jest dodatnia to poz22==0 i temp zew = (poz21-poz22)/10 -> (54-0)/10 
Jeśli temp zewn jest ujemna to poz22==255 i temp zew =  (poz21-poz22)/10  -> (217-255)/10


ujemna: 
[2,1,6,6,0,0,76,0,0,0,0,0,0,0,0,0,202,0,202,0,217,255,231,1,76,1,33,1,19,2,229,2,17,1,1,0,0,50,48,38,


dodatnia :
[2,1,6,6,0,0,76,0,0,0,0,0,0,0,0,0,202,0,202,0,54,0,231,1,9,1,23,1,22,2,19,3,5,1,1,0,0,50,48,38,0,0,2,2,1]


Tak ? Czy inaczej ?
2014-03-03 16:39
  ven Posty: 229 Ostrzeżenie: 0 ELEKTRO-SYSTEM
Te 2 liczby (bajty) to jest short int ze znakiem. (16 bitów) i dzielony przez 10.
W jakim języku programowania chcesz to sparsować ?

2014-03-03 19:33
  adkwapniewski Posty: 219 Ostrzeżenie: 0
Dzięki ven  Stała się jasność


Docelowo chcę zmajstrować całość w c# , teraz użyłem pytona w c# przez "IronPython.Hosting" i do momentu temp ujemnych było ok , przy ujemnych wychodziły bzdury. 


byte[] data; data[0] = (byte)ster.s_statusdata[20]; data[1]= (byte)ster.s_statusdata[21];


(float)BitConverter.ToInt16(data, 0)/10.0f i jest dobrze




Czy w którymś pliku archiwum zapisuję się praca podajnika ? [dataczas,czas pracy(sek)] ?
Co znajduje się w pliku fuel.dat


Z góry dzięki za info.
2014-03-03 19:56
  DarekB Posty: 11 Ostrzeżenie: 0

Faktycznie jest błąd najprostsze rozwiązanie to przed (przed funkcjami zwracającymi temperatury) wstawić




temp=lambda hi,lo: struct.unpack('h', chr(lo)+chr(hi))[0]/10.0


i przepisać definicje funkcji zwracajacych temperatury np:


  def getTempZew(self):
        if (bool(self.s_statusdata)):
            return temp(self.s_statusdata[21], self.s_statusdata[20])




Pozdrawiam
db
2014-03-03 22:35
  ven Posty: 229 Ostrzeżenie: 0 ELEKTRO-SYSTEM
w c# temp odczytuje się tak:

float temp = (BitConverter.ToInt16(Data, 22) / 10f);

//22 to index w tablicy Data

nie zauważyłem że wyżej też podałeś ten kod

zamiast tak:
byte[] data; data[0] = (byte)ster.s_statusdata[20]; data[1] = (byte)ster.s_statusdata[21];
(float)BitConverter.ToInt16(data, 0)/10.0f i jest dobrze


zrób tak:
(float)BitConverter.ToInt16(ster.s_statusdata, 20)/10.0f
2014-03-03 23:08
  adkwapniewski Posty: 219 Ostrzeżenie: 0
Wtedy wywala ex -"Najlepiej dopasowana metoda przeciążona metody „System.BitConverter.ToInt16(byte[], int)” zawiera niektóre nieprawidłowe argumenty." - dlatego zrobiłem na okrągło.


Problem pojawił się przez to :


     ->dynamic sterownik;
        dynamic ster;
        Boolean Zalogowany;


        public FGlowna()
        {
            InitializeComponent();
            var ipy = Python.CreateEngine();
         ->sterownik = ipy.ExecuteFile(@".\sterownik_serwer2.py");



gdyby było wszystko w c# - nie było by problemu



zdradzisz tajemnicę fuel.dat (struktura) ?


pozdrawiam
adkw
2014-03-03 23:21
  ven Posty: 229 Ostrzeżenie: 0 ELEKTRO-SYSTEM
Niestety pliku fuel.dat już nie wykorzystujemy. Więc do niczego się nie przyda.
Zużycie paliwa rejestrowane jest teraz w pliku sync.dat, ale jest on pobierany i kasowany przez serwer.

Nad źródłami w c# pomyślimy

2014-03-04 14:08
  DarekB Posty: 11 Ostrzeżenie: 0

Podmieniłem wersję biblioteki


https://drive.google.com/file/d/0B1rjRhAXEGUoN3hTV2xHWXFpaGs/edit?usp=sharing



zrobiłem kilka poprawek:
Można się łączyć ze sterownikiem w sieci lokalnej jak i poprzez esterownik.pl 
zależnie od tego czy poda się IP czy id sterownika, 
Uwzględniłem interpretację temperatur ujemne
Do łączenia używam wbudowane urllib2 więc nie potrzeba dociągać dodatkowych bibliotek.


Jeszcze pytania: 
Czy ktoś zaczął pisać jakiś sterownik do kotła, chętnie w miarę umiejętności i czasu dołączę się, może nie pomogę merytorycznie ale programistycznie chętnie?
Czy można gdzieś zdobyć algorytmy lub źródła programów do sterowania kotłami.


Pozdrawiam 
db
2014-03-04 14:24
  Stan Posty: 630 Ostrzeżenie: 0
Z pomocy programistycznej chętnie skorzystamy , jest dużo do obgadania, odezwij się na PW wymienimy telefony i pogadamy.
2014-03-05 21:14
  janusz Posty: 275 Ostrzeżenie: 0
ven napisał » 2014-03-03 22:21

Zużycie paliwa rejestrowane jest teraz w pliku sync.dat, ale jest on pobierany i kasowany przez serwer.



Jeżeli przechwycę  plik sync.tmp to jak go  odczytać 
przykład danych



2014-03-05 13:00:00;1;154;0;
2014-03-05 14:00:00;1;140;0;
2014-03-05 15:00:00;1;143;0;
2014-03-05 16:00:00;1;126;0;
2014-03-05 17:00:00;1;98;0;
2014-03-05 18:00:00;1;91;0;
2014-03-05 19:00:00;1;273;0;


Data wiadoma ale resztę jak czytać 


Janusz
2014-03-05 21:50
  seba Posty: 355 Ostrzeżenie: 0 ELEKTRO-SYSTEM
W pliku sync.dat rejestrowane jest zużycie paliwa. Możliwe opcje:

- Nowy zasyp
[data godz];0;[ilość paliwa w kg];[0-tryb zima, 1-tryb lato];

- Zużycie godzinowe
[data godz];1;[czas pracy podajnika w sek];[0-tryb zima, 1-tryb lato];

- Czas pracy podajnika przed wyłączeniem sterownika
[data godz];3;[czas pracy podajnika];[0-tryb zima, 1-tryb lato];
Pierwsza stronaPoprzednia strona2 / 18Następna stronaOstatnia strona
Użytkownicy online: Arturro, BBasiek32a, lewski, Tobi56, ZbynekBezdek