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

Ergebnis 1 bis 4 von 4

Thema: S7 200 und indirekte Adressierung

  1. #1
    Registriert seit
    03.02.2004
    Beiträge
    117
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen!

    Ich habe ein kleines Problem mit der indirekten Adressierung.

    Als erstes mal eine kurze Beschreibung der Aufgabenstellung:

    Ich programmiere grad an einem Ofen rum, der auch erfasste Temperaturwerte abspeichern soll. Hierzu habe ich mir überlegt den Messwert jede viertel Stunde einzulesen.Dieser befindet sich dann in AEW0.
    Jetzt wollte ich durch einen Pointer den Wert z.B. an die Adresse VW2000 verschieben und danach den Pointer um 2 erhöhen so das er das nächste mal wenn das Unterprogramm zur Datenspeicherung aufgerufen wird den Messwert in VW2002 speichert.

    Kurz gesagt:
    Der Wortwert der in AEW0 steht soll an die Stelle übertragen werden, auf die der Pointer zeigt.


    Nach reichlich Recherche und suchen habe ich aber eine solche Pointerfkt. in MicroWin noch nicht gefunden.

    Das einzige das ich finde sieht so aus:
    DerWert auf den der Pointer zeigt, wird nach (z.B.) VW2000 übertragen.


    Also genau falsch herum wie ich es brauche

    Gibt es da eine Möglichkeit oder weiß jemand einen anderen Weg die Aufgabenstellung zu realisieren?


    DAnke für alle Tipps und Ideen

    MfG

    Rengel
    Zitieren Zitieren S7 200 und indirekte Adressierung  

  2. #2
    Registriert seit
    17.04.2004
    Beiträge
    28
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    was mir spontan dazu einfällt:

    die Sache mit den Pointern müsste man auch umdrehen können

    MOVW AEW0, *VD2000

    Demnach müsste das AEW in die Adresse geschrieben werden, die im VD2000 steht. Startadresse in VD2000 angeben und dann Viertelstündlich Inkrementieren

    Keine Ahnung ob's wirklich funktioniert - interessiert mich aber
    selbst.



    Nächste Möglichleit:

    BMW VW2000, VW2002, 100
    MOVW AEW0, VW2000

    1. VW2000 nach VW2002 schieben; Anzahl: 100 Worte, ältester Wert
    steht also im VW2100 (?)
    2. Analogwert nach VW2000 transferieren
    Der älteste Wert im VW2100 wird automatisch überschrieben.

    Diese Variablenschieberei funktioniert allerdings umgekehrt wie Du es beschrieben hast:
    "Wert z.B. an die Adresse VW2000 verschieben und danach den Pointer um 2 erhöhen so das er das nächste mal wenn das Unterprogramm zur Datenspeicherung aufgerufen wird den Messwert in VW2002 speichert."


    Dann gibt's ja noch die Sache mit den Tabellenoperationen (FIFO, LIFO, etc.). Bin bis jetzt noch nicht in Versuchung gekommen dies zu nutzen.


    Wie gesagt, mit der ersten Sache, mit dem Pointer, bin ich mir nicht sicher ob's funktioniert - der zweite Vorschlag müsste aber gehen (so würd' ich's machen - iss aber Geschmackssache)


    MfG

    Harald

  3. #3
    Registriert seit
    17.09.2003
    Ort
    Zell bei Dietfurt a.d. Altmühl
    Beiträge
    357
    Danke
    8
    Erhielt 27 Danke für 25 Beiträge

    Standard

    Hallo Rengel.

    Das was HaraldG mit dem Pointer sagt stimmt schon. Ich würde es auf jedenfall über Pointer machen ist deutlich einfacher. Als Beispiel.
    Alle 15 Minuten wird die Temperatur gesichert. Nach 100 soll der Pointer neu erstellt werden, somit wird bei der nächsten Sicherung der älteste Wert überschrieben.

    // Pointer erstellen
    LDN M1.0 // Pointer erstellen
    OW>= VW2, +100 // Nach 100 Sicherungen Pointer neu erstellen (OPTION)
    MOVD &VB2000, VD0 // VD0 als Pointer auf VB2000 erstellen
    MOVW +0, VW2 // Lösche Istanzahl der Sicherunge (OPTION)
    S M1.0, 1 // Pointer wurde erstellt
    // Daten sichern
    LD M2.0 // Taktflanke alle 15 Minuten
    MOVW AEW0, *VD0 // Analogwert an Pointer übertragen
    +D +2, VD0 // Zugriffsadresse in VD0 für Pointer um 2 erhöhen
    INCW VW2 // Anzahl der Sicherung (OPTION)

    Solltest du nach fragen zu Pointerprogrammierung bei der S7-200 haben, so kann ich dir gerne weiterhelfen.

    MfG

    Hubert

  4. #4
    Rengel ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.02.2004
    Beiträge
    117
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!

    Danke euch!

    Auf die Idee mit dem *VD2000 als Zieladresse hätte ich aich selber drauf kommen können Manchmal gibt es Tage, da sieht man den Wald vor lauter Bäumen nicht

    Werde das am Wochenende mal probieren, eher werde ich es leider wohl nicht schaffen

Ähnliche Themen

  1. Indirekte Adressierung in AWL
    Von Bensen83 im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 31.01.2015, 15:58
  2. indirekte Adressierung
    Von Sash7770 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 22.12.2008, 12:47
  3. indirekte Adressierung
    Von Linowitch im Forum HMI
    Antworten: 13
    Letzter Beitrag: 06.12.2008, 19:43
  4. Indirekte Adressierung
    Von thomasgull im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 31.01.2008, 14:49
  5. Indirekte Adressierung von SFC 20
    Von andre im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 05.09.2005, 09:44

Lesezeichen

Berechtigungen

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