'Inteligenty' dom ze sterownikiem PLC

 Language:
Szukanie zaawansowane  

Aktualności:

Powrót do strony głównej: www.edom-plc.pl

Autor Wątek: oley- kolejny projekt  (Przeczytany 11793 razy)

oley

  • Newbie
  • *
  • Wiadomości: 10
    • Zobacz profil
oley- kolejny projekt
« dnia: Styczeń 29, 2013, 12:16:19 pm »

Zawsze marzyłem o inteligentnym domu. Pewnego dnia z małżonką postanowiliśmy, że się budujemy. Biorąc pod uwagę, że będzie to nowy budynek to dla czego nie inteligentny. Troszkę miałem obawy ale co tam raz się żyje czemu nie spróbować.
Wybór sterownika był prosty od razu postanowiłem, że będzie to WAGO prze de wszystkim cena do możliwości jest moim zdaniem najlepsza. Po drugie "kanapki" to super rozwiązanie jak padnie coś wymieniam kanapkę a nie cały sterownik. Możliwości rozbudowy są ogromne a do tego ETHERNET cóż można chcieć więcej ;)
 Może teraz troszkę o budynku:
Z założenia sterownik ma obsługiwać oświetlenie i ew. czujniki. Nie odważyłem się na podłączanie do sterownika gniazdek. Tak więc obwody gniazdek są tradycyjne.
Może powiedzenie "nie odważyłem się " jest zbyt mocne po prostu nie uważam aby było mi to potrzebne.
Do włączników oświetlenia ciągnąłem kabel 3x1,5 + UTP tak więc zawsze zostawiłem sobie możliwość podłączenia oświetlenia w sposób tradycyjny, z tą różnicą, że kable z włączników schodzą bezpośrednio do rozdzielni. W planach mam podłączenie 24V pod kabel 3x1,5 a utp będzie na czujniki, diody itp.
Włączniki rolet mają tylko kable UTP a zasilanie idzie z rozdzielni tak więc tu jedyna opcja sterowania to sterownik.
Każdy pokój ma gniazdo eternetowe schodzące oczywiście do rozdzielni.
W łazienkach dodatkowo poprowadzony kabel do czujek rozlanej wody (w razie pękniętej rurki sterownik odetnie wodę)
Nie przewidziałem kabla na wyświetlacz gdyż przy cenie tabletów z androidem uważam iż taki mobilny wyświetlacz będzie lepszy niż przemysłowy wyświetlacz do którego trzeba podejść.

z gratów jakie już mam to (będzie tego więcej na razie brak funduszy):
Sterownik - WAGO 750-841
Rozdzielnica - BP-O-800/12-C moeller-a + 3x BPZ-DINR35-800-T
Pozostałe elementy:
750-430 x8
750-402 x4
750-400 x3
-----------
750-530 x7
750-512 x3
Przekaźniki - 788-304
Zasilacze - 787-612, 787-602
Centrala alarmu - Satel Integra 64.

fotka rozdzielnicy na razie wygląda tak:
http://www.edom-plc.pl/images/stories/e-dom/L_SZ/6.jpg

na wiosnę dalsze prace.

 Na razie dłubie program, idzie wolno ale małymi kroczkami idę do celu.
Dla zainteresowanych niedługo umieszczę kawałki moich wypocin. Nie jestem programistą profesjonalnym, dopiero wszystkiego się uczę więc może moje moje kawałki programów pomogą początkującym(takim jak ja).
Oczywiście od razu pragnę podziękować Adminowi który jest bardzo pomocny w wielu problemach.
« Ostatnia zmiana: Styczeń 29, 2013, 12:22:34 pm wysłana przez oley »
Zapisane

oley

  • Newbie
  • *
  • Wiadomości: 10
    • Zobacz profil
Odp: oley- kolejny projekt
« Odpowiedź #1 dnia: Styczeń 30, 2013, 02:19:36 am »

Nie jestem jakimś wielkim programistą ale jakoś pomalutku rezam program. Jak obiecałem dzielę się moimi wypocinami może komuś się przydadzą.
Na początek prosta rzecz czyli zapalenie pojedynczego światła. Włączniki są zwierne czyli tzw. dzwonkowe. Nie ma tu filozofii wykorzystujemy gotowy bloczek z biblioteki „bulding”
Fb_LatchingRelay .

swiatlo_zew_drzwi(xSwitch:=w_swiatlo_zew_drzwi); s_zew_drzwi:=swiatlo_zew_drzwi.xActuator;

gdzie:
swiatlo_zew_drzwi –nazwa bloku
w_swiatlo_zew_drzwi- wejście kanapki np. %I0.0;
s_zew_drzwi- wyjście kanapki np. %Q0.0
swiatlo_zew_drzwi.xActuator- wyjscie z bloku

To może teraz troszkę trudniej.

W przedpokoju mam:
- Światło górne
- Światło dolne (obrysówki)
- Dioda w włączniku (sygnalizować będzie wyzwolenie z włacznika)
- czujnik ruchu (ciemna kulka na suficie)
- dwa włączniki.

Jak to ma działać:

Czujnik ruchu włącza światło górne. Pomiędzy godzina 23:00-5:00 czujnik ruchu zalącza jedynie obrysówki.
Włączniki spięte są równolegle i wchodzą na jedno wejście.
Włącznik rozróżnia kliknięcia.
Jedno kliknięcie załącza światło górne oraz diode LED (ponowne kliknięcie wylączy światło)
Dwa kliknięcia załącza światło dolne oraz LED
Kliknięcia są priorytetowe więc olewany jest w tym czasie czujnik ruchu.
Dodatkowo po kliknięciu załącza się licznik i po np.godzinie wyłączy się światło górne a po np. 3h światło dolne (to taka wersja dla zapominalskich nie musze wyłączać światła liczniki zrobią to za mnie ) Jak tylko światło wyłączy się od licznika czujnik ruchu przejmuje z powrotem kontrole.


(* ta czesc odpowiada za sprawdzenie czy ma blokowac swiatlo gorne 23-5*)
IF(godzina_rtc=godzina_poczatek ) THEN
blokuj_swiatlo:=TRUE;
END_IF
IF(godzina_rtc=godzina_koniec) THEN
blokuj_swiatlo:=FALSE;
END_IF
(*---------------------------------------------------------*)

przedpokoj_zwykle(xSwitch:=w_przedpokoj OR wylacz_przedpokoj);     (*rozroznia jedno lub 2 klikniecia daje impuls*)
przedpokoj_pojedyncze(xSwitch:= przedpokoj_zwykle.xSingle );   (*jezeli bylo jedno klikniecie podtrzymujemy to bloczkieb fb daje ciaglosc do nastepnego klikniecia*)
IF(przedpokoj_pojedyncze.xActuator=TRUE ) THEN           (*jezeli jest pojedynczy impuls to wystaw na diode w wlaczniku true*)
dioda_przedpokoj:=TRUE;

ELSE
dioda_przedpokoj:=FALSE;

END_IF
s_przedpokoj:=przedpokoj_pojedyncze.xActuator;   (* jezeli jest pojedynczy impuls zapal rownierz swiatlo na przedpokoju "ustraw true*)


przedpokoj_podwojne(xSwitch:= przedpokoj_zwykle.xDouble ); (* analogocznie podtrzymanie 2 klikniec*)
IF(przedpokoj_podwojne.xActuator=TRUE  ) THEN  (*jezeli jest podwojny impuls i nie sa juz zapalone diody to zapal diody*)
dioda_przedpokoj:=TRUE;

END_IF
IF(przedpokoj_podwojne.xActuator=FALSE AND  przedpokoj_pojedyncze.xActuator=FALSE ) THEN
dioda_przedpokoj:=FALSE;

END_IF
s_obrysowki_dol:=przedpokoj_podwojne.xActuator;  (*jezeli jest podwojny zapal obrysowki*)

(*   to jest odlicznie dla zwyklego swiatla *)
przedpokoj_TON(IN := przedpokoj_pojedyncze.xActuator , PT:= T#10s); (*przedpokoj_TON(IN := przedpokoj_zwykle.xActuator, PT:= T#35s);*)
wylacz_ton_przedpokoj(CLK:=przedpokoj_TON.Q);
IF(wylacz_ton_przedpokoj.Q=TRUE) THEN
wylacz_przedpokoj:=TRUE;
ELSE
wylacz_przedpokoj:=FALSE;
END_IF
(*  to jest licznik obrysowek*)
przedpokoj_TON2(IN := przedpokoj_podwojne.xActuator , PT:= T#10s); (*przedpokoj_TON(IN := przedpokoj_zwykle.xActuator, PT:= T#35s);*)


wylacz_ton_przedpokoj2(CLK:=przedpokoj_TON2.Q);
IF(wylacz_ton_przedpokoj2.Q=TRUE) THEN
przedpokoj_zwykle(xSwitch:=TRUE);
przedpokoj_zwykle(xSwitch:=FALSE);
przedpokoj_zwykle(xSwitch:=TRUE);

END_IF

IF(przedpokoj_pojedyncze.xActuator=FALSE AND przedpokoj_podwojne.xActuator=FALSE) THEN (*IF(przedpokoj_zwykle.xActuator=FALSE) THEN*)
   IF(blokuj_swiatlo=FALSE) THEN

   przedpokoj(CLK:=r_przedpokoj );
   przedpokoj_off_triger(CLK:=r_przedpokoj); (*gasi swiatlo*)
   przedpokoj_sema(CLAIM:=przedpokoj.Q,RELEASE:=przedpokoj_off_triger.Q);
   s_przedpokoj:=przedpokoj_sema.BUSY;

   END_IF


   IF(blokuj_swiatlo=TRUE) THEN
   przedpokoj(CLK:=r_przedpokoj );
   przedpokoj_off_triger(CLK:=r_przedpokoj); (*gasi swiatlo*)
   przedpokoj_sema(CLAIM:=przedpokoj.Q,RELEASE:=przedpokoj_off_triger.Q);
   s_obrysowki_dol:=przedpokoj_sema.BUSY;
   END_IF

END_IF

Pewnie wielu znajdzie masę błędów i niedociągnięć, ale na tym etapie na którym jestem ta cześć programu przetestowana i działa poprawnie. Może są w niej błędy merytoryczne ale to co zamierzałem uzyskać działa. Wszelkie sugestie mile widziane.
Zapisane

admin

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 303
    • Zobacz profil
Odp: oley- kolejny projekt
« Odpowiedź #2 dnia: Styczeń 30, 2013, 08:33:17 am »

 ;D

dodaj jeszcze pls część definicji, by było jasne, jakimi blokami funkcyjnymi są przedpokoj_zwykle, przedpokoj_pojedyncze itd...
Zapisane

oley

  • Newbie
  • *
  • Wiadomości: 10
    • Zobacz profil
Odp: oley- kolejny projekt
« Odpowiedź #3 dnia: Styczeń 30, 2013, 11:56:43 am »

Słuszna uwaga. Zupełnie zapomniałem o tym a bez tego nic nie wynika  :-[

               (* przedpokoj na dole *)

      wylacz_przedpokoj: BOOL; (*zmienna pomocnicza powoduje wylaczanie latching_relay (swiatlo zwykle z wlacznika) Zmienna jest true jako impuls od licznika TON *)
   wylacz_ton_przedpokoj: R_TRIG;  (* zbocze wyzwalane przez TON umozliwia zastosowanie warunku if jak ton zliczy robi z "tego.q" true *)
   wylacz_ton_przedpokoj2: R_TRIG;  (* zbocze wyzwalane przez TON umozliwia zastosowanie warunku if jak ton zliczy robi z "tego.q" true *)
   przedpokoj_TON:TON; (*licznik*)
   przedpokoj_TON2:TON; (*licznik dla obrysowek*)
   przedpokoj_pojedyncze:Fb_LatchingRelay;
   przedpokoj_podwojne:Fb_LatchingRelay;
   przedpokoj_zwykle:Fb_Click;
   przedpokoj:R_TRIG;
   przedpokoj_off_triger:F_TRIG;
   przedpokoj_sema:SEMA;
   obrysowki_przedpokoj:Fb_LatchingRelay;
   dioda_przedpokoj_pojedyncze: BOOL;
   dioda_przedpokoj_podwojne: BOOL;

   godzina_poczatek:STRING;
   godzina_koniec:STRING;
   blokuj_swiatlo:BOOL; (*miedzy okreslona godzina zablokuje swiatlo gorne*)

   (*    --------------------------------------------------- *)
Zapisane

admin

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 303
    • Zobacz profil
Odp: oley- kolejny projekt
« Odpowiedź #4 dnia: Styczeń 30, 2013, 07:00:21 pm »

Cześć,

proponowałbym, jak poniżej:

VAR
   przedpokoj_pojedyncze : Fb_LatchingRelay;
   przedpokoj_podwojne : Fb_LatchingRelay;
   przedpokoj_clicker : Fb_Click;

   przedpokoj_pojedyncze_TOF:TOF;
   przedpokoj_podwojne_TOF: TOF;

   przedpokoj_pojedyncze_TOFTRIG : F_TRIG;
   przedpokoj_podwojne_TOFTRIG : F_TRIG;

   przedpokoj_ignorujruch_timer : FbScheduleWeekly; (*Z biblioteki Scheduler_03.lib*)

   (*nigdy nie chciało mi się bawić w zmienne czasu, wyciąganie godzin z TOD itd*)
   (*porównywanie stringów też jest wg mnie karkołomne*)
   (*stąd też wszystkie zabawy z czasem oddaję w ręce bloków z biblioteki*)
   (*plus dodatkowo czasy ustawia się przez gotowe wizualizacje*)

END_VAR

VAR RETAIN PERSISTENT
   Data_Timer_1 : typScheduleWeekly; (*Z biblioteki Scheduler_03.lib*)
END_VAR

a w programie:

(*Na początek załatwmy temat przycisku*)
przedpokoj_clicker(xSwitch:=w_przedpokoj);

(*Teraz bloki funkcyjne odpowiadające za światła*)
przedpokoj_pojedyncze(
     xSwitch:= przedpokoj_clicker.xSingle,
     xCentON:= r_przedpokoj AND NOT przedpokoj_ignorujruch_timer.xSwitchChannel,
     xCentOFF:= przedpokoj_pojedyncze_TOFTRIG.Q
);
przedpokoj_podwojne(
     xSwitch:= przedpokoj_clicker.xDouble,
     xCentON:=r_przedpokoj,
     xCentOFF:= przedpokoj_powdwojne_TOFTRIG.Q
);
(*zakładam tu, że r_przedpokoj sygnalizuje impulsem początek ruchu w przedpokoju.  Jeśli jest inaczej należy podłączyć r_przedpokój przez R_TRIG... ale skoro to INTEGRA, to powinno być, tak jak napisałem*)

s_przedpokoj:=przedpokoj_pojedyncze.xActuator;
s_obrysowki_dol:=przedpokoj_podwojne.xActuator;
s_dioda:= przedpokoj_pojedyncze.xActuator OR przedpokoj_podwojne.xActuator;

(*teraz timery*)
przedpokoj_pojedyncze_TOF(IN := przedpokoj_pojedyncze.xActuator, PT:= T#10s);
przedpokoj_podwojne_TOF(IN := przedpokoj_podwojne.xActuator, PT:= T#10s);

przedpokoj_pojedyncze_TOFTRIG(CLK:= przedpokoj_pojedyncze_TOF.Q);
przedpokoj_podwojne_TOFTRIG(CLK:= przedpokoj_podwojne_TOF.Q);

(*i  scheduler*)
przedpokoj_ignorujruch_timer (xEnable:=TRUE, dtActualTime:=CURRENT_TIME, typScheduleWeekly:=Data_Timer_1);


To z pewnością nie będzie od razu działać i wymaga zdebugowania, ale przedstawia pewną ideę... no i żadnych IFów ;)

Opis i przykłady schedulerów na http://www.wagocatalog.com/okv3/Download_files/Scheduler_03_e.pdf plus też kilka słów o nich było na wątku na elektroda.pl.

Pozdrawiam,
Zapisane

oley

  • Newbie
  • *
  • Wiadomości: 10
    • Zobacz profil
Odp: oley- kolejny projekt
« Odpowiedź #5 dnia: Styczeń 31, 2013, 02:13:56 am »

dzięki Piotrze za wskazówki. Już myślałem, że napisałem konkretny program a tu masz :D przeróbka wszystkiego.
Zabieram się od razu za analizę Twojego kodu.
Zastanawia mnie jedynie dla czego jesteś takim przeciwnikiem funkcji IF ?? wydaje mi się, że jak by ta funkcja była niepoprawna z punktu widzenia sterownika nie wprowadzono by jej w kompilatorze. Mogę się mylić, ale napisz skąd twoja niechęć do if-ów. Czy masz pewność, że w gotowych bloczkach których używasz nie ma ich gdzieś w środku? Po ostatniej rozmowie z tobą na priv o tych funkcjach starałem się ich nie używać, ale jest to dla mnie tak odruchowe jak oddychanie i ciężko mi się z nimi pożegnać :D jedynie co to pilnuję (w miarę możliwości) aby nie używać tych funkcji bezpośrednio przy wyjściach np. IF warunek then %q0.0:=true;  Aczkolwiek nie do końca rozumiem dla czego nie powinno się tak robić.

Dzięki za twój kod zaraz zabieram się za rozgryzanie wszystkiego pewnie niedługo się pochwalę co i jak mi z nim wyszło.
Zapisane

admin

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 303
    • Zobacz profil
Odp: oley- kolejny projekt
« Odpowiedź #6 dnia: Styczeń 31, 2013, 09:25:07 am »

Cześć,

To nie jest jakoś akademicko i mądrze umotywowane nastawienie. W 90% przypadków, gdy mobilizowałem się do rezygnacji z IF i wykorzystania bloków funkcyjnych, kod wychodził krótszy i bardziej przejrzysty.  Sam więc dla siebie prowadzilem grę z nawykami z innych języków.

Mam wrażenie, że łatwiej jest patrzeć na program PLC jako na poskładane ze sobą klocki, z których każdy coś otrzymuje na wejsciu i zwraca coś na wyjściu, tworząc organizm, który robi to, co chcemy, niż na rozbudowany kod z odgałęzieniami, warunkami itd.

Na przykład:

IF(przedpokoj_pojedyncze.xActuator=TRUE ) THEN         
    dioda_przedpokoj:=TRUE;
END_IF

IF(przedpokoj_podwojne.xActuator=TRUE  ) THEN
    dioda_przedpokoj:=TRUE;
END_IF

IF(przedpokoj_podwojne.xActuator=FALSE AND  przedpokoj_pojedyncze.xActuator=FALSE ) THEN
    dioda_przedpokoj:=FALSE;
END_IF


daje się chyba sktecznie zastąpić:

dioda_przedpokoj:=przedpokoj_pojedyncze.xActuator OR przedpokoj_podwojne.xActuator

Pozdrawiam!
Zapisane

oley

  • Newbie
  • *
  • Wiadomości: 10
    • Zobacz profil
Odp: oley- kolejny projekt
« Odpowiedź #7 dnia: Styczeń 31, 2013, 03:43:13 pm »

To co piszesz brzmi bardzo rozsądnie i zgadzam się z tobą. Mój kod chodź działający jest mocno zamotany.
Ale uściślając nie korzystanie z IF-ów ma na celu ład i harmonię programu a nie jakieś techniczne (elektroniczne) wytłumaczenie np. wariowaniem przekaźników wyjściowych czy czymś takim ????
Zapisane

admin

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 303
    • Zobacz profil
Odp: oley- kolejny projekt
« Odpowiedź #8 dnia: Styczeń 31, 2013, 09:09:23 pm »

 :) zdecydowanie - ład i harmonia  ;)
Zapisane

oley

  • Newbie
  • *
  • Wiadomości: 10
    • Zobacz profil
Odp: oley- kolejny projekt
« Odpowiedź #9 dnia: Luty 06, 2013, 03:53:30 pm »

Więcej już nie udało mi się uprościć. Myślę, że i tak wygląda to o niebo lepiej niż poprzednio i w takiej formie narazie zostawiam. Może jak już zamieszkam w domku i będe miał czas długimi zimowymi wieczorami to coś jeszcze poprzerabiam.

Zacząłem myśleć nad roletami i jakoś nie bardzo mogę porozumieć się z gotowym bloczkiem z biblioteki bulding. Zauważyłem, że parametr zliczający pozycję nie zabezpiecza rolety przed wyłączeniem jej w skrajnych warunkach np. gdy jest max otwarta i dam otwieranie to i tak próbuje ją otworzyć mimo, iż ilość impulsów jest 0 (skrajnie otwarta)
Bawił się ktoś z tym bloczkiem ??

Zaczynam zastanawiać się nad napisaniem własnej procedury obsługi rolet i może to zabrzmi jak "wyważenie otwartych drzwi" uważam, że ja sam najlepiej wiem jak moja roleta ma działać. Nie wiem jeszcze jak robi się samodzielne bloczki ale na razie spróbuję napisać jakiś kawałek kodu działającego na roletach a potem się zobaczy.

Wrzucam jeszcze kod do obsługi mojego przedpokoju może komuś się przyda:


IF(godzina=godzina_wylacz ) THEN
blokuj_swiatlo:=TRUE;
END_IF
IF(godzina=godzina_wlacz) THEN
blokuj_swiatlo:=FALSE;
END_IF

przedpokoj_zwykle(xSwitch:=w_przedpokoj OR wylacz_ton_przedpokoj.Q);(* Fb_Click  daje impuls na wysciu rozpoznaje 1 lub 2 klikniecia*)
przedpokoj_pojedyncze(xSwitch:= przedpokoj_zwykle.xSingle  );         (* zwykly wlacznik podtrzymujacy ten do swiatla gornego*)
przedpokoj_podwojne(xSwitch:= przedpokoj_zwykle.xDouble OR wylacz_ton_przedpokoj2.Q ); (* jw ten do obrysowek*)

s_przedpokoj:=przedpokoj_pojedyncze.xActuator;  (*wyjscie na swiatlo gorne*)
s_obrysowki_dol:=przedpokoj_podwojne.xActuator; (*wyjscie na obrysowki*)
dioda_przedpokoj:=przedpokoj_pojedyncze.xActuator OR przedpokoj_podwojne.xActuator; (*wyjscie na diody wyzwalane 1 or dwoma klikami*)

               (*-------------------------------------LICZNIKI WYLACZAJACE SWIATLO_____________________*)
(*   to jest odlicznie dla zwyklego swiatla *)
przedpokoj_TON(IN := przedpokoj_pojedyncze.xActuator , PT:= T#10s);  (*licznik*)
wylacz_ton_przedpokoj(CLK:=przedpokoj_TON.Q);  (* zbocze zostaje wyzwolone przez licznik przedpokoj_TON.Q *)
(*  to jest licznik obrysowek*)
przedpokoj_TON2(IN := przedpokoj_podwojne.xActuator , PT:= T#10s);
wylacz_ton_przedpokoj2(CLK:=przedpokoj_TON2.Q);
                                (*-----------------------------------------------------------------------------------------------------------------------*)

IF(przedpokoj_pojedyncze.xActuator=FALSE AND przedpokoj_podwojne.xActuator=FALSE) THEN (*jezeli swiatlo gorne sie nie swieci*)
   IF(blokuj_swiatlo=FALSE) THEN                            (*jezeli nie jest godzina nocna*)

   przedpokoj(CLK:=r_przedpokoj );    (*czujnik ruchu wyzwala  zbocze*)
   przedpokoj_off_triger(CLK:=r_przedpokoj); (*zbocze gaszace swiatlo zbocze opadajace tutaj ustawienia czujki ruchu decyduja jak dlugo ma sie swiecic swiatlo*)
   przedpokoj_sema(CLAIM:=przedpokoj.Q,RELEASE:=przedpokoj_off_triger.Q);
   s_przedpokoj:=przedpokoj_sema.BUSY;

   END_IF

IF(przedpokoj_podwojne.xActuator=FALSE) THEN
   IF(blokuj_swiatlo=TRUE) THEN
   przedpokoj(CLK:=r_przedpokoj );  (*czujnik ruchu wyzwala  zbocze*)
   przedpokoj_off_triger(CLK:=r_przedpokoj); (*zbocze gaszace swiatlo zbocze opadajace tutaj ustawienia czujki ruchu decyduja jak dlugo ma sie swiecic swiatlo*)
   przedpokoj_sema(CLAIM:=przedpokoj.Q,RELEASE:=przedpokoj_off_triger.Q);
   s_obrysowki_dol:=przedpokoj_sema.BUSY;
   END_IF
END_IF
END_IF

Zapisane

jatan

  • Newbie
  • *
  • Wiadomości: 1
    • Zobacz profil
Odp: oley- kolejny projekt
« Odpowiedź #10 dnia: Wrzesień 01, 2014, 11:19:45 pm »

Witam Cie kolego Oley mam takie pytanko do Ciebie jak ci sie sprawuje ten sterownik czy juz go zamontowales ? mam zamiar tez taki kupic ale w programowaniu jestem zielony. Jak wyglada programowanie w tym sterowniku da sie jakos spoko zaprogramowac ? Pozdr
Zapisane