A TapHome egyetlen szkriptnyelvet használ a smart rule-okhoz, az értesítésekhez és az eszközintegrációkhoz. A szintaxis és a függvények mindenhol azonosak; csak az elérhető változók, konstansok és függvények függnek attól, hol fut a szkript. Az alkalmazás a szkriptszerkesztőben kiemeli a szintaxist.
Hol használhatók a szkriptek
Ugyanaz a szkriptnyelv fut a smart rule-okban, az értesítésekben, valamint a Modbus és a Packet parser integrációban:
| Környezet | Mit csinál a szkript | Mi jellemző a környezetre |
|---|---|---|
| Egyenlet smart rule | Egyetlen kifejezés az eszközök értékei felett. TRUE esetén az igaz műveletek, FALSE esetén a hamis műveletek futnak le. | LastState, TriggerName |
| Képlet smart rule | Kiszámít egy értéket, amely minden kimeneti eszközbe beíródik. | LastState, TriggerName |
| Szkript smart rule | Beolvassa az eszközök értékeit és újakat rendel hozzájuk; minden értékadásból az eszköz egy művelete lesz. | Olvasható/írható változók, TriggerName |
| Képlet korlátozó feltétel | Eldönti, hogy a smart rule lefuthat-e. | TRUE engedi lefutni a szabályt |
| Értesítés címe és üzenete | Összeállítja az értesítés szövegét. | Szöveget kell visszaadnia; az értesítés konstansai |
| Modbus modul olvasó szkriptje | Lekérdezi a modult, jellemzően azért, hogy eszközhibákat jelezzen. | MODBUS* függvények |
| Modbus eszköz olvasó és író szkriptje | A regiszterekből az eszköz értékét állítja elő, a kért értéket pedig visszaalakítja regiszterekké. | Az olvasás eredményéből lesz az eszköz értéke |
| Modbus inicializáló szkript | Egyszer fut le, miután a modul csatlakozott. | Jellemzően MODBUSWNE |
| Packet parser olvasó és író szkriptek | Kérést vagy parancsot küld HTTP, FTP, TCP, UDP vagy MQTT protokollon; HTTP és FTP esetén a választ is feldolgozza. | SENDHTTPREQUEST, SENDDATA, MQTTPUBLISH |
| Packet parser listener szkript | Feldolgoz minden beérkező TCP- vagy UDP-csomagot és MQTT-üzenetet. | RECEIVEDMSG |
| Szolgáltatási attribútumok és szolgáltatási műveletek (Modbus, Packet parser) | Diagnosztikai sorok és paraméterezhető gombok az alkalmazásban. | A művelet paraméterei a rövidítésük alapján |
A SLEEP függvényt a smart rule-ok és az értesítések elutasítják (kivétel a Képlet korlátozó feltétel). Az ADDERROR, ADDWARNING és ADDINFO csak az eszközök szkriptjeiben működik. Hogy az egyes smart rule-ok mit adnak át a szkriptjüknek, azt a Szkriptek a smart rule-okban és az értesítésekben oldal írja le; az integrációknak saját oldaluk van: Modbus függvények és Packet parser függvények.
A szkript eredménye
A szkript utasítások listája. Az utoljára kiértékelt utasítás értéke a szkript eredménye. A RETURN a megadott értékkel idő előtt befejezi a szkriptet.
VAR a := 1;
VAR b := 2;
a + b;
# Result: 3Az eszköz olvasó szkriptjének eredménye illeszkedjen az eszköz értékéhez, különben a szkript a Return value 'X' does not match required return type constraint hibával leáll:
| Az eszköz értéke | Megengedett eredmény |
|---|---|
| Kapcsoló állapota, reed érintkező | TRUE vagy FALSE (számokat is elfogad), NaN, Null |
| Többállású kapcsoló állapota | Szám (az egész szám választja ki az állapotot; a tizedes értéket nem utasítja el), NaN, Null |
| Bármely más érték | Szám, NaN, Null |
A NaN jelentése „az érték ismeretlen”, a Null jelentése „nincs érték”. Hogy a kettő hogyan viselkedik a kifejezésekben, azt a Null és NaN szakasz írja le.
A szakasz oldalai
A szkriptnyelv referenciája négy oldalcsoportból áll: útmutató a nyelvhez, a függvények területenként, az integrációs függvények és a referencialisták.
Útmutató
- Szintaxis és vezérlési szerkezetek — utasítások, megjegyzések, literálok,
IF,SWITCH,WHILEésDOciklusok,RETURN. - Adattípusok — számok, szöveg, strukturált és felsorolt típusok, gyűjtemények,
.Type, típuskiterjesztés,NullésNaN. - Változók és konstansok — eszközváltozók, Value info, modulváltozók,
VARés típusos deklarációk, tulajdonságok, a környezet konstansai. - Operátorok — az operátorok listája, precedencia, rövidzáras kiértékelés, Excel megfelelők.
- Szkriptek a smart rule-okban és az értesítésekben — Egyenlet, Képlet, Szkript, a Képlet korlátozó feltétel és az értesítések.
Függvények
- Logika és diagnosztika —
ISNULL,ISNAN,EQUALS,SLEEP,ADDERROR,ADDWARNING,ADDINFO,DEBOUNCE. - Matematikai függvények —
MIN,MAX,AVG(kihagyják az ismeretlen értékeket, a…STRICTváltozatok nem),ABS,SIGN,SQRT,POWER,MOD,LOG,LN,DEWPOINT. - Kerekítés és véletlenszámok —
ROUND,CEIL,FLOOR,RAND,RANDINT. - Interpoláció és küszöbértékek — a
LINEARegy értéket az egyik tartományból a másikba képez le (például egy fényerő-szabályozási görbe),HYSTERESIS. - Bitműveletek —
GETBIT,GETBITS,SETBIT,SETBITS,GETBYTE,SETBYTE,TOBCD,FROMBCD. - Szöveg és gyűjtemények —
LENGTH,GETAT,SETAT,APPEND,INSERT,REMOVEAT,COPY,INDEXOF,REPLACE,SPLIT,COMPARE,BYTECOLLECTION,UINT16COLLECTION,BOOLCOLLECTION. - Rendezés —
ORDER,ORDERINDEXés ezek csökkenő és szigorú változatai. - Dátum és idő —
NOW,DATETIME,DATETIMEADD,TIMESPAN,LOCALTIMEZONE. - Adattípusok konverziója —
TOSTRING,TODOUBLE,TOBYTES,ENCODE,DECODE. - Színek —
HSVTORGB,RGBTOHSV. - Elemző függvények —
PARSETEXT,PARSEJSON(értéket olvas ki a JSON-ból az útvonala alapján),PARSEXML. - Bináris adatok —
PACKVALUE,UNPACKVALUE.
Integrációk
- Modbus függvények — regisztertípusok,
MODBUSR,MODBUSW,MODBUSWNE,MODBUSRBLOCK,MODBUSWBLOCK,MODBUSWBLOCKNE. - Modbus adattípusok — a Modbus függvények adattípusai, bájtsorrend-változatok, 64 bites típusok, szöveg.
- Modbus szkriptek és prefetch — milyen szkriptjei vannak egy Modbus modulnak és eszköznek, mikor futnak, prefetch és gyorsítótárazás.
- Packet parser függvények —
HTTPREQUEST,SENDHTTPREQUEST,SENDDATA,MQTTPUBLISH,FTPDOWNLOAD,FTPUPLOAD,COMPLETESERVICEATTRIBUTE,COMPLETESERVICEACTION. - Listener szkriptek — a Packet parser modul listener szkriptje,
RECEIVEDMSGésRECEIVEDBYTES.
Referencia
- Szkriptpéldák — teljes szkriptek valódi eszközsablonokból.
- Szkripthibák és hibaelhárítás — elemzési és futásidejű hibaüzenetek és a javításuk.
- A szkriptek verziókövetelményei — melyik Core buildre van szüksége az egyes függvényeknek.
- Szkriptfüggvények A–Z — minden függvény egy mondattal és hivatkozással.