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

Ergebnis 1 bis 5 von 5

Thema: Analogwerte nacheinander in DB´s speichern

  1. #1
    Registriert seit
    14.01.2013
    Beiträge
    10
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich möchte 5 verschiedene Drucksensoren mit einer 8x12 BIT Analogkarte einlesen und speicher. Es sollen soviele Daten wie möglich über den längst möglichen Zeitraum gespeichert werden, die genaue Datenerfassung ist jedoch vorrangig.

    Das Speichern in einem DB funktioniert bereits, auch das weiterspringen in den nächsten DB sobald dieser voll ist. Jedoch ist dies ziemlich einfach und somit ziemlich groß geschrieben. Für jeden DB gibt es ein neues Netzwerk. Die Funktion mit dem Array ist ebenfalls bekannt.

    so sieht der AWL Code für einen DB aus, der sich pro DB wiederholt.
    Code:
          UN    M      2.1                  // DB der Reihe nach aktivieren
          SPB   NEX1            
          UN    M    180.0
          SPB   END1
     
          L     "POINTER 1"             // MW100 
          SLD   3
          LAR1  
          L     "DRUCK 1"                // PEW 256 Drucksensor 1
          AUF   "Datenspeicher Stufe 1-1" // DB 1
          T     DBW [AR1,P#0.0]
          L     "POINTER 1"
          L     2
          +I    
          T     "POINTER 1"
    END1: R     M    180.0
    NEX1: NOP   0
    Gibt es eine kompakte Möglichkeit diese große Datenmenge zu speichern.
    Folgende Hardware steht zu verfügung:

    Siemens S7 314
    8MB Speicherkarte
    Analalogkarte 331 8x12Bit

    Danke schonmal für die Antworten
    Zitieren Zitieren Analogwerte nacheinander in DB´s speichern  

  2. #2
    Registriert seit
    25.11.2008
    Ort
    Westpfalz
    Beiträge
    1.550
    Danke
    187
    Erhielt 212 Danke für 186 Beiträge

    Standard

    Hallo,
    aus deiner Beschreibung entnehme ich wohl folgende Frage:
    Zitat Zitat von Drexta Beitrag anzeigen
    Es sollen soviele Daten wie möglich über den längst möglichen Zeitraum gespeichert werden,
    ...
    Gibt es eine kompakte Möglichkeit diese große Datenmenge zu speichern.
    Die Daten in den DB speichern ist eine Sache, je öfter - desto schneller ist der Speicher voll.
    Mittelwertbildung oder ähnlich würde die Datenmenge schonmal reduzieren.
    Interessant wäre was du mit den Daten vor hast und wie oft der Drucksensor abgefragt werden soll?

    MfG MK
    and we all support the team (S.King - Die Arena)

  3. #3
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Wenn Du kein Komprimierungsverfahren verwenden willst, wirst Du pro Wert und pro Zeiteinheit ein Wort brauchen.
    Das hast Du auch schon programmiert. Was ist nun die Frage?
    Kompakt? Meinst Du mit weniger Code? Dann eventuell einen überlangen Adresspointer generieren, und einen Code schreiben, der dann den gewünschten DB vor dem Schreiben öffnet.
    Beispiel:
    DB-Länge 16384 Byte
    Für Messwert 1 hast Du DB1, 2, 3, 4, 5, ... bis 10 (die müssen natürlich hintereinander liegen)
    Ist der Adresspointer nun auf zB 35000, musst Du den DB3 öffnen und in Adresse (35000 - 2x16384) schreiben.


    PS: Der M180.0 ist der Trigger fürs Speichern nehme ich an.
    Das nicht erfüllte "SPB END1" macht das VKE1 wenn nicht gesprungen wird "1/true"", daher wird nach der Speicherung des Wertes der M180.0 zurückgesetzt. Ich würde aber dennoch ein SET davorschreiben, weil es so nicht sehr hübsch ist.
    Kann aber sein, dass Du was ganz anderes damit vorhattest, ist mir nur aufgefallen.

  4. #4
    Drexta ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.01.2013
    Beiträge
    10
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich möchte die Druckwerte einfach nacheinander Speichern und wenn die max. Datenmenge erreicht ist soll er von vorne wieder übnerschreiben.

    Unser Code sieht nun folgendermaßen aus:

    Code:
    UN    M    180.0                                       // gibt takt vor (erstmal provisorisch)                          
          SPB   ENDE
          L     MW   100
          SLD   3
          LAR1  
          L     "DRUCK 1"
          AUF   DB [MW 10]                                         // Auswahl nächster DB wenn voll
          T     DBW [AR1,P#0.0]                                 // registerindirekter Pointer
          L     MW   100                                              //Pointer
          L     2                                                           // Pointer zwei stellen hoch (int)
          +I    
          T     MW   100
    ENDE: R     M    180.0
          NOP   0



    das Adressierungsverfahren ist nun Registernindirekt geschrieben. Ich möchte das ganze aber Speicherindirekt haben, da ich nachher 5 veschiedene Messwerte gleichzeitung aufnehmen möchte.
    Wie kann man das ganze umschreiben damit es Speicher indirekt läuft.

    Danke
    Geändert von Drexta (21.01.2013 um 11:53 Uhr)

  5. #5
    Registriert seit
    26.11.2010
    Beiträge
    181
    Danke
    9
    Erhielt 13 Danke für 13 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    Wie lange soll das vor sich hinlaufen?
    Was ist der Sinn dahinter, diese Werte in
    der Steuerung zu haben und nicht irgendwo
    in einer Visualisierung als Trend?

    Wenn es um eine kurzweilige Diagnose geht könntest du auch
    einen PC mit Flexible Runtime nehmen und einen Trend
    anlegen.

    Oder wenn es um Sptizen bzw. Ausreisser oder
    ein Drift von einem Sensor geht
    dann reicht doch ein Eintrag in den DB mit dem Wert und
    dem Zeitstempel dazu.

    Gruß
    Bernhard

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 28.12.2012, 17:52
  2. Antworten: 4
    Letzter Beitrag: 07.11.2012, 09:45
  3. Logo und Analogwerte speichern
    Von Rondarianus im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 09.05.2012, 14:51
  4. Analogwerte speichern
    Von a.richter im Forum Elektronik
    Antworten: 8
    Letzter Beitrag: 01.06.2010, 08:23
  5. Analogwerte ähnlich Schieberegister speichern
    Von steffen21m im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 17.04.2005, 20:24

Lesezeichen

Berechtigungen

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