'Inteligenty' dom ze sterownikiem PLC

 Language:
Szukanie zaawansowane  

Aktualności:

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

Autor Wątek: Trudne początki kilka pytań dot. programowania  (Przeczytany 3033 razy)

dar3k

  • Newbie
  • *
  • Wiadomości: 11
    • Zobacz profil
Trudne początki kilka pytań dot. programowania
« dnia: Listopada 29, 2017, 11:15:29 am »

Witam,
Jest to mój debiut z WAGO, poradnik na tej stronie uważam, że jest super lecz pojawia się kilka pytań odnośnie tego jak ten program stworzyć w całości od A do Z. Każdy z przykładów pokazuje jak sterować np. jedną roletą - to przetestowałem i działa jak w przykładzie, tylko jak to najprościej połączyć w grupy ?
Co chciałbym osiągnąć:
1. Sterowanie jedną roletą góra / dół (przycisk roletowy góra / dół)
2. Długie przyciśnięcie zrobienie cienia w całym pokoju (opuszczenie 3-4 rolet do pozycji cień)
3. Dla jednego przycisku w garażu długie przyciśnięcie zamknięcie / otwarcie całego domu itp.
4. Jeżeli nasłonecznienie (a zimą nasłonecznienie + temp. zew.) osiąga zadany poziom rolety idą w pozycję cień lub zamknięte.
5.Odbiornik pilota do bramy (jeden guzik z 4) zaprogramować tak, aby podawał sygnał na DI, który otwierałby wszystkie rolety lub ustawiał w pozycję cień jeżeli warunek powyżej jest spełniony

Czy da się np. stworzyć swoją bibliotekę dla rolety gdzie wejściem wyjściem do funkcji byłyby INx, OUTx, i używać tej funkcji w zależności od potrzeb ?

PS: Wiem, że na pierwszy program poprzeczka jest dość wysoko, nie znam zbyt dobrze języka, który jest używany w codesys natomiast posiadam wiedzę w dziedzinie programowania sterowników lecz jest to autorskie rozwiązanie, które stosujemy w mojej firmie jedynie. Czy mógłby ktoś polecić jakieś materiały do nauki programowania w codesys?
Dałoby radę o jakiś przykład ?
Zapisane

mendium

  • Newbie
  • *
  • Wiadomości: 49
    • Zobacz profil
Odp: Trudne początki kilka pytań dot. programowania
« Odpowiedź #1 dnia: Listopada 29, 2017, 12:47:51 pm »

Nie ma co wymyślać koła na nowo skoro już to ktoś zrobił.
Polecam biblioteki OSCAT: https://store.codesys.com/oscat-building.html#Product Description lub wbudowaną wagoappbuilding.
Programujesz zestaw dla jednej rolety a następnie podłączasz pozostałe do wejść/wyjść.
Sky's the limit
Do nauki wago polecam kanał https://www.youtube.com/user/WagoKurt
Zapisane

admin

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 313
    • Zobacz profil
Odp: Trudne początki kilka pytań dot. programowania
« Odpowiedź #2 dnia: Listopada 30, 2017, 09:06:35 am »

Cześć,

1. Na pytanie o sterowanie roletą odpowiedzi są w 8. odcinku tutoriala
2. Rozwiązaniem jest zdefiniowanie zmiennej typu BOOL, która wartość zależy od bloku Fb_ShortLong sterowanego przyciskiem.  Ową zmienną BOOL podłączasz do wejść IN bloków BLIND_INPUT wszystkich rolet, które powinny na długie/krótkie przyciśnięcie reagować.

(def)
Switch_IN1 : Fb_ShortLong;
Cien_P1 : BOOL;
Roleta_P1_1_Input, Roleta_P1_2_Input, Roleta_P1_3_Input : BLIND_INPUT;

(prog)
Switch_IN1(xSwitch := IN1);
Cien_P1 := Switch_IN1.xLong;

Roleta_P1_1_Input(S1 := ..... , S2 :=, IN := Cien_P1, POS := ...)
Roleta_P1_2_Input(S1 := ..... , S2 :=, IN := Cien_P1, POS := ...)
Roleta_P1_3_Input(S1 := ..... , S2 :=, IN := Cien_P1, POS := ...)

3. Podobnie, jw. trzeba zdefiniować zmienną typu Bool, uzależnić jej wartość od wyjścia bloku krótki/długi, i ową nową zmienną podłączyć do wszystkich bloków, które mają na nią reagować, np:

(def)
Switch_IN1 : Fb_ShortLong;
ZamknijDom : BOOL;
Roleta_P1_1_Input : BLIND_INPUT;
Swiatlo_P1_1 : Fb_LatchingRelay;


(prog)
Switch_IN1(xSwitch := IN1);
ZamknijDom := Switch_IN1.xLong;

Roleta_P1_1_Input(S1 := ..... , S2 := ..... OR ZamknijDom, IN := ..., POS := ...); (*tu przypisana do wejścia opuszczającego roletę*)
Swiatlo_P1_1(xSwitch := ..., xCentON := ...., xCentOFF := .... OR ZamknijDom); (*tu przypisana do wejścia wyłączającego światło*)

4. Tu trzeba sumować warunki.  Wg mnie zacienianie ma sens tylko latem, bo zimną każda kropla słońca to pieniądz.  U siebie zdefiniowałem zmienną Zacieniaj : BOOL i sumuję w niej warunki biorąc pod uwagę temperaturę w pomieszczeniu (nie na dworze), ilość światła itd.

Zacieniaj := (NOT Zima AND ReczneZacienianie AND (OdczytCzujnikaSwiatla > MinimalnaIloscSwiatla) AND (TemperaturaWPokoju > MaksymalnaTemperaturaWPokoju))

Później podłączam tę zmienną do bloku BLIND_SHADE_S

Roleta_P1_1_Shade(UP := ...., DN := ..., S_IN := ......, pi := ....., ENABLE := Zacieniaj, SUN := ...., CX := ....)

5. to kombinacja powyższych...

Pozdrawiam,
Zapisane

dar3k

  • Newbie
  • *
  • Wiadomości: 11
    • Zobacz profil
Odp: Trudne początki kilka pytań dot. programowania
« Odpowiedź #3 dnia: Listopada 30, 2017, 10:45:47 am »

Dziękuję za wyczerpującą odpowiedź, w weekend do tego usiądę, mam nadzieję, że z powyższym uda mi się to uruchomić :)
Zapisane