Skip to content

impulse-counter

Opis

Bloczek impulse-counter działa jak prosty licznik całkowity sterowany impulsami oraz komendami wysyłanymi z bloczka command. Przechowuje bieżącą wartość zadaną parametrem startowym albo odtworzoną po restarcie projektu, a następnie zwiększa ją, zmniejsza lub ustawia bezpośrednio na podstawie sygnałów wejściowych.

Bloczek pracuje wyłącznie w zadanym przedziale od value_from do value_to. Zmiany wykonywane komendami up i down z bloczka command albo zboczem narastającym są nasycane do tego zakresu, więc licznik nie wyjdzie poza skonfigurowane minimum i maksimum.

Bloczek posiada jedno wejście główne i trzy wyjścia. Nie wymaga stosowania wejść oznaczanych za pomocą bloczka tag.

Parametry konfiguracyjne

Nazwa parametru Wartość
start_value Parametr obowiązkowy określający wartość początkową licznika. Musi być liczbą całkowitą mieszczącą się w zakresie od value_from do value_to. Komenda set z bloczka command zawsze przywraca właśnie tę wartość.
value_from Parametr obowiązkowy określający minimalną dozwoloną wartość licznika.
value_to Parametr obowiązkowy określający maksymalną dozwoloną wartość licznika. Musi być większy od value_from.
movement Parametr obowiązkowy określający krok zmiany wartości dla komend up i down z bloczka command oraz dla zbocza narastającego false -> true. Wartość musi być dodatnią liczbą całkowitą większą od zera.
persistent_state Parametr opcjonalny typu logicznego true albo false. Gdy ma wartość true, bloczek próbuje po restarcie odtworzyć ostatnią utrwaloną wartość licznika. Zapis trwały nie następuje od razu, tylko około 10 minut po ostatniej zmianie. Jeśli restart lub zanik zasilania nastąpi wcześniej, może zostać przywrócona wcześniejsza wartość. Gdy ma wartość false albo parametr nie zostanie podany, po restarcie liczenie rozpoczyna się od start_value.

Obsługa wejścia

Bloczek wymaga co najmniej jednego połączenia wejściowego. Jeśli przy inicjalizacji wejście nie jest do niczego podłączone, bloczek przechodzi w stan błędu Input disconnected..

Obsługiwane są następujące sposoby sterowania:

  • Komenda set wysłana z bloczka command ustawia bieżącą wartość na start_value.
  • Komenda reset wysłana z bloczka command ustawia bieżącą wartość na minimum, czyli value_from.
  • Komenda up wysłana z bloczka command zwiększa bieżącą wartość o movement.
  • Komenda down wysłana z bloczka command zmniejsza bieżącą wartość o movement.
  • Zbocze narastające false -> true działa tak samo jak komenda up z bloczka command.
  • Wartość liczbowa z zakresu value_from ... value_to ustawia licznik bezpośrednio na tę wartość.

Szczegóły działania:

  • dla komendy up z bloczka command i zbocza narastającego wynik jest ograniczany do value_to
  • dla komendy down z bloczka command wynik jest ograniczany do value_from
  • jeśli na wejściu pojawi się liczba spoza dozwolonego zakresu, taka wiadomość jest ignorowana
  • wartości logiczne inne niż zbocze false -> true są ignorowane
  • wartości daty i czasu są ignorowane
  • tekst jest akceptowany tylko wtedy, gdy da się go odczytać jako liczbę całkowitą
  • wartości typu double, temperatura i procent są przy ustawianiu bezpośrednim zamieniane na liczbę całkowitą przez obcięcie części ułamkowej

Bloczek nie wymaga stosowania wejść oznaczanych za pomocą bloczka tag.

Wyjścia bloczka

Numer i nazwa wyjścia Opis wyjścia
1. Bieżąca wartość. Zwraca aktualną wartość licznika jako liczbę całkowitą.
2. Osiągnięto minimum. Zwraca wartość true, gdy licznik znajduje się na wartości minimalnej value_from. W pozostałych przypadkach zwracane jest false.
3. Osiągnięto maksimum. Zwraca wartość true, gdy licznik znajduje się na wartości maksymalnej value_to. W pozostałych przypadkach zwracane jest false.

Opis statusu bloczka

Opis widoczny pod bloczkiem pokazuje aktualną wartość licznika w postaci tekstowej.

Przykłady:

  • 0
  • 12
  • -5

Błędy widoczne dla użytkownika

Bloczek może pokazywać następujące komunikaty błędów:

Kod błędu Opis błędu
Invalid start_value. Parametr start_value nie został podany, nie jest liczbą całkowitą albo nie mieści się w zakresie od value_from do value_to.
Invalid value_from. Parametr value_from nie został podany albo nie jest poprawną liczbą całkowitą.
Invalid value_to. Parametr value_to nie został podany albo nie jest poprawną liczbą całkowitą.
Invalid from/to range. Zakres jest niepoprawny, ponieważ value_from jest większe od value_to albo równe value_to.
Invalid movement. Parametr movement nie został podany, nie jest poprawną liczbą całkowitą albo ma wartość mniejszą lub równą zero.
Input disconnected. Do wejścia bloczka nie podłączono żadnego innego bloczka.

Przykłady działania

  • Jeśli start_value = 10, value_from = 0, value_to = 100 i movement = 5, to komenda set wysłana z bloczka command ustawi licznik na 10.
  • Dla tej samej konfiguracji komenda reset wysłana z bloczka command ustawi licznik na 0.
  • Jeśli bieżąca wartość wynosi 10, to komenda up wysłana z bloczka command albo zbocze false -> true zmieni ją na 15.
  • Jeśli bieżąca wartość wynosi 98, a movement = 5, to komenda up wysłana z bloczka command ustawi licznik na 100, a nie na 103.
  • Jeśli bieżąca wartość wynosi 3, a movement = 10, to komenda down wysłana z bloczka command ustawi licznik na 0, a nie na -7.
  • Jeśli na wejście zostanie podana liczba 42, to licznik przyjmie wartość 42, o ile mieści się ona w skonfigurowanym zakresie.
  • Jeśli na wejście zostanie podana liczba 150 przy zakresie 0 ... 100, taka wiadomość zostanie zignorowana.
  • Jeśli na wejście zostanie podana wartość 18.9, licznik zostanie ustawiony na 18.