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

Ergebnis 1 bis 2 von 2

Thema: Auf mehrere Elemente eines ARRAY per FC zugreifen

  1. #1
    Registriert seit
    13.04.2013
    Beiträge
    2
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    Step7 V5.3: Möchte in einem ARRAY jeweils z.B. 4 Bytes ändern, die einen definierten Abstand voneinander haben:

    Beispiel 1: Wert 10 in ARRY[5], ARRY[20], ARRY[24] und ARRY[30] schreiben.
    Beispiel 2: Wert 22 in ARRY[6], ARRY[21], ARRY[25] und ARRY[31] schreiben.

    An eine FC wird der Wert und ein Pointer z.B. auf die erste Variable (Beispiel 1: ARRY[5]) übergeben, die FC errechnet sich die restlichen 3 Positionen. Der FC wird von einem FB angesprochen (der wiederum Wert und Pointer als Parameter bekommt).

    Lösungsversuch 1: Die erste Variable als echten Pointer übergeben. Geht nicht, weil dann beim FC nur noch ein Pointer auf einen Pointer ankommt usw.

    Lösungsversuch 2: Die erste Variable als IN_OUT zum FC durchreichen. Das geht, aber es wird ein Zeiger (?) auf einen V.. übergeben. Mit dem kann ich nicht die weiteren 3 Positionen errechnen

    Bei beiden Lösungsversuchen weiß ich nicht, ob es theoretisch geht und ich nur nicht weiß "wie" ..

    Wer knackt das Problem?

    Danke + Grüße, Reinhard
    Zitieren Zitieren Auf mehrere Elemente eines ARRAY per FC zugreifen  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Dass es mit dem Parametertyp POINTER geht glaub ich nicht, da er vom Step7 Editor selbst erzeugt wird.
    Wenn du den Parameter vom Typ ANY anlegst dann funktioniert das, wenn auch etwas aufwändig.

    Lösungsweg:
    - Der FB und auch der FC haben als IN-Parameter eine Variable IN_ARRY mit Datentyp ANY.
    - Im Temp-Bereich des FB wird ebenfalls eine Variable vom Datentyp ANY angelegt, z.B. TMP_ARRY.
    - Im FB werden dann über indirekte Adressierung die 10-Bytes des IN_ARRY auf die 10 Bytes von TMP_ARRY umkopiert.
    - Wenn im FB der unterlagerte FC aufgerufen wird, wird dort an dessen Parameter IN_ARRY die Variable TMP_ARRY angeschaltet.

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 21.03.2012, 13:48
  2. Auf Array indiziert zugreifen
    Von leon79 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 17.10.2008, 16:16
  3. Antworten: 14
    Letzter Beitrag: 04.12.2006, 10:19
  4. Zugreifen auf 4 Bit eines Eingangsworts
    Von Anonymous im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 16.01.2006, 10:28
  5. Auf Array mit Indizies zugreifen?
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 17.11.2004, 20:59

Stichworte

Lesezeichen

Berechtigungen

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