TapHome ma jeden język skryptowy dla smart rules, powiadomień i integracji urządzeń. Składnia i funkcje są wszędzie takie same; od miejsca, w którym skrypt działa, zależą tylko dostępne zmienne, stałe i funkcje. Aplikacja podświetla składnię w edytorze skryptów.
Gdzie używa się skryptów
Ten sam język skryptowy działa w smart rules, powiadomieniach oraz w integracjach Modbus i Packet parser:
| Kontekst | Co robi skrypt | Specyficzne dla kontekstu |
|---|---|---|
| Smart rule Równanie | Jedno wyrażenie nad wartościami urządzeń. TRUE uruchamia akcje dla prawdy, FALSE akcje dla fałszu. | LastState, TriggerName |
| Smart rule Formuła | Oblicza wartość, która jest zapisywana do każdego urządzenia wyjściowego. | LastState, TriggerName |
| Smart rule Skrypt | Odczytuje wartości urządzeń i przypisuje nowe; każde przypisanie staje się akcją urządzenia. | Zmienne do odczytu i zapisu, TriggerName |
| Warunek ograniczający Formuła | Decyduje, czy smart rule może się uruchomić. | TRUE pozwala uruchomić regułę |
| Tytuł i treść powiadomienia | Tworzy tekst powiadomienia. | Musi zwrócić tekst; stałe powiadomień |
| Skrypt odczytu modułu Modbus | Odpytuje moduł, zwykle po to, by zgłosić błędy urządzeń. | Funkcje MODBUS* |
| Skrypty odczytu i zapisu urządzenia Modbus | Przekształcają rejestry w wartość urządzenia, a żądaną wartość z powrotem w rejestry. | Wynik odczytu staje się wartością urządzenia |
| Skrypt inicjalizacji Modbus | Uruchamia się raz po połączeniu modułu. | Zwykle MODBUSWNE |
| Skrypty odczytu i zapisu Packet parser | Wysyłają żądanie lub polecenie przez HTTP, FTP, TCP, UDP albo MQTT; dla HTTP i FTP przetwarzają też odpowiedź. | SENDHTTPREQUEST, SENDDATA, MQTTPUBLISH |
| Skrypt listener Packet parser | Obsługuje każdy przychodzący pakiet TCP lub UDP i każdą wiadomość MQTT. | RECEIVEDMSG |
| Atrybuty i akcje serwisowe (Modbus, Packet parser) | Wiersze diagnostyczne i przyciski z parametrami w aplikacji. | Parametry akcji według ich skrótu |
SLEEP jest odrzucany w smart rules i powiadomieniach (wyjątkiem jest warunek ograniczający Formuła). ADDERROR, ADDWARNING i ADDINFO działają tylko w skryptach urządzeń. Co każda smart rule przekazuje swojemu skryptowi, opisuje strona Skrypty w smart rules i powiadomieniach; integracje mają własne strony, Funkcje Modbus i Funkcje Packet parser.
Wynik skryptu
Skrypt to lista instrukcji. Wartość ostatniej obliczonej instrukcji jest wynikiem skryptu. RETURN kończy skrypt wcześniej z podaną wartością.
VAR a := 1;
VAR b := 2;
a + b;
# Result: 3Wynik skryptu odczytu urządzenia musi pasować do wartości urządzenia, w przeciwnym razie skrypt kończy się błędem Return value 'X' does not match required return type constraint:
| Wartość urządzenia | Dozwolony wynik |
|---|---|
| Stan przełącznika, kontaktron | TRUE lub FALSE (liczby są akceptowane), NaN, Null |
| Stan przełącznika wielowartościowego | Liczba (liczba całkowita wybiera stan; wartość dziesiętna nie jest odrzucana), NaN, Null |
| Każda inna wartość | Liczba, NaN, Null |
NaN oznacza „wartość jest nieznana”, Null oznacza „wartości nie ma”. Jak obie zachowują się w wyrażeniach, opisuje Null i NaN.
Strony w tej sekcji
Dokumentacja języka skryptowego ma cztery grupy stron: przewodnik po języku, funkcje według obszaru, funkcje integracji i listy referencyjne.
Przewodnik
- Składnia i sterowanie przebiegiem — instrukcje, komentarze, literały,
IF,SWITCH, pętleWHILEiDO,RETURN. - Typy danych — liczby, tekst, typy strukturalne i wyliczeniowe, kolekcje,
.Type, promocja typów,NulliNaN. - Zmienne i stałe — zmienne urządzeń, Info wartości, zmienne modułu,
VARi deklaracje z typem, właściwości, stałe kontekstu. - Operatory — lista operatorów, priorytet, skrócone obliczanie, odpowiedniki w Excelu.
- Skrypty w smart rules i powiadomieniach — Równanie, Formuła, Skrypt, warunek ograniczający Formuła i powiadomienia.
Funkcje
- Logika i diagnostyka —
ISNULL,ISNAN,EQUALS,SLEEP,ADDERROR,ADDWARNING,ADDINFO,DEBOUNCE. - Funkcje matematyczne —
MIN,MAX,AVG(pomijają nieznane wartości, warianty…STRICTnie),ABS,SIGN,SQRT,POWER,MOD,LOG,LN,DEWPOINT. - Zaokrąglanie i liczby losowe —
ROUND,CEIL,FLOOR,RAND,RANDINT. - Interpolacja i progi —
LINEARprzenosi wartość z jednego zakresu do drugiego (na przykład krzywa ściemniania),HYSTERESIS. - Operacje bitowe —
GETBIT,GETBITS,SETBIT,SETBITS,GETBYTE,SETBYTE,TOBCD,FROMBCD. - Tekst i kolekcje —
LENGTH,GETAT,SETAT,APPEND,INSERT,REMOVEAT,COPY,INDEXOF,REPLACE,SPLIT,COMPARE,BYTECOLLECTION,UINT16COLLECTION,BOOLCOLLECTION. - Sortowanie —
ORDER,ORDERINDEXoraz ich warianty malejące i ścisłe. - Data i czas —
NOW,DATETIME,DATETIMEADD,TIMESPAN,LOCALTIMEZONE. - Konwersje typów danych —
TOSTRING,TODOUBLE,TOBYTES,ENCODE,DECODE. - Kolory —
HSVTORGB,RGBTOHSV. - Funkcje parsowania —
PARSETEXT,PARSEJSON(odczytuje wartość z JSON według jej ścieżki),PARSEXML. - Dane binarne —
PACKVALUE,UNPACKVALUE.
Integracje
- Funkcje Modbus — typy rejestrów,
MODBUSR,MODBUSW,MODBUSWNE,MODBUSRBLOCK,MODBUSWBLOCK,MODBUSWBLOCKNE. - Typy danych Modbus — typy danych funkcji Modbus, warianty kolejności bajtów, typy 64-bitowe, tekst.
- Skrypty Modbus i prefetch — jakie skrypty mają moduł i urządzenie Modbus, kiedy się uruchamiają, prefetch i pamięć podręczna.
- Funkcje Packet parser —
HTTPREQUEST,SENDHTTPREQUEST,SENDDATA,MQTTPUBLISH,FTPDOWNLOAD,FTPUPLOAD,COMPLETESERVICEATTRIBUTE,COMPLETESERVICEACTION. - Skrypty listener — skrypt listener modułu Packet parser,
RECEIVEDMSGiRECEIVEDBYTES.
Informacje referencyjne
- Przykłady skryptów — kompletne skrypty z rzeczywistych szablonów urządzeń.
- Błędy skryptów i rozwiązywanie problemów — komunikaty błędów parsowania i wykonania oraz sposób ich naprawy.
- Wymagania wersji skryptów — kompilacja Core, której wymaga każda funkcja.
- Funkcje skryptowe A–Z — każda funkcja z jednym zdaniem i odnośnikiem.