Obsługa wielokrotnych kliknięć

System Grenton daje możliwość tworzenia dowolnych powiązań między urządzeniami wejścia i wyjścia oraz przygotowywania również zaawansowanej logiki dopasowanej do potrzeb użytkowników. Jedną z takich funkcjonalności jest możliwość sterowania wieloma obwodami za pomocą jednego przycisku. Możliwe jest to dzięki funkcjonalności rozpoznawania długości naciśnięcia klawisza oraz wielokrotnych kliknięć. Poniżej przedstawiona została propozycja zrealizowania obsługi podwójnych kliknięć.


Do zrealizowania poniższej funkcjonalności potrzebujesz:

  • jednostka centralna CLU,
  • moduł wyjść Grenton - przekaźnikowy RELAY, analogowy ANALOG 0-10V lub jakakolwiek akcja wewnątrz logiki systemu,
  • moduł wejść DIGITAL IN lub panel dotykowy GRENTON TOUCH PANEL,
  • środowisko do tworzenia logiki sytemu Object Manager.

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

  • skryptu - w przykładowym projekcie nazwany config,
  • obiektu wirtualnego Timer - w przykładowym projekcie nazwany timer,
  • zmiennej globalnej przetrzymującej ilość kliknięć  - w przykładowym projekcie nazwana clicks_number.

 

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:

  • clicks_number - liczba zliczonych kliknięć

 

Konfiguracja logiki

1. Utwórz skrypt zarządzający pracą. W analizowanym przypadku nazwany config:


2. Utwórz skrypt realizujący logikę systemu 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: clicks_number > Warunek logiczny: "==" > Wartość: 1
    Sprawdzenie czy ilość zliczonych kliknięć wynosi 1

  • Akcja > lamp1 > Metoda: Switch(time) > Parametry: Unlimited
    Zmiana stanu wyjścia przekaźnikowego lamp1

  • Operacje na zmiennych > clicks_number > "=" > Wartość: 0
    Przypisanie ilości zliczonych kliknięć wartość 0

  • Warunek > CLU > Cechy zdefiniowane: clicks_number > Warunek logiczny: "==" > Wartość: 1
    Sprawdzenie czy ilość zliczonych kliknięć wynosi 1

  • Akcja > lamp2 > Metoda: Switch(time) > Parametry: Unlimited
    Zmiana stanu wyjścia przekaźnikowego lamp2

  • Operacje na zmiennych > clicks_number > "=" > Wartość: 0
    Przypisanie ilości zliczonych kliknięć wartość 0


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

if(CLU->clicks_number==1) then 
CLU->lamp1->Switch(0)
CLU->clicks_number=0
else
if(CLU->clicks_number==2) then
CLU->lamp2->Switch(0)
CLU->clicks_number=0
else
CLU->clicks_number=0
end
end

UWAGA! Logikę tę można w prosty sposób rozszerzyć o rozpoznawanie większej ilości kliknięć. Wystarczy dodać kolejne warunki sprawdzające ilość kliknięć. Przykładowe rozszerzenie o rozpoznawanie potrójnego kliknięcia przedstawiono poniżej:

 

Wirtualny obiekt TIMER

1. Kliknij w symbol zegara aby przejść do okna tworzenia wirtualnych obiektów: 

 

2. Z rozwijanej listy wybierz pozycję "Timer":


 

3. Wejdź w zakładkę "Cechy wbudowane", ustaw cechę Mode w tryb CountDown oraz podaj wartość cechy Time - czas, w którym muszą zostać wykonane kolejne kliknięcia, aby były zliczone przez system:

 

4. Wejdź w zakładkę "Zdarzenia", dodaj do zdarzenia OnTimer utworzony skrypt config:

 

5. Zatwierdź zmiany przyciskiem OK

 

Konfiguracja urządzeń wejścia/wyjścia

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

 

2. Przejdź do zakładki "Zdarzenia" i do zdarzenia OnClick przypisz dwie komendy:

  • uruchomienie pracy obiektu wirtualnego Timer:

  • wykonanie iteracyjnego zwiększenia wartości zmiennej globalnej clicks_number:

Komendę tę można przypisać na różne sposoby jednak najszybszą i najprostszą jest edycja wygenerowanej komendy do postaci poprawnie interpretowanej przez wbudowany kompilator języka LUA. W polu "Przypisane komendy" dodaj kolejną pozycję i wpisz ręcznie:

CLU->clicks_number+=1

lub:

CLU->clicks_number=CLU->clicks_number+1


Możliwe jest również zastąpienie wpisywanej ręcznie komendy skryptem. W tym celu należy utworzyć skrypt jak niżej:


I przypisanie wykonania tego skryptu do zdarzenia OnClick:


Po wykonanej operacji okno dialogowe wejścia switch w zakładce Zdarzenia prezentuje się jak niżej:

 

lub:

 

3. Zatwierdź zmiany przyciskiem OK.


Wysyłanie konfiguracji do systemu

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