Variablenarchivierung per Skript

Zuviel Werbung?
-> Hier kostenlos registrieren
logisch. du dimensionierst die uhrzeit. dh interne scriptvariable. du weist uhrzeit aber nicht zu.

Code:
Dim Datum_S, UHRZEIT
UHRZEIT =Replace(TIME,":","-")
time ist die uhrzeit des panels. anstatt time kannst du auch auch die uhrzeit der steuerung nehmen wie du das ja beim datum auch machst
z.b.
UHRZEIT =Replace(SmartTags("Zeit_S"),":","-")
 
Habs jetzt fast so wie ich's haben will, nur bekomm ich jetzt noch das Datum vom 01.01.1990 mit drangeschrieben :cry::cry::cry:

Habs aber nun gelöst bekommen :p:p!!!

Ich speichere mir ja Datum und Uhrzeit beim Programmstart ab um es dann in den Dateinamen zu schreiben. Als ich die Fehlermeldung vom Panel mit dem Falschen Dateinamen bekommen hab hab ich mir Datum und Uhrzeit als einzelne Variablen eingelesen und dann in den Dateinamen geschrieben(Also einmal Date und Time_of_Day) nehme jetzt Date_and_Time, ersetzt die ":" durch "-" und alles funzt.

Danke an alle

Gruß IceBear
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich benötige auch eine Archivierung von verschiedenen Prozess-Variablen. Hierzu würde das File von IceBear schon ganz gut passen. hab mir gedacht, dass ich dies einwenig anpasse und gut ist.
So leicht ist es aber leider nicht ;)
Ich bekomme beim Ablaufen des Skriptes immer folgende Fehlermeldung:

Fehler.jpg

mein scrpt lautet:

Code:
Dim f, fs, datei, datum, laenge 'f=File / fs=Filesystem
Dim Variable_Datensatz, Variable_Rezept
Dim Variable_Minute, Variable_Hour, Variable_Day, Variable_Month, Variable_Year
Dim UHRZEIT
Dim Start_Zeit, End_Zeit


Variable_Rezept = SmartTags("Ist-Werte_Archiv.WKZ_Name")
Variable_Datensatz =SmartTags("Ist-Werte_Archiv.WKZ_Name")
UHRZEIT = (Now)
UHRZEIT = Replace(UHRZEIT,":","-")

'Start Zeit auf Variable schreiben
If SmartTags("Start") =1 Then
    Start_Zeit = UHRZEIT
End If

'End Zeit auf Variable schreiben
If SmartTags("Ende") =1 Then
    End_Zeit = UHRZEIT                                         
End If

Variable_Minute = Minute (Now)
Variable_Hour = Hour(Now)
Variable_Year = Year(Now)
Variable_Month = Month (Now)
Variable_Day = Day (Now)

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


datei="Storage Card MMC\Daten\"&SmartTags("Anzeigewerte.Aktuelle_WKZnummer_Links")& "_" &Variable_Year& "_" &Variable_Month& "_"&Variable_Day& "_" &UHRZEIT& ".csv"
datum="20"&Right(Date,2)&"."&Mid(Date,4,2)&"."&Left(Date,2)

If fs.dir(datei) = "" Then 'dir=Peter fragen (mit Hilfe auf Englisch)
    f.open datei, 2 'f=Datei; open=Datei öffnen; 2=Ausgabe
    f.LinePrint "Daten"& "_"& Variable_Datensatz 'f=Datei; LinePrint=schreibt eine einfache Zeile in eine offene Datei; "Daten" & Variable_Rezept = Inhalt der Zeile
    f.LinePrint "Datum;"&"Takt Start;"&"Takt Ende;"&"Werkzeugnummer;"&"HF01;"&"HF02;"&"HF03;"&"HF04;"&"HF05;"&"HF06;"&"HF07;"&"HF08;"&"HF09;"&"Vakuum in mBar" 'siehe oben
    f.Close 'close=schließt eine offene Datei
End If 'beendet If-Bedingung

f.open datei, 8 'öffnet Datie "f" und fügt an (8=append;anfügen)
f.LinePrint datum&";"&Start_Zeit&";"&End_Zeit&";"&SmartTags("Anzeigewerte.Aktuelle_WKZnummer_Links")&";"&SmartTags("Ist-Werte_Archiv.Temp_HF[1]")&";"&SmartTags("Ist-Werte_Archiv.Temp_HF[2]")&";"&SmartTags("Ist-Werte_Archiv.Temp_HF[3]")
f.Close
    

' Verwendeten Speicher wieder freigeben
Set f = Nothing
Set fs  = Nothing
'-------------------------------------------------

Kann mir bitte jemand sagen an was das liegt??
Ich verwende eine MP277 mit einer S7 315 DP/PN.

Gruß
Andi
 

Anhänge

  • Fehler.jpg
    Fehler.jpg
    59,8 KB · Aufrufe: 14
Zuletzt bearbeitet:
Hallo Peda,

danke für die Hilfe nur leider versteh ich es nicht ganz. Was muss ich mit: CreateObject("Scripting.FileSystemObject") ersetzen??
und muss ich dies dann entfernen wenn ich die Runtime nicht laufen habe??

in den FAQ finde ich es nicht kannst du mir bitte sagen wo das genau steht?

Grüße

andi1988er
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
Dein Fehler ist ja das kein Objekt erstellt werden kann,
das Problem ist eben das die Filesystem befehle zwischen WinCE (Panel) und Windows unterschiedlich sind.
In dem FAQ ist beschrieben wie du auf Dateien unter einem WinCE Panel zugreifen kannst bzw. wie man
bei einer Runtime Simulation unter Windows zugreifen kannst.

Im ersten Beitrag steht gleich welche Befehle in WinCE notwendig sind
und welche unter Windows verwendet werden müssen!

Set fs= CreateObject("filectl.filesystem") '-> WinCE -> Panel
Set fs= CreateObject("Scripting.FileSystemObject") '->Windows -> Runtime Simulation am PC

MFG

Lese einfach
 
Hallo,
danke für die schnelle Hilfe.
Ich gleube, dass ich es jetzt gecheckt habe!
Werde es heute Nachmittag/Abend testen. Jetzt hab ich noch andere Arbeit.
Werde dann berichten, bzw. meine weiteren Probleme schildern

Gruß
 
Hallo,

nachdem ich mich 100-ig an die FAQ gehalten habe hat es bei mir funktioniert.
Ein kleines Problem ist bei mir allerdings noch aufgetreten, weiß nicht ob ich da etwas falsch gemacht habe oder so:
Ich stoße meine Scripte bei Wertänderung mit einem Bit aus einem DB an. Dies funktioniert bei mir aber nur, wenn das Bit auch auf der aktuell geöffneten Seite des Panels vorhanden ist. Um dies zu realisieren hab ich mir eine Schaltfläche in der Vorlage gemacht, bei der ich die Gestaltung mit diesem Bit ändere.
Damit die Schaltfläche nicht immer sichtbar ist hab ich sie dauerhaft (mit einem Dauer 0 Merker) ausgeblendet.
Muss man das so machen oder habe ich einen Fehler bei den Einstellungen oder so gemacht?

Gruß
 
Hallo andi1988er,
Fast genau dasselbe Problem hatte ich auch. Hab's so gelöst das ich das Skript per Bitmeldung ausführe mit den Ereignissen "kommen" und "gehen". Ist bestimmt nicht die eleganteste Lösung aber es funzt...

Hab gerade nochmal in mein Programm geschaut, hab's quasi fast so wie du gemacht. Hab mir ein Bit aus nem DB als Variable angelegt was mir bei Wertänderung mein Skript aufruft...

Gruß IceBear
 
Zuletzt bearbeitet:
Hallo andi,
ich bin mir ziemlich sicher das es funktioniert ein Script aufzurufen, ohne
das die auslösende Variable, auf den geöffneten Bildschirm verwendet wird.

Ich auch, aber Ich hatte es auch schon das eine Wertänderung nicht mitbekommen wurde! Ich hab das an meinen früheren Protokollierungen auch über kommen und gehen von Bitmeldungen gemacht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo andi,
hab ich genau so wie rostiger Nagel das beschreibt, hab die Variable auf keinem Bildschirm verwendet, nur halt um das Skript auszuführen...

Kleiner Tipp: Bei mir hat das Löschen der Temporären Dateien Wunder gewirkt...

Gruß IceBear
 
Zurück
Oben