Funktion | Erläuterung |
logic_getInputs($id) Alias: getLogicEingangDataAll |
Liefert die aktuellen Daten aller Eingänge der LBS-Instanz $id zurück.
Rückgabe:
ARRAY[Eingang]['value','refresh'] (im Fehlerfall wird FALSE zurückgegeben):
|
logic_getVars($id) Alias: getLogicElementVarAll |
Liefert ein Array mit den aktuellen Werten aller Variablen der LBS-Instanz $id zurück. Rückgabe: ARRAY[Variablen-ID] |
logic_getVar($id,$varid) Alias: getLogicElementVar |
Liefert den aktuellen Wert einer Variable der LBS-Instanz $id zurück. $varid: Nr. der Variable (1..∞) Rückgabe: Variant oder NULL (Fehler) |
logic_setInputKoValue($id,$eingang,$value) | Setzt das KO am Eingang $eingang der LBS-Instanz $id auf den Wert $value. Sofern am Eingang $eingang ein KO anliegt, wird der Wert dieses KOs auf den Wert $value gesetzt und die Funktion liefert den Wert "true" zurück. Falls am entsprechenden Eingang kein KO anliegt (der Eingang ist unbelegt oder mit einem anderen LBS verbunden), liefert die Funktion den Wert "false" zurück. $eingang: Nr. des Eingangs (1..∞) $value: zu setzender KO-Wert Rückgabe: true (KO-Wert wurde gesetzt) false (am entsprechenden Eingang liegt kein KO an) |
logic_setVar($id,$varid,$value) Alias: setLogicElementVar |
Setzt eine Variable der LBS-Instanz $id auf einen Wert. $varid: Nr. der Variable (1..∞) $value: zu setzender Wert |
logic_setOutput($id,$ausgang,$value) Alias: setLogicLinkAusgang |
Setzt einen Ausgang der LBS-Instanz $id auf einen Wert. $ausgang: Nr. des Ausgangs (1..∞) $value: zu setzender Wert Hinweis: Intern wird nicht der Ausgang auf einen Wert gesetzt, sondern alle Eingänge, die mit dem Ausgang verbunden sind: Erst beim Verlassen der Hauptfunktion LB_LBSID() wird die Logik-Engine die entsprechenden Änderungen abarbeiten. Ein mehrfacher Aufruf von logic_setOutput() vor dem Verlassen der Hauptfunktion führt daher dazu, dass nur der letzte (aktuellste) Aufruf berücksichtigt wird. Wichtig: Die Verwendung dieser Funktion in einem EXEC-Script führt bei einem sehr häufigen Aufruf in kurzer Zeit u.U. dazu, dass einzelne Aufrufe unwirksam bleiben (das EXEC-Script wird asynchron ausgeführt). Ggf. ist daher die Funktion logic_setOutputQueued() im EXEC-Script zu verwenden (s.u.). |
logic_setState($id,$status[,$delay[,$interval]]) Alias: setLogicElementStatus |
Aktiviert oder deaktiviert das zyklische Aufrufen der LBS-Instanz $id durch die Logik-Engine.
$status:
|
logic_getState($id) Alias: getLogicElementStatus |
Liefert den aktuellen Status der LBS-Instanz $id zurück.
Rückgabe:
INTEGER (im Fehlerfall wird NULL zurückgegeben):
|
logic_debugVar($id,$varName,$value) | Bei aktiviertem Logikmonitor***a-7 für die LBS-Instanz $id wird der Wert $value protokolliert. Der Paramenter $varName ist rein informativ (i.d.R. sollte dies der Name der zu protokollierenden Variable sein). $varName: z.B. der Name der zu protokollierenden Variable (rein informativ) $value: der zu protokollierende Wert (unterstützt werden auch Arrays, Objects, etc.) Beispiel: logic_debugVar($id,'$TMP',$tmp) protokolliert den Inhalt der Variablen $tmp, als Variablenname wird "$TMP" protokolliert |
Funktionen für Logikbausteine mit EXEC-Script Wichtig: Einige der folgenden Funktionen sind ausschließlich für die Verwendung innerhalb eines EXEC-Scripts geeignet. |
|
logic_callExec(LBSID,$id[,$multitasking[,$initStart]]) Alias: callLogicFunctionExec |
Startet ggf. das EXEC-Script der LBS-Instanz $id.
LBSID: Platzhalter für die LBS-ID (nicht verändern!)
$multitasking (optional):
|
logic_getStateExec($id) |
Liefert den aktuellen Status des EXEC-Scripts der LBS-Instanz $id zurück.
Rückgabe:
INTEGER (im Fehlerfall wird NULL zurückgegeben):
|
logic_setInputsQueued($id,$E[,$refreshed[,$list]]) |
Speichert alle aktuellen Eingangsdaten der LBS-Instanz $id in einer Queue, um eine asynchrone Verarbeitung der Eingangsdaten in einem EXEC-Script zu ermöglichen.
$E: Array der Eingangsdaten, i.d.R. das zurückgegebene Array der Funktion logic_getInputs()
$refreshed (optional):
|
logic_getInputsQueued($id[,$fallback[,$sync]]) |
Gibt alle Eingangsdaten der LBS-Instanz $id aus der Queue zurück und entfernt diese Eingangsdaten aus der Queue.
Es werden stets die "ältesten" Eingangsdaten aus der Queue zurückgegeben. Die aktuellsten verfügbaren Daten werden zuletzt zurückgegeben.
$fallback (optional):
|
logic_deleteInputsQueued($id) | Leert die Queue der LBS-Instanz $id, sämtliche Eingangsdaten werden aus der Queue entfernt. Hinweis: Beim Beenden des EXEC-Scripts wird die Queue automatisch geleert. |
logic_setOutputQueued($id,$ausgang,$value) | Wie logic_setOutput(), jedoch wird das Setzen des Ausgangswertes in einer Queue zwischengespeichert. Wenn ein Ausgang sehr häufig in kurzer Zeit auf einen Wert gesetzt werden soll, kann diese Funktion in einem EXEC-Script verwendet werden. Der Aufruf dieser Funktion ist zwar weniger performant, jedoch wird jeder Aufruf garantiert wirksam umgesetzt. Hinweis: Diese Funktion verwendet die selbe Queue wie z.B. Telegramme, Visuelemente, etc. - d.h. bei einer sehr "hochfrequenten" Nutzung dieser Funktion, wird die Abarbeitung von Telegrammen etc. entsprechend verzögert erfolgen! Wichtig: Diese Funktion darf ausschließlich in einem EXEC-Script verwendet werden. |
logic_getEdomiState() |
Diese Funktion ermittelt, ob EDOMI betriebsbereit ist oder z.B. gerade beendet wird.
Rückgabe:
INTEGER:
|
logic_dbKeepalive() | Diese Funktion dient ggf. zur Aufrechterhaltung der Datenbank-Verbindung (u.U. wichtig für EXEC-Scripte). Einige der o.g. Funktionen greifen intern auf eine Datenbank zu. Die Datenbank-Engine trennt jedoch die Verbindung, sobald länger als 8 Stunden keinerlei Zugriff erfolgt - der Aufruf der o.g. Funktionen innerhalb eines EXEC-Scripts(!) wird dann u.U. scheitern! Es ist daher ggf. dafür zu sorgen, dass z.B. stündlich ein Datenbank-Zugriff erfolgt, um die Verbindung aufrecht zu erhalten. Die kann z.B. durch einen zyklischen Aufruf (z.B. alle 60 Minuten) dieser Funktion erfolgen. Hinweis: In der Regel ist die Verwendung dieser Funktion nicht erforderlich: Eine (Endlos-)Schleife im EXEC-Script sollte stets in der Form "while (logic_getEdomiState()==1)" implementiert werden (siehe Beispiel "EXEC-Script als Dämon"***r-0-4), damit der Prozess beim Beenden von EDOMI kontrolliert beendet wird. Die Funktion "logic_getEdomiState()" sorgt dabei bereits für eine Aufrechterhaltung der Datenbank-Verbindung. Wichtig: Diese Funktion darf ausschließlich in einem EXEC-Script verwendet werden. |
Funktion | Erläuterung |
convertHSVtoRGB($h,$s,$v) |
Wandelt $h/$s/$v in R/G/B um.
$h/$s/$v: H/S/V-Werte (H=0..255, S=0..255, V=0..255)
Rückgabe:
ARRAY[0..2] (FLOAT) oder FALSE (Fehler):
|
convertRGBtoHSV($r,$g,$b) |
Wandelt $r/$g/$b in H/S/V um.
$r/$g/$b: R/G/B-Werte (R=0..255, G=0..255, B=0..255)
Rückgabe:
ARRAY[0..2] (FLOAT) oder FALSE (Fehler):
|