Mit diesem Funktionsbaustein können eigene Scripte in Hochsprache programmiert werden. Als Interpreter wird Lua (www.lua.org) eingesetzt. In dieser Beschreibung wird nur auf die Spracherweiterungen eingegangen. |
Eingänge |
||
E1-x |
Eingang
1-x |
Eingänge. Diese können im Script über
die globalen Variablen E1, E2 usw. angesprochen werden. Zur besseren
Übersicht können diesen auch Alias Namen zugeordnet werden. |
Ausgänge |
||
A1-Ax |
Ausgang
1-x |
Ausgänge. Diese können im Script über die globalen Variablen A1, A2 usw. angesprochen werden. Zur besseren Übersicht können diesen auch Alias Namen zugeordnet werden. |
Parameter |
||
Anzahl
Eingänge |
Anzahl der Eingänge |
|
Anzahl
Ausgänge |
Anzahl der Ausgänge | |
Eventfilter |
Standardmäßig werden Events bzw. Telegramme nur an den Funktionsbaustein weiter geleitet wenn die entsprechenden Variablen an den Ein- oder Ausgängen verknüpft sind, durch Ausschalten dieses Filters werden alle Events an den Funktionsbaustein weitergeleitet. Bitte beachten Sie, dass die Bearbeitung aller Events bei großen Projekten mehr Bearbeitungszeit in Anspruch nimmt, der Filter sollte daher nur deaktiviert werden wenn dies nötig ist. | |
Passwort | Optional kann ein Passwort vergeben werden. Das Script kann dann nur mit gültigen Passwort bearbeitet werden. Bitte beachten: Es gibt keine Möglichkeit das Passwort zurückzusetzen. | |
Bearbeiten |
Klicken Sie auf diesen Button um das
Script zu bearbeiten, alternativ kann auch mit der rechten Maustaste
auf den Funktionsbaustein geklickt werden. |
Wichtig:
onCreate() |
Diese Funktion wird einmalig
aufgerufen wenn der Funktionsbaustein initialisiert wird. Hier
können beispielsweise Initialisierungen von globalen Variablen
definiert werden. |
onInputChanged() |
Diese Funktion wird aufgerufen wenn
die Initialisierung beendet ist (nach onCreate), oder sich die
Eingängen geändert haben. Zudem wird diese Funktion bei jedem
Telegramm aufgerufen (auch wenn sich die Eingänge nicht geändert
haben). |
onEvent(Value,PhysAddress,GroupAddress,Command) |
Diese Funktion wird aufgerufen wenn
ein Telegramm empfangen wurde, beispielsweise eine KNX Variable
welche am Eingang verknüpft wurde. Standardmäßig werden nur
Telegramme an das Script weitergeben welche an den Eingängen
verknüpft wurden, dies kann mit dem Parameter "Eventfilter"
deaktiviert werden. Folgende Argumente werden der Funktion übergeben:
|
onTimerEvent100ms() | Diese Funktion wird alle 100 ms
aufgerufen |
onTimerEvent1s() |
Diese Funktion wird 1x pro Sekunde
aufgerufen. |
onTimerEvent1m() |
Diese Funktion wird 1x pro Minute
aufgerufen. Der Aufruf erfolgt immer am Beginn jeder Minute. |
onTimerEvent1h() |
Diese Funktion wird 1x pro Stunde aufgerufen. Der Aufruf erfolgt immer am Beginn jeder Stunde. |
onGlobalChanged(Id,Value) | Diese Funktion wird aufgerufen wenn über sys_set_global_value eine globale Variable verändert wurde. |
onOsExecuteFinished(Id,Result) | Diese Funktion wird aufgerufen wenn der über sys_os_execute aufgerufene Befehl ausgeführt wurde. Id ist die Id welche von sys_os_execute übergeben wurde, Result ist das Ergebnis, 0=Kein Fehler, ansonsten ein Fehlercode abhängig vom Befehl der aufgerufen wurde. |
onNetRead(DataString,SizeString,DataHex,SizeHex) | Funktion wird aufgerufen wenn Daten über eine Netzwerkverbindung empfangen wurden. Die Daten werden jeweils als String und Hexadezimal String übergeben. |
onNetState( State, Message ) | Funktion wird aufgerufen wenn sich der Netzwerk Status ändert:
|
sys_set_value("0/0/0",Value,Force) |
Schreiben einer beliebigen Variable: Die Variable wird nu gesendet wenn sich der Wert geändert hat. Dadurch kann die Funktion auch zyklisch aufgerufen werden.
|
sys_get_value("0/0/0") |
Abfrage des Wertes einer Variable
|
sys_debug_print("Name: ",Value) |
Ausgabe eines Textes in der Konsole.
Bei jedem Aufruf wird eine neue Zeile in der Debug Konsole
ausgegeben, dies kann beispielsweise verwendet werden um zu prüfen
ob eine Funktion aufgerufen wurde. Der Funktion werden zwei
Argumente über geben:
|
sys_debug_watch("Name: ",Value) |
Ausgeben des Wertes einer Variable. Der Funktion werden zwei Argumente über geben:
|
sys_alias("E1","Wert_xy") |
Mit dieser Funktion kann einem Ein-
oder Ausgang ein symbolischer Name zugewiesen werden. Diese werden
dann auch im Fenster für die Verknüpfungen angezeigt. Wichtig: Alias müssen in der Funktion "onCreate()" definiert werden. Die Alias Namen dürfen keine Leer , Umlaute oder Sonderzeichen enthalten. Wenn einem Ausgang ein Alias Name zugewiesen wurde, muss dieser verwendet werden, Alias Name hat Vorrang vor A1 usw.
|
sys_get_addr_in(1) |
Liefert die Adresse der verknüpften
Variable eines Einganges im Format "1/2/3" zurück, 1 ist hierbei E1
usw. |
sys_get_addr_out(1) | Liefert die Adresse der verknüpften Variable eines Ausganges im Format "1/2/3" zurück, 1 ist hierbei A1 usw. |
sys_set_persistent_value("Id","Value") |
Mit dieser Funktion können beliebige
Daten in den persistenten Bereich der Steuerung gespeichert werden.
Anders als die Funktion sys_set_value können mit dieser Funktion
beliebige Werte unabhängig vom Datentyp einer Variable gespeichert
werden. Wichtig: Die Steuerung ist mit einem Flash Speicher ausgestattet der nicht beliebig oft beschrieben werden darf. Diese Funktion darf daher nicht zu oft aufgerufen werden. Ständiges speichern persistenter Werte verkürzt die Lebensdauer des Flash Speichers und führt zum Defekt bzw. Datenverlust. |
sys_get_persistent_value("Id","DefaultValue") | Mit dieser Funktion können die
persistenten Werte wieder ausgelesen werden. |
sys_set_global_value("Id","Value",force) | Setzen einer globalen Variablen. Mit
dieser Funktion können globale Variablen verwendet werden. Über
diese können mehrere Instanzen des Interpreters kommunizieren.
Beispielsweise mehrere Script Funktionsbausteine ohne Variablen
verwenden zu müssen. Als Parameter wird eine eindeutige Id und der Wert übergeben, optional der Parameter force ( 1 oder 0 ). Bei Änderung eines Wertes, wird an allen Funktionsbausteinen die Callbackfunktion "onGlobalChanged" aufgerufen, ausgenommen der Baustein der den Wert geändert hat. Ist der Parameter force mit 1 angegeben, wird die Funktion "onGlobalChanged" immer aufgerufen, auch wenn sich der Wert nicht geändert hat. |
sys_get_global_value("Id","DefaultValue") | Lesen der globalen Variablen. |
id = sys_os_execute() | Aufruf eines externen Programms. Dieser Aufruf ist ähnlich dem Lua Befehl "os.execute", jedoch wird der Befehl im Hintergrund ausgeführt und blockiert das Script nicht. Nach der Ausführung wird die Callback Funktion onOsExecuteFinished aufgrufen. |
sys_send_mail() | Senden einer Mail
|
id = sys_timer_create() | Erzeugt einen Timer. Bevor Timer verwendet werden können, müssen
diese zuerst initialisiert werden. Diese Funktion gibt eine ID
zurück, welche für alle weiteren Funktionen als Parameter verwendet
wird. |
sys_timer_start(id,timeMs) | Startet den Timer. |
sys_timer_stop(id) | Stoppt den Timer. |
sys_timer_elapsed(id) | Gibt die Zeit seit dem Start des Timers in Millisekunden zurück. |
sys_timer_finished(id) | Gibt 1 zurück wenn die Zeit welche mit "sys_timer_start" angegeben wurde abgelaufen ist. |
sys_comm_open("/dev/ttyONBOARD-232","115200","8","1","N") | Mit dieser Funktion wird die serielle Schnittstelle initialisiert.
|
sys_comm_close() | Port wird geschlossen. |
len,dataString = sys_comm_read(len,timeout,"_ASCII") | Liest Daten von der Schnittstelle
|
sys_comm_write(len,data,"_ASCII") | Sendet Daten zur Schnittstelle
|
Id = sys_net_create("_TCP",IPAddress,IPPort,Timeout) | Initialisiert die Netzwerk Verbindung. Diese Funktion ist nicht
blockierend. Die Verbindung wird im Hintergrund aufgebaut, der
Status wird in der Callback Funktion "onNetState" zurückgegeben.
Siehe Callback Funktionen "onNetState( State, Message )",
"onNetRead( Data, Size )" |
sys_net_write(Data,"_STRING") | Sendet Daten zum Verbundenen Netzwerkgerät
Rückgabe
|
sys_net_close(Id) | Schließt die Verbindung. |