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

Ergebnis 1 bis 10 von 10

Thema: Auf Array-Variable indirekt zugreifen

  1. #1
    Registriert seit
    11.12.2008
    Beiträge
    226
    Danke
    92
    Erhielt 2 Danke für 2 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    habe folgendes Problem:
    Möchte auf Variablen aus einem Array indirekt zugreifen.
    Laut Handbuch wäre das möglich, bekomme aber immer eine Fehlermeldung
    „Der eingegebene Index ist ungültig“.
    So in etwa habe ich mir das vorgestellt:
    MyDB.ARRAY[MW30].ABSCHNITT_L1

    MW30 (INT)
    Zitieren Zitieren Auf Array-Variable indirekt zugreifen  

  2. #2
    zloyduh ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.12.2008
    Beiträge
    226
    Danke
    92
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Habe mit SCL probiert, da funktioniert das.

    Möchte aber in FUP oder KOP auf die Variablen zugreifen und da funktioniert es nicht

  3. #3
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.207
    Danke
    927
    Erhielt 3.293 Danke für 2.662 Beiträge

    Standard

    Indirekte Adressierung in FUP und KOP ist in Step7 classic nicht möglich und meines Wissens auch nicht in TIA.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #4
    Registriert seit
    19.04.2010
    Beiträge
    26
    Danke
    1
    Erhielt 10 Danke für 7 Beiträge

    Standard

    Soweit ich weiß ist es in KOP/FUP möglich, aber nur mit den neuen CPUs (1200/1500)!

  5. #5
    Registriert seit
    12.05.2009
    Beiträge
    61
    Danke
    21
    Erhielt 14 Danke für 12 Beiträge

    Standard

    In TIA V11 und 1200 CPU hat das zugreifen über Index funktioniert.

    EDIT:
    Bei TIA V12 und CPU 1500 geht speichern und übersetzen ohne Probleme.
    Kann es aber im Moment nicht testen...
    Geändert von jack911 (05.02.2014 um 12:26 Uhr)

  6. #6
    Registriert seit
    24.04.2013
    Beiträge
    309
    Danke
    23
    Erhielt 160 Danke für 88 Beiträge

    Standard

    Hi

    es geht auf
    300/400 in SCL
    1200/1500 in SCL, KOP, FUP
    1500 in AWL

    'n schön' Tach auch
    HB

  7. #7
    Registriert seit
    26.05.2009
    Beiträge
    541
    Danke
    35
    Erhielt 78 Danke für 69 Beiträge

    Standard

    Ich möchte gerne diesen alten Thread wieder hervorholen, weil ich gerne wissen möchte wie! das in FUP geht?
    TIA-V13 und 1500/1200-er.
    Wie kann ich in FUP auf ein EW0 die einzelnen Bits in abhängigkeit von einer Variable zugreifen?
    Also an einem Und-Baustein EW0.[laufvariable] beispielsweise.
    Geändert von wolder (22.01.2015 um 11:45 Uhr)
    Wenn du denkst du denkst, dann denkst du nur, dass du denkst, denn beim Denken der Gedanken, kommt dir der Gedanke, dass das Denken der Gedanken ein gedankenloses Denken ist

  8. #8
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.207
    Danke
    927
    Erhielt 3.293 Danke für 2.662 Beiträge

    Standard

    Vergiss dieses S5-Style absolut zugreifen aus dem vorigen Jahrhundert...
    Benutze Schieben/Rotieren und AND-Wordverknüpfen zum Ausmaskieren der Bits.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. #9
    Registriert seit
    26.05.2009
    Beiträge
    541
    Danke
    35
    Erhielt 78 Danke für 69 Beiträge

    Standard

    Ja OK.
    Ich mach es allgemeiner.
    Wie kann ich bei der 1200/1500 in FUP indirekt adressieren.
    Wenn du denkst du denkst, dann denkst du nur, dass du denkst, denn beim Denken der Gedanken, kommt dir der Gedanke, dass das Denken der Gedanken ein gedankenloses Denken ist

  10. #10
    Registriert seit
    24.04.2013
    Beiträge
    309
    Danke
    23
    Erhielt 160 Danke für 88 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi wolder

    angenommen a ist ein DB und b eine Variable innerhalb des DB von einfachem Typ, z.B. ein DINT.
    Dann darf man bei 1200/1500 in allen Sprachen "a".b.%xi schreiben. Damit greift man auf bit i von "a".b zu. i ist jedoch immer eine feste Zahl.
    "a".b.x[i] wobei i selbst eine Variable ist, geht nicht. Mal sehen ob das je kommt.
    Bis dahin musst du wie PN/DP vorschlägt schieben oder rotieren und maskieren.
    Das hat den Vorteil, dass man bei der 1500 auch mit 64 Bit Typen arbeiten kann.

    Für nicht optimierte DB, E,A,M gibt es PEEK_BOOL und POKE_BOOL. Die können auch völlig losgelöst von irgendwelchen Symbolen ein einzelnes bit liefern, wobei die Bitposition durch eine Variable gegeben werden kann. Diese muss jedoch einen Wert im Bereich 0 bis 7 haben. Auf das EW0.%x15 kann man damit nicht, statt dessen ist dann EB0.%x7 zu verwenden. Nicht optimierter Speicher ist big-endian. EW0.%x7 = EB1.%x7. Big-endian ist verwirrend.

    'n schön' Tach auch
    HB

  11. Folgender Benutzer sagt Danke zu HelleBarde für den nützlichen Beitrag:

    wolder (25.01.2015)

Ähnliche Themen

  1. in scl indirekt auf realwert zugreifen
    Von Bensen83 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 14.03.2011, 21:14
  2. Indirekt auf DB zugreifen (IN SCL)
    Von Bensen83 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 09.07.2010, 08:52
  3. Indirekt (Any-Pointer) auf PEW zugreifen?
    Von thorsten im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 11.05.2009, 12:44
  4. Auf Array indiziert zugreifen
    Von leon79 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 17.10.2008, 16:16
  5. Auf Array mit Indizies zugreifen?
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 17.11.2004, 20:59

Lesezeichen

Berechtigungen

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