NT_StartProcess

HawkEagle

Level-2
Beiträge
67
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

Ich habe einen CX9020 mit dem möchte ich eine BatchDatei ausführen.
Das Gnaze lauft auf Twincat 3. Build 4024.50

Ich bekomme den Fehler 1862 zurück.
1711017147448.png

Der Aufruf sieht so aus:
Klingel(
NETID:= ,
PATHSTR:= '\Hard Disk\music\Klingel.bat',
DIRNAME:= '\Hard Disk\music',
COMNDLINE:= ,
START:= Start,
TMOUT:=T#5S ,
BUSY=> Busy,
ERR=>Error,
ERRID=> ErrorID);

1711017186865.png

In der batch Datai steht folgendes drinnen:

@Echo off
set URL=http://192.168.1.211/event/event.php?type=ring^&file=piano^&zone=3,4,5^&zone_ext=0^&vol=50
curl -L %URL%

Kann mir hier evtl. jemand weiterhelfen?

Danke.

Gruß Hawk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für deine Antwort.
Ja das dacht eich auch schon.
Jedoch wenn ich auf dem CX den besagten Pfad öffne, ist das genau dieser...
darum bin ich mir sehr unschlüssig, wie ich den Pfad angeben soll.


Edit:
Hier ist auch diese Location eingetragen:
1711023432905.png
 
Zuletzt bearbeitet:
Ach, das ist eine Windows CE Kiste, richtig? Das habe ich übersehen.

Das händisch ausgeführte Batch-Script läuft aber fehlerfrei ab?
 
Ja gibt den CX9020 glaub ich nur mit windows CE7.0

Das kann ich erst heute am abend dann testen....
Da mein Server gerade nicht online ist.
aber ich denke er startet das file überhaupt nicht......

Edit:

Ich denke es liegt an dem Pfad.
wenn ich einen Falschen Pfad angebe, kommt die selbe Error ID

Jemand eine Idee wie man den Dateipfad bei Windows CE herausfindet?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich denke es liegt an dem Pfad.
wenn ich einen Falschen Pfad angebe, kommt die selbe Error ID
Das ist, fürchte ich mal, nicht das Problem. Im Infosys steht zu NT_StartProcess, dass damit Windows Anwendungen gestartet werden können. Eine Batchdatei ist aber keine Anwendung im eigentlichen Sinn, sondern eine Sammlung von Befehlen in einer Datei, die wiederum von der Anwendung CMD.EXE ausgeführt werden. Du könntest mal versuchen, so es die bei Window CE oder WEC auch gibt, statt der Batch-Datei die CMD.EXE anzugeben und der die Batch-Datei dann als Parameter übergeben.
Jemand eine Idee wie man den Dateipfad bei Windows CE herausfindet?
Den hast Du in #3 schon selber gefunden.
 
Zuletzt bearbeitet:
Um eine Batch mit dem Namen copy.bat bestehend aus dem Einzeiler copy %1, %2 auszuführen:

//Beispiel auf einem großem Win-System:
NT_StartProcesss.PATHSTR:='C:\temp\copy.bat'
NT_StartProcess.DIRNAME := 'c:\temp'
NT_StartProcess.COMNDLINE := 'C:\temp\target.txt c:\temp\dummy.txt'

Wenn du cmd ausführst empfehle ich das mit /C.
NT_StartProcesss.PATHSTR : = 'cmd'
NT_StartProcesss.ComndLine : = '/C \"Hard Disk"\<Verzeichniss>\<Datei.bat>'

Hochkommas sind öfters mal angebracht wenn Leerzeichen im Pfad vorhanden sind. Das ist bei einem CE-System aber immer der Fall da nur \Hard Disk\ als Root-Verzeichnis persistent ist.
 
Von Beckhoff habe ich den Baustein gefunden (hab ich noch nie verwendet):

Außerdem gibt es dann noch den FB HTTP_GET aus der Oscat netlib:

Ich persönlich verwende einen selber geschriebenen FB der auf Oscat basiert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Tschoke:
Die TF6701 von Beckhoff die für eine HTTPS/Rest Funktion benötigt wird ist kostenpflichtig. Das wäre aber sicherlich der eleganteste Weg.
Die OSCAT-Netzwerk Bibliothek benötigt immer einen Zugriff aus der SPS auf den NDIS-Adapter. Das geht in TwinCAT nur auf Basis der TF6310, auch kostenpflichtig. Und wie gut der OSCAT-Baustein zwischenzeitlich mit TLS umgehen kann weiss ich nicht. Da wäre ich also prinzipiell vorsichtig.

Ich würde somit entweder die TF6701 nutze mit den entsprechenden SPS-Bausteinen oder aber das Ganze aufs Betriebssystem auslagern (NT_StartProcess).
 
Zurück
Oben