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

Ergebnis 1 bis 6 von 6

Thema: CPU 214 STEP 7-Micro/Win Pointer programierren

  1. #1
    Registriert seit
    19.04.2012
    Ort
    Barntrup
    Beiträge
    112
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Ich habe eine Druckentwässerrung. Ich Steuer Sie mit einer CPU 214 . Über ein Zähler zähle ich die Einschalthäufigkeit der pumpe. Den wert setzte ich um 0 Uhr wieder zurück. Ich würde gerne den wert in eine Datenbaustein speichern so das jeder tag dort abgelegt wird. Ich dachte an ein Pointer der immer ein wort weiter springt. Die Hilfe in Micro win hilft nicht wirklich. Da ist so ein beispiel was aber auch nicht geht:

    Code:
    MOVD   &VB0, AC1
    MOVW   AC1, MW20
    +D     +2, AC1
    MOVW   AC1, MW22
    Habt ihr eine Idee?
    Zitieren Zitieren CPU 214 STEP 7-Micro/Win Pointer programierren  

  2. #2
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Standard

    Hi Kollege,

    eigentlich ist das relativ einfach, das "&" sagt, dass es hier um eine Adresse geht; Der Wert von dort kann man rausholen, wenn man ein "*" davor setzt.

    MOVD &VW0, AC1 // hier wird in Akku 1 die Adresse VW0 geladen
    MOVW *AC1, AC0 // der Wert der Variable von o.g. Adresse wird in AC0 kopiert
    +D +2, AC1 // AC1 wird um 2 inkrementiert( Adresse !!!), also steh dort jetzt VW2
    MOVW *AC1, AC0 // der Wert der Variable von Adr. im AC1 wird in AC0 kopiert, also der Wert von VW2

    Alles klar?

  3. Folgender Benutzer sagt Danke zu vladi für den nützlichen Beitrag:

    Chris80 (21.05.2012)

  4. #3
    Chris80 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.04.2012
    Ort
    Barntrup
    Beiträge
    112
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke vladi
    Ne ich bekomme es nicht hin.

    in MW10 steht zb 123

    Ich habe mir ein zähler gemacht der immer um 2 zahlen steigt: 2,4,6,8....
    jetzt soll der das mw10 ausgelesen werden dann der zähler zb. 4

    dann müsste er mir den wert von mw10 in vw4 schreiben.


    da ne idee zu?
    Geändert von Chris80 (21.05.2012 um 14:33 Uhr)

  5. #4
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Standard

    Hallo,
    MOVD &VW0, AC0 // hier wird in Akku 1 die Adresse VW0 geladen
    +D ZÄHLER, AC0 // AC0 wird um ZÄHLER inkrementiert ( Adresse !!!), also steh dort jetzt VW(Zähler)
    MOVW MW10,*AC0 // der Wert von MW10 geht in VW(Zähler)

    Gruss: Vl.

  6. #5
    Chris80 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.04.2012
    Ort
    Barntrup
    Beiträge
    112
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also ich werde es mal so versuchen
    einschaltvor = ne zahl wie oft die pumpe anlief
    aus mb12 lese ich den tag noch aus der dann auch in den db geschrieben werden soll.

    NW1
    Code:
    MOVD   &VB0, AC0
    +I     pointer, AC0
    MOVW   einschaltvor, AC0
    NW2 /// wird nur die zeit ausgelsen und die 8 bytes ab mb10 geschrieben
    Code:
    LD     SM0.0 
    TODR   MB10
    NW3 wenn m5.0 kommt wird pointer um 2 erhöt (passiert einmal am tag)
    Code:
    LD     M5.0
    EU
    +I     2, pointer
    NW 4 Tag soll in db geschrieben werden

    Code:
    MOVD   &VB0, AC0
    +I     pointer, AC0
    MOVB   MB12, AC0
    NW5 pointer wird wieder um 2 erhöt für nächste schleife.
    Code:
    LD     M5.0
    EU
    +I     2, pointer

    Und wird das wohl hinhauen?

    Vielen Dank

  7. #6
    Chris80 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.04.2012
    Ort
    Barntrup
    Beiträge
    112
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ne will nicht Funktionieren.
    Hier mal ganz einfach was eigentlich gehen müsste:
    Code:
    MOVD   &VB0, AC0
    +D     md0, AC0
    MOVW   mw10, AC0
    Über die statustabelle schreibe ich in das MD0 Die zahl 2 und in das MW10 die zahl 12.

    Jetzt müsste doch in den VB2 die zahl 12 stehen oder?

    Ist aber nicht so.

    Warum?

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 25.05.2011, 17:15
  2. STEP 7-Micro/WIN Bibliothek erstellen
    Von espeessler im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 17.03.2009, 13:13
  3. STEP 7-Micro/WIN V4.0 Service Pack (SP6)
    Von hydrosla im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 18.12.2007, 11:52
  4. CPU 214 Micro Win
    Von Holle6 im Forum HMI
    Antworten: 1
    Letzter Beitrag: 04.11.2005, 13:41
  5. PID-Regler in STEP 7-Micro/WIN 4.0
    Von Anonymous im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 29.09.2005, 08:56

Stichworte

Lesezeichen

Berechtigungen

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