Forum  eSterownik.pl  Biblioteka w Pythonie do obsługi sterownika Subskrybuj
First pagePrevious page2 / 18Next pageLast page
2014-03-03 02:01
  adkwapniewski Posts: 304 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 Posts: 1352 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 Posts: 10188 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 Posts: 1352 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 Posts: 10188 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 Posts: 2564 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 Posts: 1352 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 Posts: 10188 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 Posts: 2564 Ostrzeżenie: 0
Posprzątałem temat, posty nie związane przeniesione do "Luźnych rozmów"
2014-03-03 13:26
  adkwapniewski Posts: 304 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 Posts: 607 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 Posts: 304 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 Posts: 16 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 Posts: 607 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 Posts: 304 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 Posts: 607 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 Posts: 16 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 Posts: 2564 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 Posts: 538 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 Posts: 1352 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];
First pagePrevious page2 / 18Next pageLast page
Users on-line:

Recently added

Piotr Sypień - dom

See more

Wyszukiwarka

Wpisz moc kotła do wyszukiwarki - zobaczysz wszystkie kotł...

See more

Bruli.pl

Chcesz dowiedzieć si więcej o sterowniku bruli.pl ?...

See more

eCoal.pl

Chcesz dowiedzieć się więcej o sterowniku eCoal.pl ?...

See more