Sterowanie jednobarwnym paskiem LED z wykorzystaniem pojedynczego kanału modułu LED RGB za pomocą przycisku monostabilnego

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

Konfiguracja logiki

1. 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:

 

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)

  • 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)

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

  • 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).

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

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

  • 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).

 

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:

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)

  • Operacje na zmiennych > led1_state > "=" > Wartość: 0
    Ustawienie stanu obwodu LED na 0 (wyłączony)

  • Operacje na zmiennych > led1_state > "=" > Wartość: 1
    Ustawienie stanu obwodu LED na 1 (włączony)

 

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

if(not (CLU->led1_state==1)) then

CLU->led1_state=1

else

CLU->led1_state=0

end

 

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:

 

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)

  • 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).

  • 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.

  • 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).

  • 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.

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.

  • 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

  • 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.


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

 

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.