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

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

Thema: Daten in DB nach einander speichern und FirstInLastOut wieder ablesen

  1. #1
    Registriert seit
    04.11.2010
    Beiträge
    31
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    Folgende Herausforderung habe ich, und zwar ich soll Daten einlesen (Date _and _Time, String, Strom, Spannung ) und in einem DB speichern, diese Daten werden über OPC Router abgeholt und in einem SQL Datenbank gespeichert. Wenn die Daten aufgrund ein Netzwerkproblem vom OPC Router nicht von dem DB abgeholt werden können, müssen diese unter einander oder einfach weiter gespeichert werden, und sobald die Kommunikation wieder steht werden die Daten sehr wichtig (FirstInLastOut) abgeholt werden. Ich habe mit SFC20 probiert und Daten immer wenn neue Daten vorhanden sind ein Bereich nach unten geschoben, läuft wunderbar aber mit dem FirstInLastOut ging leider nicht beim Daten-abhollen da ich wieder Daten nach oben verschiebe.

    bzp:

    0.0 zeit1 DATE_AND_TIME
    8.0 ID1 String [10]
    20.0 Spannung1 Dint
    24.0 Strom1 Dint

    28.0 zeit2 DATE_AND_TIME
    36.0 ID2 String [10]
    48.0 Spannung2 Dint
    52.0 Strom2 Dint


    Ich glaube mit indirekte Adressierung Pointer bestimmt Eleganter lösung gibt. Habe leider keine Erfahrung damit.

    Danke im Voraus.
    Zitieren Zitieren Daten in DB nach einander speichern und FirstInLastOut wieder ablesen  

  2. #2
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Was hast Du denn bis jetzt programmiert?
    Poste doch mal Deinen Code.
    Gruß
    Michael

  3. #3
    Registriert seit
    04.11.2010
    Beiträge
    31
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ich habe Testweise nach einem Trigersignal Daten in einem DB nach unten oder nach oben verschoben, sehe Bild.

    Programmabschnit.JPG

  4. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Bist Du Dir sicher, daß Du das FILO-Prinzip ("FirstInLastOut") verwenden mußt - also die Daten in umgekehrter Reihenfolge aus dem Puffer zurückholen mußt?
    (Das korrekte Fachwort heißt übrigens LIFO (Last-In-First-Out) - hilfreich beim googlen und bei der Suche nach fertigen Lösungen hier im Forum ...)

    Normalerweise wird ein LIFO nicht umgespeichert. Es werden nur Datensätze oben auf den Stapelspeicher gepackt (Push) und von oben wieder heruntergenommen (Pop) und sich gemerkt, wie hoch der Puffer gefüllt ist. Warum speicherst Du um?

    Falls Du jedoch die Daten in der selben Reihenfolge herausnehmen willst wie sie in den Puffer geschrieben wurden - Du also einen FIFO (First-In-First-Out) meinst - den kann man als Ringpuffer realisieren und muß dann ebenfalls nicht umspeichern.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Egal ob LIFO oder FIFO - den wirst Du in FUP oder KOP nicht realisieren können, weil in FUP/KOP keine indirekte Adressierung möglich ist (man kann höchstens mit riesigem Aufwand ANY-Pointer für SFC20 basteln).

    Für die Implementation eines LIFO/FIFO mußt Du AWL oder besser SCL benutzen.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. #6
    Registriert seit
    04.11.2010
    Beiträge
    31
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,
    Die Daten müssen im umgekehrter Reihenfolge aus dem Puffer zurückgeholt werden. deshalb ist die Lösung mit SFC 20 nicht viel hilfreich beim zurückholen der Daten.

    Danke im Voraus.

  7. #7
    Registriert seit
    04.11.2010
    Beiträge
    31
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard

    mit AWL kann ich mir vorstellen das zu realisieren aber mit SCL habe leider keine Erfahrung.
    Gibt s vorschläge mit AWL ?
    Geändert von kruz_007 (07.03.2014 um 10:48 Uhr)

  8. #8
    Registriert seit
    02.02.2012
    Ort
    Kaarst
    Beiträge
    126
    Danke
    10
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Also rein von der Theorie her musst du den DB einfach nur von Oben nach Unten vollschreiben und merkst dir dabei wo du bist.
    Wenn die Kommunikation wieder hergestellt ist fängst du von dem Punkt an wieder auszugeben wo zu letzt gespeichert hast und zählst rückwärts.

    Hab leider keine Zeit jetzt einen Vorschlag zusammen zu knöppeln. Kann ich aber am Wochenende mal machen.

  9. #9
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von kruz_007 Beitrag anzeigen
    Gibt s vorschläge mit AWL ?
    Suchst Du jetzt jemanden, der für Dich die Forumssuche oder Google bedient?
    Fürs Erste schau mal in diesen FAQ: Pointer Zeiger FIFO LIFO

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

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

    kruz_007 (10.03.2014)

  11. #10
    Registriert seit
    04.11.2010
    Beiträge
    31
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Martin,

    hast du Volkommen recht, das was ich auch jetzt versuche zu machen. aber da die Daten unterschiedliche Daten Typen haben macht die Sache Schwieriger.

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 01.11.2011, 22:33
  2. DBs nach einander lesen
    Von sb9674 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 07.12.2009, 20:28
  3. Antworten: 7
    Letzter Beitrag: 13.02.2008, 11:52
  4. Antworten: 15
    Letzter Beitrag: 24.01.2007, 11:41
  5. Dateien automatisch öffnen, speichern und wieder schließen
    Von CrazyCat im Forum PC- und Netzwerktechnik
    Antworten: 2
    Letzter Beitrag: 20.02.2006, 15:13

Lesezeichen

Berechtigungen

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