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

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

Thema: Werte in DB archivieren bzw schieben

  1. #1
    Registriert seit
    31.10.2006
    Beiträge
    105
    Danke
    27
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen suche eine einfache Lösung um einen wert in den DB zu schreiben und bei dem nächsten wert immer einen weiterzuschieben also das die Werte praktisch gespeichert werden
    MfG
    Micha
    Zitieren Zitieren Werte in DB archivieren bzw schieben  

  2. #2
    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

    stichwort schieberegister

    aber warum schieben? kannst doch auch nacheinander eintragen
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  3. #3
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    Oder ein einfacher Ringpuffer mit einem Zeiger.

    dtsclipper
    Das Grauen lauert in der Zwischenablage !!

  4. #4
    MK_Auto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.10.2006
    Beiträge
    105
    Danke
    27
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für deine Antwort nur habe ich die Stelle noch nicht gefunden suche halt ne einfache lösung das ein wert gemessen wird in DB eingetregen wird und er dann sage ich mal durchrutscht wenn der nächste kommt brauche 100 Werte
    Gruß Micha
    Zitieren Zitieren Hallo vielagig  

  5. #5
    MK_Auto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.10.2006
    Beiträge
    105
    Danke
    27
    Erhielt 0 Danke für 0 Beiträge

    Standard

    das ich mit pointer und AWL sage ich mal nicht so vertraut bin
    Zitieren Zitieren Achso ich hatte vergessen zu erwähnen  

  6. #6
    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

    der ringpuffer von dtsclipper ist da genau das richtige.

    brauchst nen DB mit hundert fächern
    indirekt adressiert und den zeiger beim nächsten wert hochgezählt
    beim 101. wert setzt du den zeiger wieder auf null

    also: full steam ahead!
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  7. #7
    MK_Auto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.10.2006
    Beiträge
    105
    Danke
    27
    Erhielt 0 Danke für 0 Beiträge

    Standard

    mein Problem ist das mit dem zeiger das habe ich bisjetzt ncint geschnallt
    Zitieren Zitieren Hallo Vierlagig  

  8. #8
    MK_Auto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.10.2006
    Beiträge
    105
    Danke
    27
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ich muss immer in der lage sein die 100 Werte auszudrucken daher in DB und dann über Panel im Protokol einlesen und drucken
    Zitieren Zitieren Der Grund der sache ist  

  9. #9
    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

    Code:
    *
          U     #xTrigger                   //neuer wert vorhanden
          SPBN  end
    
          L     #dPointer                   //adresse
          LAR1                              //ins adressregister
    
          AUF   DB   100                    //DB öffnen
          L     #rValue                     //Wert
          T     DBD [AR1,P#0.0]             //in DB schreiben
    
          +AR1  P#4.0                       //nächstes Fach auswählen
          TAR1  
          T     #dPointer                   //und wert für die nächste Werwendung speichern
    
          L     #dPointer                   //hat der  pointer
          L     P#400.0                     //das 101te facherreicht
          >=D   
          SPBN  end
          L     L#0                         //wird er genullt
          T     #dPointer
    
    end:  NOP   0
    so sollte es funktionieren
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  10. #10
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das ist im Grunde kein Problem.

    Der " Zeiger " ist einfach nur ein Wert, mit dem ein Datenwort angesprochen wird, beginnend bei 0.

    Also

    Code:
     
    // Hier Rückstellbedingung
     
    SPB NoRe
    L 0
    T MW 490
    NoRe: nop 0
    Um dann das " Registerfach " anzusprechen, muss noch der DB geöffnet werden und dann das Datenfach adressiert
    Code:
    AUF DB100
     
    L #SpeicherWert
    T dbw [MW 490]
     
    L MW490
    L 2
    +I
    T MW490  // Zeiger erhöhen
    Das ist so die Basisversion ohne Flanken und die Rückstellung fehlt auch noch.

    dtsclipper
    Das Grauen lauert in der Zwischenablage !!

Ähnliche Themen

  1. CodeSys Verschiedene INT Werte in einen Ausgang schieben
    Von c-teg74 im Forum CODESYS und IEC61131
    Antworten: 9
    Letzter Beitrag: 08.08.2011, 07:22
  2. Werte in DB schieben (FUP)
    Von anne im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 24.03.2011, 11:42
  3. Werte von SPS zu SPS schieben
    Von Blackhawk89 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 29.10.2010, 19:00
  4. DateandTime schieben
    Von MK_Auto im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 21.10.2009, 17:02
  5. Schieben von Bits
    Von Florian im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 31.07.2006, 15:19

Lesezeichen

Berechtigungen

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