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