Definition eines ARRAY OF STRUCT

Guts2
2007-09-04
2007-09-04
  • Guts2 - 2007-09-04

    Hallo, Ich bin noch nicht lange dabei was programmieren mit CodeSys angeht. Ich habe vor eine ARRAY OF STRUCT zu Definieren wo das STRUCT ungefähr so aussieht:

    TYPE FEHLER_EBENEN

    STRUCT

    FEHLER_EBENE_E: STRING(80); (*  *)
    
    FEHLER_EBENE_D1: STRING(80);    (*  *)
    
    FEHLER_EBENE_D2: STRING(80);    (*  *)
    
    FEHLER_EBENE_D3: STRING(80);    (*  *)
    
    FEHLER_EBENE_D4: STRING(80);    (*  *)
    

    END_STRUCT

    END_TYPE

    Jetzt weiß ich aber nicht wo kann ich das Struct definieren. Wenn ich es zwischen VAR und END_VAR setzt gibt es Fehler und wenn ich es nicht da rein setzte gibt es auch Fehler. Was mach ich Falsch? Ich hab das nach dem was in der Hilfedatei steht aufgebaut.

    Schon mal danke für die Hilfe

     
  • Rolf-Geisler - 2007-09-04

    Hallo,

    Du mußt zuerst die Typen deklarieren, und zwar im Projektbaum auf dem Tabellenblatt . Dazu deklarierst Du den Typ der Arrayelemente, und dann das Array selbst.

    Beispiel:

    TYPE FEHLER_EBENEN
    STRUCT
      FEHLER_EBENE_E: STRING(80); (* *)
      FEHLER_EBENE_D1: STRING(80); (* *)
      FEHLER_EBENE_D2: STRING(80); (* *)
      FEHLER_EBENE_D3: STRING(80); (* *)
      FEHLER_EBENE_D4: STRING(80); (* *)
    END_STRUCT
    END_TYPE 
    TYPE FEHLER_ARRAY : ARRAY [0..10] OF FEHLER_EBENEN
    END_TYPE
    

    Das geht am einfachsten über , und dann den Typenbezeichner angeben.

    Dann kannst Du im Programmcode oder in den globalen Variablen eine oder mehrere Variablen vom Typ des Arrays deklarieren, und schon ist die Sache fertig.

    Beispiel:

    VAR
      EinFehlerArray : FEHLER_ARRAY;
    END_VAR
    

    Hoffe, ich habe es nachvollziehbar beschrieben. Viel Erfolg

    Gruß Rolf[/code]

     

Log in to post a comment.