Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: WinCCflexible RT - Dateiauswahl als Parameter für externen Programmaufruf

  1. #1
    Registriert seit
    06.10.2003
    Beiträge
    3.409
    Danke
    449
    Erhielt 504 Danke für 407 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich brauche mal wieder eine Idee.

    Ich stehe mit der Flexible-Kurvenanzeige von archivierten Variablen nach wie vor auf auf Kriegsfuß. Mir geht es darum, mehrere (viele) Kurven in einer Anzeige über einer einheitlichen Zeitachse darstellen zu können. Flexible ist mir dabei nicht flexible genug. Ich schreibe daher per Skript meine Variablen in eine csv-Datei und zeige sie auf einem externen csv-viewer an. Das funktioniert soweit auch sehr gut. Jetzt möchte ich jedoch für jeden Tag eine neue csv-Datei anlegen. Auch das ist kein Problem. Der Dateiname enthält das Datum in Form von "yyyy.mm.dd.csv". Eventuell strukturiere ich den Dateipfad noch in Jahr und Monat. Aber wie ermögliche ich es dem Bediener, eine beliebige Datei aus zu wählen? Ich denke an eine Kalenderdarstellung in der man den jeweiligen Tag anwählt. Oder ein einfacher Datei-Browser? Hat jemand dazu eine Idee?

    Vielen Dank an Ingo Wendler für den pfiffigen csv-viewer


    Gruß, Onkel


    Zusatzfrage:
    Ich stehe kurz davor, mich mit dem TIA-Portal beschäftigen zu dürfen. Ist die Kurvenanzeige dort besser gelöst geworden als in Flexible?
    Geändert von Onkel Dagobert (19.04.2013 um 20:12 Uhr)
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford
    Zitieren Zitieren WinCCflexible RT - Dateiauswahl als Parameter für externen Programmaufruf  

  2. #2
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.622
    Danke
    377
    Erhielt 799 Danke für 642 Beiträge

    Standard

    Ich wurde es in mehrere VBS Skripte aufteilen.

    Datei mit ältere Zeitstempel finden:
    Für jeden Tag+Monat+Jahr testen ob Datei eksistiert.
    In eine Schleife:
    Tag Variabel dekrementien, bis 0ten Tag, dann Tag auf 31 einstellen und Monat dekrementieren bis 0ten Monat, dann Monat auf 12 einstellen und Jahr dekrementieren, bis Jahr=2012.
    Wenn Datei gefunden, Schleife abbrechen und an Benutzer Melden "Datei von xxx Datum gefunden, öffnen ?"
    Wenn keine Datei gefunden, an Benutzer Melden "Kein ältere Datei gefunden."

    Datei mit neuere Zeitstempel finden:
    Für jeden Tag+Monat+Jahr testen ob Datei eksistiert.
    In eine Schleife:
    Tag Variabel inkrementien bis 31ten Tag, dann Tag auf 1 einstellen und Monat inkrementieren bis 12ten Monat, dann Monat auf 1 stellen und Jahr inkrementieren bis Jahr=aktuellen Jahr.
    Es ist egal ob es 31 Tage in ein Monat gibt.
    Wenn Datei gefunden, Schleife abbrechen und an Benutzer Melden "Datei von xxx Datum gefunden, öffnen ?"
    Wenn keine Datei gefunden, an Benutzer Melden "Kein neuere Datei gefunden."

    Um schneller zu suchen, kannst du auch Eingabefelder konfigurieren wo man Tag, Monat und Jahr direkt wählen kann.

    Wenn es schöner gemacht werden kann wurde es mir auch interessieren.
    Jesper M. Pedersen

  3. Folgender Benutzer sagt Danke zu JesperMP für den nützlichen Beitrag:

    Onkel Dagobert (22.04.2013)

  4. #3
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Von Siemens gibt es ein Beispielprojekt in dem durch eine Datumsauswahl Archive zurückgelesen werden. Das habe ich abgewandelt schonmal für ein eigenes Projekt verwendet:

    WinCC flexible ES -- HMI Projektierung erstellen -- Archive verwenden

    dort im Abschnitt "Wie kann mit WinCC flexible eine Langzeitarchivierung durchgeführt werden?"

  5. Folgende 2 Benutzer sagen Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    Fanta-Er (20.04.2013),Onkel Dagobert (22.04.2013)

  6. #4
    Registriert seit
    10.01.2012
    Beiträge
    65
    Danke
    15
    Erhielt 6 Danke für 6 Beiträge

    Standard

    1. Das Du -zumindest in der PC-Visu- einen normalen "DateiÖffnen-Dialog" aufmachen kannst, weißt Du aber? Wenn man dann beim Archivieren z.B. noch Ordner für Jahre und Monate anlegt, sollte das doch reichen?

    2. Meiner Meinung nach hat TIA bei der Kurvenanzeige keine Quantensprünge gemacht...

    Gruß
    StGo

  7. Folgender Benutzer sagt Danke zu StGo für den nützlichen Beitrag:

    Onkel Dagobert (22.04.2013)

  8. #5
    Avatar von Onkel Dagobert
    Onkel Dagobert ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.10.2003
    Beiträge
    3.409
    Danke
    449
    Erhielt 504 Danke für 407 Beiträge

    Standard

    Hallo StGo,

    Zitat Zitat von StGo Beitrag anzeigen
    1. Das Du -zumindest in der PC-Visu- einen normalen "DateiÖffnen-Dialog" aufmachen kannst, weißt Du aber? ..
    Nein, das wußte ich nicht. Das geht sicherlich nur über ein Script, oder?

    Zitat Zitat von StGo Beitrag anzeigen
    .. Wenn man dann beim Archivieren z.B. noch Ordner für Jahre und Monate anlegt, sollte das doch reichen? ..
    Das wäre perfekt.

    Zitat Zitat von StGo Beitrag anzeigen
    .. 2. Meiner Meinung nach hat TIA bei der Kurvenanzeige keine Quantensprünge gemacht ..
    Warum überrascht mich das jetzt nicht?


    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  9. #6
    Registriert seit
    10.01.2012
    Beiträge
    65
    Danke
    15
    Erhielt 6 Danke für 6 Beiträge

    Standard

    PC-Windows!

    Code:
    Dim strFilename, Dialog, fso
    Dim Filename
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Set Filename = HmiRuntime.SmartTags("FremddatenLesenDateiname")   
    
    Dialog = "UserAccounts.CommonDialog"                 
    'Damit Dateiauswahl erfolgen kann (Windows-Explorer)
    Set Dialog = CreateObject(Dialog)
    'Explorer-Dialog zum Speichern von Dateien
    'Titelzeile
    Dialog.Flags = &H0004 ' datei muss nicht vorhanden sein
    Dialog.Filter = "All Files (*.*)|*.*|"  & "TAB Files (*.tab) |*.tab| "'Filter setzen
    ' Filter auf den Eintrag All Files setzen  TAB=2
    Dialog.FilterIndex = 1
    'Flags setzen: Explorer-Dialog mit langen Dateinamen
    Dialog.Flags = &H1814
    Dialog.ShowOpen
    'Dateiname in die variable schreiben
    Filename.Value = Dialog.FileName 
    HmiRuntime.SmartTags("FremddatenLesenDateiname") = Filename.Value
    Set Dialog = Nothing

    Gruß
    StGo

  10. Folgender Benutzer sagt Danke zu StGo für den nützlichen Beitrag:

    Onkel Dagobert (24.04.2013)

  11. #7
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.622
    Danke
    377
    Erhielt 799 Danke für 642 Beiträge

    Standard

    Diese Verfahren wird doch weitere VBS Skripte blokieren so lange das den File Dialog offen ist, oder ?
    Zitat Zitat von StGo Beitrag anzeigen
    PC-Windows!

    Code:
    Dim strFilename, Dialog, fso
    Dim Filename
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Set Filename = HmiRuntime.SmartTags("FremddatenLesenDateiname")   
    
    Dialog = "UserAccounts.CommonDialog"                 
    'Damit Dateiauswahl erfolgen kann (Windows-Explorer)
    Set Dialog = CreateObject(Dialog)
    'Explorer-Dialog zum Speichern von Dateien
    'Titelzeile
    Dialog.Flags = &H0004 ' datei muss nicht vorhanden sein
    Dialog.Filter = "All Files (*.*)|*.*|"  & "TAB Files (*.tab) |*.tab| "'Filter setzen
    ' Filter auf den Eintrag All Files setzen  TAB=2
    Dialog.FilterIndex = 1
    'Flags setzen: Explorer-Dialog mit langen Dateinamen
    Dialog.Flags = &H1814
    Dialog.ShowOpen
    'Dateiname in die variable schreiben
    Filename.Value = Dialog.FileName 
    HmiRuntime.SmartTags("FremddatenLesenDateiname") = Filename.Value
    Set Dialog = Nothing

    Gruß
    StGo
    Jesper M. Pedersen

  12. #8
    Avatar von Onkel Dagobert
    Onkel Dagobert ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.10.2003
    Beiträge
    3.409
    Danke
    449
    Erhielt 504 Danke für 407 Beiträge

    Standard

    Hallo StGo,

    Zitat Zitat von Hahnus Beitrag anzeigen
    ..Datei öffnen:
    Code:
    Dim strFilename, Dialog, fso
    Dim Filename
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Set Filename = HmiRuntime.SmartTags("Variable")   
    Dialog = "UserAccounts.CommonDialog"                 
    'Damit Dateiauswahl erfolgen kann (Windows-Explorer)
    Set Dialog = CreateObject(Dialog)
    'Explorer-Dialog zum Speichern von Dateien
    'Titelzeile
    Dialog.Flags = &H0004 ' datei muss nicht vorhanden sein
    Dialog.Filter = "All Files (*.*)|*.*|"  & "TAB Files (*.tab) |*.tab| "'Filter setzen
    ' Filter auf den Eintrag All Files setzen  TAB=2
    Dialog.FilterIndex = 1
    'Flags setzen: Explorer-Dialog mit langen Dateinamen
    Dialog.Flags = &H1814
    Dialog.ShowOpen
    'Dateiname in die variable schreiben
    Filename.Value = Dialog.FileName 
    Set Dialog = Nothing
    ..
    Irgendwie tut sich bei mir nichts. Ich rufe das Skript über eine Schaltfläche auf und nichts passiert. Ich bin mit Skripten auch nicht so firm. Ich probiere morgen weiter.


    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  13. #9
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.622
    Danke
    377
    Erhielt 799 Danke für 642 Beiträge

    Standard

    ON ERROR RESUME NEXT einfügen.
    Und dann ERR auswerten und evtl. Fehlemeldung anzeigen.
    Das gibt vielleicht information über warum das Skript nicht funktioniert.
    Jesper M. Pedersen

  14. Folgender Benutzer sagt Danke zu JesperMP für den nützlichen Beitrag:

    Onkel Dagobert (24.04.2013)

  15. #10
    Registriert seit
    10.01.2012
    Beiträge
    65
    Danke
    15
    Erhielt 6 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Onkel,
    ich hatte den Code gestern Abend noch unter WinXPProf. (SP3) in einer FlexibleRuntime 2008 genau wie Du direkt an einer Schaltfläche getestet da ging es. Dabei habe ich aber das Projekt aus WinCCflex. 2007 konvertieren müssen --> d.h. da ging es auch (ebenfalls WinXP). Welches Betriebssystem verwendest Du, vielleicht hat sich ja am WindowsScriptHost etwas geändert?

    @Jesper
    Möglicherweise werden bei geöffnetem Dialog andere Scripte nicht mehr ausgeführt, habe ich nie probiert...

    Gruß
    StGo

    PS: Scripte für die PC-Runtime lassen sich sehr gut extern testen (hilfreich ist ein Editor, z.B. Scite, ein Texteditor tut es aber auch).
    Anhang umbenennen in *.vbs und Doppelklicken.
    DateiÖffnen.txt

  16. Folgender Benutzer sagt Danke zu StGo für den nützlichen Beitrag:

    Onkel Dagobert (24.04.2013)

Ähnliche Themen

  1. ANY Pointer als In Parameter...
    Von haraldign im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 05.02.2016, 13:35
  2. ANY als Parameter in SCL
    Von Züttu im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 08.01.2013, 19:43
  3. UDT als FC-Parameter
    Von Reinhard.Steinbrueck im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 15.07.2011, 18:01
  4. UDT als IN-Parameter am FB
    Von OB21 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 15.08.2010, 17:14
  5. MMC, Flash als externen Speicher
    Von explosiv im Forum HMI
    Antworten: 0
    Letzter Beitrag: 04.02.2007, 21:01

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •