TIA Genutzten Speicher eine SD Karte auslesen

Zuviel Werbung?
-> Hier kostenlos registrieren
Falls der Dir-Befehl im Command Prompt die Größe des freien Platzes der SD Card ausgibt (am Ende der Ausgabe "xxxxxxxx bytes free"), dann kannst Du mit einem VBS-Skript mit StartProgram den Dir-Befehl dir "\Storage Card SD" ausführen lassen und dessen Ausgabe in eine Datei umlenken und die Angabe "xxxxxxxx bytes free" aus der Datei auslesen. Wie das geht: ein Beispiel siehe hier WinCE VBS GetHostname und lies da auch Beitrag #3

Harald
Hallo Harald, wird Skript unter Beitrag 3 vom HMI Panel aus gestartet? Was ist Trigger zur Ausführung des Skripts? Unter Beitrag 2 hast du 4 Codes insgesamt. Sind die alle in einem Skript in dieser Reihenfolge ausgeführt ?
 
Im Beitrag #2 sind die 4 benötigten VBS-Skripte:
Sub GetHostname()
Function FindHostname(sline)
Function FileExist(Path)
Sub FileDel(Path)

Im Beitrag #3 ist eine im Detail verbesserte Version des Sub GetHostname()

Alle 4 Skripte werden benötigt und müssen in der HMI-Projektierung unter "Skripte" angelegt werden.

GetHostname und FindHostname solltest Du umbenennen, z.B. GetSDfree und Findfreebytes, und für den Dir-Befehl anpassen.

Dann brauchst Du noch eine panelinterne HMI-Variable "_System\!_RT-Sim_!" ( SmartTags("_System\!_RT-Sim_!") ), damit die Skripte auf einem Comfort Panel, aber auch in einer Simulation auf einem PC funktionieren.
Siehe in die VBS-FAQ, wie der HMI-Variable beim Runtime-Start ein passender Wert 0 oder 1 zugewiesen wird. In der FAQ heißt die Variable "_System\!_OS_is_PC_!"
Code:
    ' Runtime läuft auf einem PC?
    Dim fso
    On Error Resume Next 'Runtime Errors ignorieren und keine Systemmeldung!
    Set fso = CreateObject("filectl.filesystem") 'erzeugt auf PC einen Runtime Error, auf WinCE Panel kein Fehler
    If Err.Number <> 0 Then
        SmartTags("_System\!_OS_is_PC_!") = 1 'Runtime läuft auf einem PC (Simulation/Test)
        ShowSystemAlarm "O¬ the RT runs on a PC"
    End If
    Err.Clear

Als Trigger für die Ausführung des Skriptes GetHostname bzw. GetSDfree kannst Du das Klicken eines Buttons oder Bild aufgebaut eines Info-Bildes verwenden. Dann wird das Skript dann ausgeführt, wenn sich jemand für die Größe des freien Speichers der SD-Karte interessiert. Beim Comfort Panel ist während der Skriptausführung wahrscheinlich ganz kurz der Command Prompt zu sehen. Interessant zu wissen wäre, wie die Ausgabe des Dir-Befehls lautet, wenn gar keine SD-Karte gesteckt ist - das kannst Du uns mal mitteilen.


PS: Bei den Skripten müssen die [.COLOR...]-Tags entfernt werden, die waren nur fürs Forum, werden im jetzigen Forum aber nicht mehr unterstützt.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe mir die Lösung mit System Meldung in TIA, falls SD Karten Speicher voll ist, überlegt. Nach dem Lesen des Threads mit Pop-up Fenster,
wollte so projektieren. Ich habe bereits Popup Fenster mit entsprechendem Text am Button als Trigger ausgelöst, habe ZeigePopupFenster Funktion genutzt. Bei dem Popup Fenster selbst dann auch PopUp Fenster schließen Funktion. Bei der Anbindung an Button ist ZeigePopupFenster verfügbar. Das funktioniert.

Leider die Anbindung der Popup Fenster mit dem Text an Archive->AuditTrail->Ereignisse->Wenig freier Platz als Funktion nur:
- ZeigeMeldefenster
- ZeigeSystemmeldung

verfügbar.
ich habe bereits ZeigeSystemmeldung eingerichtet. AktiviereBild ist in der Liste auch verfügbar, aber mit dieser Funktion kann ich keine Popup Fenster anbinden, sondern ganz normale HMI Bilder.

Wenn ich ZeigeMeldefenster projektiere, dann muss unter Objekname ein Bild auswählen, das ich nicht habe.

Kann ich hier das projektierte Warnung Popup Fenster aufrufen..?
 

Anhänge

  • 005.JPG
    005.JPG
    66,6 KB · Aufrufe: 5
Zuletzt bearbeitet:
Interessant zu wissen wäre, wie die Ausgabe des Dir-Befehls lautet, wenn gar keine SD-Karte gesteckt ist - das kannst Du uns mal mitteilen.


PS: Bei den Skripten müssen die [.COLOR...]-Tags entfernt werden, die waren nur fürs Forum, werden im jetzigen Forum aber nicht mehr unterstützt.

Harald
Anbei Screen nach DIR Befehl (SD Karte wurde vorher rausgenommen).
 

Anhänge

  • _HMI_003.JPG
    _HMI_003.JPG
    58,3 KB · Aufrufe: 18
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hatte eben Zugriff auf ein TP700 wo keine SD Karte gesteckt ist. Ich habe den Dir-Befehl ausprobiert, das sieht dann so aus:
Code:
\> dir "\Storage Card SD"

    Directory of \

File not found.

    0 Dir(s) 4063232 bytes free
\> _
Du müsstest auch abfangen, ob überhaupt eine SD Karte gesteckt ist (siehe FAQ), oder besser: prüfen ob in der Ausgabe "Directory of \Storage Card SD" vorkommt und "File not found" nicht enthalten ist.

Harald
 
Wenn ich ZeigeMeldefenster projektiere, dann muss unter Objekname ein Bild auswählen, das ich nicht habe.
Aus der TIA Hilfe:
ZeigeMeldefenster
Beschreibung

Blendet das Meldefenster am Bediengerät ein oder aus.
(...)
Parameter

Objektname

Name der Meldeanzeige, die eingeblendet oder ausgeblendet wird.
(Ich vermute mal, überall wo das Hilfethema "Meldeanzeige" schreibt, ist eigentlich "Meldefenster" gemeint)
Du müsstest vermutlich im Globalen Bild ein Meldefenster projektieren, und dessen Objektname angeben.

Kann ich hier das projektierte Warnung Popup Fenster aufrufen..?
Weiß ich nicht. Vermutlich nicht, wenn TIA das nicht von sich aus anbietet.
 
AktiviereBild ist in der Liste auch verfügbar, aber mit dieser Funktion kann ich keine Popup Fenster anbinden, sondern ganz normale HMI Bilder.
Na, dann mach halt ein normales Bild, wo nur groß steht "SD Karte bald voll" (und vielleicht noch ein paar Texthinweise und Fotos, was der Bediener nun machen soll) und einen "Zurück"-Button. Was denkst Du, wie oft im Leben der Anlage es vorkommen wird, daß die 32 GB SD-Karte voll wird? Da wäre mir das wurst, ob da ein Popup-Bild kommt oder ein eigenes Bild.

Oder rufe das SDcard-Check-Skript (mit dem Dir-Befehl) jede Stunde oder einmal am Tag auf (per Aufgabenplaner), und in dem Skript kannst Du ja (fast) alles machen was Du willst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Oder rufe das SDcard-Check-Skript (mit dem Dir-Befehl) jede Stunde oder einmal am Tag auf (per Aufgabenplaner), und in dem Skript kannst Du ja (fast) alles machen was Du willst.
... solange Du nicht stündlich oder täglich auf die SD-Karte schreiben müsstest. ;)
 
Zurück
Oben