Přístup k proměnným
Každá proměnná projektu je ve skriptu dostupná jako objekt pod svým
jménem. Proměnná pojmenovaná OilTemp se tedy ve skriptu používá přímo:
teplota = OilTemp.RawValue # čtení raw hodnoty
OilTemp.RawValue = 42 # zápis raw hodnoty (typ se převede automaticky)
eng = OilTemp.EngValue # čtení engineering hodnoty (po konverzi)
OilTemp.EngValue = 105.5 # zápis engineering hodnoty (inverzní konverzí)
print(OilTemp.Name, OilTemp.Id) # jméno a Id proměnné
- RawValue — syrová hodnota, čtení i zápis,
- EngValue — hodnota po konverzi (viz Konverze a prezentace), čtení i zápis,
- Name, Id — identifikace proměnné.
Zápis do EngValue provede inverzní přepočet na raw hodnotu
(u lineární konverze raw = (eng − offset) / multiplier) a výsledek
převede na datový typ proměnné — celočíselné typy se zaokrouhlují.
Hodnota, která se do typu nevejde (přetečení, NaN), zápis neprovede
a skript skončí chybou s varováním v logu — hodnota proměnné zůstane
nezměněná. Pozor u konverzí s offsetem: „nula" v engineering světě není
totéž co raw nula (EngValue = 0 uloží raw −offset/multiplier).
Zápis a zobrazení: virtuální proměnné
Zápis ze skriptu (RawValue i EngValue) hodnotu proměnné jen uloží — sám o sobě nevytvoří vzorek signálu, takže se zapsaná hodnota neobjeví v controlech, grafech ani v logovaných datech. Controly totiž žijí z notifikací komunikovaných proměnných, a ty vydávají protokoly.
Proto existuje dvojice Virtual Variables Host (driver) + Virtual Variables (protokol): proměnnou, kterou má skript počítat a uživatel vidět, přiřaďte tomuto protokolu. Každý zápis skriptu se pak publikuje jako vzorek s časovou značkou okamžiku zápisu a proměnná se chová jako každý jiný signál. Dvojice funguje jen spolu — Project Configuration pod tímto driverem jiný protokol nenabídne. Podrobnosti: Virtual Variables, kompletní ukázka: Simulace: všechny signály. Proměnná bez přiřazení protokolu zůstává levným mezivýpočtem — skripty ji sdílejí, ale nikde se nezobrazuje.
Sdílený prostor skriptů
Všechny skripty projektu sdílejí jeden prostor — co si Startup skript připraví (funkce, připojení, počítadla), mohou periodické skripty používat a Shutdown skript uklidit.
Reakce na změnu hodnoty
Skript v režimu OnValueChanged se váže na konkrétní proměnnou. Podmínka spuštění se ladí v Parameters:
source=eng;mode=above;threshold=50;hysteresis=2
source— vyhodnocovatraw, neboenghodnotu,mode—delta(změna o víc než práh),above/below(překročení hranice, s hysterezí),threshold,hysteresis— práh a hystereze.
Trigger lze pohodlně nastavit i přímo u proměnné (sekce Variables, On-change triggers → Add trigger):


Engine skriptu při spuštění předá kontext v proměnných
qenex_trigger_variable_name, qenex_trigger_old_value,
qenex_trigger_new_value a qenex_trigger_delta.
Dále
Celý příklad pohromadě — Příklad skriptu.

