Skip to main content

Aktion: ExecuteScript

Funktion: Die Aktion führt ein Skript in der Skript-Engine aus.

Aufruf: Testtreiber Scripting

Tipp

Wenn Sie diese Aktion in CODESYS V3.5 SP5 oder einer neueren Version ausführen, unterstützen Python-Skripte, die über den Test Manager ausgeführt werden, die Standard-Skript-Debugging-Features. Eine detaillierte Beschreibung finden Sie auf der Hilfeseite zu der Kommandozeilen-Schnittstelle. In älteren CODESYS Test Manager-Versionen unterstützt der Test Manager nur grundlegendes Debugging mittels automatischer Erkennung von .NET-basierten Debuggern wie „Python Tools für Visual Studio PTVS“ und „SharpDevelop“. Wenn der Test Manager erkennt, dass ein solcher Debugger mit CODESYS verbunden ist, während das Testskript ausgeführt wird, schreibt er die Python-Quelle in eine temporäre Datei im Temp-Verzeichnis und aktiviert den Debugging-Mode der IronPython-Engine.

Registerkarte: Python Skript

In diesem Eingabebereich wird das auszuführende Python-Skript editiert. Eingangs- und Ausgangsparameter können als Variablen im Python Skript verwendet werden.

_tm_img_execute_script.png

Tab-Zeichen anzeigen

standard icon: Die Tab-Zeichen werden als Pfeilsymbole dargestellt.

T<->L

Wandelt Tabulatoren in Leerzeichen und umgekehrt

_cds_icon_open_file.png

Importiert das Python-Skript von einer externen Datei

_cds_img_button_store_to_file.png

Exportiert das Python-Skript in eine externe Datei

Gespeichert wird das Skript im Rahmen des Testskripts über die Schaltfläche Speichern.

Überprüfen

Syntax-Check des Python-Skripts

Wenn Fehler oder Warnungen auftreten, wird dies in einem entsprechenden Dialog mitgeteilt. Der Cursor wird an die entsprechende Stelle im Editor gesetzt.

Vor der Ausführung des Skripts werden die Eingangsparameter dieser Aktion als definierte Variablen in den Scope des Skripts kopiert. Nach der Ausführung des Skripts werden die Variablen aus dem Scope des Skripts in die Ausgangsparameter kopiert. Treten hierbei Fehler auf, schlägt die Aktion fehl.

Sie können über das Objekt executionContext.GlobalVariables auf globale Variablen zugreifen. Es stellt folgende Methoden zur Verfügung:

  • Add(<Name>, <Objekt/Wert>)

  • Contains(<Name>)

  • Get(<Name>)

  • Set(<Name>, <Objekt/Wert>)

  • Remove(<Name>)

Beispiel 2. Beispiel

executionContext.GlobalVariables.Set("TestVar1", "Some Text")



Weitere Informationen finden Sie im Internet unter „Python Tools for Visual Studio“ (PTVS)" und "SharpDevelop".

Registerkarte: Konfiguration

Importpfad für Python-Module

Durch „;“ getrennte Pfade, die dem Suchpfad für Python-Module hinzugefügt werden

Die Python-Module in diesem Pfad müssen im Skript per Import geladen werden.

Import von Script-Engine-Modulen in den Hauptgültigkeitsbereich

Standardmäßig aktiviert

standard icon: Die betreffenden Objekte werden in den Hauptbereich (main scope) einbezogen und erlauben somit einen direkten Zugriff auf die CODESYS Scripting APIs. Alternativ können Sie die Anweisung Import von ScriptEngine * an den Beginn des Skripts stellen.

Die Option kann deaktiviert werden, um Namenskonflikte zu vermeiden, falls künftige Updates von CODESYS oder die Installation zusätzlicher Plug-Ins weitere Objekte einbringen. Wenn die Option deaktiviert ist, kann ein expliziter Import im Python-Code verwendet werden, um auf die CODESYS APIs zuzugreifen.

Beispiel:
from scriptengine import system, projects # import explicitly named members into the main scope
or
import scriptengine # import module
scriptengine.projects.open("d:\test.project") # access the functions qualified by module

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