TIA TIA WinCC Skript Import Txt

SchmiererKai

Level-1
Beiträge
22
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich bin gerade dabei eine Anbindung zwischen Maschine und ERP zu programmieren.
Dafür ist es notwendig auf einem Siemens Comfort Panel TP1500 eine abgelegte Text Datei zu öffnen und einzelne Zeilen in WString Variablen zu schreiben.

Ich verwende aktuell folgenden Code der allerdings nicht funktioniert.

Code:
//Fehlerbehandlung[INDENT]Dim Fehler, DatTxt, mode[/INDENT]
[INDENT]'Fehlerbehandlung aktivieren
On Error Resume Next[/INDENT]
[INDENT]internErrorACTSKonnection = False[/INDENT]

//Datei öffnen[INDENT]Set DatTxt = CreateObject("filectl.file")
mode = 1
'DatTxt.open "\\10.20.41.125\Automation\LRA\PDP\ELX_DATA\FMP000001.txt", mode
DatTxt.open ("\FLASH\ACTS\FMP000001.txt"), mode[/INDENT]

//Einzelne Zeilen in String Variablen schreiben[INDENT]StringLinie1 = DatTxt.LineInputString
StringLinie2 = DatTxt.LineInputString
'StringLinie3 = DatTxt.LineInputString
'StringLinie4 = DatTxt.LineInputString
'StringLinie5 = DatTxt.LineInputString
'StringLinie6 = DatTxt.LineInputString
'StringLinie7 = DatTxt.LineInputString[/INDENT]

//Datei schließen und Fehlerbehandlung[INDENT]DatTxt.Close[/INDENT]
[INDENT]Fehler = Err.Number
If Fehler > 0 Then
   internErrorACTSKonnection = True
   Err.Clear 'fehler rücksetzen
End If
 
' Fehlerbehandlung deaktivieren. danach bricht das script wieder bei einem fehler ab
On Error GoTo 0[/INDENT]

Das Problem ist das der VB Editor wenig Möglichkeiten zur Fehlerdiagnose bietet.
Sieht jemand einen Fehler im Code bzw. hat eine andere Möglichkeit zum öffnen der Textdatei?

Vielen Dank im vorraus.
 
und wo liegt jetzt dein problem?
wird die datei gelesen oder nicht?
um einen error zu bekommen mal die zeile on error resume next auskommentieren.
sollte ein fehler auftreten so wir dieser dann in den systemmeldungen angezeigt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Wenn ich den Skript wie aufgeführt ausführe wird ein Fehler generiert mit dem Inhalt "1".

Kommentiere ich folgenden Teil aus wird kein Fehler generiert.
Code:
[LEFT][COLOR=#333333][FONT=Courier]

//Einzelne Zeilen in String Variablen schreiben
// Alles auskommentiert
[/FONT][/COLOR][COLOR=#333333][FONT=Courier][INDENT]'StringLinie1 = DatTxt.LineInputString
'StringLinie2 = DatTxt.LineInputString
'StringLinie3 = DatTxt.LineInputString
'StringLinie4 = DatTxt.LineInputString
'StringLinie5 = DatTxt.LineInputString
'StringLinie6 = DatTxt.LineInputString
'StringLinie7 = DatTxt.LineInputString[/FONT][/COLOR][/LEFT][/INDENT]

Allerdings sehe ich dann natürlich kein Ergebnis da die Datei nur geöffnet und wieder geschlossen wird.
Ich werde deinen Tipp mal versuchen und sehe welche Systemmeldung ich bekomme.
 
Wie sind die "StringLinie1" ... deklariert? Versuche mal
Code:
SmartTags("StringLinie1") = DatTxt.LineInputString
...

Code:
'DatTxt.open "\\[COLOR="#FF0000"]10.20.41.125[/COLOR]\Automation\LRA\PDP\ELX_DATA\FMP000001.txt", mode
Das wird vermutlich auch nicht funktionieren, m.W. kann das WinCE die Namensauflösung nicht. Anstatt IP-Adresse muß der Rechnername angegeben werden:
Code:
DatTxt.open "\\[COLOR="#0000FF"]pcname[/COLOR]\Automation\LRA\PDP\ELX_DATA\FMP000001.txt", mode

Harald
 
Die Variable
("StringLinie1")
ist als normale WString Variable im Variablen Editor als interne Variable deklariert.
Was genau ändert der Smart Tags Befehl?

Das mit der IP und der Auflösung zum Namen habe ich bereits herausgefunden.
Trotzdem vielen Dank dafür.


 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mit "normale WString Variable im Variablen Editor" meinst Du eine HMI-Variable außerhalb des Skriptes? Die sollte man als SmartTags("HMI_Variable") ansprechen - manchmal mag das Siemens-VBS nicht, wenn man das SmartTags(...) wegläßt, manchmal verlangt es aber auch das weglassen. Mehr Info: siehe die TIA-Hilfe zum SmartTag-Objekt

Harald
 
Zurück
Oben