W ofercie urządzeń systemu automatyki budynkowej Grenton znaleźć można sterownik LED RGB przeznaczony do sterowania paskami/taśmami/modułami trójkolorowymi. Dzięki otwartej logice systemu Grenton z łatwością możemy przystosować logikę systemu do sterowania jednokolorowymi paskami LED. Dzięki takiemu rozwiązaniu za pomocą jednego modułu LED RGB możemy sterować trzema niezależnymi jednokolorowymi obwodami LED. Poniższa instrukcja zawiera wskazówki dotyczące przygotowania sterowania jednym, jednobarwnym obwodem LED w zakresie sterowania na zasadzie włącz/wyłącz (kliknięcie przycisku) oraz ustawiania natężenia światła (przytrzymanie przycisku).


Do zrealizowania poniższej funkcjonalności potrzebujesz:


Realizowanie wspomnianej funkcjonalności wymagać będzie utworzenia:

  • skryptów - w przykładowym projekcie nazwane:
    • led1 - obsługa ściemniania i rozjaśniania obwodu LED,
    • led1_state_switch - zmiana stanu (flagi) obwodu LED, 
    • led1_switch - obsługa sterowania obwodem LED na zasadzie włącz/wyłącz
  • zmiennych globalnych - w przykładowym projekcie nazwane:
    • led1_value - aktualna wartość natężenia światła obwodu LED,
    • led1_state - aktualny stan obwodu LED


Konfiguracja jednostki centralnej CLU

        1. Dwukrotnie kliknij w ikonę CLU aby wejść do ustawień modułu


        2. Przejdź do zakładki "Cechy użytkownika" i stwórz zmienną globalną typu number:

  • led1_value - aktualna wartość natężenia światła obwodu LED - wartość początkowa 0
  • led1_state - aktualny stan obwodu LED - wartość początkowa 0

(Kliknij aby powiększyć)



Konfiguracja logiki

        1. Utwórz skrypty zarządzające pracą. Informacje jak tworzyć skrypty w systemie Grenton możesz znaleźć TUTAJ.  Do pełnej obsługi funkcjonalności wykorzystywane będą poniższe skrypty:

  • led1 - obsługa ściemniania i rozjaśniania obwodu LED,
  • led1_state_switch - zmiana stanu (flagi) obwodu LED - niezbędne zarówno dla funkcjonalności ściemniania i sterowania włącz/wyłącz
  • led1_switch - obsługa sterowania obwodem LED na zasadzie włącz/wyłącz



        2. Przygotuj skrypt led1 korzystając z zasobnika Komponenty po prawej stronie okna oprogramowania Object Manager. Połączenia i warunki logiczne między utworzonymi blokami funkcyjnymi powinny wyglądać jak pokazano na schemacie poniżej:

(Kliknij aby powiększyć)


Poniżej znajduje się pełna lista komponentów oraz procedura ich tworzenia.

  • Warunek > CLU > Cechy zdefiniowane: led1_state > Warunek logiczny: "==" > Wartość: 1
        Sprawdzenie czy stan obwodu LED wynosi 1 (w założeniu sprawdzenie czy dany obwód jest załączony)

(Kliknij aby powiększyć)

  • Warunek > CLU > Cechy zdefiniowane: led1_value > Warunek logiczny: "<" > Wartość: 255
        Zabezpieczenie przed przekroczeniem maksymalnej dopuszczonej wartości natężenia przyjmowanego przez wyjście modułu Grenton (podanie wartości wyższej, ustawi ją na 0)

(Kliknij aby powiększyć)


  • Operacje na zmiennych > led1_value > "+=" > Wartość: 5
        Inkrementacja wartości natężenia obwodu led1 o wartość 5 - rozjaśnianie

(Kliknij aby powiększyć)


  • Akcja > LEDRGB > Metoda: SetRvalue(Value,Ramp) > Parametry: Time > Wartość: Cecha > CLU > Cechy zdefiniowane: led1_value
        Przypisanie kanałowi R wartości zmiennej led1_value. Parametr Ramp (czas narastania) został przyjęty jako domyślny (można go zmienić w cechach wbudowanych modułu).

(Kliknij aby powiększyć)


  • Operacje na zmiennych > led1_value > "-=" > Wartość: 5
        Dekrementacja wartości natężenia obwodu led1 o wartość 5 - ściemnianie

(Kliknij aby powiększyć)


  • Akcja > LEDRGB > Metoda: SetRvalue(Value,Ramp) > Parametry: Time > Wartość: Cecha > CLU > Cechy zdefiniowane: led1_value
        Przypisanie kanałowi R wartości zmiennej led1_value. Parametr Ramp (czas narastania) został przyjęty jako domyślny (można go zmienić w cechach wbudowanych modułu).

(Kliknij aby powiększyć)


UWAGA! Jeżeli przyrost natężenia jest zbyt szybki, należy zmniejszyć wartość, o którą inkrementowana i dekrementowana jest zmienna led1_value. Jeżeli wartość ta jest zbyt wolna, wartość tę należy zwiększyć.


Powyższa logika w trybie tekstowym prezentuje się jak niżej:

if(not (CLU->led1_state==1)) then
if(CLU->led1_value<255) then
CLU->led1_value=CLU->led1_value+5
CLU->x280000325_LEDRGB1->SetRvalue(CLU->led1_value)
end
else
if(CLU->led1_value>0) then
CLU->led1_value=CLU->led1_value-5
CLU->x280000325_LEDRGB1->SetRvalue(CLU->led1_value)
end
end


        3. Przygotuj skrypt led1_state_switch korzystając z zasobnika Komponenty po prawej stronie okna oprogramowania Object Manager. Połączenia i warunki logiczne między utworzonymi blokami funkcyjnymi powinny wyglądać jak pokazano na schemacie poniżej:


(Kliknij aby powiększyć)


Poniżej znajduje się pełna lista komponentów oraz procedura ich tworzenia.

  • Warunek > CLU > Cechy zdefiniowane: led1_state > Warunek logiczny: "==" > Wartość: 1
        Sprawdzenie czy stan obwodu LED wynosi 1 (w założeniu sprawdzenie czy dany obwód jest załączony)

(Kliknij aby powiększyć)


  • Operacje na zmiennych > led1_state > "=" > Wartość: 0

                Ustawienie stanu obwodu LED na 0 (wyłączony)

(Kliknij aby powiększyć)


  • Operacje na zmiennych > led1_state > "=" > Wartość: 1

                Ustawienie stanu obwodu LED na 1 (włączony)

(Kliknij aby powiększyć)


 Powyższa logika w trybie tekstowym prezentuje się jak niżej:

<span style="font-family: Tahoma,Geneva,sans-serif;">if(not (CLU->led1_state==1)) then
CLU->led1_state=1
else
CLU->led1_state=0
end</span>


        4. Przygotuj skrypt led1_switch korzystając z zasobnika Komponenty po prawej stronie okna oprogramowania Object Manager. Połączenia i warunki logiczne między utworzonymi blokami funkcyjnymi powinny wyglądać jak pokazano na schemacie poniżej:

(Kliknij aby powiększyć)


Poniżej znajduje się pełna lista komponentów oraz procedura ich tworzenia.


  • Warunek > CLU > Cechy zdefiniowane: led1_state > Warunek logiczny: "==" > Wartość: 1
        Sprawdzenie czy stan obwodu LED wynosi 1 (w założeniu sprawdzenie czy dany obwód jest załączony)

(Kliknij aby powiększyć)


  • Akcja > LEDRGB > Metoda: SetRvalue(Value,Ramp) > Parametry: Time > Wartość: 0
        Przypisanie kanałowi R wartości 0 (wyłączenie obwodu). Parametr Ramp (czas narastania) został przyjęty jako domyślny (można go zmienić w cechach wbudowanych modułu).

(Kliknij aby powiększyć)

  • Operacje na zmiennych > led1_value > "=" > Wartość: 0

                Ustawienie wartości natężenia światła obwodu LED na 0 (wyłączony) - przestawienie wartości pod kątem ewentualnego rozjaśniania obwodów.

(Kliknij aby powiększyć)



  • Akcja > LEDRGB > Metoda: SetRvalue(Value,Ramp) > Parametry: Time > Wartość: 255
        Przypisanie kanałowi R wartości 255 (włączenie obwodu). Parametr Ramp (czas narastania) został przyjęty jako domyślny (można go zmienić w cechach wbudowanych modułu).

(Kliknij aby powiększyć)

  • Operacje na zmiennych > led1_value > "=" > Wartość: 255

                Ustawienie wartości natężenia światła obwodu LED na 255 (włączony) - przestawienie wartości pod kątem ewentualnego ściemniania obwodów.

(Kliknij aby powiększyć)

Powyższa logika w trybie tekstowym prezentuje się jak niżej

if(CLU->led1_state==1) then
CLU->x280000325_LEDRGB1->SetRvalue(0)
CLU->led1_value=0
else
CLU->x280000325_LEDRGB1->SetRvalue(255)
CLU->led1_value=255
end


Konfiguracja urządzeń wejścia

        1. Dwukrotnie kliknij w ikonę wejścia switch aby wejść do ustawień wejścia modułu



        2. Przejdź do zakładki "Cechy wbudowane" i ustaw Wartości początkowe parametrów Mode, HoldDelay i HoldInterval jak poniżej.

(Kliknij aby powiększyć)


  • cecha Mode definiuje tryb działania wejścia/przycisku - parametr ten musi być zaznaczony jako Monostabilny,
  • cecha HoldDelay określa czas, po którym system zacznie rozpoznawać podawany impuls (sygnał) jako zdarzenie OnHold,
  • cecha HoldInterval jest określającym interwał z jakim wykonywane będzie zdarzenie OnHold.


        3. Przejdź do zakładki "Zdarzenia" i do poniższych zdarzeń przypisz odpowiadające komendy. 

  • dla zdarzenia OnSwitchOff

(Kliknij aby powiększyć)

  • dla zdarzenia OnHold - odpowiedzialny on będzie za obsługę ściemniania i rozjaśniania. Zdarzenie OnHold jest zdarzeniem wykonywanym cyklicznie co czas umieszczony w cesze HoldInverval.

(Kliknij aby powiększyć)

  • dla zdarzenia OnClick - będzie on odpowiedzialny za sterowanie na zasadzie włącz/wyłącz

(Kliknij aby powiększyć)


UWAGA! Ustawienie czasu HoldInterval niższego niż 100 spowoduje ustawienie czasu tego parametru jako 0, co spowoduje nieprawidłowe działanie systemu.


Wysyłanie konfiguracji do systemu


            1. Po wprowadzeniu wszystkich zmian wyślij konfigurację do CLU za pomocą poniższego przycisku na pasku narzędzi:






Obsługa kolejnego obwodu LED za pomocą tego samego modułu wymagać będzie sterowania za pomocą kolejnego kanału modułu LED RGB - G lub B. W tym celu dla kolejnego obwodu LED należy wykonać powyższe instrukcje analogicznie.