Mit zunehmender Testabdeckung und Anwendungskomplexität verbringen Ingenieure oft mehr Zeit mit der Wartung der Testmanagementinfrastruktur als mit der Entwicklung von Messungen, was zu weniger wartbaren und wenig wiederverwendbaren Systemen führt. Sequenzierung ist ein Kernbestandteil des Testmanagements und ermöglicht automatisierte Tests und Messungen.
In diesem Whitepaper wird die Verwendung von No-Code-Sequenzierung und Sequenzierung auf Anwendungsebene in einem speziellen Testmanagement-Framework wie NI TestStand behandelt und Sie erfahren, wie Sie den besten Ansatz für Sie finden. In diesem Whitepaper wird auch beschrieben, wie KI zur Beschleunigung der Entwicklung eingesetzt werden kann und wie sich die NI LabVIEW+ Suite im Vergleich zu Open-Source-Lösungen verhält.
Ingenieure verbringen oft zu viel Zeit mit der Entwicklung von Sequenzern, anstatt Testcode zu entwickeln, was die Verteilung und Testausführung verlangsamt. Je größer die Anforderungen werden, desto mehr wird aus dem Sequenzieren und Unterstützen von Programmcode eine zweite Codebasis. In der Regel verlagert sich die Arbeit von neuen Messungen auf die Wartung der Infrastruktur. Operationen wie Schrittausführung, Konfiguration, Testsystembereitstellung, Fehlerbehandlung, Protokollierung und Reporting müssen entwickelt und gewartet werden, um eine kontinuierliche Testproduktivität zu gewährleisten. Die Verlagerung des Fokus weg von der Testausführung in das Testmanagement reduziert die Produktivität, verlangsamt die Replikation auf neue Stationen und erhöht das Risiko. Kleine Änderungen in der Test-Orchestrierung können einen ansonsten stabilen Messcode zerstören.
Eine weitere Herausforderung, die oft übersehen wird, ist nicht genügend Zeit oder Aufwand für die Testmanagement-Infrastruktur – was zu einer wiederholten Entwicklung in späteren Phasen führt. Nehmen Sie beispielsweise ein Validierungsteam, das möglicherweise nur einfache Automatisierungsanforderungen hat. Beim Übergang von der Validierung zur Produktion kommt es wahrscheinlich zu Überschneidungen zwischen den ausgeführten Tests. Wenn die Testinfrastruktur falsch ausgerichtet ist, kann dies zu unnötiger Neuentwicklung von vorhandenem Testcode und Automatisierung führen, die andernfalls in die nächste Phase der Produktentwicklung hätten übernommen werden können.
Ein Sequencer ist die Kontrollschicht, die den Testablauf definiert, wie Schrittreihenfolge, Verzweigung, Grenzwerte/Entscheidungen, Fehlerbehandlung, Protokollerstellung und Ressourcenverbrauch (Instrumente, DUT-Verbindungen, Dateiverzeichnisse usw.). Bei der Entwicklung und Validierung beginnen Teams in der Regel mit interaktiven Messungen, um schnell die „erste Spur“ zu erhalten, und fügen dann Automatisierung hinzu, sobald sich der Workflow wiederholt. Diese Schritte beschreiben einen gemeinsamen Verlauf:
Die einfache Sequenzierung kann in interaktiven Anwendungen für einfache lineare Automatisierungsabläufe durchgeführt werden. Beispiele für diese Art interaktiver Anwendung wären Software wie InstrumentStudio und NI FlexLogger, die codelose Testautomatisierungswerkzeuge bieten.
Stellen Sie sich beispielsweise vor, Sie müssten ein Prüfling (DUT) validieren. In InstrumentStudio können Sie eine Reihe sich wiederholender Schritte in einer Sequenz automatisieren, z. B. das Konfigurieren Ihres Geräts zur Erzeugung eines bekannten Signals, das Messen der Prüflingsantwort und das Aufzeichnen der Ergebnisse. Diese wiederholbare Sequenz ermöglicht es Ihnen, denselben Prozess schnell und ohne zusätzlichen Programmcode auf demselben oder mehreren Geräten erneut auszuführen. Es ist jedoch wichtig zu beachten, dass diese Art von Sequenz in der Regel linear ist und nur die gleichen Schritte in der gleichen Reihenfolge für jedes Gerät ausführt. Für erweiterte Sequenzablaufsteuerung, spezielle Prozessmodelle oder benutzerdefinierte Benutzeroberflächen und Berichte benötigen Sie ein komplexeres Sequenzierungswerkzeug. In InstrumentStudio erstellte Sequenzen werden als Sequenzdatei gespeichert, die auch in TestStand geöffnet werden kann.
Eine detaillierte Liste, was mit dem InstrumentStudio Sequencer erreicht werden kann und was nicht, finden Sie in Tabelle 1.
Hinweis: Der InstrumentStudio Sequencer erfordert eine InstrumentStudio Professional Lizenz, die ebenfalls in der LabVIEW+ Suite enthalten ist.
Weitere Informationen zum InstrumentStudio Sequencer finden Sie auf der Dokumentationsseite zum InstrumentStudio Sequencer Tool.
Abbildung 1. InstrumentStudio Sequencer
Ein weiteres Beispiel für die No-Code-Automatisierung ist die automatische Protokollierung der Ausgabeantwort eines Sensormoduls mit FlexLogger. FlexLogger bietet ein Sequenzierungs-Plugin zur Automatisierung der Datenprotokollierung eines Prüflings. Dazu gehören die Initialisierung eines Datenerfassungsgeräts, das Anlegen von Erregersignalen an den Prüfling und das Protokollieren von Daten für eine definierte Dauer in einer linearen Sequenz. Dieses Plugin ermöglicht die lineare Sequenzausführung, einfache Verzweigungen auf Schrittebene (Überspringen, Wiederholen, Stoppen oder Springen zum Schritt) und abgefragte bedingte Logik (Start, Stopp, Vorbedingungen und Post-Step-Aktionen), wodurch die Automatisierung von Testprozeduren ohne die Notwendigkeit der Entwicklung von Programmcode ermöglicht wird.
Tabelle 2 enthält eine detaillierte Liste, was mit dem FlexLogger Sequenzierungs-Plugin erreicht werden kann und was nicht.
Hinweis: Das Sequenzierungs-Plugin für FlexLogger erfordert eine FlexLogger Professional-Lizenz, die auch in der LabVIEW+ Suite enthalten ist.
Weitere Informationen zum Sequencer Plug-In finden Sie unter https://github.com/ni/niflexlogger-plugins/tree/main/PDK%20plugins/Output%20Sequencer.
Abbildung 2. FlexLogger Sequencing Plug-In
Komplexe Sequenzierung fügt Variabilität (datengesteuerte Parameter), Wiederholungen/Logik überspringen, Parallelität (mehrere Prüflinge, mehrere Standorte), Ressourcenarbitrierung und Rückverfolgbarkeit hinzu. Komplexe Sequenzierungsfunktionen sind bei der Validierung und Produktion von entscheidender Bedeutung, da sie die reproduzierbare Ausführung über Stationen, Variantsysteme hinweg erzwingen, den Durchsatz mit Hilfe fortgeschrittener Prozessmodelle verbessern, deterministisches Verhalten definieren und eine konsistente Nachverfolgung/Protokollerstellung für die Fehlersuche und das Audit der Ergebnisse ermöglichen.
Ein funktionaler Produktionstest mit TestStand kann beispielsweise für mehrere Produktvarianten und Prüflinge die gleichen Kernmessschritte ausführen und Parameter und Ablauf basierend auf einer Konfigurationsdatei oder einer gescannten Artikelnummer anpassen. Die Sequenz kann gemeinsam genutzte Ressourcen (z. B. PXI-Chassis, Stromversorgungen oder Vorrichtungen) initialisieren, dann Test-Threads pro Prüfling parallel ausführen und nicht gemeinsam genutzte Instrumente sperren. Wenn eine Messung fehlschlägt, kann die Sequenz eine bedingte Verzweigung anwenden, z. B. das Ausführen einer diagnostischen Untersequenz oder das Springen zum sicheren Beenden. Sie kann standardisierte Ergebnisse in einem rückverfolgbaren Protokoll mit Seriennummer, Grenzwerten, Bediener-ID und Kalibriermetadaten erfassen. Dieser Prozess stellt sicher, dass jede Station konsistente Daten zur Fehlersuche und Prüfung von Sequenzergebnissen bereitstellt.
Abbildung 3. TestStand Sequencer Editor
Die LabVIEW+ Suite umfasst Sequenzierung auf mehreren Ebenen, je nachdem, wo Sie sich im Entwicklungsworkflow befinden.
In diesem Abschnitt werden drei verschiedene Strategien zur Organisation automatisierter Testsequenzen basierend auf Ihren spezifischen Projektanforderungen beschrieben. Die Wahl des richtigen Ansatzes hängt von der Abwägung Ihrer Anforderungen an Setup-Geschwindigkeit, Skalierbarkeit und langfristige Wartung ab.
Verwenden Sie codelose Testautomatisierungswerkzeuge wie FlexLogger oder InstrumentStudio, wenn der Ablauf einfach ist und Sie eine schnelle Einführung wünschen, ohne ein Framework zu erstellen. Diese Produkte eignen sich am besten für die Bench-Validierung und Charakterisierung – wiederholbare Durchläufe, bei denen der Berichts- und Rückverfolgbarkeitsbedarf minimal ist.
Die Sequenzierung ohne Programmcode vereinfacht die Automatisierung, die oft mit einer Skriptsprache wie Python durchgeführt wird. Dies kann jetzt auf Anwendungsebene erfolgen, wodurch weniger Programmcode geschrieben und validiert werden muss.
Wechseln Sie zu TestStand, wenn Sie mehrere Stationen koordinieren, häufige Änderungen vornehmen, eine Bedienoberfläche benötigen, standardisierte Berichte benötigen, die Ausführung mehrerer Prüflinge oder parallele Ausführung unterstützen oder Compliance- und Traceability-Anforderungen erfüllen müssen. Halten Sie in diesen Fällen den Messcode modular und verschieben Sie die Ablaufsteuerung, die Ergebnisbehandlung und Verteilungsprobleme in den Sequenzer, damit die Orchestrierung nicht in jedes Testmodul übergeht.
Der Hauptanwendungsfall für ein Testmanagement-Framework ist zweifellos in Produktionstestumgebungen, in denen hohes Volumen, hoher Durchsatz und Testrückverfolgbarkeit erforderlich sind. Testverwaltungsanwendungen können jedoch auch innerhalb der Validierungsstufen von Test einen Platz finden. Wenn z. B. eine große Anzahl von Validierungs- und/oder Charakterisierungstests durchgeführt werden muss, werden die Einschränkungen eines einfachen Sequenzers schnell offensichtlich, insbesondere in Sprachen wie Python, die keine Geschwindigkeitsoptimierung haben. Darüber hinaus kann zwischen dem Validierungs- und dem Produktionszyklus eine Lücke bestehen, in der Programmcode möglicherweise umgeschrieben werden muss, um für Produktionstests optimiert zu werden. Durch den Einsatz von TestStand sowohl in der Validierung als auch in der Produktion ist sichergestellt, dass die Validierungsteams für Situationen gerüstet sind, die umfangreiche Tests und einen reibungslosen Übergang in die Produktionsphase der Entwicklung erfordern.
Entwickeln Sie einen benutzerdefinierten Sequenzer nur, wenn Ihre Anforderungen stabil sind und Sie sich für langfristige Eigenverantwortung (Wartung, Dokumentation, Onboarding und automatische Verteilung/Updates) entscheiden können. Außerhalb der einfachen Sequenzierung sind die Betriebskosten oft erheblich im Vergleich zur Verwendung bewährter, gewarteter Sequenzierungswerkzeuge.
NI-Software reduziert das Risiko, wenn Sie integrierte Hardwareunterstützung, gewartete Ausführungs-Engine, Bereitstellungswerkzeuge und integrierte Berichterstellung/Rückverfolgbarkeit benötigen. Open-Source-Software kann funktionieren, wenn Ihr Team das Framework langfristig besitzt und Ihre Anforderungen (Hardwaremix, Reporting, Verteilung) einfach, linear und stabil sind. Außerhalb der grundlegenden Sequenzierung verursacht der Besitz eines benutzerdefinierten Frameworks jedoch erhebliche Kosten für die Entwicklung und Wartung, die bereits in NI-Software wie InstrumentStudio und FlexLogger verarbeitet werden können.
Darüber hinaus bietet TestStand als Teil der LabVIEW+ Suite eine unübertroffene Testleistung im Vergleich zur langsameren Ausführungsoptimierung von Python und eine geringere Komplexität der Sequenzerentwicklung im Vergleich zur Entwicklung in C oder .NET. TestStand bietet ein umfassendes Testmanagement-Framework, das wir über Jahrzehnte hinweg optimiert und gewartet haben, um Ingenieuren die Neuentwicklung derselben Lösung zu ersparen, die bereits im Handel ist.
AI beschleunigt die Entwicklung von Testsequenzen. Viele Entwickler verwenden KI, um Messcode zu erzeugen, Testdaten zu analysieren und sogar einfache schlankere Sequenzen in ihren bevorzugten Sprachen zu erstellen. NI NigelTM AI ist direkt in die LabVIEW+ Suite integriert, so dass Sie alle Vorteile von Nigel AI nutzen können. Nigel AI mit der LabVIEW+ Suite bietet gegenüber anderen AI-Lösungen mehrere Vorteile.
Nigel ist speziell für Test- und Messanwendungen ausgebildet und bietet Ihnen Einblicke in die Verwendung von LabVIEW, InstrumentStudio, FlexLogger und TestStand. Nigel gibt Hinweise, welche Funktionen und Einstellungen zu verwenden sind, und wird in Kürze in einem vollständig entwickelten Testmanagement-Framework eine vollständige TestStand Sequenz aus einer Eingabeaufforderung erzeugen können – genau wie Sie es in Python oder C tun könnten.
Die Testsequenzierung ist ein Kernbestandteil des Testmanagements, da sie definiert, wie Messungen durchgeführt werden, einschließlich Schrittreihenfolge, Verzweigung, Grenzwerte/Entscheidungen, Fehlerbehandlung und Ergebnisprotokollierung/-protokollierung. Mit zunehmender Testabdeckung und Anwendungskomplexität kann die Sequenzierung und Unterstützung der Infrastruktur schnell zu einer zweiten Codebasis werden, die die Verteilung verlangsamt und das Risiko erhöht.
Mit Hilfe der LabVIEW+ Suite können Sie die Automatisierung skalieren, ohne Orchestrierung, Berichterstellung, Verteilung und Rückverfolgbarkeit in jedes Messmodul zu verschieben, indem Sie den einfachsten Sequenzierungsansatz verwenden, der die heutigen Anforderungen mit InstrumentStudio oder FlexLogger erfüllt, und gleichzeitig einen klaren Weg zu einem speziellen Testmanagement-Framework mit TestStand planen, da sich die Anforderungen von der Validierung in die Produktion erweitern. Darüber hinaus bietet Nigel AI umfassende KI-Unterstützung und zukünftige Orchestrierung der Sequenzierungsentwicklung, indem es umfassende Einblicke in Hard- und Software gewährt und die bald implementierte Sequenzerzeugung ermöglicht, um Ihre Automatisierung auf die nächste Ebene zu bringen.
| Fläche | InstrumentStudio Sequencer-Funktionen | Begrenzung des InstrumentStudio Sequencers |
|---|---|---|
| Erstellen einer Sequenz | Sie können Instrumententafeln als Sequenzschritte hinzufügen, um I/O- und Mess-Plugins für benutzerdefinierte Messschritte zu konfigurieren. | Keine erweiterte Verzweigung, bedingte Logik oder parallele Ausführung innerhalb von Sequenzen möglich |
| Konfigurieren von Schritten | Erstellen Sie Schritte direkt aus InstrumentStudio Panel-Messungen. Durch Konfigurieren einer Messung innerhalb einer Instrumententafel kann InstrumentStudio die Konfiguration direkt in einen Automatisierungsschritt umsetzen | Kann keine benutzerdefinierte Messlogik erstellen oder externe Skripte/Programmcode zur Schrittausführung integrieren |
| Laufdiagramme | Einfache Sweeps mit linearem Parameterverlauf | Untergeordnete Sweeps, komplexe Schleifenstrukturen oder dynamische Parameteränderungen basierend auf Testergebnissen werden nicht unterstützt |
| Sequenzausführung | Führen Sie Sequenzen aus, um jeden definierten Messschritt durchzuführen. Messungen werden während der Ausführung live in InstrumentStudio angezeigt. | Die Ausführung kann nicht basierend auf Schrittergebnissen verzweigen, parallele Tests ausführen oder Operator-Workflows bearbeiten |
| Sequenzprotokollierung | Erzeugt eine PDF-Datei mit detaillierten Ergebnissen jeder Sequenzausführung | Protokollformate können nicht über die Standard-*.pdf-Datei hinaus angepasst oder erweiterte Analysen oder Zusammenfassungen automatisch erzeugt werden. |
| Sequenzprotokollierung | Erzeugt automatisch ein Ausführungsprotokoll, das zur Nachverfolgung und Validierung von Sequenzdurchläufen verwendet werden kann | Bietet keine erweiterte Protokollverwaltung, Exportoptionen oder automatische Integration von Protokollen in externe Systeme |
Tabelle 1. InstrumentStudio Sequencer - Vergleichstabelle
| Fläche | FlexLogger Sequencement Plug-in-Funktionen | Einschränkungen beim Sequenzieren von Plugins in FlexLogger |
|---|---|---|
| Sequenzierungsmodell | Ausführen linearer, schrittweiser Sequenzen mit definierter Dauer | Als Vollzustandsautomat mit hierarchischen oder parallelen Zuständen fungieren |
| Ablaufsteuerung | Verzweigung auf Schrittebene: Schritt überspringen, Schritt wiederholen, stoppen oder zu einem bestimmten Schritt springen | Unterstützung für beliebige Steuerabläufe (Switch/Case, verschachtelte Verzweigungen, dynamische Beschriftungen) |
| Bedingte Logik | Bedingte Ausdrücke (boolesch/numerisch) für Start-, Stopp-, Vorbedingungen und Post-Step-Aktionen verwenden | Deterministisch oder sofort auf Ereignisse reagieren (Bedingungen werden abgefragt, nicht interruptgesteuert) |
| Schleifen | Implementieren einfacher Schleifen durch Wiederholen von Schritten oder Springen zu früheren Schritten | Dynamisch berechnete Schleifen oder Runtime-Sequenzen erstellen |
| Ausgangskanäle | Mehrere analoge und digitale Ausgangskanäle pro Sequenzer-Instanz ansteuern | Grenzwerte für Hardware/FlexLogger überschreiten oder einen ausdrücklichen Wert für ‚max. Kanäle‘ angeben (nicht definiert) |
| Ausgangswerte | Ausgaben mittels Formeln halten, rampen, interpolieren und berechnen (letzte, Standard-, t-, mathematische Funktionen) | Benutzercode (LabVIEW VIs, Python, benutzerdefinierte Algorithmen) in einem Schritt ausführen |
| Timing | Softwaregetaktete Schritte für langsame/mittelschwere Sequenzierung | Hardwaregetaktete, deterministische Hochgeschwindigkeits-Signalverlaufssteuerung |
| Reaktivität | Referenzierte Eingangskanäle unter Bedingungen | Reaktion ohne Latenz garantieren (Eingangswerte können leicht verzögert sein) |
| Laufzeitverhalten | Führen Sie mehrere unabhängige Sequencer-Plugin-Instanzen in einem Projekt aus | Sequenzstruktur (Schritte, Kanäle, Logik) während der Ausführung ändern |
| Anwendungsfälle | Prüfverfahren, Einbrennen, Haltbarkeitsprofile, bedingte Rampen/Haltevorgänge | SPS ersetzen, sicherheitskritische Sperren, Regelung |
Tabelle 2: FlexLogger Sequencing Plug-In Vergleichstabelle