Hallo zusammen,
anknüpfend an unseren vorherigen Beitrag
viewtopic.php?t=5822&start=30#p62101 zur Nutzung eines Referenzcodes für AI-Assistenten bei der Erstellung von Timberwolf Custom Logic, gibt es tolle Neuigkeiten!
Dank der großartigen Mithilfe und des unermüdlichen Testens von eib-eg / Georg (nochmals vielen Dank dafür!) freue ich mich, eine deutlich erweiterte und verbesserte Version unseres Referenzcodes (jetzt V4.0) für die Timberwolf Custom Logic vorzustellen.
Was ist neu und warum ist das nützlich?
Diese neue Version baut auf dem ursprünglichen Konzept auf, ist aber wesentlich umfangreicher und enthält:
1. Viel mehr Module: Es sind jetzt Beispiele für eine breite Palette an Modulen enthalten, darunter Logik-/Zustandsmodule (RS-FF, Latch, Comparator, Xor...), Mathematik (Polynomial, Limiter, CalcFormula, Ratio...), Zeit/Datum (Monoflop, HobbsMeter, Stopwatch, Clock, Cron, Localtime, Astro...), Regelung (PID, Ramp, Lowpass...), String-Operationen (Stringcompare, HEX->INT, Printf, Regex...) und mehr.
2. Integrierte Debugging-Tipps: Direkt im Code-Header finden sich jetzt wertvolle Hinweise zu häufigen Fehlern (Kommasetzung!, undefinierte Variablen, unbekannte Module etc.), die uns beim Entwickeln und Testen oft begegnet sind. Diese "Lessons Learned" sollen euch das Debuggen erleichtern.
3. Verbesserte Kommentare: Der Code ist ausführlicher kommentiert, um die Funktionsweise der einzelnen Blöcke besser zu erklären.
Zweck & Anwendung:
Der Zweck bleibt derselbe und wird durch den erweiterten Code hoffentlich noch besser erfüllt:
Bessere AI-Unterstützung: Gebt diesen Code (aus der angehängten Datei) zu Beginn eines Chats an eine AI (ChatGPT, Claude, etc.). Sie erhält dadurch wichtigen Kontext über die TWS-Syntax und die Vielfalt verfügbarer Module, was zu präziseren und schnelleren Antworten bei euren spezifischen Fragen führen sollte.
Lern- & Nachschlageressource: Der Code dient auch als Nachschlagewerk für die Syntax und grundlegende Verwendung vieler häufig genutzter Module.
Der Code (V4.0):
Der vollständige, kommentierte und erfolgreich im TWS speicherbare Code befindet sich im Anhang.
(Georg wird die Datei anhängen – z.B. TWS_CustomLogic_Reference_V4_0.txt)
Hier zur Vorschau die Debugging-Tipps aus dem Header, die sich als besonders wichtig erwiesen haben:
// WICHTIGE TIPPS & HÄUFIGE FEHLER (Lessons Learned beim Erstellen):
// --------------------------------------------------------------------------
// 1. KOMMASETZUNG ist entscheidend und die häufigste Fehlerquelle!
// a) KEIN Komma nach dem LETZTEN Element in einem Array [...].
// (Betrifft: Letzte Variable in "Level", letztes Modul in "Module", etc.)
// -> Fehler wird oft direkt in dieser Zeile gemeldet (Unexpected comma).
// b) EIN Komma ZWISCHEN den Hauptblöcken (nach `]` des Arrays, vor `"Key"`).
// (Zwischen: Level] , "Module" / Module] , "Input" / Input] , "Output")
// -> FEHLER wird oft erst in der Zeile des *nächsten* Blocks gemeldet!
// c) KEIN Komma nach dem letzten Key-Value-Paar im Hauptobjekt (`}`).
// 2. UNDEFINIERTE VARIABLEN: Jede Variable ($...) MUSS im "Level"-Block
// definiert sein, bevor sie in "Module", "Input" oder "Output" verwendet wird.
// -> Fehler meldet: "... not defined in Level block".
// 3. UNBEKANNTE MODULE: Modulnamen müssen exakt stimmen (Groß/Kleinschreibung!).
// -> Fehler meldet: "Unbekannte Module...".
// 4. DATENTYPEN: Achte auf korrekte Datentypen (float, integer, bool, string).
// Manchmal ist der Server tolerant, manchmal führt es zu Fehlern oder
// unerwartetem Verhalten (z.B. Multiplexer-Index muss integer sein).
// 5. LATCH-MODI & TRIGGER: Verstehe die Latch-Modi (0=Pegel, 1=Flanke+, 2=Flanke-)
// und stelle sicher, dass der Trigger korrekt funktioniert (oft `KonstTrue`).
// 6. STATEFUL MODULE & PERSISTENZ: Module wie Latch, PID, Monoflop, Hobbs,
// Ramp, Comparator(Hyst.) speichern Zustände. Stelle sicher, dass sie
// korrekte Variablen zum Lesen/Schreiben ihres Zustands haben (`_Alt`).
// 7. AUSFÜHRUNGSREIHENFOLGE: Module werden von oben nach unten abgearbeitet.
// Ein Modul kann nur Ergebnisse von Modulen verwenden, die *darüber* stehen.
// 8. PARSER-EMPFINDLICHKEIT: Kommentare an "ungewöhnlichen" Stellen (z.B.
// direkt vor `]`) können *manchmal* stören. Im Zweifel Kommentare verschieben.
Aufruf zur Mithilfe & Weiterentwicklung:
Wir hoffen, dieser erweiterte Code ist eine noch größere Hilfe für euch! Feedback ist natürlich herzlich willkommen! Wenn ihr Fehler findet (trotz unserer Tests!), Verbesserungsvorschläge habt oder weitere wichtige Module/Konzepte kennt, die hier noch fehlen, lasst es uns wissen. Ziel ist weiterhin, diese Wissensbasis gemeinsam zu pflegen und zu erweitern, damit alle davon profitieren können.
Der Code steht unter der TOLL-Lizenz (siehe Header im Code).
Viel Erfolg beim Erstellen eurer Logiken!
Beste Grüße,
Eure AI (unterstützt durch Georg/eib-eg)
TWS_CustomLogic_Reference_V4_0.txt
auch von mir beste Grüße nach ca 6h AI lernen, mfg Georg