Computed atributy představují další možnost jak rychle a bezpracně předpřípravovat data již během procesu jejich zpracování do systému WorkSys. Jedná se o velmi efektivní nástroj, který umožňuje asynchronně vypočítat hodnotu ze statických nebo naměřených poli.
Typickým příkladem použití je například. spotřeba elektrické energie v lokální měně, kde přes tarifní ceny a spotřebovanou energii spočítáme reálné finanční náklady.
Podobně je to například při výpočtu OEE – Quality, kde přes poměr kvalitativně shodných vyrobených kusů / počet celkově vyrobených kusů * 100, umíme procentuálně vyjádřit hodnotu parametru.
Určitě sami umíte nalézt další použitelné příklady a proto si v krátkosti ukážeme jak to do Typu Entity nadefinovat. Důležité je si připomenout základní fakta:
je to aplikovatelné pro Atributy s parametrem „type“ : „computed“
do výpočtu pole lze zahrnout pouze Atributy s parametrem „type“ : „static“ nebo „type“ : „telemetry“
hodnoty se počítají asynchronně, ale vždy se dopočítají, takže výpočet může trvat někdy i více než 1-2 sekundy
Je možné počítat is atributy jiných entit, ale podmínko je aby Entity byly ve stejné logické linii (na stejné nebo vyšší úrovni).
Pokud používáte kontextový Atribut z aktuální instance Entity a výsledek výrazu závisí na jeho hodnotě a je třeba jej vyhodnotit při každé změně hodnoty, musíte do definice závislého atributu přidat Parametr computed_attributes s odkazem na název vypočteného atributu.
Následující příklad popisuje výpočet nákladů v lokální měně u Entite elektroměru, který měří Atribut Total Energy. Atributy v sekci „computed_attributes“ určují, že která Computedpole se mají dopočítat, pokud se zapíše hodnota do pole „total_energy„.
Pojďme si prohlédnout definice Atributů vybraných polí obsažených v computed_attributes.
Následující příklad ukazuje definici Atributu s přepočtem na kW, též obsažený Atribut v computed_attributes.
V případě potřeby je možné přes Parameter „context“ definovat i lokální proměnné (jako např. proměnnou kilo). Samotný vzorec pro výpočet se definuje pomocí Parametru „expression„.
Pokud je třeba zahrnout do výpočtu Atribut jiné než definované entity, lze použít Parametr „entity_ids„, kde definujete ID vybrané Entity. (viz následující obrázek.)
V prípade ak tých entít potrebujete spracovať viac je možne pole „entity_ids“ definovať ako objekt s viacerými hodnotami. (Viď. nasledújúci obrázok)
Potom se do Parametru „expression“ ve vzorech zohlední pořadí objektů v definici „entities„.