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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: arrays mit udt...

  1. #1
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.746
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    habe in einem db ein array meines udts deklariert!

    wie kann ich nun auf die elemente des udts über mein array zugreifen??

    gibt es irgendwo eine gute beschreibung zu step7 arrays und udts??
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren arrays mit udt...  

  2. #2
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.746
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    habs mal wieder rausgefunden...

    "DB100".myarray[2].Sollwert

    ist damit auch eine indirkete adressierung a la
    "DB100".myarray[mw10].Sollwert
    möglich???
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren rausgefunden...  

  3. #3
    Registriert seit
    08.05.2004
    Beiträge
    121
    Danke
    0
    Erhielt 3 Danke für 2 Beiträge

    Standard

    leider leider leider -> NEIN

    Schön wäre es

  4. #4
    Registriert seit
    23.06.2003
    Beiträge
    79
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    mit SCL geht das schon...

    Gruß Jörg

  5. #5
    Registriert seit
    08.05.2004
    Beiträge
    121
    Danke
    0
    Erhielt 3 Danke für 2 Beiträge

    Standard

    Hi jogi,

    habe leider wenig erfahrung in SCL, würde aber gerne was dazulernen.
    Kannste vieleicht mal ein kleines Beispiel posten wie das gehen würde ??

    Danke

  6. #6
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.746
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    will aber kein scl verwenden...

    gibts keine möglichkeit??? (dnke nein). gibt es eine möglichkeit das mir step7 bei meinen anypointer die größe (also byte 10 beispielsweise) durch die größe meines udts ersetzt (als beispweise byte sizeof(udt1)). wäre ja eigendlich keine steuerungtechnische sache, sondern nur ne compiler angelenheit...
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren scl...  

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

    Standard

    http://www.sps-forum.de/phpBB2/viewt...ghlight=sizeof

    Die DB-Größe kannst du ermitteln. Wie das mit ANY gehen soll, keine Ahnung.

    Du kannst nur 32Bit adressieren. Deshalb geht DBxx.myARRAY[].Sollwert nicht.

    Ich habe schon Klimmzüge gemacht deswegen.

    AUF DBxy
    L DBD[AR1,P#0.0]

    L DB.DBD[AR1,P#0.0] geht nicht.

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

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

  8. #8
    Registriert seit
    23.06.2003
    Beiträge
    79
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    @ KSK


    hier ein kleiner Ausschnitt aus unserer Produktionsdatenerfassung:

    Code:
    // UDT-Typdefinitionen
    
    TYPE TYP_E1Kopf
    
      STRUCT    
       .....
       auftrnr      : DINT;                    // Auftragsnummer
       masch        : INT;                     // Maschinennummer
       fertlen      : REAL := 6.0;             // Soll-Fertigungslänge [m]
       .....
      END_STRUCT;
    END_TYPE
    
    
    TYPE TYP_AdKomp
    
      STRUCT    
       SapMat  : DINT;                          // Materialnummer
       Bez     : STRING [12] := '            '; // Bezeichnung
       Sollgew : REAL;                          // Sollgewicht
       Mischnr : INT;                           // Mischungsnummer
       Farbnr  : INT;                           // Farbnummer
      END_STRUCT;
    END_TYPE
    
    
    TYPE TYP_E1Meld
    
     STRUCT
      Kopf    : TYP_E1Kopf;                 // E1-Kopfdaten
      AnzKomp : INT;                        // Anzahl aktiver Komponenten
      Komp    : ARRAY[1..10] OF TYP_AdKomp; // Komponentendaten
     END_STRUCT;
    END_TYPE
    
    
    // Datenbaustein-Definition
    
    DATA_BLOCK E1Buffer
    TITLE =  Puffer für E1-Meldungen
    
     STRUCT
       E1   : ARRAY [0..15] OF TYP_E1Meld;   
      END_STRUCT ;  
    BEGIN
    END_DATA_BLOCK
    
    
    // Ausschnitt aus einer Funktion, die indirekt darauf zugreift
    
    FUNCTION    CreateE1 : BOOL
    TITLE = 'Neue E1 aus Auftragsdaten erzeugen'
    
    // Erzeugen neuer E1-Meldung aus Auftragsdaten, alte Istwerte werden gelöscht
    
    VERSION : '0.2'
    
    VAR_INPUT
     AktBuf  : INT;
    END_VAR
    VAR_TEMP
     i       : INT;
     RetBool : BOOL;
    END_VAR
    
    BEGIN
    
      ......
    
      // Werte aus Auftrag übernehmen
      E1Buffer.E1[AktBuf].Kopf.auftrnr    := ProdAuft.Auft[0].Kopf.auftrnr;
      E1Buffer.E1[AktBuf].Kopf.masch      := ProdAuft.Auft[0].Kopf.masch;
      E1Buffer.E1[AktBuf].Kopf.fertlen    := ProdAuft.Auft[0].Kopf.Fertlen;
      ......
    
      // und hier mit mehrfach-indirekt-Zugriff !
      FOR i := 1 TO 5 BY 1 DO
        E1Buffer.E1[AktBuf].Komp[i] := ProdAuft.Auft[0].Komp[i];
      END_FOR;
      .....
    
    END_FUNCTION
    wenn ich mir das in AWL zusammenpfriemeln müsste hätte ich noch mehr Graue Haare

    Gruß Jörg
    Zitieren Zitieren SCL-Beispiel  

  9. #9
    Registriert seit
    08.05.2004
    Beiträge
    121
    Danke
    0
    Erhielt 3 Danke für 2 Beiträge

    Standard

    Danke jogi, da ist ja einfach

    Ich glaube ich werde mich jetzt mal ein wenig mehr mit SCL beschäftigen

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ist auf jeden Fall recht übersichtlich, aber letzhin in AWL nichts anderes als ein BLKMOV, wenn man Quelle und Ziel kennt. Das ist manchmal das Problem, warum einfach, wenn es auch komliziert geht und wie ein "richtiges" Programm aussieht.

    Bitte nicht falsch verstehen, ich mach das hin und wieder auch in SCL, weil es einfach übersichtlicher und nachvollziebarer für andere ist.

    ralle

Ähnliche Themen

  1. Arrays in DB anlegen
    Von litlegerman im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 31.10.2011, 18:32
  2. Arrays in PC Worx
    Von Daywalker im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 13.08.2010, 15:01
  3. 2 Arrays aus 2 DBs vergleichen
    Von Günni1977 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 03.12.2008, 17:14
  4. dynamische Arrays?
    Von merlin im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 30.05.2008, 16:06
  5. Pointer und Arrays
    Von SolSna im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 26.02.2008, 20:16

Lesezeichen

Berechtigungen

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