Napisz skrypt tagu wirtualnego
Obliczaj wartość tagu na podstawie innych tagów — skrypty odczytu, skrypty zapisu i praktyczne przykłady.
ProjektyTwój projektTagiTag wirtualny otrzymuje wartość ze skryptu, a nie z urządzenia. Ten przewodnik pokazuje, jak go napisać. Pełną listę funkcji znajdziesz w dokumentacji tagów wirtualnych.
1. Dodaj tag wirtualny
W widoku Tagi projektu kliknij Nowy, wybierz Tag i wskaż typ Tag wirtualny. Nadaj mu nazwę i typ danych, a następnie napisz jego skrypt odczytu.
2. Odwołuj się do innych tagów
Skrypty odczytują inne tagi według ścieżki przekazywanej do funkcji value().
Zamiast wpisywać ścieżkę, naciśnij Shift + Alt + T, aby wybrać tag i go
wstawić; naciśnij Shift + Alt + A, aby wstawić alarm. Autouzupełnianie
(Ctrl/⌘ + Spacja) wyświetla wszystkie funkcje, których możesz użyć.
// The current value of another tag
value("Meters/Main meter");
3. Napisz skrypt odczytu
Skrypt odczytu zwraca wartość tagu. Kilka typowych wzorców:
Łączenie tagów — suma dwóch liczników:
value("Meters/Meter A") + value("Meters/Meter B");
Przeliczanie jednostek — Wh na kWh:
value("Boiler/Energy") / 1000;
Wyznaczanie stanu — 1, gdy alarm jest aktywny, w przeciwnym razie 0:
alarmValue("Boiler/High temperature") ? 1 : 0;
Korzystanie z historii — środek zakresu z ostatniej godziny, z użyciem funkcji czasu:
const now = getCurrentTime();
const from = getTimeBefore("1h", now);
const high = historyMax("Outdoor/Temperature", from, now);
const low = historyMin("Outdoor/Temperature", from, now);
(high + low) / 2;
Ustaw Interwał przeliczania (w sekundach), jeśli wartość ma być odświeżana cyklicznie; w przeciwnym razie jest przeliczana, gdy zmieniają się tagi, do których się odwołuje.
4. Dodaj skrypt zapisu (opcjonalnie)
Aby tag wirtualny był zapisywalny, dodaj także skrypt zapisu — tag
wirtualny jest zapisywalny tylko wtedy, gdy ma oba skrypty. Skrypt zapisu jest
uruchamiany, gdy ktoś zapisuje wartość do tagu, i otrzymuje przychodzącą wartość z
inputValue(). Przekaż ją do rzeczywistych tagów za pomocą writeValue().
Na przykład przyjmij wartość procentową (0–100) zapisaną do tagu wirtualnego i wyślij ją do wentylatora jako wartość zadaną 0–10 V:
writeValue("AHU/Fan", (inputValue() / 100) * 10);
5. Zapisz i sprawdź
Zapisz tag i sprawdź, czy w widoku Tagi pokazuje sensowną wartość. Edytor zaznacza błędy składni na bieżąco podczas pisania; jeśli wartość wygląda nieprawidłowo, sprawdź ścieżki tagów oraz to, czy typ danych odpowiada temu, co zwraca skrypt.