Skriv et script til et virtuelt tag

Beregn et tags værdi ud fra andre tags — læsescripts, skrivescripts og gennemarbejdede eksempler.

ProjekterDit projektTags

Et virtuelt tag får sin værdi fra et script i stedet for fra en enhed. Denne vejledning viser, hvordan du skriver et. Se referencen for virtuelle tags for den fulde liste over funktioner.

1. Tilføj et virtuelt tag

Klik på Ny i et projekts visning Tags, vælg Tag, og vælg typen Virtuelt tag. Giv det et navn og en datatype, og skriv derefter dets Læsescript.

2. Henvis til andre tags

Scripts læser andre tags via deres sti, som gives til funktionen value(). I stedet for at skrive stien kan du trykke på Shift + Alt + T for at vælge et tag og indsætte det; tryk på Shift + Alt + A for at indsætte en alarm. Autofuldførelse (Ctrl/⌘ + mellemrum) viser alle de funktioner, du kan kalde.

// The current value of another tag
value("Meters/Main meter");

3. Skriv læsescriptet

Et læsescript returnerer taggets værdi. Et par almindelige eksempler:

Kombinér tags — læg to målere sammen:

value("Meters/Meter A") + value("Meters/Meter B");

Omregn enheder — Wh til kWh:

value("Boiler/Energy") / 1000;

Udled en status — 1, når en alarm er aktiv, ellers 0:

alarmValue("Boiler/High temperature") ? 1 : 0;

Brug historik — midtpunktet af den seneste times interval ved hjælp af tidsfunktionerne:

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;

Angiv et Genberegningsinterval (i sekunder), hvis værdien skal opdateres efter en timer; ellers genberegnes den, når de tags, den henviser til, ændres.

4. Tilføj et skrivescript (valgfrit)

For at gøre et virtuelt tag skrivbart skal du også tilføje et Skrivescript; et virtuelt tag er kun skrivbart, når det har begge dele. Skrivescriptet kører, når nogen skriver til tagget, og modtager den indkommende værdi fra inputValue(). Videresend den til rigtige tags med writeValue().

Tag for eksempel en procentværdi (0–100), der skrives til det virtuelle tag, og send den til en ventilator som et setpunkt på 0–10 V:

writeValue("AHU/Fan", (inputValue() / 100) * 10);

5. Gem, og kontrollér

Gem tagget, og kontrollér, at det viser en fornuftig værdi i visningen Tags. Editoren markerer syntaksfejl direkte, mens du skriver; hvis værdien ser forkert ud, så kontrollér tagstierne, og at datatypen passer til det, scriptet returnerer.