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.
Hinweis |
|
|---|---|
|
Wenn Sie mit diesem Kommando Programme aufrufen, die normalerweise über eine Benutzeroberfläche (GUI) verfügen, dann ist die GUI dieser Programme nicht sichtbar. Da das gestartete Programm in der Dienstsession läuft, ohne Verbindung zum Desktop, ist es im Taskmanager zwar zu sehen, aber die GUI dazu fehlt. |
|
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 -
MyUsernameundMyPassword: 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 Batchdateiwork.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 Textdateidummy.txteingefügt.Inhalt der Textdateidummx.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.