Skript Error

ka1978

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

ich habe folgende Skripte im Panel aufgeladen, danach bekomme ich die folgende Meldungen :

1. The System cannot Find the path specified.
2. Error#424 Objekt erforderlich
3. Error#429 Active X-Komponenten kann kein Objekt erstellen.

Code:
-----------------------------Daten schreiben---------------------------------------------------------------
Dim ts,f,fs,Filename
On Error Resume Next
Filename = "\Storage Card MMC\Daten.csv"

Set fs=CreateObject("filectl.filesystem")
If Not fs.FileExists(Filename) Then   
  
fs.CreateTextFile Filename
  
  Set f = fs.GetFile(Filename)
  
  Set ts = f.OpenAsTextStream(8, -2)
  
  ts.WriteLine "Datum;"&"Uhrzeit;"&"Temperatur 1[°C];"&"Temperatur 2[°C];"&"Temperatur 3[°C]"
  
  If SmartTags ("DB-Allgemein.Daten_Schreiben"  ) = True Then 
  
  ts.WriteLine CStr(Date) & ";" & CStr(Time) & ";" & SmartTags("Temp.Var1")&";" & SmartTags("Temp.Var2")&";" & SmartTags("Temp.Var3")      
  ts.Close            
  ts.Close      
  ts.Close
  
End If
 
Else
  
  Set f = fs.GetFile(Filename)
 
  Set ts = f.OpenAsTextStream(8, -2)
  
  If SmartTags ("Schreiben_Start"  ) = True Then 
  
  ts.WriteLine CStr(Date) & ";" & CStr(Time) & ";" & SmartTags("Temp.Var1")&";" & SmartTags("Temp.Var2")&";" & SmartTags("Temp.Var3")       
 
  ts.Close
  
 End If
End If
If Err.Number <> 0 Then
 ShowSystemAlarm "Error #" & CStr(Err.Number) & " " & Err.Description
        Err.Clear 
        
        Exit Sub
End If

Code:
---------------------------------Daten kopieren------------------------------------------------
Dim f,fs
On Error Resume Next
 Set f=CreateObject("Filectl.file")
 Set fs=CreateObject("filectl.filesystem")

If Err.Number<> 0 Then
 ShowSystemAlarm "error #" & CStr(Err.Number) & " " & Err.Description
 Err.Clear
 Exit Sub
End If
fs.Filecopy "\Storage Card MMC\Daten.csv"," [URL="file://\\PC_XX\Daten"]\\PC_XX\Daten[/URL]"
If Err.Number<> 0 Then
 ShowSystemAlarm "error #" & CStr(Err.Number) & " " & Err.Description
 Err.Clear
 Exit Sub
End If
Set fs=Nothing
ShowSystemAlarm "Done"
 
(**** PC_XX : Rechner im Netzwerk)

Was habe ich da schief gemacht ?

(**der Panel ist ein MP377 12" Touch)
 
Code:
fs.CreateTextFile Filename
  
  [COLOR="#FF0000"]Set f = [/COLOR]fs.GetFile(Filename)
  
  [COLOR="#FF0000"]Set ts = f[/COLOR].OpenAsTextStream(8, -2)
Zumindest diese "Set" sind falsch ...
Hilfreich für die Fehlersuche wäre gewesen, wenn Du auch die Zeilennummern aus den Fehlermeldungen mit angegeben hättest.

Schau Dir mal diesen FAQ an und besonders die VBScript_WinCE.pdf sowie dieses Kopier-Beispiel.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe den Beispiel angeschaut, ich habe könnte nicht an meine anfordernung anpassen, da ich noch nicht so fit bin, was VB_Skripte betrifft.

ich habe hier im Forum was gefunden, und an meine Aufgabe angepasst, leider habe ich kein Panel vor mir um das zu testen.

kann mir vieleicht jemand helfen, ob die Code so richtig angepasst oder nicht?

hier sind die Skripte eingefügt:
Code:
-----Skript1: Daten_schreiben-----

Dim f,fs,Datei,Datum

On Error Resume Next

Set f=CreateObject("filectl.file")
Set fs=CreateObject("filectl.filesystem")

Datei = "\Storage Card MMC\Prozess\Werte.csv"

Datum= "20"&Right(Date,2)&"."&Mid(Date,4,2)&"."&Left(Date,2)

  If    fs.dir("\"&Datei)="" Then
	f.open Datei,2
	f.LinePrint "Prozesswerte"
        f.LinePrint"Datum;"&"Uhrzeit;"&"Wert1[°C];"&"Wert2[°C];"&"Wert3[°C]
       
  End If  

  If SmartTags ("Schreiben_Start"  ) = True Then	
     f.open Datei,8 
     f.LinePrint"Datum;"&"Uhrzeit;"&"Wert1[°C];"&"Wert2[°C];"&"Wert3[°C]" 
     f.Close 
 
 End If
-------------------------------------------------------------------------
------------------------------------------------------------------------- 

-----Skript2: Daten_Kopieren-------

'Das Script kopiert die gespeicherten Archive auf einen PC im Netzwerk

On Error Resume Next

Dim f,fs,t_net_path,t_root_path

t_net_path="\\DC-WWS\Prozess"
t_root_path="\Storage Card MMC\Prozess"

 Set f=CreateObject("Filectl.file")
 Set fs=CreateObject("filectl.filesystem")
 
 If fs.dir(t_net_path)<> "" Then
	fs.kill t_net_path&"\Werte.csv"
    fs.Filecopy t_root_path &"\Werte.csv",t_net_path&"\Werte.csv"
 
End If

 
 'Nach dem Kopiervorgang Daten auf MMC löschen     
  ------------------------------------------

fs.Kill ("\Storage Card MMC\Werte.csv")
 
so sollte das ungefähr passen. nicht getestet
Code:
-----Skript1: Daten_schreiben-----

Dim f,fs,Datei,Datum

On Error Resume Next

Set f=CreateObject("filectl.file")
Set fs=CreateObject("filectl.filesystem")

Datei = "\Storage Card MMC\Prozess\Werte.csv"

Datum= "20"&Right(Date,2)&"."&Mid(Date,4,2)&"."&Left(Date,2)

  If    fs.dir("Datei)="" Then
	f.open Datei,2
	f.LinePrint "Prozesswerte"
        f.LinePrint"Datum;"&"Uhrzeit;"&"Wert1[°C];"&"Wert2[°C];"&"Wert3[°C]
   
  End If  
f.close
  If SmartTags ("Schreiben_Start"  ) = True Then	
     f.open Datei,8 
     f.LinePrint CStr(Date) & ";" & CStr(Time) & ";" & SmartTags("Temp.Var1")&";" & SmartTags("Temp.Var2")&";" & SmartTags("Temp.Var3") 
     f.Close 
 
 End If
-------------------------------------------------------------------------
------------------------------------------------------------------------- 

-----Skript2: Daten_Kopieren-------

'Das Script kopiert die gespeicherten Archive auf einen PC im Netzwerk

On Error Resume Next

Dim f,fs,t_net_path,t_root_path

t_net_path="\\DC-WWS\Prozess"
t_root_path="\Storage Card MMC\Prozess"

 Set f=CreateObject("Filectl.file")
 Set fs=CreateObject("filectl.filesystem")
 

 	fs.kill t_net_path&"\Werte.csv"
'ist die datei nicht vorhanden wird der fehler durch das on error resume next abgefangen
 
   fs.Filecopy t_root_path &"\Werte.csv",t_net_path&"\Werte.csv"
 
End If

 
 'Nach dem Kopiervorgang Daten auf MMC löschen     
  ------------------------------------------

fs.Kill ("\Storage Card MMC\Prozess\Werte.csv")
 
Hallo,

ich konnte momentan leider den Code nicht testen,da ich kein Panel zur verfügung habe.Vielleicht werde ich morgen die möglichkeit haben, um vor ort beim

Kunden zu testen.

ich habe die Code angepasst, damit ich in meinem Rechner laufen lasse, und es hat geklappt :

Code 1 : Daten schreiben:
Code:
---------------------------------
--------Skript1 : Daten schreiben-----
----------------------------------

Dim fs,fso,datei,datum,TextFile1

Set fso = CreateObject("Scripting.FileSystemObject")
Set fs = CreateObject("Wscript.Shell")

'------Verzeichnis erstellen--------------
 
If Not fso.FolderExists("C:\Storage Card MMC\Prozess") Then fso.CreateFolder("C:\Storage Card MMC\Prozess")

'-------------Daten schreiben-----

datei="C:\Storage Card MMC\Prozess\Werte.csv"
datum="20"&Right(Date,2)&"."&Mid(Date,4,2)&"."&Left(Date,2)
 
If Not fso.FileExists (datei)  Then
    Set TextFile1=fso.CreateTextFile(datei,True)
    TextFile1.WriteLine "Datum" & ";" & "Zeit" & ";" & "AKtuel_wert[°C]"
    TextFile1.WriteLine 
 
 TextFile1.Close      
 
End If


If SmartTags ("SCript_Start"  ) = True Then    
     
   If fso.FileExists (datei) Then
   Set TextFile1=fso.OpenTextFile(datei,8)       
   TextFile1.WriteLine datum&";"&Time&";"&SmartTags("Paramter.Aktuel_wert")

   End If
   TextFile1.Close
   
End If

Code 2: Daten kopieren

Code:
-----------------------------------   
--------Skript2 : Daten Kopieren----
------------------------------------

'Das Script kopiert die gespeicherten Archive auf den PC

On Error Resume Next
Dim f,fs,fso,t_net_path,t_root_path

t_net_path= "C:\Ordne1\"
t_root_path="C:\Storage Card MMC\Prozess\"

 Set fso = CreateObject("Scripting.FileSystemObject")
 If fso.FileExists(t_net_path)<>"" Then
    fso.DeleteFile t_net_path&"\Werte.csv"

fso.CopyFile t_root_path&"\Werte.csv",t_net_path&"\werte.csv"

If Err.Number<> 0 Then
    ShowSystemAlarm "error #" & CStr(Err.Number) & " " & Err.Description
    Err.Clear
    Exit Sub
End If

End If

Set fs=Nothing

ShowSystemAlarm "Done"

Code 3:Daten in MMC löschen

Code:
--------------------------------
------Skript3 : Daten löschen---
--------------------------------

Dim  fs,t_root_path

t_root_path="C:\Storage Card MMC\Prozess\"

[B] Set fs=CreateObject("filectl.filesystem")[/B]
 
'--------Daten auf MMC löschen----------     

fs.Kill t_root_path&"\Werte.csv"
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe erstamal die Skript 3 :Daten löschen im Panel getestet, aber leider ohne erfolg. ich bekomme den folgenden Fehlermeldung: Fehler Active x-komponenten
kann kein Objekt erstellen : 'File Ctl.Filesystem " in Skript <Daten loeschen> in zeile 7.
Code:
------Skript3: Daten auf MMC löschen------------- 

Dim fs,t_root_path

t_root_path="\Storage Card MMC\Prozess\"

 [B]Set fs=CreateObject("filectl.filesystem")    [/B]             
    
'-------Daten auf MMC löschen----

fs.Kill t_root_path&"\Werte.csv"
 
Hallo,

ich habe auch den unteren Code (Daten schreiben) getestet. es funktionier aber es wird nur Eimal Kopfzeile und Messungen für Erste minute registriert und nicht

weiter ? liegt es etwa an die f.close

Code:
-----Skript1: Daten_schreiben-----

Dim f,fs,Datei,Datum

On Error Resume Next

Set f=CreateObject("filectl.file")
Set fs=CreateObject("filectl.filesystem")

if fs.dir("Storage

Datei = "\Storage Card MMC\Prozess\Werte.csv"

Datum= "20"&Right(Date,2)&"."&Mid(Date,4,2)&"."&Left(Date,2)

  If    fs.dir("Datei)="" Then
	f.open Datei,2
	f.LinePrint "Prozesswerte"
        f.LinePrint"Datum;"&"Uhrzeit;"&"Wert1[°C];"&"Wert2[°C];"&"Wert3[°C]
        f.close

  End If
  

 
 If SmartTags ("Schreiben_Start"  ) = True Then	
     f.open Datei,8 
     f.LinePrint CStr(Date) & ";" & CStr(Time) & ";" & SmartTags("Temp.Var1")&";" & SmartTags("Temp.Var2")&";" & SmartTags("Temp.Var3") 
     f.Close 
 
 End If
 
1.
deine datei ist falsch

t_root_path="\Storage Card MMC\Prozess\"
+ fs.Kill t_root_path&"\Werte.csv"
ergibt als pfad/datei \Storage Card MMC\Prozess\\Werte.csv"
als ein backslash zu viel

2.
f.close ist schon korrekt.
bei nächsten aufruf wird die datei ja wieder geöffnet.
entweder wird dein script nicht wieder aufgerufen oder die variable SmartTags ("Schreiben_Start" ) ist nicht true.

warum überhaupt im script die abfrage dieser var. wenn das script aufgerufen wird soll doch protokolliert werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Die variable ("Schreiben_Start" ) war true. Der Skript <Daten schreiben> wird jede minute aufgerufen, aber die Messungen werden eingetragen wenn die Anlage

in Betrieb (Schreiben_Start ist True).
 
Hallo,

liegt es et was an der Verzeichnis erstellung ?

Code:
-----Skript1: Daten_schreiben-----

Dim f,fs,Datei,Datum

On Error Resume Next

Set f=CreateObject("filectl.file")
Set fs=CreateObject("filectl.filesystem")

'---------Verzeichnis erstellen--------------------

[COLOR=#ff0000][B]If fs.dir("Storage Card MMC\Prozess")="" Then fs.mkdir("Storage Card MMC\Prozess")[/B][/COLOR]


Datei = "\Storage Card MMC\Prozess\Werte.csv"

Datum= "20"&Right(Date,2)&"."&Mid(Date,4,2)&"."&Left(Date,2)

  If    fs.dir("Datei)="" Then
    f.open Datei,2
    f.LinePrint "Prozesswerte"
        f.LinePrint"Datum;"&"Uhrzeit;"&"Wert1[°C];"&"Wert2[°C];"&"Wert3[°C]
        f.close

  End If
  

 
 If SmartTags ("Schreiben_Start"  ) = True Then    
     f.open Datei,8 
     f.LinePrint CStr(Date) & ";" & CStr(Time) & ";" & SmartTags("Temp.Var1")&";" & SmartTags("Temp.Var2")&";" & SmartTags("Temp.Var3") 
     f.Close 
 
 End If
 
Zuletzt bearbeitet:
nein. daran kann es nicht liegen. du schreibst ja das die datei erstellt wird.
füg mal die blauen zeile zu testzwecken ein un mach irgendwo ein ea-feld um diese variable zu beobachten.
und kommentier mal das on error aus

Hallo,

liegt es et was an der Verzeichnis erstellung ?

Code:
-----Skript1: Daten_schreiben-----

Dim f,fs,Datei,Datum

On Error Resume Next
[COLOR="#0000FF"]SmartTags("status")=0[/COLOR]
Set f=CreateObject("filectl.file")
Set fs=CreateObject("filectl.filesystem")

'---------Verzeichnis erstellen--------------------

[COLOR=#ff0000][B]If fs.dir("Storage Card MMC\Prozess")="" Then fs.mkdir("Storage Card MMC\Prozess")[/B][/COLOR]


Datei = "\Storage Card MMC\Prozess\Werte.csv"

Datum= "20"&Right(Date,2)&"."&Mid(Date,4,2)&"."&Left(Date,2)

  If    fs.dir("Datei)="" Then
[COLOR="#0000FF"]SmartTags("status")=1[/COLOR]
    f.open Datei,2
    f.LinePrint "Prozesswerte"
        f.LinePrint"Datum;"&"Uhrzeit;"&"Wert1[°C];"&"Wert2[°C];"&"Wert3[°C]
        f.close

  End If
  

 
 If SmartTags ("Schreiben_Start"  ) = True Then
[COLOR="#0000FF"]SmartTags("status")=2[/COLOR]    
     f.open Datei,8 
     f.LinePrint CStr(Date) & ";" & CStr(Time) & ";" & SmartTags("Temp.Var1")&";" & SmartTags("Temp.Var2")&";" & SmartTags("Temp.Var3") 
     f.Close 
 
 End If
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe Status eingefügt ,da kommt die fehlermeldungen : Es wurde kein Objekt variable mit dem Namen Status gefunden in Zeile 5 Spalte 11.
Zeile 20 Spalte 13.
Zeile 30 Spalte 12.

was für ein Variable ist Status?
 
Das ist eine INT-Variable aus der Variablendeklaration im Flex. Kann entweder eine interne Variable oder eine Variable aus der SPS sein. Sinnvoll wäre eine interne Variable.
 
Hallo,

ich habe den Variable "Status" als interner variable vom Datentyp Integer deklariert, ist es so richtig?

aber wie kann man ein Interner Variable beobachten?
 
ea feld einfügen fertig. dort sollte am ende des scripts eine 2 drinstehen. steht dort eine 0 oder 1 wird schreiben der daten nicht ausgeführt was ich vermute.
 
In meine Skripte (allerdings für PC RT) öffne und schliesse ich ein Datei nur einmal in denselben Skript.

Probier mal:

Code:
-----Skript1: Daten_schreiben-----

Dim f,fs,Datei,Datum, strHeader, strDatenZeile

On Error Resume Next
SmartTags("status")=0
Set f=CreateObject("filectl.file")
Set fs=CreateObject("filectl.filesystem")

'---------Verzeichnis erstellen--------------------

If fs.dir("Storage Card MMC\Prozess")="" Then fs.mkdir("Storage Card MMC\Prozess")


Datei = "\Storage Card MMC\Prozess\Werte.csv"

Datum= "20"&Right(Date,2)&"."&Mid(Date,4,2)&"."&Left(Date,2)
strHeader = "Datum;"&"Uhrzeit;"&"Wert1[°C];"&"Wert2[°C];"&"Wert3[°C]
strDatenZeile = CStr(Date) & ";" & CStr(Time) & ";" & SmartTags("Temp.Var1")&";" & SmartTags("Temp.Var2")&";" & SmartTags("Temp.Var3") 

If    fs.dir("Datei)="" Then
    SmartTags("status")=1
    f.open Datei,2
    f.LinePrint "Prozesswerte"
    f.LinePrint strHeader
    f.LinePrint strDatenZeile
    f.close
ELSE
    SmartTags("status")=2
     f.open Datei,8 
     f.LinePrint strDatenZeile
     f.Close 
End If
    SmartTags("status")=3
 
Zurück
Oben