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

Ergebnis 1 bis 3 von 3

Thema: AWL - DB mit Array von Strukturen durchlaufen

  1. #1
    Registriert seit
    21.05.2004
    Beiträge
    418
    Danke
    31
    Erhielt 16 Danke für 8 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    stehe wohl auf dem dicken Schlauch.

    Habe einen DB mit einem Array von Strukturen:
    Code:
    -----------------------------------
    TYPE "TPosition"
    VERSION : 0.1
     
      STRUCT  
       SollStk : INT ; 
       IstStk : INT ; 
       SollLaenge : DINT ; 
      END_STRUCT ; 
    END_TYPE
    -----------------------------------
    TYPE "TPaket"
    VERSION : 0.1
     
      STRUCT  
       Paket : ARRAY  [0 .. 20 ] OF "TPosition"; 
      END_STRUCT ; 
    END_TYPE
    -----------------------------------
    DATA_BLOCK "Paket"
    TITLE =Daten für ein Paket
    VERSION : 0.1
     
      STRUCT  
       Paket : "TPaket"; 
      END_STRUCT ; 
    BEGIN
       Paket.Paket[0].SollStk := 0; 
       Paket.Paket[0].IstStk := 0; 
       Paket.Paket[0].SollLaenge := L#0; 
       Paket.Paket[1].SollStk := 0; 
       Paket.Paket[1].IstStk := 0; 
       Paket.Paket[1].SollLaenge := L#0; 
       Paket.Paket[2].SollStk := 0; 
       Paket.Paket[2].IstStk := 0; 
       Paket.Paket[2].SollLaenge := L#0; 
    ...
    END_DATA_BLOCK
    -----------------------------------
    Wie sieht den zB. das Durchlaufen des DB und der Zugriff auf das gerade selektierte Element aus?

    AUF DB Paket

    L Paket.Paket[idx].SollLaenge oder so ähnlich - geht nicht.

    Eigentlich müsste ja
    L DB13.Paket[idx].SollLaenge gehen...

    Bitte ein Bit äh einen Tip - Danke

    Kurt
    Zitieren Zitieren AWL - DB mit Array von Strukturen durchlaufen  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Das mit dem Index geht nur mit einer festen Konstante, oder du programmierst in SCL, dann kannst du für den Index eine Variable nutzen.
    Willst oder kannst du nicht mit SCL arbeiten, mußt du indirekt adressieren und kannst somit nicht mit symbolischen Operanden arbeiten. Leider .

    Eine Ergänzung noch:

    Man kann eine UDT an einen untergeordneten FB/FC übergeben und in diesem dann direkt symbolisch mit der UDT-Variablen weiterarbeiten.
    Wenn man also statt Struct ein Array von UDT definiert und die entsprechende UDT aus dem Array übergibt könnte es so gehen.

    Irgendwo hatten wir dieses Thema mal besprochen.
    Geändert von Ralle (11.05.2006 um 16:13 Uhr)
    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

  3. #3
    Kurt ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.05.2004
    Beiträge
    418
    Danke
    31
    Erhielt 16 Danke für 8 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke für die Info,
    bin wohl von Codesys+Derivaten zu sehr verwöhnt.

    Gruss
    Kurt

Ähnliche Themen

  1. In Arrays und Strukturen denken
    Von vollmi im Forum CODESYS und IEC61131
    Antworten: 8
    Letzter Beitrag: 18.10.2011, 13:35
  2. Adressen durchlaufen
    Von djp im Forum Programmierstrategien
    Antworten: 1
    Letzter Beitrag: 02.09.2011, 11:36
  3. Antworten: 39
    Letzter Beitrag: 17.05.2011, 20:32
  4. Prioritätsfehler (OB85 wurde durchlaufen)
    Von Beren im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 18.07.2008, 16:03
  5. Schrittkette mehrmals durchlaufen lassen
    Von anfänger2006 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 15.04.2006, 08:51

Lesezeichen

Berechtigungen

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