ExecuteCommand('Trigger',"'Command'","'Arguments'","'UserName'","'Password'",'Timeout=0')

Argumente

'Trigger'

Binäres Signal oder Ausdruck als Auslöser für die Ausführung des Befehls

"'Command'"

Vollständiger und absoluter Pfad zu dem auszuführenden Befehl (.exe, .bat usw.)

"'Arguments'"

Für die Ausführung des Befehls erforderliche Argumente/Parameter

"'UserName'"

Angabe eines Benutzernamens, unter dem der Befehl "'Command'" ausgeführt werden darf

"'Password'"

Angabe des passenden Kennworts zum angegebenen Benutzer

'Timeout'

Optionaler Parameter; wenn angegeben und >0, wird die Ausführung abgebrochen, sobald die Zeit 'Timeout' [s] abgelaufen ist.

Beschreibung

Diese Funktion führt die Kommandozeile "'Command'" "'Arguments'" bei einer steigenden Flanke von 'Trigger' aus. Der Rückgabewert ist 1 (TRUE), solange der aufgerufene Prozess läuft. Die Funktion ist daher als Ausdruck für Digitalsignale zu verwenden. Weitere steigende Flanken werden ignoriert, solange der Prozess läuft.

Bei "'Command'" ist der vollständige, absolute Pfad zur ausführbaren Datei aus Sicht des ibaPDA-Servers anzugeben.

Wenn 'Timeout' nicht angegeben wird oder kleiner/gleich null ist, wird die Kommandoausführung nicht unterbrochen und kann beliebig lange laufen. Wird für 'Timeout' ein Wert größer null angegeben, dann wird die Ausführung des Kommandos abgebrochen, wenn sie innerhalb von 'Timeout' Sekunden nicht abgeschlossen wurde.

Für die Nutzung der Funktion ist die Angabe von Benutzername ("'UserName'") und Kennwort ("'Password'") erforderlich. Aus Sicherheitsgründen müssen die von der Funktion aufgerufenen Kommandos oder Programme mit einem dedizierten Benutzerkonto ausgeführt werden. Das mit 'UserName' und 'Password' spezifizierte Benutzerkonto muss die Berechtigung zur Ausführung des eingetragenen Kommandos besitzen.

Bei der Eingabe von Argument, Benutzername und Kennwort können Sie die Verschlüsselungsfunktion des Ausdruckseditors nutzen, um diese Angaben unkenntlich zu machen. Die Verschlüsselungsfunktion wird Ihnen angeboten, sobald Sie Text zwischen zwei Anführungszeichen ("…") eingeben.

Beispiel 1

Rechner herunterfahren

Aufgabenstellung

Abhängig von einem Signal aus der Anlagensteuerung wegen Umschaltung auf unterbrechungsfreie Stromversorgung bei einem Stromausfall soll der ibaPDA-Rechner gesteuert heruntergefahren werden (Shutdown).

Lösung

Für das Herunterfahren des Rechners wird das Kommando "shutdown" aus der Windows Command-Shell genutzt. Da mehrere Befehle, wie das Stoppen des ibaPDA-Dienstes erforderlich sind, wird eine Batch-Datei verwendet.

ExecuteCommand([4.14], "D:\Schulung\ibaPDA_ExecuteCommand\Shutdown_PC.bat","","MyUsername","MyPassword")

  • [4.14]: Digitales Triggersignal zum Ausführen des Kommandos

  • D:\Schulung\ibaPDA_ExecuteCommand\Shutdown_PC.bat: Programmpfad für die Batch-Datei

  • MyUsername und MyPassword: Angaben zum Benutzerkonto

Inhalt der Batch-Datei Shutdown_PC.bat:

1

2

3

4

SETLOCAL

sc stop ibaPDAService

shutdown /f /s /t 10

ENDLOCAL

Beispiel 2

Batchdatei starten, die eine Textdatei mit aktuellem Inhalt erzeugt.

Aufgabenstellung

Mit steigender Flanke eines binären Signals soll ein aktueller Zählerstand in eine Textdatei auf der Festplatte geschrieben werden.

Lösung

ExecuteCommand([3.17],"c:\tmp\work.bat", GenerateText("Items_%1"), "MyUserName","MyPassword",0)

  • [3.17]: Digitales Triggersignal zum Ausführen des Kommandos

  • c:\tmp\work.bat: Programmpfad für die auszuführende Batchdatei work.bat; die Angabe einer Batch-Datei ist gleichbedeutend mit einem Kommando.Inhalt der Batchdatei (Beispiel):

  • GenerateText("Items_%1"): Argument für die Batchdatei; das Ergebnis dieses Ausdrucks (erzeugen eines Strings mit Zählerwert ) wird als Parameter %1 der Batchdatei in die Textdatei dummy.txt eingefügt.Inhalt der Textdatei dummx.txt (Beispiel, dynamischer Inhalt gelb markiert):

  • MyUserName, MyPassword: Anmeldeinformationen für das Benutzerkonto

  • 0: Wert für Timeout, d. h., die Ausführung wird nicht abgebrochen.