Insider Preview IP 1 zur V 4.8 - veröffentlicht

Verehrte Nutzer des Timberwolf Servers. Wir haben die IP1 zur nächsten Hauptversion 4.8 für alle Modelle des Timberwolf Servers freigegeben.

Bild

Diese neue Version enthält eine neue Funktion zum selektiven Löschen von Datenpunkten in ein oder mehreren Zeitserien sowie 16 Verbesserungen und wichtige Fehlerkorrekturen


Insbesondere die neuen Funktionen zum selektiven Löschen in Zeitserien sind sehr wichtig, weil damit erstmals ein Bereinigen sowie ein Kürzen von Zeitserien möglich wird. Damit kann massiv Speicherplatz reduziert werden, womit auch Backup / Restore kürzer wird. Zudem können damit Datenschutzanforderungen umgesetzt werden.

Foren Diskussion: viewtopic.php?t=6070

Release Notes im Wiki: https://elabnet.atlassian.net/wiki/x/AYCEyw


WICHTIG: Dies ist die eine neue Insider Preview im Zyklus 4.8. Mit Installation der letzten Hauptversion 4.5 wurde der Bezug für Insider Versionen zurückgesetzt. Mitglieder im Insider Club müssen daher in der Systemaktualisierung erst den Bezug von Insider Versionen wieder freischalten, damit das Update angezeigt wird.

Universalzähler, kann bspw. als Trigger für eine RGB-Ausgabe verwendet werden

Hier stellen Foristen und Kunden Ihre EIGENEN Logikbausteine vor. Diese Logikbausteine stehen jedem im Rahmen der vom Autor eingeräumten / genannten Lizenz zur Verfügung.
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Antworten

Ersteller
fechter65
Beiträge: 240
Registriert: Mo Aug 13, 2018 10:44 am
Hat sich bedankt: 224 Mal
Danksagung erhalten: 171 Mal

Universalzähler, kann bspw. als Trigger für eine RGB-Ausgabe verwendet werden

#1

Beitrag von fechter65 »

Meine erste grössere Logik, ich hoffe, sie tut, was sie soll.

Hintergrund: Ich benötigte einen Zähler, der periodisch eine Integer-Zahl in einem bestimmten Wertebereich ausgibt, damit ich aus einem Array von RGB-Farben im vorgebenen Intervall einen Farbe ausgeben kann. Die eigentliche Ansteuerung der RGB-Kanäle und der RGB-Array liegt in einer anderen Logik (viewtopic.php?f=65&t=2187 ).

Die vorliegende Logik
- zählt in einem vorgegebenen Wertebereich (Startwert bis Endwert),
- nach Ablauf einer bestimmten Zeit (Intervalldauer),
jeweils eine Integerzahl (Ausgang "Zähler") hoch.

Wird der Endwert erreicht, beginnt der Zähler wieder beim Startwert (ausser der Eingang "Schlaufe" wird auf FALSE gesetzt).
Über den Eingang "Reset" kann festgelegt werden, ob bei einem Neustart beim Anfangswert (Reset = TRUE) oder beim letzten Wert, der beim Stoppen der Logik erreicht worden ist, fortgesetzt werden soll.
Ein- und ausgeschaltet wird die Logik über den Eingang "Freigabe".

Code: Alles auswählen

/**
 * Universalzähler (integer)
 * Die Eingänge können entweder als Parameter mit konstanten Werten belegt werden oder als "echte" Eingänge von Objekten des TWS-Objektsystems gesteuert werden.
 *  
 */

{
  "_Meta": { // Optional
    "Description": "",
    "Version": "1.00",
    "Icon": "" // format: "data:image/svg+xml;base64,ENCODED_FILE"
  },
  "Input": [
    ["Startwert","Wert (integer), der als erstes ausgegeben wird ","$Start","a" ],
    ["Endwert","Wert (integer), der als letztes ausgegeben wird ","$Ende","a" ],
    ["Intervalldauer","in Sekunden","$Period","a"], 
    ["Schlaufe","TRUE, sofern Endlosschlaufe gewünscht wird, ansonsten wird nach einem Durchgang gestoppt", "$Schlaufe","a"],
    ["Reset", "Falls TRUE, startet der Zähler nach Freigabe immber beim Startwert, sonst Fortsetzung beim letzten Wert", "$Reset", "a"],
    ["Freigabe", "Logik läuft nur, wenn dieser Eingang auf TRUE gesetzt ist", "$Freigabe", "a"]
  ],
  "Output": [
//    ["Startwert","Z","$Startwert","a"],
    ["Zähler","Z","$Zaehler","a"]

  ],
  "Module": [
    ["Clocksignal","$true",0,"$Period"], // Intervalltakter
    ["Break",["-$Freigabe"]], // Abbrechen, wenn Freigabe nicht auf TRUE

//  Prüfen, ob Freigabe geändert hat und Zählerreset erforderlich wird    
        ["And",["$false"],"$FreigabeWechsel"], //Freigabewechsel auf FALSE setzen
        ["Latch","$true","$FreigabeWechsel","$Freigabe",3], // Prüfen, ob sich Freigabe geändert hat
        ["And",["$true", "$FreigabeWechsel", "$Reset"],"$ResetWert"], // Wenn Freigabewechsel und Reset TRUE, dann Reset gewünscht
        ["Latch","$Startwert","$Zaehler","$ResetWert",0], // wenn Reset gewünscht, dann Zaehler zurücksetzen  

// Prüfen, ob Ende der Schlaufe erreicht ist
    ["Limiter","$Zaehler",0,"$Test",["$Ende", "$Ende"]], // Prüfen, ob Zaehler dem Endwert entspricht
    //Prüfen, ob Abbruch, weil keine Dauerschlaufe
        ["And",["$Test","-$Schlaufe", "$true"],"$Schlaufestop"], //wenn Schlaufe durchlaufen (Test) und keine Dauerschlaufe gewünscht, dann TRUE
        ["Break",["$Schlaufestop"]], // Abbrechen, wenn Schlaufestop TRUE
    ["Latch","$Startwert","$Zaehler","$Test",0], // wenn Durchlauf erfolgt, Zaehler auf Startwert setzen

//Initialisierung des Startwerts
    ["Polynomial","$Z1","$Startwert",["$Start","-$Z1"]], // Startwert setzen, muss um 1 kleiner als Start sein, weil am Schluss Zaehler noch um 1 erhöht wird

//Zaehler erhöhen, wenn nötig   
    ["Comparator", "$Zaehler","$Test", "$Startwert"], // Prüfen, ob Zaehler über Startwert liegt
        ["Latch","$Startwert","$Zaehler","-$Test",0], // wenn Bedingung nicht erfüllt, Zaehler auf Startwert setzen
    ["Polynomial","$Z1","$Zaehler",["$Zaehler","$Z1"]] // Zaehler um 1 erhöhen und ausgeben
  ],
  "Level": [
    ["$true","bool",true],
    ["$false","bool",false],
    ["$Test","bool", false],
    ["$Schlaufe","bool", false],
    ["$Schlaufewert","bool", false],
    ["$Schlaufestop","bool", false],
    ["$Durchgelaufen","bool", false],
    ["$Freigabe","bool", false],
    ["$FreigabeWechsel","bool", false],
    ["$Reset","bool", false],
    ["$ResetWert","bool", false],
    ["$Stop","bool",false],
    ["$Start","integer",0],
    ["$Ende","integer",0],
    ["$Startwert","integer",0],
    ["$Endwert","integer",0],
    ["$Zaehler","integer",0],
    ["$Period","integer",0],
    ["$Out","integer",0],
        ["$Z0", "integer",0],
        ["$Z1", "integer",1],
        ["$Z2", "integer",2],
        ["$Z3", "integer",3],
        ["$Z4", "integer",4],
        ["$Z5", "integer",5],
        ["$Z6", "integer",6],
        ["$Z7", "integer",7],
        ["$Z8", "integer",8],
        ["$Z9", "integer",9]

]
}
Gruss
Diego
Zuletzt geändert von fechter65 am Do Mai 28, 2020 11:31 pm, insgesamt 1-mal geändert.
TW2600 / TW-ID: 87/ VPN offen, booten jederzeit erlaubt
TW2600 / TW-ID: 173/ VPN offen, booten nach Rücksprache
TWS3500 / TW-ID: 1170/ VPN offen, booten jederzeit erlaubt
Antworten

Zurück zu „Zusätzliche Logikbausteine“