Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Automatyka domowa ("inteligenty dom"), PLC

e.dom 07 Sep 2009 15:37 144743 141
Optex
  • #61
    e.dom
    Level 10  
    llleszek - w skrętce, czyli w kablach prowadzących do łączników jest 24VDC. Do gniazdek i oświetlenia są przewody YDY 3x2,5 i 3x1,5.
  • Optex
  • #62
    Urgon
    Editor
    AVE...

    Skrętka służy do sterowania przekaźnikami w puszkach. I do przesyłania sygnałów do sterownika, z tego co zrozumiałem. Może przez nią nawet 50V iść, bo to podobny typ kabla, co w instalacji telefonicznej...
  • Optex
  • #63
    jam_es
    Level 24  
    Do e.dom

    W jaki sposób jest zrealizowana komunikacja ze sterownikiem oraz wykonana wizualizacja na PC?

    Pozdrawiam
  • #64
    NEWUSER7
    Level 2  
    Witam,

    Mam pytanie do autora, interesuje mnie w jaki sposób zrealizowana jest wizualizacja menu, czy na przykład wybierając odpowiednią pozycję dajmy na to "wykresy" ustawiamy pozostałe na niewidoczne w opcji configure > variables > invisible ??? Czy jest to zrealizowane w bloku funkcyjnym czy za pomocą zmiennych w PLC_VISU ??? Interesuje mnie konkretnie budowa samego menu i zmiany wyświetlanych informacji na skutek wyboru odpowiedniej opcji w menu.

    Poza tym, jak skonfigurować i dodać do wizualizacji funkcję czasową FbScheduleWeekly którą autor zastosował ???

    Proszę o odpowiedź.
  • #65
    dariuszsq2
    Level 11  
    Witam

    Pomysł super. Jednak mam parę uwag co do wykonania szafy. Dużo lepiej było by całośc zamontować ca płycie montażowej pełnej, a do rozprowadzenia przewodów wewnątrz szafy wykoszystać korytka grzebieniowe. Prowadzenie skrętki do każdego wyłącznika (zestawu wyłączników) - jak najbardziej słuszne, zapewnia to ogromną elastyczność systemu (podobnie z resztą jak sprowadzenie wszystkiego w jeden punkt domu).

    Co do awaryjności PLC - jak będzie bezpośrednie wyładowanie atmosferyczne to PLC będzie najmniejszym problemem.

    Pozdrawiam
  • #67
    Mustela73
    Level 12  
    czytajac watek mam wrazenie ze wilu piszacych albo nie zadalo sobie trudu przeczytania tego co autor napisal albo ma problemy z czytaniem ze zrozumieniem.

    Podziwiam tworce. Ja po wstepnym bilansie kosztow wycofalem sie z centralnego systemu sterowania. Mam standardowe okablowanie 230V, z tym ze do kazdego pokoju do gniazdek i swiatla sa osobne nitki ciagniete. Wlaczniki i gniazdka montowane w glebokich puszkach. Osobne nitki do urzadzen na stale podlaczonych jak lodowka, zamrazarka, akwaria, czy serwer (interne, telefon, TV). W szafce tak podlaczone ze jak wyjezdzam to wylaczam jednym pstrykiem wszystkie niepotrzebne obwody i prad jest oszczedzany. Sterowanie Pompy ciepla steruje kazda strefe osobno (termoregulatory w kazdym pokoju). Pozatym w kazdym pokoju, w kuchnia, spizarnia, strych, kotlowania i garderoba tez, po dwa gniazda Sieciowe i dwa kable HF. Jak narazie niczego nam nie brakuje. Do zapalenie i gaszenia swiatla mozna wstac z kanapy. Do oswietlenie tzw nastrojowego (male lampi oswietlajace wybrane pkt mieszkania), zamontowalem wlaczniki ir tak ze mozna pilotem uniwersalnym wlaczac i wylaczac.

    Jak wezme sie za rozwoj to pewnie skorzystam z systemow bezprzewodowych albo z powerline, kiedys interesujacy artykul czytalem na temat DigitalStrom ze Szwajcarii, ale jeszcze bylo w fazie testow.

    Co do niezawodnosci PLC to trzeba im przyznac ze pracuja po 15 lat 24x7 nawet w mocno zanieczyszczonym EMV srodowisku i nie zwieszaja sie jak PC-ty. Wymagania na zasilanie i izolacje wejsc/wyjsc sa takie ze jak nic nie walnie w procesor to system jest (prawie) niezniszczalny. A nawet jak za 10 -15 lat walnie to producent napewno bedzie mial nowszy Model - Form, Fit and Function. Zwlaszcze jesli to markowy producent a nie jakis Klon.

    Pozdrawiam.

    Dodano po 11 [minuty]:

    llleszek wrote:
    e.dom - przeraziło mnie to zdjęcie ;) - https://obrazki.elektroda.pl/96_1252220597.jpg

    Nie boisz się troche, że przez te wszystkie kable i prąd w nich płynący idea oszczędzania energii trochę bierze, w przysłowiowy, łeb ?


    Poczytaj ze zrozumieniem i stanie sie jasne. Tip; do wlacznikow idzie 24V.
    A to normalne podlaczenie wlacznika podwojnego. Nie wiem co przerazilo cie w nim.
    Nie rozumiem tez 2. pytania. Jak wlacznik jest zalaczonyto prad plynie, pewnie z 5mA przez 1s do PLC, a ten wlacza (albo i nie jesli program mowi ze miedzy 1 a 5 urzyszkodnik spi, albo jesli czujnik slonca powie ze jest jasno i mozna odslonic zaluzje, albo wymusic wlaczenie przytrzymujac wlacznik przez 3s. ) przekaznik. wieksze zuzycie to tyle co na podtrzymanie przekaznika, a oszczednosci patrz to co w nawiasach. Ktos kto ma dziecî wie jak czesto zdarza sie ze "zapomna" zgasic wieczorem a potem pali sie u nich do poludnia....

    Pozdrawiam.
  • #68
    kisi
    Level 12  
    Podziwiam autora. Za projekt i opracowanie. Doświadczalnie do wszystkiego sam dochodzi - jak sam pisze zrobił i opracował to sam na swój poziom wiedzy. Pewnie teraz zrobiłby to inaczej ale tak mówi każdy kto dom buduje sam :)
    Pomijając pioruny obawiam się jedynie o zakłócenia w wiązce przewodów - bo jak zrozumiałem to przewody sygnałowe (ethernet) i napięciowe (zasilanie gniazdek i żarówek) jest w jednej wiązce...

    Mam 2 uwagi - które przy robieniu takiego systemu wykorzystałbym u siebie:
    1. w razie ew. braku napięcia przynajmniej w kluczowych miejscach domu (np. schody) oświetlenie LEDowe zasilane z backupowego akumulatora (to w kontekscie nocy i zasłoniętych rolet)
    2. Skoro zrobiłeś już sterowanie oświetleniem centralnie to chyba dorobiłbym już taki bajer jak czujnik ruchu (mały zamontowany przy włącznikach np. obok elementu mierzącego temperature) który oświecałby światło automatycznie po wejściu do pomieszczenia. Niekoniecznie do wszystkich pokoi (np. garaż) i niekoniecznie przez całą dobę (np. wieczorem).
  • #69
    Urgon
    Editor
    AVE...

    Rozwiązanie z czujnikami ruchu ma wadę. Mianowicie ludzie czasem przez sen się w wyrku kręcą, albo siedzą przy kompie/telewizji/radiu(serio, czasem się tacy trafiają), przy każdym ruchu by im światło się zapalało bez potrzeby...
    Lepiej by użyć barier IR w drzwiach czy na korytarzach...
    Ale pomysł z oświetleniem awaryjnym jest moim zdaniem dobry. Mogło by ono pełnić też funkcję oświetlenia nocnego. W mojej starej szkole, gdzie był internat, właśnie takie lampy były przy podłodze na korytarzach i schodach...
  • #70
    kisi
    Level 12  
    Co do czujników ruchu to oczywiście jak zaznaczyłem że nie wszędzie, a jeśli nawet to montowane przy włączniku światła (który jest przy wejsciu) wychwytywałyby ruch w momencie wchodzenia do pomieszczenia. Sądzę że najlepszymi miejscami byłyby pomieszczenia typu: garaż, pomieszczenie gospodarcze, spiżarka, czy i jaki pokój to już wyszłoby w praniu (życiu) zależnie od stylu życia i układu pomieszczeń.
  • #71
    e.dom
    Level 10  
    Witam

    Lukasz 3232 – Co do komunikacji z systemem alarmowym – Jestem do tego przygotowany – w ścianach są kable do przyszłych czujek, które zbiegają się w mało wyeksponowanym miejscu domu, skąd z kolei poprowadzone są 2 skrętki do szafy ze sterownikiem. Myślę, że w przyszłości uda mi się zainstalować alarm i skomunikować go z PLC. Wierzę, że to super pomysł.

    Eros81 – o ile moja instalacja jest droższa od tradycyjnej – ciężko mi powiedzieć, bo… nie mam tradycyjnej instalacji. Za dodatkowy koszt na pewno można uznać większą szafę (2 000 PLN), sterownik (1 700) PLN, moduły wejść i wyjść (180 PLN/szt), przekaźniki (20-30 PLN/szt.), zasilacz (250 PLN), dodatkowe kable (1 000-2 000 PLN). Elektryk za wykonanie policzył standardowo od punktu. Reszta kosztów to przewody do rozszycia szafy (100 PLN?) i gadżety, jak np. czujniki temperatury (7-200 PLN), liczniki zużycia energii (160 PLN) i duuuuuużo czasu.

    Pittt – dokumentacja systemu – na każdym z rysunków ‘wykonawczych’, na których naniesione były wszystkie punkty-końcówki kabli elektryk naniósł ich numery, co pozwoliło zorientować się w grubej wiązce przewodów, która schodziła do piwnicy.
    Mam ponadto zestawienie w Excelu wszystkich WEJŚĆ z nagłówkami: Nr Wejścia (w PLC); Kolor przewodu; Nr kabla (z rysunku wykonawczego); Nr kabla (na patch panelu); Opis (gdzie w domu prowadzi kabel) oraz WYJŚĆ z nagłówkami: Nr wyjścia (na PLC, równocześnie nr przekaźnika), Nr kabla (z rysunku wykonawczego), Nr zabezpieczenia (w postaci X.Y, gdzie X to nr różnicówki, Y ‘esa’), Opis (co zasila dany przewód). To w zasadzie wszystko.

    Epoxer, kangyooni – system oparty o rozproszone sterowniki – Dla mnie rozwiązanie, przy którym trzeba coś lutować, jest dużo ponad możliwości. Opiszcie Wasze systemy, choćby w małych elementach. Dla mnie już za późno, ale szukającym pewnie przyda się, jako kolejne rozwiązanie do rozważenia

    jam_es – komunikacja ze sterownikiem – Sterownik ma wbudowany interfejs Ethernet, jest więc widoczny w mojej sieci domowej pod numerem 192.168.1.3. CoDeSys komunikuje się po sieci. Wizualizacja albo przez CoDeSys, albo przez zwykłą przeglądarkę www. Panel dotykowy to odległa przyszłość, czeka mnie jeszcze sporo szukania i pytania.

    NEWUSER7 – Jak jest rozwiązane menu w wizualizacji-

    Stworzyłem wizualizację, która nazywa się VIS_MENU, w której jest 7 przycisków.
    Automatyka domowa ("inteligenty dom"), PLC
    Każdy z przycisków we właściwościach w kategorii Input ma zakreślone pole ‘Zoom to vis’ i podaną nazwę wizualizacji, która ma się wyświetlić ( przykładzie „VIS_SALON”):
    Automatyka domowa ("inteligenty dom"), PLC
    W wizualizacji VIS_SALON umieściłem obiekt Visualization, w którego parametrach podałem nazwę zagnieżdżanej wizualizacji „VIS_MENU”:
    Automatyka domowa ("inteligenty dom"), PLC
    To w zasadzie wszystko - menu działa.

    Jeśli chodzi o dodanie funkcji FbScheduleWeekly, dodaje się ją jak każdą inna wizualizację (obiekt Visualization) i nazwę wyszukuje w bibliotece Scheduler_2 (najlepiej za pomocą klawisza F2):
    Automatyka domowa ("inteligenty dom"), PLC

    Jeśli chodzi o konfigurację – polecam Application Notes na stronie WAGO – są tam przykłady – zrobiłem w dużej części copy-paste.


    Kisi – oświetlenie awaryjne newralgicznych miejsc – Super pomysł. Będę pewnie teraz myślał przez 3 dni, jak to zrobić. Generalnie jest, jak mówisz – gdy gasi się światło brakuje lekkiego oświetlenia np. schodów. Do zaimplementowania w kolejnym domu ;)

    - co do czujników ruchu – prosiłbym o pomoc. Nie znalazłem niczego estetycznego, co byłoby zasilane na 24V. Chciałem umieścić czujniki obok łączników ściennych, mam awaryjne, nieodkute spod tynku puszki. Wszystkie czujki, które znalazłem (np. Berkera, czy Hagera), są na 220V.

    Pozdrawiam czytających
  • #72
    gonzol111
    Level 12  
    Co do czujników ruchu to podejrzewam że, nawet w tych na 230V elektronika jest zasilana z niższego napięcia.
    Natomiast co do delikatnego podświetlania schodów proponuję rozważyć zastosowanie diód LED (niskie napięcie zasilające, mały pobór prądu i stosunkowo małe rozmiary).
  • #73
    Urgon
    Editor
    AVE...

    Diody LED 1W białe by załatwiły sprawę. Musiałbyś do nich zrobić odpowiedni obwód zasilający jedynie, by nie przeciążyć i nie spalić. Ale za to efekt byłby świetny...
  • #74
    snnaap
    Level 25  
    Witam, na pierwszej stronie piszesz:
    Quote:

    "Od początku projektowania chciałem, by system sterował ogrzewaniem osobno w każdym z pomieszczeń. W rozdzielni wody z pieca, z której rozchodzą się rurki zasilające każdy z kaloryferów, zamontowane zostały siłowniki działające na 24 VDC. Dodanie siłowników zwiększyło koszt rozdzielni o 500 złotych. Gdy odjąłem od tej kwoty koszt zaworów, które zazwyczaj umieszcza się na grzejnikach, różnica nie przerażała."

    możesz napisać coś więcej, co to za siłowniki (symbol, średnica, gdzie są dostępne itp)?
  • #75
    e88cc
    Level 12  
    Kiedyś miałem okazję zbudować rozdzielnicę kilka razy większą i muszę przyznać,ze roboty to z tym było co nie miara. Na twoim miejscu, w momencie gdy wykonałeś tyle roboty, wyeksponował bym lepiej ją na przykład dał szafę przeszkloną wolno stojącą. Do postu dołączam kilka zdjęć z szafy którą swego czasu wykonałem....może ze zdjęć pomysł ci jakiś przyjdzie do głowy i zastosujesz go u siebie.
    Automatyka domowa ("inteligenty dom"), PLC Automatyka domowa ("inteligenty dom"), PLC Automatyka domowa ("inteligenty dom"), PLC Automatyka domowa ("inteligenty dom"), PLC
  • #76
    NEWUSER7
    Level 2  
    Witam,

    Dodałem bibliotekę Scheduler_02.lib i przy próbie kompilacji wyskakuje mi następujący błąd: "Error 3740: (31) Unknown type "FILETIME"". Wiem, że nie mam jeszcze czegoś w moim programie, tylko czego? Jak tylko usunę tą bibliotekę, to program kompiluje się i działa prawidłowo. Co mogę mieć nie tak, czy ktoś już się z tym spotkał?
  • #77
    e.dom
    Level 10  
    sam kiedyś zadałem to pytanie WAGO. Oto odpowiedź:

    "Biblioteka Scheduler_02.lib korzysta dodatkowo z biblioteki SysLibFile.lib. Proszę ją również dołączyć do projektu, znajduje się ona w katalogu "32_bit" "
  • #78
    NEWUSER7
    Level 2  
    Witam,

    Dziękuję za odpowiedzi i cierpliwość użytkownikowi e.dom. Przepraszam za kolejne pytanie i ciągłe problemy, ale tym razem mam coś takiego...
    Automatyka domowa ("inteligenty dom"), PLC
    Dodam że niestety nie uczestniczyłem w żadnego typu szkoleniu i do wszystkiego staram się dojść sam, poza paroma troszkę bardziej złożonym kwestiami.

    Mam nadzieję, że i tym razem dowiem się czegoś nowego.
  • #79
    e.dom
    Level 10  
    Witam,

    Nie jestem w stanie odpowiedzieć o przyczynach, widząc same błędy, z których każdy jest inny. Poniżej jest opis, jak oprogramowałem kilka bloków z biblioteki Scheduler. Mam nadzieję, że to pomoże.

    W części definicji zmiennych:

    Code:
    VAR
    

        Enable    : BOOL:= TRUE; (* steruje dostępnością schedulera*)
        WeeklySchedule_1 : FbScheduleWeekly; (*blok funkcyjny tygodniowy *)
        PresenceSimulator : FbScheduleSpecialPeriod; (*blok funkcyjny okresowy*)

    END_VAR


    Poza blokami potrzebne jeszcze przechowywanie danych: wybranych dni/okresów:

    Code:
    VAR RETAIN PERSISTENT (*wartości przechowywane w tej części nie są gubione przy wgrywaniu programu i awarii zasilania*)
    

       Data_WeeklySchedule_1   : typScheduleWeekly; (*dane/parametry bloku tygodniowego*)
       Data_PresenceSimulator    : typScheduleSpecialPeriod; (*dane/parametry bloku okresowego*)

    END_VAR


    W części programu:

    Code:
    WeeklySchedule_1(xEnable:=Enable, dtActualTime:=CURRENT_TIME, typScheduleWeekly:=Data_WeeklySchedule_1);
    

    PresenceSimulator(xEnable:=Enable, dtActualTime:=CURRENT_TIME ,typScheduleSpecialPeriod:=Data_PresenceSimulator);


    Pod xEnable podłączona zmienna mówiąca o dostępności (domyślnie TRUE), pod dtActualTime zmienna globalna CURRENT_TIME aktualizowana co 1sec w odrębnym procesie, pod typSceduleWeekly zmienna przechowująca dane Data_WeeklySchedule_1

    W wizualizacji dodałem obiekt ‘Visualization’, wybrałem FbScheduleWeekly, we właściwościach, po naciśnięciu przycisku ‘Placeholder…’, w polu Replacement, wstawiłem (z pomocą F2) zmienną przechowującą dane ( w moim wypadku Timers.Data_WeeklySchedule_1).

    Automatyka domowa ("inteligenty dom"), PLC

    U mnie działa

    U siebie dodałem jeszcze bloki funkcyjne

    WSchedule1_OnTrig :R_TRIG;
    WSchedule1_OffTrig:F_TRIG;

    które sygnalizują wejście i wyjście bloku WeeklySchedule_1 w stan aktywności:

    WSchedule1_OnTrig(CLK:= WeeklySchedule_1.xSwitchChannel);
    WSchedule1_OffTrig(CLK:= WeeklySchedule_1.xSwitchChannel);

    Jeśli potrzebuję stan bloku funkcyjnego, sięgam do Weekly_Schedule_1.xSwitchChannel;

    Jeśli potrzebuję impuls na przejściu ze nieaktywnego na aktywny, sięgam po WSchedule1_OnTrig.Q;

    Mam nadzieję, że pomogłem.
  • #80
    gugus89
    Level 14  
    Takie pytanie do autora projektu, bo chyba przeoczyłem, mianowicie co zabezpiecza przekaźniki w razie zwarcia na gniazdku przez np uszkodzone urządzenie? czy masz jakieś bezpieczniki aut. na każdym z Wy przekaźników czy jest to inaczej rozwiązane poprzez wyłączenie danej linii zasilającej dane gniazdko poprzez PLC?
    pozdrawiam
  • #81
    prz
    Level 20  
    Zastosowanie sterownika PLC i przekaźników nie zwalnia użytkownika ze stosowania zabezpieczeń nadmiarowoprądowych/różnicówek. To zabezpiecza instalację i użytkowników. Żeby PLC "wiedziało" jaki płynie prąd można zastosować przekładniki prądowe i podpiąć je do wejść analogowych. Jak zaznaczył autor niestety takie karty kosztują...
  • #82
    NEWUSER7
    Level 2  
    Witam,

    Dziękuję użytkownikowi e.dom za wyczerpujące odpowiedzi, lecz niestety mam kolejne pytania. Uruchomiłem powyższą procedurę bez dodania procesu aktualizującego zmienną globalną CURRENT_TIME pod dtActualTime i mam czas ustawiony na 1970-01-01-00:00. I tu pytanie jak to zrobić, jak taki proces aktualizacji powinien wyglądać? Czy można dodatkowo wyświetlać ten czas w wizualizacji, gdyż taka opcja byłaby bardzo przydatna?

    Kolejne pytanie dotyczy bloków funkcyjnych opisanych powyżej, mianowicie:
    Code:
    WSchedule1_OnTrig:R_TRIG;
    
    WSchedule1_OffTrig:F_TRIG;

    za co konkretnie odpowiadają i czemu służą?

    Może to śmieszne, ale zapytam jeszcze o:
    Code:
    WSchedule1_OnTrig(CLK:=WeeklySchedule_1.xSwitchChannel);
    
    WSchedule1_OnTrig(CLK:=WeeklySchedule_1.xSwitchChannel);

    czy można podać te stany np na wejście kontrolki wskazującej zadziałanie i co poszczególne składniki tego polecenia oznaczają?

    Ostatnie pytanie dotyczy zmiany parametru wyjściowego, tzn bloku funkcyjnego. Jesli dobrze zrozumiałem należy Weekly_Schedule_1.xSwitchChannel podać np na wyjście cyfrowe sterownika i już możemy sterować jego stanem w zależności od nastaw czasowych funkcji?

    Mam jeszcze pytanie czy autor uczestniczył w szkoleniach organizowanych przez WAGO, czy takie szklenie daje ogólny pogląd na możliwości sterownika, kompilatora i ogólne aspekty programowania? Czy może znajomość sterowników i zasad programowania nie jest autorowi obca ze względu na wykonywaną pracę?

    Dziękuję i proszę o odpowiedź.
  • #83
    e.dom
    Level 10  
    Witam,

    Jestem mocno skrępowany tymi pytaniami o programowanie PLC. Żaden ze mnie ekspert, wszystko, co wiem, wydłubałem w sieci i jestem pewny, że popełniam po drodze mnóstwo błędów w sztuce. Może ktoś z zawodowców zabierze głos?

    Jeśli chodzi o proces aktualizujący czas – dodałem osobne zadanie, gdyż gdzieś wyczytałem, że sięganie do wbudowanego w sterownik zegara czasu rzeczywistego nie powinno odbywać się w procesie głównym.

    W zakładce Resources w Task Configuration dodałem zadanie (Insert Task), które nazwałem Update_Clock. Zadanie wykonywane jest co 1 s. Do zadania dodałem instrukcję „Program Call” i wskazałem program „ReadClock()”

    Automatyka domowa ("inteligenty dom"), PLC

    W globalnych zmiennych utworzyłem zmienną CURRENT_TIME typu DATE_AND_TIME:

    Automatyka domowa ("inteligenty dom"), PLC

    i stworzyłem program o nazwie ReadClock, który wykonuje tylko 1 instrukcję:

    CURRENT_TIME:= SysRtcGetTime(TRUE);

    W zmiennej CURRENT_TIME co sekundę odświeżany jest zapis zegara czasu rzeczywistego.

    Co do wyświetlania czasu w wizualizacji - wystarczy dodać do wizualizacji jakikolwiek kształt (np. Rectangle), wpisać tekst %s (lub inny pozwalający na formatowanie wg opisu zawartego w pomocy), we właściwościach pod Variables, Textdisplay podać nazwę zmiennej do wyświetlenia.

    Automatyka domowa ("inteligenty dom"), PLC

    Jeśli chodzi o blok R_TRIG i F_TRIG, polecam helpa do CoDeSysa, w programie lub online:
    http://www.codesys.pl/code,5,25,25,79,1.html
    http://www.codesys.pl/code,5,25,25,69,1.html

    Co do pozostałych pytań – nie jestem pewien, czego konkretnie dotyczą. Proponuję metodę prób i błędów.

    Ze szkoleń nie korzystałem i nie wiem, co na nich jest. Większość problemów rozwiązałem przeszukując dyskusje internetowe i próbując do skutku…

    Pozdrawiam,
  • #84
    dj_max84
    Level 13  
    witam!
    projekt bardzo ciekawy. sam sie do czegos takiego przymierzam.

    co sadzicie o uzyciu kabla 5x2.5mm do gniazdek i np 5x1.5mm do swiatel? moznaby wtedy dac 1 kabel do gniazdek i 1 do swiatel na dane pomieszczenie i sterowac 3 gniazdkami/swiatlami niezaleznie wiec zmniejszylaby sie troche platanina kabli.

    e.dom możesz napisać coś więcej, co to za siłowniki w instalacji CO (symbol, średnica, gdzie są dostępne itp)?
  • #85
    prz
    Level 20  
    Użycie takich kabli ba pewno zredukuje ich ilość, ale utrudni łączenie w puszkach/gniazdkach...
  • #87
    epoxer
    Level 13  
    dj_max84, nie lepiej zrobić normalnie :) instalację... :) z ładnym podpisem elektryka, a później użyć jakże znanych modułów RX433n i TX433n ? mają zasięg do 500m w otwartym terenie, myślę, że mając rozdzielnię ze sterownikiem w korytarzu i odbiorniki w puszkach w sąsiednich pokojach nie będzie problemu z przesyłem informacji... kwestią jedynie zostanie zasilenie takiej elektroniki np. w taki sam sposób jak podłączają do sieci 230V diody ;D, a co do układów wykonawczych (tu akurat wersja smd jakiegoś AVR atmega32, czy nawet 2313 by wystarczył) do sterowania 1,2, 4 mikro przekaźnikami 230V/5A :) (jedno gniazdko). Owszem ktoś powie: koszta procesora, modułu radiowego...
    ale czy nie podobne koszta są wydawane podczas kupowania takiej ilości kabli ?

    Pozdrawiam, a autorowi gratuluję wytrwałości... :)
  • #88
    kwiatek6324
    Level 11  
    e.dom ooo staryyyy..... respect.

    Ja bym sie nie podjal w ten sposob. Sam zamierzam budowe za ok 1 rok i juz tez siedze i kombinuje za co zona mnie juz chce egzorcyzmami leczyc.

    Ja plan poczatkowy mialem podobny jak twoj, jednak po przemysleniach zdecydowalem sie
    na model czesciowo rozproszony:

    1. Magistrala czujnikow CAN - bedzie sluzyc do komunikacji z czujkami, wylacznikami, czujnikami temp, ruchu... Ogolnie wszystkim co ma dawac informacje do komputera sterujacego.

    2. Magistrala sterujaca RS485 - w niej beda uklady wykonawcze, ale podobnie jak u Ciebie zasilanie do ukladow wykonawczych bedzie sie schodzilo w jednej szafie, gdzie jednak przy kazdym wyjsciu zasilania do odbiornika dam wylacznik do podlaczania 220V na krotko. Pomysl o tym na wypadek disaster.

    3. Sterownik - plan jest na mniej wiecej cos takiego :

    http://www.elmark.com.pl/products/advantech/produkt.php?produkt=1525
    oparte na debianie.

    ---------------------------------------

    Co do uwag apropos Twojej instalacji

    1. Kable - Bedziesz kladl tam jakas podloge ? W sensie co sie stanie jak to przykryjesz a kabel jednak przestanie dzialac...

    2. Sterownik - moze warto zainwestowac w drugi taki sam, niech lezy na listwie zaprogramowany jako backup, w razie disaster przepniesz i po klopocie.

    3. czujnik poboru mocy - mozesz dac namiary.

    Ogolnie GRATZ.
  • #89
    e.dom
    Level 10  
    Witam,

    W ciągu ostatniego roku udało mi nieco rozbudować system, będę się starał w miarę dostępnego czasu wrzucać krótkie opisy. Na pierwszy ogień – sterowanie podlewaniem ogrodu.

    Wiele czasu zmarnowałem szukając zaworów elektromagnetycznych na 24VDC. Mam wrażenie, że przekopałem cały internet i pewnie ktoś z czytających rozpozna mnie jako owego natręta, który wypisywał maile i nieustannie pytał o zawory do ogrodu. Żadna z firm, która na stronach www oferuje zawory ogrodowe na prąd stały nie ma ich na stanie. Frima Valmark odpowiedziała błyskawicznie, wycenili jednak profesjonalne zawory z mosiądzu na niemalże 700 PLN brutto/szt. Rozwiązanie stało się oczywiste dopiero, gdy ktoś ze sprzedawców wypowiedział słowa: transformator i przekaźniki. Należało więc porzucić poszukiwania zaworów na 24 VDC, wyodrębnić część instalacji zasilanej prądem zmiennym i sterować obwodami od zaworów poprzez przekaźniki. Całość wygląda tak:

    Automatyka domowa ("inteligenty dom"), PLC
    (transformator F&F TR-24, przekaźniki WAGO sterowane z modułu 750-530).

    Chciałem początkowo kupić 2 najprostsze zawory ogrodowe i popróbować, jak działają. Gdy jednak skontaktowałem się z najtańszym ze sprzedawców Allegro, zaproponował, iż zaprojektuje instalację podlewania w cenie sprzętu. Ostatecznie przywiózł wszystko, co kupiłem pod mój dom nie pobierając żadnych dodatkowych opłat. W ciągu tygodnia miałem w garażu wszystkie elementy podlewania i projekt w ręce. (Zainteresowanym szczerze polecam: Firma IRJAZA, www.irjaza.pl, na Allegro user: irjaza). Po miesiącu skręcania złączek i kopania rowów system był gotowy do uruchomienia:

    Automatyka domowa ("inteligenty dom"), PLC Automatyka domowa ("inteligenty dom"), PLC Automatyka domowa ("inteligenty dom"), PLC
    (w międzyczasie ulewa zalała rozdzielnię z zaworami. Wszystko działa dalej bez zastrzeżeń)

    Jako że zawory poprzez przekaźniki wpięte są do sterownika zarządzającego domem, aby kontrolować podlewanie wystarczyło nieco rozbudować istniejący już program. Całość dostępna jest przez CoDeSys lub przeglądarkę www. Oto, jak wygląda wizualizacja:

    Automatyka domowa ("inteligenty dom"), PLC

    Mam więc możliwość załączania każdego obwodu z osobna i ustalania godzin podlewania każdej strefy. Napisałem też procedurę, która po ustaleniu czasu podlewania każdej ze stref (w minutach) i wpisania godziny początkowej, ustawia odpowiednio wszystkie zegary, by strefy załączały się jedna po drugiej.

    Ostatecznie– niewielkim kosztem (zasilacz 24 VDC i 6 przekaźników + 1 moduł wyjść 750-530) byłem w stanie rozbudować istniejący system i sterować 6 zaworami ogrodowymi.

    Jeśli chodzi o stronę programową, to wygląda ona tak:
    W części definicji zmiennych
    GARDEN1, GARDEN(...) :Fb_LatchingRelay;

    gdzie Fb_LatchingRelay jest blokiem funkcyjnym z biblioteki buliding_common.lib firmy WAGO

    W części programowej
    GARDEN1(xSwitch:=VIS_GARDEN1, xCentON:=(Timers.Garden1_OnTrig.Q AND NotRaining), xCentOFF:=Timers.Garden1_OffTrig.Q);
    OUT93:=GARDEN1.xActuator;


    gdzie zmienna VIS_GARDEN jest sterowana przez wizualizacje, a zmienne Garden_OnTrig i Garden_OffTrig są zmiennymi sygnalizującymi załączenie/wyłączenie zegara obsługiwanego w odrębnym procesie 'Timers', NotRaining jest zmienną sygnalizującą załączenie czujnika deszczu.

    Pozdrawiam!
  • #90
    e.dom
    Level 10  
    Od dłuższego czasu poszukiwałem możliwości sterowania wybranymi funkcjami sterownika PLC przez komórkę. Gdy np. pracowałem nad instalacją podlewania ogrodu musiałem wychodzić na ogród z laptopem i poprzez wizualizacje załączać obwody. Standardowa wizualizacja wymaga uruchomienia apletów Javy, których żadna z przenośnych przeglądarek, z którymi się zetknąłem, nie była w stanie ugryźć.

    Przekopałem internet w poszukiwaniu aplikacji SCADA pod system Andorid. Instalowałem różnorakie darmowe programy SCADA by w ogóle zrozumieć, o co w nich chodzi i kapitulowałem ze względu na wielość funkcji i trudne (dla laika, jakim jestem) do pojęcia zasady komunikacji protokołem MODBUS.

    Zupełnym przypadkiem trafiłem na informacje, iż posiadany przeze mnie sterwnik WAGO 750-841 obsługuje skrypty SSI (server side includes). Udało mi się znaleźć jakąś japońską broszurkę, w której było kilka przykładów. Po wielu próbach stworzyłem małą stronkę, która wygląda, jak poniżej, która jest obsługiwana przez każdą(!) przeglądarkę www i która, co do zasady, może sterować wszystkim.

    A teraz szczegóły techniczne:

    W komunikacji SSI ze sterownikiem 750-841 dostępne są następujące polecenia:
    - READPI (parametry: ADR, FORMAT, przykładowo: <!--READPI ADR=IW0&FORMAT=%d-->)
    - WRITEPI (parametry ADR, VAUE, FORMAT j.w., przykładowo: <!--WRITEPI ADR1=MW0&VALUE1=1234&FORMAT1=%d-->)
    - GETTIMEDATE (parametry: FORMAT, przykładowo <!--GETTIMEDATE FORMAT=%d.%m.%y %H:%M:%S-->)
    - AUTHUSR (parametry: USR, PWD, RT, przykładowo <!--AUTHUSR USR1=ja&PWD1=nic&RT1=R-->)

    Jeśli więc w kodzie strony umieścimy zapis <!--READPI ADR=QX0&FORMAT=%d-->) serwer sterownika wykonując skrypt, zwróci wartość fizycznego wyjścia nr 1.

    Tyle formalności. Oto, jak wyglądać może najprostszy plik test.ssi (rozszerzenie ssi, jest, zdaje się konieczne, by serwer wykonał skrypty)

    <HTML>
    <BODY>
    <p>Wyjscie 93 (5.12): <!--#READPI ADR=QX5.12&FORMAT=%d--></p>
    <p>Wejscie 3 (8.2): <!--#READPI ADR=IX8. 2&FORMAT=%d--></p>
    <p>Tag 1 (MB0): <!--#READPI ADR=MB0&FORMAT=%d--></p>
    <p> Czas: <!--#GETTIMEDATE FORMAT=%d.%m.%y %H:%M:%S --></p>
    </BODY>
    </HTML>


    Voila! Po wgraniu pliku do katalogu “webserv” i otwarciu w go przeglądarce (np. 192.168.1.1/test.ssi) otrzymamy informacje odczytane prosto ze sterownika.

    Do zapisywanie danych można wykorzystać formularz:

    <form action="/WRITEPI" method="POST">
    <input type="text" name="ADR1" value="MB0">
    <input type="text" name="VALUE1" value="<!--#READPI ADR=MB0&FORMAT=%d-->" >
    <input type="text" name="FORMAT1" value="%d" >
    <input type="SUBMIT" value="ZAPISZ">


    Po naciśnięciu przycisku ‘Zapisz’, wartość zmiennej przechowywanej pod adresem MB0 zostanie zastąpiona wartością z pola VALUE1.

    Moja aplikacja wygląda następująco:
    W procesie PLC_PRG w części definiowania zmiennych umieściłem:

    VIS_GARDEN1 AT %MB0 :BOOL;
    VIS_GARDEN2 AT %MB1 :BOOL;
    (…)

    GARDEN1, GARDEN2 (…) :Fb_LatchingRelay;


    Zmienne o przedrostku VIS_ wykorzystuję do sterowania przez wizualizację (Przy tej okazji pytanie do ekspertów – czemu nie mogę zaadresować zmiennej typu BOOL pod adresem %MX?)

    Do Zmiennych GARDEN… przypisałem bloki funkcyjne Fb_LatchingRelay z biblioteki buliding_common.lib firmy WAGO

    W części programowej:

    GARDEN1(xSwitch:=VIS_GARDEN1, xCentON:=Timers.Garden1_OnTrig.Q, xCentOFF:=Timers.Garden1_OffTrig.Q);
    OUT93:=GARDEN1.xActuator;


    Zmienne Garden1_OnTrig i Garden1_OffTrig pochodzą z odrębnego procesu (Timers), w którym umieściłem wszystkie zegary, w tym momencie jest to kwestia nieistotna)

    Na dole postu znajduje się plik, który zawiera całość kodu. Gdy skończę pracę nad bardziej rozbudowaną wersją (grafika/warstwy), umieszczę ją na www.wspin.duu.pl www.edom-plc.pl. Oto, co w chwili obecnej wyświetla się na ekranie komórki:

    Automatyka domowa ("inteligenty dom"), PLC

    Komentarza, wg mnie wymaga treść funkcji Start(). Bloki funkcyjne sterujące zaworami (Fb_LatchingRelay) są kontrolowane przez wejście xSwitch, które ‘przyjmuje’ impulsy. Zamiana wartości zmiennej VIS_Garden z 0 na 1 spowoduje otwarcie zaworu. By go zamknąć muszę zamienić wartość 1 na 0 i ponownie 0 na 1. Dlatego też, po wczytaniu strony skrypt analizuje, czy którykolwiek z tagów jest różny od 0 i jeśli tak, automatycznie zmienia jego wartość 0. W ten sposób osiągnąłem funkcjonalność, która w wizualizacji CoDeSys określana jest jako „Tap variable”. Jeśli jest na to prostszy sposób, chętnie go poznam, bo trochę to wszystko karkołomne.

    Znawców SSI i HTML proszę o wybaczenie za językową amatorszczyznę. Mam jednak nadzieję, że niniejszym opisem zaoszczędzę komuś godziny poszukiwania rozwiązania. Zamieszczona przeze mnie strona to tak naprawdę początek drogi. Wiedząc, że skrypt już działa, można się doktoryzować, budować strony z dynamicznymi warstwami, mapami obrazków itd. Wszystko to bez żadnych dodatkowych aplikacji i szczerze - przy podstawowej znajomości zasad budowania stron www.

    Powodzenia!