structs in structs realisieren?

eddykl
2021-04-25
2021-04-27
  • eddykl - 2021-04-25

    Hallo, ich arbeite das erste Mal mit codesys und habe schon Erfahrung mit TIA Portal.
    Gibt es eine Möglichkeit structs innerhalb von structs zu schreiben? Bei TIA wäre das mit Data Blocks möglich, die es ja leider bei codesys nicht gibt.

    Bsp1: cmd.arm.motionCmd.up := TRUE;
    Bsp2: cmd.arm.enable := FALSE;

    cmd, arm & motionCmd sollten structs sein.
    up := BOOL;
    enable := BOOL;

    Falls dies nicht möglich sei, gäbe es andere Methoden diese Idee zu realisieren?

    Grüße, Eddy

     
  • m.prestel - 2021-04-26

    Hey,
    Du kannst in CODESYS ganz normal STRUCTS (sind unter DUT im Englischen) anlegen.
    https://help.codesys.com/webapp/_cds_datatype_structure;product=codesys;version=3.5.16.0

    In deinen Strukturen kannst du natürlich andere Strukturen verwenden.

    LG
    Marcel

     
    👍
    1
    • eddykl - 2021-04-26

      Ich dachte an eine Verkettung. Leider gibt er mir die Fehler aus:

      "END_TYPE anstelle von END_STRCT"
      "Unerwartentes Token STRUCT gefunden"
      " ; anstelle von up erwartet".

      Mein Code Ansatz:

      ==================================

      TYPE cmd:
      STRUCT
      motion : BOOL;
      STRUCT
      up : BOOL;
      down : BOOL;
      END_STRUCT
      END_STRUCT
      END_TYPE

      ===================================

      Gewünscht wäre ein Aufruf der Variable "up" durch den Aufruf:
      cmd.motion.up
      also "motion" wäre ein struct innerhalb des structs "cmd"

      Kannst du mir bitte die richtige Syntax geben? Ich finde einfach nichts passendes dazu.

      LG Eddy

       
  • m.prestel - 2021-04-27

    Hey,

    Es gibt keine anonymen STRUCTS.
    Leg eine STRUCT cmd an und eine zusätzliche STRUCT UpDown.

    TYPE cmd:
    STRUCT
    motion: BOOL;
    upDown: UpDown;
    END_STRUCT
    END_TYPE

    und dann Type UpDown:
    STRUCT
    up: BOOL;
    down: BOOL;
    END_STRUCT
    END_TYPE

    LG
    Marcel

     
    • eddykl - 2021-04-27

      Danke dir viel Mals! Genau nach dem habe ich gesucht :)

       

Log in to post a comment.