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

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 33

Thema: WINCC flexible Archiv / Tabelle

  1. #1
    Registriert seit
    08.04.2009
    Beiträge
    15
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Schönen guten Tag zusammen.

    Nachdem ich jetzt einige Zeit mit der Hilfe von Siemens und mit dem lesen dieses Forums verbracht habe, habe ich das Gefühl dass entweder noch niemand auf meine Idee gekommen ist, oder dass meine Idee so doof ist, dass niemand anderes drauf kommen würde :P

    Also kommen wir zur Problemstellung:

    In meiner S7 schreibe ich 2 hübsche Arrays in denen jeweils 31*3 Reals drinstehn (wer jetzt auf 31 Tage und 3 Schichten pro tag kommt is gar nicht so dumm). Diese hätte ich jetzt gerne in einer kleinen hübschen Tabelle auf einem Panel dargestellt.
    Das ganze dann noch archivieren, dass man schön scrollen kann und fertig is die Laube.

    Also eigentlich hört sich das ja gar nicht so schwer an. Aber bei mir scheiterts nicht nur daran eine 'Tabelle' zu finden und ins WinCC zu bringen sondern auch die Arrays sinnvoll rinzubekommen.

    Naja, wenn das alle meine Probleme mit dem Projekt wären, dann wär ich ja schon glücklich, aber den Rest versuch ich mal selbst zu lösen.


    Vielen Dank im Voraus
    Zitieren Zitieren WINCC flexible Archiv / Tabelle  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.186
    Danke
    923
    Erhielt 3.291 Danke für 2.660 Beiträge

    Standard

    Hallo JoHo,

    genau für Deine Idee gibt es im Siemens-Support eine FAQ mit fertigem Anwendungsbeispiel:
    Wie können Daten bei Panels oder bei der WinCC flexible PC Runtime aus einem Variablenarchiv in Tabellenform angezeigt werden?

    Gruß
    Harald
    Zitieren Zitieren Siemens FAQ Beispielapplikation  

  3. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    Günni1977 (19.02.2010)

  4. #3
    Registriert seit
    17.09.2006
    Beiträge
    67
    Danke
    12
    Erhielt 2 Danke für 2 Beiträge

    Lächeln

    Hi JoHo,
    meinst du nun WCF oder WinCC ?
    Bei Win flex kannst du Variablen archivieren und anschließend über ein VBS script diese in eine Tabelle schreiben, sortieren, etc.
    Ich schreibe Variablen meistens in eine SQL Datenbank (über eine Runtime) und Werte die dann über Excel aus.
    Bei WCF und großen Datenmengen werden die Panels verdammt langsam.


    Grüße

    der Mondi
    Technik entwickelt sich immer vom Primitiven
    über das Komplizierte zum Einfachen.

    Antoine de Saint-Exupéry

  5. #4
    JoHo ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.04.2009
    Beiträge
    15
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also erstmal danke PN/DPfür die extremst schnelle antwort. Werde mich mal gleich an die Umsetzung packen.
    Lieber Mondmann, ich glaube die Sache hier ist ein wenig wild geraten und vllt auch von mir bzw. dem Kunden schwieriger gedacht als wirklich nötig.

    Im Endefekt haben wir 5 Anlagen, die im 3 Schichtbetrieb gefahren werden. Da wird irgendwas in Metern verarbeitet, wobei die Anlagen pro Schicht mehrfach umgerüstet werden müssen.
    Plan ist, pro Schicht (z.B. mit nem Barcode leser) die Auftragsnummern zu erfassen und die Längen und Zeiten pro Auftrag. Das ganze passiert (naja, soll irgendwann passieren) über ein Panel je Anlage und einen PC im Meisterbüro, der einfach nur das selbe sehen soll wie die Panels an der jeweiligen Anlage anzeigen.

    Soweit ja noch gar nicht wild finde ich. Probleme sind halt die, dass das ganze in 'solange rückwärts wie geht' Form in ner Tabelle in den Panels und am PC dargestellt werden soll und der PC am Feierabend bzw. am WE ausgeschaltet wird.

    Messwerterfassung und Ausgabe in Arrays steht schon, Wochen- Monats-, und Jahreshoch is auch kein Ding, Barcodescanner kann auch keine Kunst sein.
    Jetzt gehts halt dran, das Ganze in Tabellenform zu bringen (so wie halt der Link oben von Siemens das sagt). Ist halt die Frage wieviel und wie lang kann ich auf der CPU zwischenspeichern wenn der Meister PC aus ist und wie ich da von den Daten her den Abgleich zaubere wenn der PC Schichtübergreifend aus war.


    Aber wir machen den schönen Job ja nicht weil wir alles können, sondern um jeden Tag was dazuzulernen. :P

  6. #5
    JoHo ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.04.2009
    Beiträge
    15
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also auch auf die Gefahr hin ausgelacht zu werden........ich bekomms net hin. bzw. der Groschen fällt pfennigweise bei mir......wenn nicht sogar nur in zehntel Pfennigen.
    Also mein Array in der SPS habe ich. Eine entsprechende Variable im WinCC flexible auch. Eine hübsche Tabelle auch, die mir eine csv datei hübsch anzeigt (also lesen kann ich sie).
    Das Archiv beschreiben geht in form von Variable archivieren, wobei mir WinCC nicht das Array in die csv Datei schreibt, sondern irgendwas (wobei ich das 'WAS' noch grade am ergründen bin).
    Aber eine einfache Version von 'zeige mir bitte mal eben das ganze array an scheint es nicht zu geben (ich mein z.B. in LabView, was hier warhscheinlich wieder sehr wenige kennen sind das dann ganze 3 Klicks).
    Über die Hilfe der Siemens Software möcht ich mich hier lieber nicht aus lassen sonst wirds was länger hier.

    Ja ich bin grad gefrustet und es tut mir auch schon fast leid, aber ist halt nicht so einfach sich ohne jegliche Ahnung hier durchzuhangeln.

  7. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Hallo JoHo,
    ich denke, es lacht dich keiner aus ...
    Du darfst aber eben nicht Flex mit Excel (oder ähnlichen Konsorten verwechseln).
    Die von dir gewünschte Funktion (zeige mir das ganze Array an) gibt es in Flex so nicht - nur mit entsprechend viel "Handarbeit".

    Die Variante "mit einem Archiv arbeiten" habe ich in meinen Projekten für mich abgehakt. Mit einem bißchen Script-Wissen läßt sich das Ganze auch "zu Fuß" hinbekommen und dann funktioniert es auch so, wie man will (auch beim Abspeichern).

    Gruß
    LL

  8. #7
    JoHo ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.04.2009
    Beiträge
    15
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also entweder bin ich zu blöd zum archivieren oder es geht nicht.

    In meinem DB 201 steht ab 0.0 ein Array mit 93 Reals. Im flexible hab ich dann auch mal eine Variable angelegt, die genau da hinzielt und auch 93 Arrayelemente hat und auch automatisch eine Länge von 372 (was ja korrekt ist). Diese Variable hab ich nun auf archivieren gestellt (was ja standartmäßig nur zyklisch geht und nicht per Knopfdruck wie ich es gerne hätte).
    Und siehe da: Kaum hab ich die Runtime gestartet steht sage und schreibe NICHTS!!! im Archiv. Dies ändert sich auch nicht wenn ich die Runtime längere Zeit laufen lasse.
    Also ich ruf mir dann einfach mal die CSV Datei im Editor auf bzw. Schau mit Ihre Größe von 1kb an, die sich einfach nicht verändert.........

    Deshalb: Mach ich da was falsch oder flexible?

  9. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    ... ich hatte jetzt eigentlich erwartet, dass sich einer unserer Archiv-Profis hier mal zur Sache meldet - aber OK.

    Wie ich dir schon geschrieben habe sind Archive nicht mein Ding. Wenn es für dich aber auch eine Alternative sein könnte, das Ganze eigenhändig per Script zu Erledigen, dann sollte dieser Thread für dich interessant sein.
    Hier kannst du selber in eine CSV-Datei (beliebigen Aufbaus) speichern und auch ggf. wieder zurücklesen, da du dann ja weißt, was wohin gegangen ist.
    Da du außerdem mit einem Array arbeitest kannst du so die Daten dann sogar in einer Schleife (und nicht eine nach der anderen) wegschreiben.

    Gruß
    LL

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

    JoHo (25.02.2010)

  11. #9
    JoHo ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.04.2009
    Beiträge
    15
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also vielen Dank nochmal!

    Mit viel rumprobiererei und viel, viel lesen hier im Forum habe ich jetzt zumindest nen Teilerfolg errungen und bin auf einem sehr guten Wege wie ich finde.

    Code:
    'Variablen deklarieren
    Dim fso, fs, datum, zeit, datei, textfile1, inifile, i, Zeile(100), Zeilen, ix, f, text_stream, il, temp
    'Variablen deklarieren
    
    
    ' FileSystemObject erzeugen 
    Set fso = CreateObject("Scripting.FileSystemObject")
    ' FileSystemObject erzeugen 
    
    
    'Prüfen ob Datei existiert
    If fso.FileExists( "C:\Storage_Data\Logs\Engine_01\Tag_Values\100.csv") = False Then 
        ShowSystemAlarm ("BLUBB!!! path or file not available")
    End If
    'Prüfen ob Datei existiert
    
    
    
    'Daten schreiben    
    Set fs = CreateObject("WScript.Shell")
     
    datei="C:\Storage_Data\Logs\Engine_01\Tag_Values\100.csv"
     
    If Not fso.FileExists (datei) Then 
        Set textfile1 = fso.OpenTextFile(datei, 8)
        For i=0 To 92
        
        textfile1.WriteLine ("Zeit Schicht 1=" & SmartTags("DB BONAK.Zeit")(i) & "; " & "Zeit Schicht 2=" & SmartTags("DB BONAK.Zeit")(i+1) & ";" & " Zeit Schicht 3=" & SmartTags("DB BONAK.Zeit")(i+2) & ";") 
       
       i=i+2
       
        Next
    End If
    'textfile1.Close
     
    If fso.FileExists (datei) Then 
        Set textfile1 = fso.OpenTextFile(datei, 8)
        For i=0 To 92
        
        textfile1.WriteLine ("Zeit Schicht 1=" & SmartTags("DB BONAK.Zeit")(i) & "; " & "Zeit Schicht 2=" & SmartTags("DB BONAK.Zeit")(i+1) & ";" & " Zeit Schicht 3=" & SmartTags("DB BONAK.Zeit")(i+2) & ";") 
       
       i=i+2
       
        Next
    End If
    textfile1.WriteLine 
    textfile1.Close    
    'Daten schreiben
    
    'Daten anzeigen
    
    
    ' Datei öffnen
    ' open the file    
    Set f = fso.GetFile("C:\Storage_Data\Logs\Engine_01\Tag_Values\100.csv")
        
        Set text_stream = f.OpenAsTextStream(1, -2)
        
        ' Zur richtigen Zeile springen
        ' skip to the correct line
        For il = 1 To SmartTags("SkipIndex")
            If text_stream.AtEndOfStream = True Then Exit For
            temp = text_stream.ReadLine
        Next
        
        ' Zeilen aus Datei auslesen
        ' read lines from file
        
        For i = 1 To 10
            If text_stream.AtEndOfStream = True Then Exit For
            Zeile(i) = text_stream.ReadLine
        Next
        text_stream.Close
        For ix = 1 To (i-1)
        
        ' Zeile in Spalten zerlegen
        ' Split line In column
            Zeilen = Split(Zeile(ix),";",-1,1) 
            'Textfelder befüllen/ fill text fields
            Set fs = HmiRuntime.Screens("300_Archivspielerei").ScreenItems("VarNameTextfeld"& ix)
                fs.Text = Zeilen(0)
            Set fs = HmiRuntime.Screens("300_Archivspielerei").ScreenItems("ZeitTextfeld"& ix)
                fs.Text = Zeilen(1)
            Set fs = HmiRuntime.Screens("300_Archivspielerei").ScreenItems("VarTextfeld"& ix)
                fs.Text = Zeilen(2)
    Next

    Also hiermit kann ich mein Array in eine CVS schreiben in schön formatiert (wie sinnvoll oder sinnlos das ist bleibt fraglich). Das ganze gelumpse lese ich mir dann aus und Pack das in eine 'hübsche' Tabelle (der noch die scrollmöglichkeit fehlt, die ich mir aber aus nem andren Beispiel klauen kann).

    Timestamps bzw. Datum und Uhrzeit mit dazupacken sollte ja keine Kunst sein und das ganze dann irgendwie vergleichen und Auswerten sollte ja jetzt, wo ich das schon hinbekommen habe kein dolles Problem mehr darstellen.

    Für Anregungen und Verbesserungsvorschläge bin ich mehr als nur offen.

  12. #10
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo - hallo,
    das ist schon mal nichts so schlecht.
    Was mir im Vorbeigehen so auffällt ist :
    - du brauchst nur ein "CreateObject"
    - die Schleife solltest du mit "Step 3" weiterschalten
    - da du die datei (wenn vorhanden) einfach gnadenlos überschreiben willst brauchst du nicht zwischen "Datei schon vorhanden" und "Datei nicht vorhanden" zu unterscheiden.

    Der Code könnte dann so aussehen :
    Code:
    'Variablen deklarieren
    Dim fso, fs, datum, zeit, datei, textfile1, inifile, i, Zeile(100), Zeilen, ix, f, text_stream, il, temp
    
    ' FileSystemObject erzeugen 
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'Prüfen ob Datei existiert
    If not fso.FileExists( "C:\Storage_Data\Logs\Engine_01\Tag_Values\100.csv") then
        ShowSystemAlarm ("BLUBB!!! path or file not available")
    else
     
       datei="C:\Storage_Data\Logs\Engine_01\Tag_Values\100.csv"
     
        Set textfile1 = fso.OpenTextFile(datei, 8)
    
        For i=0 To 92 step 3
        
           textfile1.WriteLine ("Zeit Schicht 1=" & SmartTags("DB BONAK.Zeit")(i) & "; " & "Zeit Schicht 2=" & SmartTags("DB BONAK.Zeit")(i+1) & ";" & " Zeit Schicht 3=" & SmartTags("DB BONAK.Zeit")(i+2) & ";") 
       
        Next
       textfile1.WriteLine 
       textfile1.Close    
    End If
    ... ohne es weiter geprüft zu haben ...

    Gruß
    LL

Ähnliche Themen

  1. Antworten: 10
    Letzter Beitrag: 27.01.2011, 21:22
  2. Tabelle in WinCC für Auswahl eines Punktes
    Von haeminator im Forum HMI
    Antworten: 0
    Letzter Beitrag: 27.07.2010, 13:42
  3. Tabelle erstellen mit Wincc flex 2008
    Von buba1983 im Forum HMI
    Antworten: 3
    Letzter Beitrag: 10.08.2009, 14:31
  4. Antworten: 1
    Letzter Beitrag: 15.01.2009, 19:52
  5. Antworten: 0
    Letzter Beitrag: 06.10.2007, 10:22

Stichworte

Lesezeichen

Berechtigungen

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