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

Ergebnis 1 bis 2 von 2

Thema: Index in S7 AWL

  1. #1
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 276 Danke für 86 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Aufgrund der immer wiederkehrenden Problematik mit der indirekten Adressierung, erstelle ich hier mal ein Topic.

    Ich werde noch ein weiteres eröffnen, mit indirekter Adressierung. Gerne und hoffentlich bekomme ich da Unterstützung in Form von Beispielen und Quellcodes

    pt
    Gegen Schwachsinn, Schwachköpfe und armselige Trittbrettfahrer kann man nicht argumentieren.

    Gott sieht alles, auch Signaturen in Geheimschrift,,... aber er petzt nicht.
    Zitieren Zitieren Index in S7 AWL  

  2. #2
    plc_tippser ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 276 Danke für 86 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    In AWL ist es nicht mögich, einen Index, wie bei anderen Sprachen gewohnt, direkt in die eckigen Klammern [] zu setzen.

    Hier ein Beispiel, wie dieses realisiert werden kann.

    Deklaration:
    Feld := ARRAY[0..10] of INT
    Index := INT

    Code:

    L #Index // Lade Index in den Akku1 Bsp.:0
    SLD3 // Schiebe den Wert im Akku1 um 3 Bits nach links
    LAR1 // Lade den Inhalt des Akku1 in das AR1

    L #Feld[AR1,P#0.0] // Lade den Wert im Feld mit dem Index 0 in den Akku1

    Lädt man den ersten Eintrag eines Feldes, funktioniert es nach dem oben beschriebenen Code. Da das sicherlich nicht das Ziel eines Feldes ist, muss der Code für höhere Indizes noch erweitert werden.

    Den Index direkt ins AR1 zu laden ist eigentlich ein Fehler. Er muss noch mit der Größe der Feldvariablen multipliziert werden.

    Fortsetzung folgt...

    Vorschau:

    L #Index // Lade Index in den Akku1 Bsp.:2
    L 2 // Lade die Bytegröße der verwendeten Variablen (INT = 2 Byte)
    *I // multipliziere den Index
    SLD3 // Schiebe den Wert im Akku1 um 3 Bits nach links
    LAR1 // Lade den Inhalt des Akku1 in das AR1

    L #Feld[AR1,P#0.0] // Lade den Wert im Feld mit dem Index 0 in den Akku1
    Gegen Schwachsinn, Schwachköpfe und armselige Trittbrettfahrer kann man nicht argumentieren.

    Gott sieht alles, auch Signaturen in Geheimschrift,,... aber er petzt nicht.

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

    SIGGI (14.02.2009)

Ähnliche Themen

  1. Index Array
    Von peraho im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 16.10.2012, 09:16
  2. Bit-Index variabel?
    Von Metabastler im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 02.10.2011, 22:53
  3. Array mit index
    Von bluebird277 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 29.08.2011, 11:23
  4. Multiplexvariable Index verändern
    Von Bensen83 im Forum HMI
    Antworten: 7
    Letzter Beitrag: 26.03.2011, 23:02
  5. Index aus Array auslesen
    Von heri1980 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 17.09.2010, 14:54

Lesezeichen

Berechtigungen

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