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

Ergebnis 1 bis 8 von 8

Thema: Indirekte Adressierung !

  1. #1
    Registriert seit
    04.09.2006
    Beiträge
    33
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    An alle Experten und Liebhaber der Indirekten Adressierung !

    Habe mir mal ein Programm geschrieben das erst einmal nur einen DB mit einer Indirekten Adressierung auslesen kann. (hier einfach nur db82.db1).

    Problem: Es funktioniert! ...und warum ???

    Kann mir einer genau beschreiben was das Programm macht???


    L 1 //die indirekte Adresse
    T MB 8
    L MB 8
    L 2
    *I
    SLW 2
    T #zaehler
    AUF DB 82
    L DBW [#zaehler]
    T MW 13
    Zitieren Zitieren Indirekte Adressierung !  

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

    Ausrufezeichen

    Hi,
    L 1 //die indirekte Adresse: falsch!
    T MB 8
    L MB 8 // AKKU1:hier steht 1
    L 2 // AKKU2:hier steht 1 / AKKU1:hier steht 2
    *I // AKKU1: da steht jetzt 2 (1*2 = 2) , Binär xxxx0010
    SLW 2 // schiebe zweimal nach links, Binär xxx1000
    T #zaehler // wenn der #zaehler 32 Bit lang ist, ist es jetzt der POINTER, zeigt auf Adresse 1.0 !!!!!!!!
    AUF DB 82
    L DBW [#zaehler] // hier wird DB82.DBW1 gelesen!
    T MW 13

    Denn der Pointerformat Ist 'Bytenummer.Bitnummer', wobei für Bitnummer
    sind 3 Stellen reserviert.

    Also dass das bei dir funktioniert, ist reiner ZUFALL!

    Gruss: Vladi
    ______________________________________
    relax, take it easy
    Zitieren Zitieren Pointer  

  3. #3
    max1de ist offline Benutzer
    Themenstarter
    Registriert seit
    04.09.2006
    Beiträge
    33
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke Vladi !

    Gibt es denn bei solchen Sachen eine Mustelösung oder Ähnliches ??

  4. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.264
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

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

    Beitrag

    Hi,
    wenn Du eine Zahl in den AKKU geladen hast, und die 3x nach links
    schiebst, hättest Du immer den Pointer auf Byteadresse.
    Diesen dann in einem DWORD laden, und indirekt lesen/schreiben.

    L 80
    SLW 3
    T DWORD

    AUF DB82
    L DBW[DWORD] // liest DB82.DBW80

    Klaro, oder?

    Gruss: V.
    ______________________________________
    relax, take it easy
    Zitieren Zitieren Pointer  

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

    SIGGI (23.04.2009)

  7. #6
    max1de ist offline Benutzer
    Themenstarter
    Registriert seit
    04.09.2006
    Beiträge
    33
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Besten Dank Vladi!

    Funzt bestens !!!!

    Einen schönen abend nboch!

  8. #7
    Registriert seit
    29.01.2007
    Ort
    Sandkrug
    Beiträge
    147
    Danke
    7
    Erhielt 36 Danke für 25 Beiträge

    Standard

    Hallo max1de,
    so "zufällig" ist das nun auch wieder nicht. Wenn man wissen will, wie die AWL genau arbeitet, schreibt man sich das Programm mit den jeweiligen "Zeilenergebnissen" als Tabelle. Habe das mal für dein Programm gemacht:

    Code:
    AWL                         AKKU1    AKKU2  MB8    #Zaehler    MW13
    L 1                            1               X            X         X               X
    T MB8                      1               X            1          X               X
    L MB8                      1               1             1          X               X
    L 2                            2               1             1          X               X
    *I                              2               1             1          X               X
    SLW 2                      8               1             1          X               X
    T #Zaehler                8               1             1          8                X
    Auf DB82                 8               1             1          8                X
    L DBW[#Zaehler]    DBW1      8             1          8                X
    T MW13                   DBW1      8             1          8                DBW1
    Die Variable #Zaehler wird als Pointer benutzt. Dabei werden die rechten 3 Bit als Bitadresse und die Übrigen als Byteadresse benutzt. Die Zahl 8 (dual 1000 entspricht also dem Pointer 1.0). Deshalb wird aus dem DB82 das DW1 geladen und nach MW13 transferiert. Es besteht aus den Bytes 1 und 2 des DB82. Musterprogramme für so etwas gibt es nicht.
    Zitieren Zitieren Indirekte Adressierung  

  9. #8
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.264
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von eNDe Beitrag anzeigen
    so "zufällig" ist das nun auch wieder nicht.
    Selbstverständlich ist bei einer SPS rein gar nichts zufällig, das wär ja das Schlimmste was passieren kann. Das aber max1de Daten bekommen hat ist schon eher zufällig, weil der Code, den er dazu geschrieben hat, wohl wirklich rein zufällig richtig war, das hat er ja erkannt und deshalb die Frage gestellt . Aber die Links und Antworten sollten ihm das erklärt haben.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

Ä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
  •