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

Ergebnis 1 bis 4 von 4

Thema: [ S7-200 ] Speicherbereiche mit Zeigern übertragen

  1. #1
    Registriert seit
    29.07.2005
    Beiträge
    82
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Auf der S7-200 habe ich folgenden AWL Code generiert:

    Code:
    LD     SM0.0
    
    MOVW   42, VW0                     // setze vw0 auf den Wert 23
    
    MOVD   &VB0, VD50                  // mache VD50 zu Zeiger auf vb0
    MOVD   &VB100, VD54                // mache VD54 zu zeiger auf vb100
    
    BMB    *VD50, *VD54, 2             // kopiere 2 Byte von der Adresse auf die  
                                       // VD50 zeigt an die Adresse auf die VD54 zeigt
    mit dem Ergebnis, dass nach Ablauf des Programms in VW100 der Wert 42 steht.

    Was ich aber gerne hätte, wäre, dass mit dem BMB Befehl nicht von der Adresse auf die VD50 zeigt an die Adresse auf die VD54 zeigt kopiert wird, sondern dass die Werte der Variable auf die die Zeiger zeigen als Quell- und Zieladressen verwendet werden. Sprich: VD50 zeigt auf VB0 und in VB0 steht der Wert 42. VD54 zeigt auf VB100 und in VB100 steht der Wert 0 (wegen Vorinitialisierung). Dementsprechend hät ich gerne, das BMB 2 Byte von VB42 nach VB0 kopiert. Aber wie lässt sich das realisieren?
    Zitieren Zitieren [ S7-200 ] Speicherbereiche mit Zeigern übertragen  

  2. #2
    Registriert seit
    14.01.2004
    Ort
    Hattorf
    Beiträge
    3.201
    Danke
    297
    Erhielt 311 Danke für 266 Beiträge

    Standard

    hallo,
    glaube du willst wahlfrei auf die vb's zugreifen, unten mal was in fup, dann kann mann es besser sehen.
    Angehängte Grafiken Angehängte Grafiken
    mfg

    dietmar

    Nichts ist so beständig wie ein Provisorium.

  3. #3
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von caret Beitrag anzeigen
    Auf der S7-200 habe ich folgenden AWL Code generiert:

    Code:
    LD     SM0.0
    
    MOVW   42, VW0                     // setze vw0 auf den Wert 23
    
    MOVD   &VB0, VD50                  // mache VD50 zu Zeiger auf vb0
    MOVD   &VB100, VD54                // mache VD54 zu zeiger auf vb100
    
    BMB    *VD50, *VD54, 2             // kopiere 2 Byte von der Adresse auf die  
                                       // VD50 zeigt an die Adresse auf die VD54 zeigt
    mit dem Ergebnis, dass nach Ablauf des Programms in VW100 der Wert 42 steht.

    Was ich aber gerne hätte, wäre, dass mit dem BMB Befehl nicht von der Adresse auf die VD50 zeigt an die Adresse auf die VD54 zeigt kopiert wird, sondern dass die Werte der Variable auf die die Zeiger zeigen als Quell- und Zieladressen verwendet werden. Sprich: VD50 zeigt auf VB0 und in VB0 steht der Wert 42. VD54 zeigt auf VB100 und in VB100 steht der Wert 0 (wegen Vorinitialisierung). Dementsprechend hät ich gerne, das BMB 2 Byte von VB42 nach VB0 kopiert. Aber wie lässt sich das realisieren?
    Dazu brauchst du eine Hilfsvariable, in der du die Adresse berechnest. Die Brechnung selbst ist wahrscheinlich falsch, da ich das Format der Adresspointer nicht auswendig kenne. Bei der 300/400 muß zum Beispiel der Offset um 3 nach links geschoben werden...

    MOVD &VB0,VD1000 // ein Zeiger auf den Beginn des V-Bereichs
    ADDW *VD50,VD1002 // addiere dazu das Wort, auf das VD50 zeigt also den Inhalt von VW0. VD1000 sollte jetzt ein Zeiger auf Vb42 sein.
    BMB *VD1000, *VD54, 2

  4. #4
    caret ist offline Benutzer
    Themenstarter
    Registriert seit
    29.07.2005
    Beiträge
    82
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke euch für den Tipp mit der Hilfsvariable. Funktioniert genau so wie ich mir das gewünscht hab.

Ähnliche Themen

  1. OP 17 übertragen?????
    Von CZach001 im Forum HMI
    Antworten: 3
    Letzter Beitrag: 19.10.2011, 07:34
  2. Speicherbereiche einer Omron Steuerung
    Von Daimonion im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 22.07.2010, 10:53
  3. Zuordnung und Schutz der Speicherbereiche
    Von Christoph_BS im Forum Programmierstrategien
    Antworten: 8
    Letzter Beitrag: 12.05.2010, 08:36
  4. Programm für Bitpositionen in Speicherbereiche
    Von Da_Basco im Forum Werbung und Produktneuheiten
    Antworten: 1
    Letzter Beitrag: 13.03.2009, 00:19
  5. Libnodave & VB.NET Zugriff auf geschützte Speicherbereiche
    Von KJ1234 im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 10.11.2007, 16:02

Lesezeichen

Berechtigungen

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