Skip to main content

Skripte über Kommandozeile starten

Voraussetzung: Im Dateisystem liegt eine gültige Python-Skriptdatei <filename>.py.

  1. Erstellen Sie eine CMD-Datei mit dem Kommando start, das CODESYS startet,

    Und mit der Option --runscript, die die Skriptdatei aufruft.

    Weitere Optionen sind möglich, beispielsweise --noUI, wenn die CODESYS-Benutzeroberfläche nicht geöffnet werden soll.

  2. Öffnen Sie das Windows-Fenster Eingabeauforderung und starten darüber die CMD-Datei.

Sie können Argumente mit zusätzlichen Informationen an das Skript übergeben. Python-Skripte können auf die Argumente mit der sys.argv[]-Liste zugreifen. Das erste Element (Index 0) ist immer der Name oder Pfad des Python-Skripts, das ausgeführt wird, gefolgt von den „tatsächlichen“ Parametern. (Dies ist ähnlich wie bei argc/argv in C.)

Zusätzlich können Skripte auch auf Umgebungsvariablen zugreifen, die gesetzt werden, bevor CODESYS mit den entsprechenden Python- oder .NET- APIs gestartet wird.

Beispiel 1. Beispiel

Sie haben eine CMD-Datei (Batch-Datei) argvtestbat.cmd mit folgendem Inhalt (alles in einer Zeile).

"C:\Program Files (x86)\CODESYS 3.5.17.0\CODESYS\Common\CODESYS.exe" --profile="CODESYS V3.5 SP17" --runscript="D:\Dokumente\Scripting\ArgvTestScript.py" --scriptargs:'username password 3.14 "path=\"C:\temp\\\""' --noUI

Sie haben ein dazu passendes Skript ArgvTestScript.py.

from __future__ import print_function

import sys
print("sys.argv: ",
   len(sys.argv),
   " elements:")

for arg in sys.argv:
    print(" - ", arg)

Wenn Sie nun die CMD-Datei ausführen, startet CODESYS und führt das Skript aus, ohne das CODESYS-Hauptfenster zu öffnen. Danach wird CODESYS wieder beendet:

_cds_script_run_via_batch.png


Eine komplette Referenz aller möglichen Kommandozeilenparameter sehen Sie auf der Hilfeseite zur Kommandozeilen-Schnittstelle im Abschnitt zu --runscript.

Für weitere Informationen siehe: Kommandozeilenschnittstelle, Option --runscript

Für Informationen zur Python-API siehe: https://docs.python.org/2/library/os.html#process-parameters

Für Informationen zur .NET-API siehe: https://msdn.microsoft.com/de-de/library/77zkk0b6%28v=vs.110%29.aspx