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

Page 1 of 2 12 LastLast
Results 1 to 10 of 18

Thread: arrays mit udt...

  1. #1
    Join Date
    17.06.2004
    Location
    Offenau
    Posts
    4,079
    Danke
    210
    Erhielt 466 Danke für 366 Beiträge

    Default


    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
    Reply With Quote Reply With Quote arrays mit udt...  

  2. #2
    Join Date
    17.06.2004
    Location
    Offenau
    Posts
    4,079
    Danke
    210
    Erhielt 466 Danke für 366 Beiträge

    Default

    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
    Reply With Quote Reply With Quote rausgefunden...  

  3. #3
    Join Date
    08.05.2004
    Posts
    143
    Danke
    0
    Erhielt 3 Danke für 2 Beiträge

    Default

    leider leider leider -> NEIN

    Schön wäre es

  4. #4
    Join Date
    23.06.2003
    Posts
    81
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    mit SCL geht das schon...

    Gruß Jörg

  5. #5
    Join Date
    08.05.2004
    Posts
    143
    Danke
    0
    Erhielt 3 Danke für 2 Beiträge

    Default

    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
    Join Date
    17.06.2004
    Location
    Offenau
    Posts
    4,079
    Danke
    210
    Erhielt 466 Danke für 366 Beiträge

    Default

    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

  7. #7
    Join Date
    07.05.2004
    Location
    Campbelltown
    Posts
    2,500
    Danke
    131
    Erhielt 293 Danke für 86 Beiträge

    Default

    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
    Join Date
    23.06.2003
    Posts
    81
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    @ 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
    Reply With Quote Reply With Quote SCL-Beispiel  

  9. #9
    Join Date
    08.05.2004
    Posts
    143
    Danke
    0
    Erhielt 3 Danke für 2 Beiträge

    Default

    Danke jogi, da ist ja einfach

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

  10. #10
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    13,815
    Danke
    747
    Erhielt 3,129 Danke für 2,233 Beiträge

    Default


    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

Similar Threads

  1. Programmoptimierung mit Arrays
    By AlexWillburger in forum Programmierstrategien
    Replies: 7
    Last Post: 28.02.2019, 15:26
  2. For- Schleife mit Arrays
    By CNC840D in forum CODESYS und IEC61131
    Replies: 13
    Last Post: 02.11.2015, 09:49
  3. Replies: 4
    Last Post: 20.04.2015, 15:30
  4. TIA CTU_DINT mit Arrays versorgen
    By SanjaDO in forum Simatic
    Replies: 6
    Last Post: 04.06.2014, 22:16
  5. UDT/ARRAYS und so
    By SEAL in forum Simatic
    Replies: 4
    Last Post: 30.12.2011, 21:06

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •