Skip to main content

Aktion: ExecuteExternalCommand

Funktion: Die Aktion startet einen Prozess (Anwendung, Batch-Skript usw.) außerhalb von CODESYS und fängt dessen Ausgabe sowie Exit-Code ab.

Aufruf: Testreiber System

Das Verhalten der Aktion hängt grundsätzlich von den Optionen Nur Starten und Überprüfen des vorherigen Prozesses aus dem Eingangsparameter ab. Folgende Fälle sind möglich:

  • Die Optionen Nur Starten und Überprüfen des vorherigen Prozesses aus dem Eingangsparameter sind deaktiviert. Dies dient dazu, einen Prozess synchron zu starten, und auf dessen Beendigung zu warten. Das Testskript ist solange angehalten.

  • Nur die Option Nur Starten ist aktiviert. Dies dient dazu, einen Prozess asynchron zu starten, und später im Testskript sein Ergebnis abzufragen. Der Kontext des Prozesses wird dazu in eine Variable gespeichert.

  • Nur die Option Überprüfen des vorherigen Prozesses aus dem Eingangsparameter ist aktiviert. Dies dient dazu, das Ergebnis eines asynchron gestarteten Prozesses anhand seines gespeicherten Kontexts abzufragen.

Registerkarte: Konfiguration

Tabelle 73. Befehl

Ausführbare Datei

Namen des Prozesses, der gestartet wird

Beispiel: cmd

Voraussetzung: Option Überprüfen des vorherigen Prozesses aus dem Eingangsparameter ist deaktiviert.

Argumente

Kommandozeilenargumente

Optional

Beispiel: /c calc.exe

Voraussetzung: Die Option Überprüfen des vorherigen Prozesses aus dem Eingangsparameter ist deaktiviert.

Arbeitsverzeichnis

Arbeitsverzeichnis des Prozesses

Optional

Voraussetzung: Die Option Überprüfen des vorherigen Prozesses aus dem Eingangsparameter ist deaktiviert.

Nur starten

standard icon

  • Die Ausführbare Datei wird gestartet.

  • Die Felder Speichere Prozess in Ausgangsparameter (zum Ignorieren leerlassen) und Verzögerung [ms] werden aktiviert.

  • Die Felder Überprüfen des vorherigen Prozesses aus dem Eingangsparameter, Auf Exit warten [ms], Exit-Code und Speichere StdOut in werden deaktiviert.

Voraussetzung: Die Option Überprüfen des vorherigen Prozesses aus dem Eingangsparameter ist deaktiviert.

Speichere Prozess in Ausgangsparameter (zum Ignorieren leerlassen)

Ausgangsparameter

Angabe ohne Anführungszeichen

Beispiel: {ProcessExe}

Der Ausführungskontext des Prozesses wird in diesen Ausgangsparameter gespeichert. Wenn bei einer späteren Ausführung des Befehls die Option Überprüfen des vorherigen Prozesses aus dem Eingangsparameter aktiviert wird, kann dieser Ausgangsparameter ausgewertet werden.

Optional

Voraussetzung: Die Option Nur starten ist aktiviert.



Überprüfen des vorherigen Prozesses aus dem Eingangsparameter

standard icon

  • Die Felder aus dem Bereich Befehl werden deaktiviert.

  • In das Eingabefeld hinter Überprüfen des vorherigen Prozesses aus dem Eingangsparameter muss zwingend der Name eines Eingangsparameters eingegeben werden. Dieser muss auf einen Prozesskontext verweisen, der zuvor mittels der Option Speichere Prozess in Ausgangsparameter gespeichert wurde.

  • Die Konfigurationsoptionen im Bereich Ergebnis beziehen sich auf den Prozesskontext, der aus dem Eingangsparameter ausgelesen wird.

Tabelle 74. Ergebnis

Auf Exit warten [ms]

Anzahl der Millisekunden, die auf das Beenden des Prozesses gewartet wird

Wenn der externe Prozess länger dauert als dieses Zeitlimit, schlägt die Aktion fehl.

Wenn hier kein Wert eingegeben wird, gibt es kein Zeitlimit, und die Aktion wartet möglicherweise unendlich lange.

Voraussetzung: Die Option Nur starten ist deaktiviert.

Verzögerung [ms]

Zeitspanne, die die Aktion wartet, bevor sie zurückkehrt

Wenn hier kein Wert eingegeben wird, kehrt die Aktion sofort nach dem Starten des Prozesses zurück, ohne auf das Beenden des Prozesses zu warten.

Voraussetzung: Die Option Nur starten ist aktiviert.

Exit-Code

Prüft den Exit-Code des Prozesses

Wenn der Code nicht übereinstimmt, schlägt die Aktion fehl.

Wenn das Feld leer gelassen wird, gibt es keine Prüfung des Exit Codes.

Voraussetzung: Die Option Nur starten ist deaktiviert.

Speichere StdOut in

Name des Ausgangsparameters

Angabe ohne Anführungszeichen

Beispiel: {ExternalOutputStream}

Wenn ein gültiger Parameternamen eingegeben wird, speichert die Aktion den Standard-Ausgabestrom des externen Prozesses in den angegebenen Ausgangsparameter.

Voraussetzung: Die Option Nur starten ist deaktiviert.

Überprüfe Ergebnis von StdOut

standard icon: Die Ausgabe des Prozesses wird mit dem Inhalt des Felds Ergebnis entspricht auf Übereinstimmung verglichen. Bei fehlender Übereinstimmung schlägt die Aktion fehl. Wenn zusätzlich die Option String ist in Ergebnis enthalten aktiviert ist, wird anstelle einer Übereinstimmung lediglich darauf verglichen, ob der Inhalt des Eingabefelds im Ausgabestrom des Prozesses enthalten ist.

Voraussetzung: Die Option Nur starten ist deaktiviert.

String ist in Ergebnis enthalten

standard icon: Der Inhalt von Ergebnis entspricht wird daraufhin geprüft wird, ob er im Ausgabestrom des Prozesses enthalten ist.

Voraussetzung: Die Option Überprüfe Ergebnis von StdOut ist aktiviert.

Ergebnis entspricht

Eingabefeld

Der Inhalt wird bei Aktivierung der Optionen Überprüfe Ergebnis von StdOut oder String ist in Ergebnis enthalten mit dem Ausgabestroms des Prozesses verglichen.

Voraussetzung: Die Option Überprüfe Ergebnis von StdOut ist aktiviert.



Registerkarte: Parameter

Die in der Registerkarte Parameter definierten Parameter werden verwendet, um Werte zwischen Testskriptvariablen und Parametern von Testaktionen auszutauschen. Parameter können in der Registerkarte Konfiguration als Platzhalter verwendet werden. Dabei wird der Name des Parameters im Konfigurationsdialog in geschweifte Klammern gesetzt. Beispielsweise {name}.

Tipp

Global im Skript definierte Variablen (mit Präfix $GLOBALS.) können Sie direkt in der Testaktion verwenden. Eine Übergabe durch Eingangsparameter ist dabei nicht notwendig. Für das Schreiben von globalen Variablen ist die Verwendung von Ausgangsparametern notwendig.

Eingangsparameter: Bei der Ausführung der Testaktion werden die Werte der Testskriptvariablen den Eingangsparametern der Testaktion übergeben und können in der Konfiguration der Testaktion verwendet werden.

Ausgangsparameter: Bei der Ausführung der Testaktion werden die Werte der Ausgangsparameter der Testaktion den Testskriptvariablen übergeben und können so beispielsweise in anderen Testaktionen verwendet werden.

Name

Name des Eingangs- / Ausgangsparameters

Dieser Name wird zusätzlich zum Variablennamen definiert, um die Herkunft des Parameters erkenntlich machen zu können, wenn er an ein anderes Skript übergeben wird. Beim Testlauf wird dieser Name als Name außerhalb Im Fenster Testfortschritt in der Registerkarte Variablen (Gültigkeitsbereich #<n>) mit angezeigt.

Hintergrund: Wenn ein Skript A ein anderes Skript B aufruft, und seine Variable x dem Skript B als Parameter y übergibt, so ist aus Sicht des Skripts B der Parameter y die Variable y.

Um zu sehen, dass diese Variable „außerhalb“ des Skripts B als Variable x bekannt ist, gibt es die Spalte Name („Name außerhalb“): Im Gültigkeitsbereich des Skripts B hat die Variable y den Namen x, weil sie im Gültigkeitsbereich des aufrufenden Skripts A als Variable x an den Parameter y übergeben wurde.

Variable

Name der Testskriptvariablen

Beispiel: TS_CaseA_Result

Nach oben

Verschiebt die selektierte Variable um 1 Zeile nach oben

Nach unten

Verschiebt die selektierte Variable um 1 Zeile nach unten

Entfernen

Entfernt die selektierte Variable aus der Liste