T4gl – Testing 4GL – Realtime Interpreter
Auftraggeber:
Brückner & Jarosch GmbH (Eigenentwicklung)
Zeitraum:
ab 2006
Problem:
Wiederkehrende Aufgabenstellungen bei der Automation von komplexen Prüfsystemen:
- Ablaufsteuerung
- Erfassung und Verarbeitung von Prozessspiegeln/Datenströmen
- Abarbeitung von Zustandsübergängen
- Anbindung von Subsystemen
- Notwendigkeit von garantiertem Antwortverhalten
- Einsatz von hochqualifizierten Entwicklern mit Kenntnissen über das zu automatisierende System und das Entwicklungsframework
Ziel:
- Schaffung einer domainspezifischen Sprache zur Beschreibung von Aufgaben im Automations- und Testsystem-Umfeld
- Entkopplung der teilweise komplexen Anbindung von Subsystemen an das Automationsframework von der Ablaufbeschreibung
- Einfache Implementierung von parallel ablaufenden Steuer- und Regelprozessen
- Strukturierte Integration von Prozessspiegel-Daten
- Senkung der Anforderungen an die einzusetzenden Entwickler
Lösung:
Es wurde eine in der Syntax an C angelehnte, streng typisierte Script-Sprache entwickelt, die Spachkonstrukte zur Abbildung von State-Machines, automatisch aktualisierte Variablen, Konstrukte zur Abbildung von Zeitschranken im Code und andere im Testsystem-Umfeld hilfreiche Elemente integriert. Dabei wurde streng darauf geachtet, alle blockenden Operationen in unabhängig von der Ablaufsteuerung laufende Threads auszulagern. Auch die Kommunikation mit angebundenen Subsystemen, die mit Hilfe von C++ Modulen ausgeführt ist, findet ausschließlich über jeweils eigene, unabhängig laufende Worker-Threads statt. Zur Unterbindung von unnötigen Laufzeitfehlern wird T4gl-Code beim Programmstart vollständig compiliert.
Auf einem echtzeitfähigen Linux läuft T4gl mit einer Zykluszeit von 1 ms. Je nach Subsystemanbindung sind damit garantierte Antwortzeiten im Bereich weniger Millisekunden erreichbar.
Technologien:
- ANTLR 2.7
- C++
- QT4
Ergebnisse/ Vorteile:
T4gl wird seit 2006 durch Brückner & Jarosch hauptsächlich bei der Entwicklung von Getriebe-Prüfständen eingesetzt. Es konnte dabei eine wesentliche Steigerung der Produktivität gegenüber der herkömmlichen Entwicklung von Prüfständen in Sprachen wie C oder C++ festgestellt werden. Gleichzeitig war es durch den Einsatz von T4gl, ohne Abstriche in Code-Qualität oder -Wartbarkeit, möglich Entwickler einzusetzen, deren Spezialisierung näher am zu beschreibenden Problem als in der Benutzung von komplexen C oder C++ Frameworks liegt.
Einsatz/ Referenzkunden:
ZF Passau Gmbh (Testsyteme): z.B. EOL DT12