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

Ergebnis 1 bis 3 von 3

Thema: Array verschieben

  1. #1
    Registriert seit
    27.03.2012
    Beiträge
    56
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,

    etwas an dem ich mir im Moment die Zähne ausbeiße:

    Ich habe eine Array mit den zehn Werten [1..10]. Es wird nun ein neuer Wert hinzugefügt, die älteste wird gelöscht, die jüngeren eins nach hinten geschoben:

    Code:
    L DB1.Data[9].Test1
    T DB1.Data[10].Test1
    L DB1.Data[8].Test1
    T DB1.Data[9].Test1
    ... etc.
    Das Array soll später noch vergrößert werden (steht noch nicht ganz fest), die Anzahl der Variablen beträgt ca. Test1 - Test10.

    Welcher weg ist der effektivste bzw. schönste?

    Danke!
    Zitieren Zitieren Array verschieben  

  2. #2
    Registriert seit
    05.01.2009
    Ort
    69198 Schriesheim
    Beiträge
    236
    Danke
    54
    Erhielt 34 Danke für 33 Beiträge

    Standard

    Hallo,

    das Thema wurde auch schon häufig diskutiert,
    von den guru´s, wurde folgender Beitrag in den FAQ´s abgelegt.
    Ist zumindest eine große Hilfe:

    http://www.sps-forum.de/showthread.p...ght=fifo+array

    gruß Thomas
    Radiozitat: "Meine Frau hat nen geilen Arsch, nämlich mich"

  3. #3
    Registriert seit
    27.03.2012
    Beiträge
    56
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke für den Link - werd es dann für mich anpassen (unterschiedliche Datentypen etc.).

    Hab es nach der Methode von Volker probiert: Pointer Zeiger FIFO LIFO

    Code:
          AUF   DB126                //Typ: Block_DB
          L     258                         //Typ: INT
          L     1
          -I    
          T     "ZAEHLER"                   //Typ: DINT
    anf:  NOP   0                           //Schleifenanfang
          L     "ZAEHLER"
          SLD   3                           //pointer erzeugen
          LAR1                              //in das Adressregister laden
          L     DBB [AR1,P#0.0]
          T     DBB [AR1,P#26.0]
          L     "ZAEHLER"
          L     1
          -I                                //Index um 1 verringern
          T     "ZAEHLER"
          L     1
          +I    
          L     0                           //Typ: INT
          <=I                               //prüfen ob fertig
          SPB   ende                        //wenn ja ende
          SPA   anf                         //sonst schleife wiederholen
    ende: NOP   0
    Ich verschiebe aber nicht um ein Byte, sondern um 26 - klappt soweit auch... allerdings schreibt er verkehrt herum - von 1 nach 2, dann 2 nach 3 etc.

    Muss ich eigentlich das AR1 vorher sichern und dann wiederherstellen?
    Geändert von MrChiliCheese (04.07.2012 um 16:24 Uhr)

Ähnliche Themen

  1. Antworten: 18
    Letzter Beitrag: 21.12.2016, 17:03
  2. Bits verschieben...
    Von LSOLO im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 18.07.2006, 11:44
  3. Daten verschieben
    Von puehri im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 17.07.2006, 19:22
  4. Bool-Array in Byte-Array
    Von Techniker im Forum Sonstige Steuerungen
    Antworten: 10
    Letzter Beitrag: 13.01.2006, 19:12
  5. Datensatz verschieben
    Von Anonymous im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 27.02.2004, 12:47

Lesezeichen

Berechtigungen

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