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

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

Thema: Messdaten Speichern in DB

  1. #1
    Registriert seit
    25.01.2008
    Beiträge
    8
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen !

    Ich bin ein Anfänger in Sachen SPS und habe leider gerade ein kleines Problem:

    CPU: 313C
    Software: Step 7 V5.4 SP3

    Und zwar lese ich mittels einer Analogkarte Messwerte ein, die sich ständig ändern.
    Diese Werte möchte ich nun in EINEM DB fortlaufend Speichern.

    folgends funktioniert aber leider schreibe ich da ja nur auf die Adresse 0

    L PEW752
    T DB1.DBW 0

    Wie kann ich die Adresse variabel machen ?

    Habe nun mittlerweile einiges herumprobiert und auch die SuFu genutzt bin aber bis jetzt nur soweit gekommen

    Vielen Dank

    Gruss Pidi
    Zitieren Zitieren Messdaten Speichern in DB  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Dazu müßt du die Adresse erhöhen, das geht mit indirekter Adressierung. Siehe dazu in der FAQ des Forums unter FIFO. LIFO, Pointer, Indirekte Adressierung.

    Hier hat jemand mal einen Baustein für so etwas in der Art geschrieben, kannst es dir ja mal ansehen:

    http://www.sps-prog.de/Download/download.html

    2. Download
    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
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    In Kurzform kann das auch so aussehen:

    Code:
          UN    M    180.0                  //Speicherimpuls
          SPB   ENDE
    
          L     MW   100                    //Index der Sprungadresse
          SLD   3
          LAR1  
    
          L     PEW  752
          AUF   DB     1
          T     DBW [AR1,P#0.0]
    
          L     MW   100
          L     2
          +I    
          T     MW   100
    
    ENDE: R     M    180.0
    Zum Speichern einmalig M180.0 setzen.
    Achtung, du mußt MW100 irgendwann mit dem Startwert (hier 0) füllen, Außerdem mußt du kontrollieren, wann MW 100, also dein Index zu groß für den DB wird, sonst geht die SPS in Stop.

    Erhöhung des Index immer um 2, da ein Wort aus 2 Byte besteht. Geht auch anders, aber so zeigt der Index immer das Wort an, das er beschreiben würde, also Index = 100 --> DB1.DBW100
    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

  4. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    Pidi (19.08.2008)

  5. #4
    Pidi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.01.2008
    Beiträge
    8
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo

    Vielen Dank für die schnelle Hilfe !

    Das erste Programm funktioniert bei mir leider nicht, da ich Kein SCL habe.

    Das Beispielprogramm von dir funktioniert soweit recht gut !!
    Nur nun die Frage, wie kann ich die Größe des DB ändern -> Wenn ich einen Db neu erstelle kann ich maximal bis MW100 = 4 schreiben und dann geht die SPS in STOP (Hast Du ja bereits erwähnt das ich da aufpassen muss)

    Wie und bis zu was für einem maximal Wert kann ich den DB erweitern ?

    Gruss Pidi

  6. #5
    Registriert seit
    02.08.2007
    Ort
    BW im Ostalbkreis
    Beiträge
    249
    Danke
    32
    Erhielt 27 Danke für 25 Beiträge

    Standard

    Hallo,

    @Profis... sagt mir falls ich falsch liege

    Ein DB darf max. 8kByte groß sein

    D.h. die legst innerhalb deines DB ein Array an mit 4000 Worten und schreibst deine Werte wie im Bsp. rein. Achte darauf, dass dein MW100 nicht größer als 8000 wird.

    Schöne Grüße

    Philipp

  7. #6
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Zitat Zitat von PhilippL Beitrag anzeigen
    Hallo,

    @Profis... sagt mir falls ich falsch liege

    Ein DB darf max. 8kByte groß sein

    D.h. die legst innerhalb deines DB ein Array an mit 4000 Worten und schreibst deine Werte wie im Bsp. rein. Achte darauf, dass dein MW100 nicht größer als 8000 wird.

    Schöne Grüße

    Philipp
    Das mit dem Array ist die schnellste Methode, aber ich glaube bei einer S7-300 waren es doch 16K, by the way, 8k reuchen vielleicht bereits .
    Dynamisch kann man einen DB leider nicht verändern, du mußt ihn von vornherein für die größte Datenmenge auslegen.
    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

  8. #7
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.647
    Danke
    788
    Erhielt 654 Danke für 497 Beiträge

    Standard

    Zitat Zitat von Pidi Beitrag anzeigen
    Wie und bis zu was für einem maximal Wert kann ich den DB erweitern ?
    Grundsätzlich darf er 65534 Byte gross werden. Frisst dann natürlich entsprechend Speicher

  9. #8
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von PhilippL Beitrag anzeigen
    @Profis... sagt mir falls ich falsch liege
    bin zwar kein profi, aber du liegst falsch:

    bei 312 bis 315 sind es max 16kB, 317, 319 und alle 400er max 64kB
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  10. #9
    Registriert seit
    02.08.2007
    Ort
    BW im Ostalbkreis
    Beiträge
    249
    Danke
    32
    Erhielt 27 Danke für 25 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    bin zwar kein profi, aber du liegst falsch:

    bei 312 bis 315 sind es max 16kB, 317, 319 und alle 400er max 64kB
    Hallo,

    genau euch hab ich gemeint @Ralle & vierlagig

    Das es bei einer 400er 64kB sind war mir klar... ich dacht nur immer es wären 8k... hab mir eben aber den Spaß gemacht und nachgeschaut...
    Ihr habt natürlich recht!

    Vielen Dank fürs aufklären!

    Schöne Grüße

    Philipp

  11. #10
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Ralle Beitrag anzeigen
    Dynamisch kann man einen DB leider nicht verändern, du mußt ihn von vornherein für die größte Datenmenge auslegen.
    kann man wohl! wenn man den DB während der laufzeit erstellt mit SFC22 CREATE_DB

    ... "ja", wird der ralle jetzt sagen, "das ist aber nicht dynamisch ändern!" ... "ja", sagt der 4L dann, "denk doch mal weiter"

    wenn du den DB vergrößern oder verkleinern möchtest, legst du einen zweiten an, mit der gewünschten neuen länge und kopierst mit SFC20 BLKMOVE das ganze gedöns da rein, mußt natürlich beim verkleinern auf die neue länge achten. und den alten DB löschst du mit SFC23 DEL_DB. brauchst dafür quasi nur zwei speicherplätze für jeweils eine DB-nummer, den bereich kann man bei der SFC22 festlegen ... bei einer abfrage mußt du dann nur noch gucken auf welchen DB man zugreift ... wenn man immer auf den selben zugreifen möchte, muß man halt zwei mal kopieren und zweimal löschen...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

Ähnliche Themen

  1. Visualisierung von Messdaten
    Von Mertin im Forum HMI
    Antworten: 4
    Letzter Beitrag: 29.06.2010, 07:39
  2. Messdaten Visualisieren
    Von timod79 im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 12.03.2009, 10:52
  3. Messdaten per SMS
    Von patsy im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 24.02.2009, 16:05
  4. ST Messdaten Sortiere
    Von timod79 im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 05.02.2009, 06:15
  5. Messdaten aufzeichnen ??
    Von prinz1978 im Forum Simatic
    Antworten: 25
    Letzter Beitrag: 13.01.2009, 23:09

Lesezeichen

Berechtigungen

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