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

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

Thema: werte in DB speichern mit chronoligischer reihenfolge?

  1. #1
    Registriert seit
    03.05.2006
    Beiträge
    491
    Danke
    43
    Erhielt 45 Danke für 42 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hi

    ich möchte einen wert der alle 2 stunden aktualisiert wird, aufsteigend in einem DB für 2 wochen (das sind also 168 werte) für eine winccflex07-kurve puffern. da der visuPC nur selten an ist (sonst hätte ich das ja in winccflex programmiert), möchte ich diese werte in der steuerung so in die dbs schreiben dass winccflex07 die werte auf der X-achse (zeitachse) richtig darstellt.

    wie kann ich das realisieren vorallem mit dem einfügen in die zeitachse?

    oder bin ich da am holzweg

    grüsse
    Zitieren Zitieren werte in DB speichern mit chronoligischer reihenfolge?  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.260
    Danke
    537
    Erhielt 2.707 Danke für 1.956 Beiträge

    Standard

    Schau mal hier:
    http://www.sps-forum.de/showthread.p...t=Kurvenarchiv

    Da gibts im hinteren Teil Infos, wie eine CSV-Datei für ein Kurvenarchiv auszusehen hat. Also müßte man aus dem DB eine CSV erzeugen, diese dann als Kurvenarchiv zur Anzeige bringen.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.788
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    Ich nehme mal an, dass dein DB wie eine Art FIFO funktionieren soll - nach 2 Wochen Aufzeichnung kickst du die ersten Werte wieder heraus ...?

    Ich würde mir einen FB bauen, der in einem Array deine Messwerte abspeichert und in einem 2. Array die zugehörigen Datum's und Uhrzeitwerte.
    Wenn du deine Visu aufrufst (die entsprechende Seite), dann setzt du einen Aktualisierungs-Trigger für die Profil-Kurve. Damit hast du dann schon mal deine Messwerte dargestellt. Für einen Datums-/ Uhrzeitbezug habe ich mir bei einer ähnlichen Sache mal eine x-Achsen-Beschriftung (per Script) selbst erstellt. ProTool und Wcc-Flex wollen da ja am liebsten nur einen Index darstellen.

    Gruß
    LL

  4. #4
    funkdoc ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.05.2006
    Beiträge
    491
    Danke
    43
    Erhielt 45 Danke für 42 Beiträge

    Standard

    @ralle

    leider kenn ich mich mit VB nicht wirklich aus.

    @larry

    ja so ähnlich hab ich mir das vorgestellt.
    nur sollen die werte alle 2 stunden von der steuerung aktualisiert und ins DB1.DBD 0 eingetragen werden und zuvor alle werte um eins nach hinten schieben... sozusagen ein umlaufarchiv.

    ich habe leider mit kurven und deren darstellung in winccflex runtime noch keine wirkliche erfahrung aber soweit ich das jetzt rausgefunden habe, sollte der kruventyp "puffer bitgetriggert" sein und beim betätigen einer "aktualisieren" schaltfläche sollte der inhalt des DBs in die kurvenanzeige eingefügt werden...natürlich mit den richtigen zeitangaben passend zur x-achse

    grüsse

  5. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.788
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    ... dann bist du doch schon auf der richtigen Spur.
    Die benötigte Software-Funktion findest du in der FAQ als Beitrag FIFO-LIFO :
    http://www.sps-forum.de/showthread.php?t=8887

    In deinem Fall wäre FIFO das richtige.

    Das Aktualisieren der Kurve kannst du (wie ich schon beschreiben habe) auch beim Seiten-Aufbau auslösen ... oder von der SPS aus ... wie du mölchtest.

    Gruß
    LL

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

    funkdoc (27.02.2008)

  7. #6
    funkdoc ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.05.2006
    Beiträge
    491
    Danke
    43
    Erhielt 45 Danke für 42 Beiträge

    Standard

    hi ich probier es gerade mit dem sfc20 blkmov und hab da schon wieder schwierigkeiten. ich will damit einen ganzen block von realzahlen (168 am stück) vom DB1.DBD 0 ins DB1.DBD 1 verschieben.
    funktioniert nicht so wie ich mir das vorstelle. der sfc20 verschiebt nur BYTEweise obwohl ich beim SRCBLK angebe -->P#DB1.DBX0.0 REAL 168<--- und beim DSTBLK -->P#DB1.DBX1.0 REAL 168<--.

    weiss da wer bescheid?
    Geändert von funkdoc (29.02.2008 um 00:49 Uhr)

  8. #7
    Registriert seit
    20.11.2006
    Ort
    Hamburg
    Beiträge
    225
    Danke
    35
    Erhielt 35 Danke für 32 Beiträge

    Standard

    das sagt die Hilfe vom SFC20 dazu
    Code:
    Hinweis
    Quell- und Zielfeld dürfen sich nicht überlappen.
    Abhilfe würde eine zweimalieges umkopieren schaffen, wenn es denn SFC20 sein soll. Oder eine eigenhändig geschriebene Schleife.

  9. Folgender Benutzer sagt Danke zu Dotzi für den nützlichen Beitrag:

    funkdoc (02.03.2008)

  10. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.788
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    ... kopier doch mal in das DBD 0 oder in das DBD 4 ...
    Ich denke, dann wird es funktionieren ...

    Gruß
    LL

  11. #9
    Registriert seit
    28.10.2005
    Ort
    Ottweiler, Saar
    Beiträge
    940
    Danke
    259
    Erhielt 124 Danke für 109 Beiträge

    Standard

    Zitat Zitat von funkdoc Beitrag anzeigen
    hi ich probier es gerade mit dem sfc20 blkmov und hab da schon wieder schwierigkeiten. ich will damit einen ganzen block von realzahlen (168 am stück) vom DB1.DBD 0 ins DB1.DBD 1 verschieben.
    funktioniert nicht so wie ich mir das vorstelle. der sfc20 verschiebt nur BYTEweise obwohl ich beim SRCBLK angebe -->P#DB1.DBX0.0 REAL 168<--- und beim DSTBLK -->P#DB1.DBX1.0 REAL 168<--.

    weiss da wer bescheid?
    Beachte den Beitrag von Larry, denn Du überschreibst
    unabsichtlich Deine Daten:

    DB1.DBD 0 umfasst die Bytes 0,1,2,3
    DB1.DBD 1 umfasst die Bytes 1,2,3,4

  12. #10
    funkdoc ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.05.2006
    Beiträge
    491
    Danke
    43
    Erhielt 45 Danke für 42 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hi

    natürlich meinte ich das DBD 4 sorry...
    kleiner denkfehler beim schreiben (mir is schon klar dass eine 32bit realzahl 4 bytes belegt)

    es funktioniert trotzdem nicht. kann dass mal wer mit der simulation nachstellen? vielleicht liegts auch an dem dass es aus den db1 lest und auf db1 schreibt... versteh ich aber nicht wieso. ich meine vorher ladet man ja die gelesenen daten in den lokaldatenbereich und dann überschreibt man alle bytes ab dem byte 4 - 672... warum soll sich das nicht überlappen dürfen? byteweise funtkionierts ja auch, warum nicht mit dem any->REAL?

    grüsse und danke nochmal
    Geändert von funkdoc (01.03.2008 um 04:10 Uhr)

Ähnliche Themen

  1. Reihenfolge speichern und abarbeiten
    Von artofautomation im Forum Simatic
    Antworten: 37
    Letzter Beitrag: 20.10.2011, 11:25
  2. DB - Werte Speichern ?
    Von Pockebrd im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 20.12.2010, 07:57
  3. Bräuchte Hilfe um Reihenfolge zu speichern .
    Von Chris30 im Forum Simatic
    Antworten: 19
    Letzter Beitrag: 11.07.2010, 17:51
  4. Antworten: 0
    Letzter Beitrag: 19.05.2009, 09:33
  5. Werte Speichern
    Von Unregistriert57 im Forum HMI
    Antworten: 2
    Letzter Beitrag: 25.06.2006, 10:35

Lesezeichen

Berechtigungen

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